Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parseGeography fails on certain inputs #322

Open
djMax opened this issue Jun 6, 2016 · 7 comments
Open

parseGeography fails on certain inputs #322

djMax opened this issue Jun 6, 2016 · 7 comments

Comments

@djMax
Copy link

djMax commented Jun 6, 2016

Not sure if this is enough info, but here's the geo in SQL query:

0xE61000000224680F0000CD1DFD2FD7A84B40166A4DF38E3317C0083D9B559FAB4B40B98D06F016E816C0199128B4ACAD4B407AA52C431CCB16C0DF6DDE3829AE4B40091B9E5E29AB16C07A185A9D9CAF4B40A301BC05127416C0B537F8C264B24B40D7A3703D0A5716C061360186E5B54B4032772D211F5416C03315E29178B74B40C58F31772D6116C08F53742497B74B40FB3A70CE889216C09B559FABADB84B4075029A081B9E16C06E3480B740BA4B4075029A081B9E16C00E315EF3AABC4B40B1E1E995B28C16C0C8940F41D5C24B40D7A3703D0A5716C0B7627FD93DC94B400DE02D90A01816C0354069A851CE4B407AC7293A920B16C0E23AC61517D54B400DE02D90A01816C0B090B932A8D84B400C93A982512916C03885950A2ADC4B4080B74082E22716C0EC33677DCADF4B40DD240681950316C060764F1E16E24B4070CE88D2DEC015C037A79201A0E44B40736891ED7C9F15C0B39943520BE74B406B2BF697DD9315C0F7578FFB56E94B40B6847CD0B39915C0C2A4F8F884F64B409A081B9E5E0916C0F9A067B3EAFB4B407E1D3867442916C08048BF7D1D004C40C898BB96902F16C02506819543034C40569FABADD81F16C036C98FF815054C40FDF675E09CF115C000917EFB3A084C40ACADD85F76AF15C079E57ADB4C0F4C404F1E166A4D7315C03A9677D503144C40567DAEB6623F15C0910F7A36AB164C40F54A598638F614C0BD0166BE83194C404CA60A4625D514C045D4449F8F1C4C40CA32C4B12EAE14C08B4E965AEF1D4C4026E4839ECD8A14C07DB262B83A1E4C4082E2C798BB7614C04B598638D61D4C40917EFB3A706E14C0E4F6CB272B1C4C40560E2DB29D6F14C02593533BC3164C4076E09C11A59D14C0F697DD93870D4C40295C8FC2F52815C0E27668588C0C4C408351499D804615C06DC5FEB27B0A4C40FF21FDF6756015C0C0E8F2E670074C401361C3D32B6515C0D6389B8E00044C408195438B6C8715C0E09C11A5BD014C405F07CE19519A15C09772BED87BFF4B409A779CA2239915C031B77BB94FF84B401FF46C567D8E15C0B680D07AF8F44B4042CF66D5E78A15C0BCE7C07284F24B40CBA145B6F37D15C0F8A41309A6F04B40705F07CE195115C0A48E8EAB91EF4B40780B24287E2C15C0514D49D6E1EE4B405839B4C876FE14C0AB4203B16CEC4B4039B4C876BEDF14C04DF73AA92FE94B400C93A98251C914C0F92D3A596AE74B40A301BC0512B414C0EA9106B7B5E74B404FAF946588A314C02B8716D9CEE74B404A0C022B879614C048BF7D1D38E74B40228E75711B8D14C0E25CC30C8DE54B40302AA913D08414C02CB6494563E34B40986E1283C08A14C004745FCE6CE14B40F5B9DA8AFD8514C023F94A2025E04B4003098A1F636E14C063EE5A423EE04B40234A7B832F4C14C01895D40968E24B409487855AD33C14C0931804560EE54B40462575029A4814C01766A19DD3E64B40AD69DE718A4E14C0A185048C2EE94B409A779CA2235914C088855AD3BCEB4B40D5E76A2BF65714C06E85B01A4BEE4B40B459F5B9DA6A14C03C4A253CA1F14B40C58F31772DA114C032E6AE25E4F34B40A54E401361C314C00F29064834F34B405C8FC2F528DC14C00F29064834F34B407B14AE47E1FA14C0E3546B6116F44B406DC5FEB27B1215C0BC0512143FF64B40FD87F4DBD72115C0B2A19BFD81F84B405BD3BCE3141D15C01904560E2DFA4B408104C58F311715C03A747ADE8DFB4B40DE02098A1F0315C0091B9E5E29FB4B40F1F44A5986F814C0F646AD307DF94B40B1E1E995B2EC14C071AC8BDB68F84B40742497FF90DE14C0137F1475E6F84B40AAF1D24D62D014C0ABED26F8A6FB4B40E0BE0E9C33C214C0E2CB441152FD4B40F2B0506B9AB714C075029A081BFE4B40B29DEFA7C6AB14C0E2CB441152FD4B400000000000A014C0EBE2361AC0FB4B40D42B6519E29814C07AC37DE4D6F64B400F9C33A2B49714C0B680D07AF8F44B40E71DA7E8488E14C06D567DAEB6F24B40C74B3789416014C09FAF592E1BF34B40D49AE61DA74814C0234A7B832FF44B40933A014D842D14C0CA54C1A8A4F64B407FFB3A70CE2814C06B9E23F25D004C40DC4603780B2414C08C2C996379054C4017B7D100DE2214C0E27668588C0C4C40F085C954C12814C09CC0745AB7134C403F355EBA492C14C043CBBA7F2C164C40894160E5D02214C097E13FDD40174C4097900F7A360B14C0085BECF659174C40D0B359F5B9FA13C0D2510E6613164C4055302AA913F013C0CDCCCCCCCC144C40F241CF66D5E713C08CD7BCAAB3144C404F401361C3D313C0C4B5DAC35E164C4030BB270F0BB513C04850FC1873174C40029A081B9E9E13C016F71F990E174C4050FC1873D79213C0FF25A94C31154C4024287E8CB98B13C0DEE4B7E8640F4C40A54E401361A313C08099EFE0270C4C4070CE88D2DEC013C07C613255300A4C40BF7D1D3867C413C015FF774485084C40E10B93A982B113C0E3A59BC420084C408B6CE7FBA99113C0B7D100DE02094C40E86A2BF6977D13C0AEBA0ED5940A4C406B9A779CA26313C0AEBA0ED5940A4C4066F7E461A15613C0E5F21FD26F074C40744694F6063F13C0C9E9EBF99A034C40DE9387855A1313C0793A579412004C4055302AA913D012C075029A081BFE4B40EE5A423EE87912C0F16778B306FD4B40D578E926316812C0DE9387855AFB4B40A9A44E40136112C07731CD74AFF94B4010E9B7AF036712C085CD001764F94B403D0AD7A3707D12C0689599D2FAF94B400E2DB29DEFA712C0A75B76887FFE4B408D28ED0DBE5013C058CA32C4B1FE4B40B3EA73B5159B13C0D32F116F9DFD4B401C7C613255B013C0AC3AAB05F6FA4B40E6AE25E483BE13C05F07CE1951F24B40840D4FAF94C513C0E6B2D1393FEB4B406B2BF697DDB313C0BEBD6BD097E84B4004E78C28EDAD13C066F7E461A1E64B4030BB270F0BB513C0A296E65608E14B4036AB3E575BD113C0BC96900F7ADE4B40D50968226CD813C04260E5D022DB4B4001DE02098ADF13C0E9995E622CD94B4077BE9F1A2FDD13C0522B4CDF6BD64B40BF7D1D3867C413C05839B4C876CE4B4054742497FF1013C0A245B6F3FDCC4B4088F4DBD781F312C02D944C4EEDCA4B40F931E6AE25E412C0228AC91B60C84B405BD3BCE314DD12C01AA20A7F86C54B40AA8251499DE012C0E41071732AC34B402506819543EB12C0348463963DBF4B4072F90FE9B72F13C07FDDE9CE13BD4B4002BC0512143F13C0C4B12E6EA3B94B40075F984C154C13C00FED6305BFB34B40917EFB3A704E13C0FC1873D712B24B4096218E75715B13C08195438B6CAF4B4076E09C11A57D13C09A95ED43DEAC4B402CD49AE61D8713C0E5D022DBF9A64B40B6F3FDD4788913C048DDCEBEF2A24B40545227A0899013C0DD425722509F4B401F85EB51B89E13C02E03CE52B29A4B401283C0CAA1C513C052499D8026924B40304CA60A462514C0BABC395CAB8B4B40560E2DB29D6F14C0A7E8482EFF894B405BB1BFEC9E7C14C0CF84268925874B405BB1BFEC9E7C14C0736891ED7C7F4B40D8F0F44A594614C0BEC11726537D4B405D6DC5FEB23B14C034A2B437F87A4B4075029A081B3E14C0E65DF580797A4B40B1BFEC9E3C4C14C0091B9E5E297B4B40C74B3789416014C090BE49D3A0824B406744696FF0A514C07286E28E37834B40E4141DC9E5BF14C09F5A7D7555824B4052499D8026E214C007EC6AF2947F4B40098A1F63EEFA14C0AF25E4839E7D4B405839B4C876FE14C0C8258E3C107B4B40CE1951DA1BFC14C09B594B01696D4B407B832F4CA6AA14C08200193A766A4B40D3DEE00B938914C0BD70E7C248694B40F46C567DAE7614C01766A19DD3664B402A3A92CB7F6814C0EB73B515FB634B4016FBCBEEC96314C03048FAB48A604B40E9263108AC5C14C0C5AD8218E85C4B40234A7B832F4C14C086E7A56263584B40EBE2361AC01B14C0C15774EB35574B40BEC11726530514C05F7AFB73D1564B4068226C787AE513C0166EF9484A584B40D95F764F1ED613C07B832F4CA65A4B4014D044D8F0D413C0273108AC1C624B4060764F1E160A14C089B48D3F51674B4074B515FBCB0E14C0E6B2D1393F6B4B40BEC11726530514C0B22AC24D466F4B404F401361C3D313C0074147AB5A704B406F8104C58FB113C03315E291786F4B4099BB96900F7A13C01CEBE2361A684B406D567DAEB62213C0A7ECF483BA664B4003780B2428FE12C0349E08E23C664B40BC74931804D612C0A2B437F8C2644B40613255302AA912C046B6F3FDD4604B40CC7F48BF7D7D12C0D5963AC8EB5B4B40371AC05B206112C0A9A44E4013594B40CE88D2DEE04B12C0F4FDD478E9564B40F0164850FC3812C0DFDC5F3DEE554B408638D6C56D1412C0D6C56D3480574B40E63FA4DFBECE11C08B6CE7FBA9594B40696FF085C9B411C05F984C158C5A4B40DF4F8D976EB211C056815A0C1E5C4B40AA8251499DC011C0A7751BD47E5D4B4048E17A14AEC711C04FCDE506435F4B40AA8251499DC011C01895D40968624B40508D976E12A311C0F1457BBC90644B40C66D3480B7A011C0DCF5D21401684B407C61325530AA11C02041F163CC6D4B40894160E5D0E211C0088ECBB8A96F4B4054742497FFF011C08CDB68006F714B4045D8F0F44AF911C0742843554C734B400A68226C78FA11C00612143FC6744B40CA54C1A8A4EE11C029CFBC1C76754B4012143FC6DCD511C014AE47E17A744B402EFF21FDF6B511C0172AFF5A5E6F4B403C4ED1915C9E11C03E7958A8356D4B40E6AE25E4837E11C0AB4203B16C6C4B408B6CE7FBA95111C07A185A9D9C674B40E9263108ACFC10C0D3C08F6AD8654B409031772D21DF10C0E25CC30C8D654B401361C3D32BC510C0B58828266F664B400EBE30992AB810C0BEBD6BD097684B40ABCFD556ECAF10C02123A0C2116A4B400D71AC8BDBA810C012876C205D6A4B40B81E85EB519810C092E9D0E979694B40EEEBC039238A10C0D3C08F6AD8654B4001DE02098A7F10C0BA675DA3E5624B4093A98251495D10C009F9A067B3624B409B559FABAD3810C08E93C2BCC7634B40D578E926312810C008CA6DFB1E674B40F7065F984C1510C03FA88B14CA684B405305A3923A0110C0C442AD69DE694B404BC8073D9BD50FC0F44E05DCF36A4B407D3F355EBAC90FC03562669FC76E4B404BC8073D9BD50FC08656276728704B40DFE00B93A9C20FC0691EC022BF704B408FE4F21FD2AF0FC0691EC022BF704B4034A2B437F8820FC0B477465B956E4B4044FAEDEBC0390FC012A5BDC1176E4B405F984C158C0A0FC0529ACDE3306E4B40545227A089F00EC08656276728704B4095D4096822AC0EC077BAF3C473704B406C09F9A067730EC016DD7A4D0F704B40D122DBF97EEA0DC0691EC022BF704B40143FC6DCB5C40DC05F07CE1951724B4009F9A067B3AA0DC0643F8BA548744B4009F9A067B3AA0DC05ED89AADBC764B40C6DCB5847CD00DC0A305685BCD784B4050FC1873D7D20DC0BBD6DEA7AA7A4B409E5E29CB10C70DC00EA0DFF76F7C4B40C442AD69DEB10DC043A9BD88B67D4B4072F90FE9B76F0DC043A9BD88B67D4B4003780B24283E0DC0B0726891ED7C4B40613255302AE90CC0CEAACFD5567C4B4010E9B7AF03A70CC0707D586FD47C4B4003098A1F636E0CC0350D8AE6017E4B40FF21FDF675200CC058CA32C4B17E4B40E7FBA9F1D2CD0BC0267156444D7E4B400C93A98251890BC0933A014D847D4B40C3F5285C8F420BC0B0726891ED7C4B402BF697DD93070BC0A1D634EF387D4B404694F6065FD80AC0267156444D7E4B40910F7A36AB7E0AC088D68A36C77F4B4003098A1F632E0AC0CC7B9C69C2804B40F6285C8FC2F509C0FED478E926814B40C364AA6054D209C0CC7B9C69C2804B40107A36AB3E9709C039454772F97F4B40C976BE9F1A6F09C075029A081B7E4B405C8FC2F5285C09C00EA0DFF76F7C4B405C8FC2F5285C09C0674815C5AB7A4B404850FC18735709C085CD001764794B4070CE88D2DE6009C004E3E0D231794B40053411363C7D09C0D7C1C1DEC47A4B400F9C33A2B4370AC0674815C5AB7A4B404CA60A4625750AC07731CD74AF794B402063EE5A42BE0AC0AD4B8DD0CF724B405AF5B9DA8A7D0BC0B22AC24D466F4B406F8104C58FB10BC0F44E05DCF36A4B40355EBA490CC20BC089B48D3F51674B40A245B6F3FDD40BC0C90391459A624B40CC5D4BC807FD0BC0CA32C4B12E5E4B40C898BB96904F0CC024287E8CB95B4B40B84082E2C7980CC0B84082E2C7584B40A7E8482EFFE10CC02657B1F84D574B403108AC1C5AE40CC05B423EE8D9544B403B014D840DCF0CC0F0A7C64B37514B406B2BF697DDD30CC03126FDBD14484B40992A1895D4490DC0AEBA0ED594424B404D158C4AEA840DC0C7BAB88D06404B4008AC1C5A647B0DC0ABB184B5313C4B40C1A8A44E40530DC0015130630A344B406C787AA52CC30CC0A8E49CD8432D4B40C4B12E6EA3010CC09013268C662B4B4038F8C264AAE00BC0C74B378941284B40AED85F764FDE0BC0529ACDE330264B4038F8C264AAE00BC06A4DF38E53244B402DB29DEFA7C60BC0834D9D47C5214B406E3480B740820BC0433A3C84F11D4B40BA490C022B470BC00F7EE200FA1B4B409CC420B072280BC08E93C2BCC71B4B407D3F355EBA090BC0A2B437F8C21C4B40A835CD3B4E910AC0349E08E23C1E4B40C3D32B6519620AC0B9DE365321244B4010E9B7AF03270AC070D234289A254B404A0C022B87160AC0E04BE141B3254B402B8716D9CEF709C03E7958A835254B40516B9A779CE209C0C87A6AF5D5234B4029ED0DBE30D909C0D40D1478271D4B40F90FE9B7AF030AC076C24B70EA194B405E4BC8073D1B0AC0016BD5AE09134B40613255302A690AC0EBE6E26F7B104B409EEFA7C64B770AC0F4FDD478E90E4B40280F0BB5A6790AC03D0AD7A3700D4B40EC51B81E856B0AC0BABC395CAB0B4B4043AD69DE714A0AC004C93B87320A4B4010E9B7AF03270AC0D26F5F07CE094B403FC6DCB584FC09C0F52C08E57D0A4B40D044D8F0F4CA09C0AB2006BAF60B4B40789CA223B9BC09C0F4FDD478E90E4B40AA60545227E009C0F982161230104B40BE9F1A2FDDE409C08CB96B09F9104B40E4839ECDAACF09C0B07614E7A8114B401361C3D32BA509C052499D8026124B40EA95B20C716C09C0E4326E6AA0134B401973D712F24109C00C7558E196154B403F575BB1BF2C09C0BBB4E1B0341A4B40BE30992A181509C08A01124DA01E4B4063EE5A423EE808C04F9143C4CD1F4B40C3F5285C8FC208C05E2D7766821F4B401A51DA1B7CA108C0A8397991091E4B40DE9387855A9308C0287E8CB96B194B4085EB51B81E8508C073D712F241174B40DC4603780B6408C06E52D158FB154B40454772F90F2908C05FB69DB646164B401283C0CAA10508C0A530EF71A6174B406ADE718A8EE407C09E7C7A6CCB1A4B402D211FF46CD607C0B29DEFA7C61B4B405305A3923AC107C0B1506B9A771C4B403E7958A8358D07C06744696FF01D4B406D567DAEB66207C018B325AB221E4B409C33A2B4373807C0857CD0B3591D4B40304CA60A462507C0F392FFC9DF1B4B40304CA60A462507C023F94A2025184B40F6285C8FC23507C0EF3CF19C2D164B406C09F9A0673307C043AD69DE71124B4025068195430B07C08CB96B09F9104B40FD87F4DBD70107C0E561A1D6340F4B40696FF085C91407C0A7E8482EFF094B406891ED7C3FB507C0234E27D9EA084B409B559FABADD807C0C0E8F2E670074B407E1D386744E907C00AF5F411F8054B40A69BC420B0F207C0A3923A014D044B4039B4C876BEDF07C0B35DA10F96FF4A4095D40968226C07C0A089B0E1E9FD4A4014AE47E17A5407C0B83CD68C0CFC4A40B30C71AC8B5B07C02506819543FB4A408195438B6C6707C065FB90B75CFB4A403E7958A8358D07C065FB90B75CFB4A4011363CBD52D607C0F3ACA415DFFA4A4030BB270F0BF507C003965CC5E2F94A40CE1951DA1BFC07C0ABCFD556ECF74A4030BB270F0BF507C0802A6EDC62F44A40D3DEE00B93A907C05EBA490C02F34A401895D40968A207C0A8C64B3789F14A40A2B437F8C2A407C01590F63FC0F04A40D578E92631C807C08509A359D9F04A405C2041F1634C08C0A2410A9E42F04A401904560E2D7208C060E97C7896EE4A4037894160E59008C07EAA0A0DC4E44A40FE65F7E461A108C026E4839ECDE24A40E9263108AC9C08C07FD93D7958E04A4005C58F31776D08C08E75711B0DE04A40BEC11726534508C01310937021E14A409CA223B9FC0708C0F5D72B2CB8E14A404260E5D022DB07C004745FCE6CE14A40BD5296218E7507C0C0CE4D9B71E04A40933A014D844D07C00ADB4FC6F8DE4A40EC2FBB270F4B07C0C5AD8218E8DC4A401FF46C567D6E07C090A4A487A1DB4A40D3DEE00B93A907C05E4BC8073DDB4A40083D9B559FEB07C0D9B0A6B228DA4A40C520B072681108C0E4141DC9E5D74A4001DE02098A1F08C0FD14C78157D54A4034A2B437F84208C0927A4FE5B4D14A40234A7B832F8C08C026E0D74812CE4A40273108AC1CDA08C04A7F2F8507CB4A4046B6F3FDD4F808C0055262D7F6C84A40772D211FF4EC08C07DAEB6627FC14A407CF2B0506B9A08C00C8FFD2C96BC4A40E5F21FD26F5F08C017D522A298B64A40516B9A779CA207C0063065E080B04A40CAC342AD691E07C0A01A2FDD24AE4A4097FF907EFBFA06C0516B9A779CAA4A40A1F831E6AEE506C05BCF108E59A84A4083C0CAA145F606C026C632FD12A74A4090A0F831E62E07C06A6B44300EA84A40B1BFEC9E3C6C07C010768A5583AA4A406744696FF0C507C0EE5EEE93A3AE4A40D712F241CF2608C0B1BFEC9E3CB44A407958A835CD7B08C0FBE93F6B7EB64A4072F90FE9B7AF08C03BDF4F8D97B64A402FDD240681D508C08B70935165B64A40BC96900F7AF608C085EB51B81EB54A40DA1B7C61321509C09487855AD3B44A40BF7D1D38674409C0A4703D0AD7B34A4087A757CA328409C00BB5A679C7B14A4075029A081B9E09C0D2730B5D89AE4A40C364AA60549209C0F48AA71E69AA4A40B537F8C2642A09C0AA60545227A84A40931804560EED08C02713B70A62A64A40931804560EED08C08E57207A52A44A4032772D211FF408C0ADDC0BCC0AA34A40EE5A423EE81909C06DE7FBA9F1A24A407B14AE47E13A09C0C9E53FA4DFA64A408CDB68006FC109C06FF085C954A94A40728A8EE4F21F0AC02FFB75A73BA94A402F6EA301BC450AC092AD2EA704AA4A4064CC5D4BC8870AC0B91AD99596AB4A40F931E6AE25A40AC0A01A2FDD24AE4A4021B0726891AD0AC04772F90FE9AF4A40F2D24D6210D80AC079CBD58F4DB04A4009F9A067B32A0BC0C3D7D7BAD4AE4A40AB3E575BB17F0BC00327DBC01DAA4A40CA32C4B12E6E0CC06FF085C954A94A401283C0CAA1C50CC02FFB75A73BA94A40AD69DE718A4E0DC03480B74082AA4A4082734694F6C60DC0AA7EA5F3E1AB4A40D656EC2FBB270EC0917EFB3A70AE4A40BC0512143F860EC012876C205DB24A4010E9B7AF03E70EC00BD3F71A82B54A40E10B93A982110FC0D0622992AFB64A40EC51B81E852B0FC0DDB1D82615B74A408C4AEA0434510FC02E90A0F831B64A40492EFF21FD760FC0919C4CDC2AB24A40DE9387855A930FC0A296E65608A94A400612143FC69C0FC032772D211FA44A401D38674469EF0FC0F8359204E1A04A400C93A982512910C0DE8FDB2F9F9E4A4024B9FC87F47B10C0D6A71C93C59B4A4085EB51B81EC510C0A1F831E6AE954A4004560E2DB21D11C07B32FFE89B8E4A406688635DDC6611C07C613255308A4A405839B4C8767E11C0D6389B8E00844A40D200DE0209CA11C02AA913D044804A407CF2B0506BFA11C0F16778B3067D4A400F9C33A2B45712C031B77BB94F784A400DE02D90A09812C0A8E49CD843754A4068226C787AC512C0E3546B6116744A4097900F7A36EB12C095F25A09DD6F4A40A8C64B37892113C08D0A9C6C036D4A40F8C264AA603413C0D1915CFE436A4A4082E2C798BB3613C06C7C26FBE7674A4095D40968222C13C07A185A9D9C674A408FE4F21FD20F13C0BEBD6BD097684A40FA7E6ABC74F312C065C8B1F50C6B4A4077BE9F1A2FBD12C047904AB1A36B4A40499D8026C2A612C08200193A766A4A40BADA8AFD659712C01CEBE2361A684A40DC68006F818412C06C7C26FBE7674A4024287E8CB96B12C0A185048C2E694A40E4141DC9E55F12C05BB1BFEC9E6C4A40D0D556EC2F5B12C0C74B378941704A40931804560E4D12C09A779CA223714A4004560E2DB23D12C06EA301BC05724A40D1915CFE431A12C0FDFA213658764A40705F07CE19D111C05D8B16A06D774A40EEEBC03923AA11C05D8B16A06D774A40A9A44E40134111C08FE4F21FD2774A400E4FAF94650811C017B7D100DE7A4A4037894160E5D010C058ACE122F77A4A4031992A1895B410C075E44867607A4A40C364AA60549210C004E3E0D231794A40D656EC2FBB8710C0895FB1868B764A40EF384547729910C0008DD2A57F734A40992A1895D4C910C059350873BB714A4037894160E5D010C0B22AC24D466F4A40234A7B832FCC10C0280B5F5FEB6C4A400A68226C78BA10C0919C4CDC2A6A4A4045D8F0F44AB910C00E315EF3AA644A406C09F9A067B310C0B91AD99596634A40304CA60A46A510C0573D601E32634A40E3A59BC4207010C0672618CE35624A40A245B6F3FD5410C0B1321AF9BC604A40C976BE9F1A4F10C0C9E53FA4DF5E4A402C6519E2585710C06762BA10AB594A40736891ED7C7F10C0C80BE9F010544A40295C8FC2F58810C0E10B93A982514A40E9482EFF217D10C02B1895D409504A40454772F90F6910C0A245B6F3FD4C4A40D122DBF97E2A10C00F0F61FC344C4A401F85EB51B81E10C0BAF8DB9E204B4A404260E5D0221B10C0F568AA27F3494A4060E5D022DB3910C0CF488446B0474A40C976BE9F1A4F10C07C61325530424A40BB270F0BB56610C07E9065C1C43D4A40226C787AA56C10C0567DAEB662374A4064CC5D4BC88710C04EEFE2FDB82F4A40C5FEB27BF2D010C077BAF3C473284A40273108AC1C1A11C0D7169E978A234A40C286A757CA5211C04DF73AA92F214A400AD7A3703D8A11C01CEBE2361A204A40CC5D4BC807BD11C048BF7D1D381F4A4068B3EA73B5F511C0A2B437F8C21C4A404D158C4AEA2412C04031B2648E174A406B9A779CA24312C04698A25C1A154A40ADFA5C6DC55E12C047E5266A69144A40569FABADD87F12C0E9B7AF03E7144A404694F6065FD812C056815A0C1E144A40A089B0E1E9F512C0923EADA23F124A4031992A18951413C0C07971E2AB0F4A40448B6CE7FB2913C0446D1B46410E4A4033C4B12E6E4313C0105839B4C80E4A40FC1873D7127213C069006F81040D4A40D734EF38458713C01310937021094A40FC1873D7127213C0DDD3D51D8B074A40FC1873D7127213C060C77F8120064A40C2172653058313C0CBA145B6F3054A40EE7C3F355E9A13C01310937021094A40DFE00B93A9C213C0842BA0504F094A4055C1A8A44EE013C0B0FF3A376D084A40705F07CE191114C01310937021094A4050FC1873D75214C0B0FF3A376D084A4016FBCBEEC96314C0F775E09C11054A40EEEBC039236A14C0C26856B60FFF4940A323B9FC879414C020F0C000C2F94940ABCFD556ECCF14C03A92CB7F48F749403C4ED1915C1E15C0933A014D84F549403E7958A8352D15C017B7D100DEF24940014D840D4F2F15C0DA39CD02EDF04940273108AC1C1A15C09C33A2B437F04940BC96900F7AB614C0DC68006F81EC4940C6DCB5847C7014C094FAB2B453E9494001DE02098A5F14C0C5AD8218E8E44940EEEBC039236A14C084807C0915E24940F241CF66D58714C03F390A1005E149407D3F355EBAA914C03F390A1005E14940C0EC9E3C2CD414C090A0F831E6DE49404BEA043411F614C05323F433F5DC494023DBF97E6AFC14C041F163CC5DDB494072F90FE9B7EF14C0ABCB290131DB4940ABCFD556ECCF14C0287E8CB96BD949407D3F355EBAA914C06684B70721DA4940B84082E2C79814C04832AB77B8DB49403F355EBA496C14C04832AB77B8DB494050FC1873D75214C003EB387EA8DA494063EE5A423E4814C017D522A298D6494001DE02098A5F14C0C79C67EC4BD4494029ED0DBE305914C04C1938A0A5D14940107A36AB3E3714C0AFB2B6291ED14940986E1283C00A14C0570A815CE2D24940F0A7C64B37A913C020459DB987D24940006F8104C58F13C071AC8BDB68D049400F0BB5A6796713C0A4C16D6DE1CF49406B9A779CA22313C0AFB2B6291ED149403D0AD7A370FD12C09160AA99B5D2494050FC1873D7F212C05C936E4BE4D84940A4703D0AD70313C07506465ED6DA49407A36AB3E57FB12C0151DC9E53FDC4940C7293A92CBDF12C0151DC9E53FDC49400D71AC8BDB8812C097E13FDD40DF4940371AC05B200112C01D56B8E523E34940F38E5374249711C01D56B8E523E34940C7293A92CB7F11C01590F63FC0E04940598638D6C56D11C0782975C938E049407F6ABC74935811C07F6ABC7493E04940CC5D4BC8073D11C0DF5339ED29DF4940A1F831E6AE2511C0FCA5457D92DD4940C8073D9B551F11C05C8FC2F528DC494079E92631082C11C0DACA4BFE27D949401D5A643BDF6F11C0CFD90242EBD7494032772D211F7411C08351499D80D6494044696FF0856911C00F0F61FC34D4494088855AD3BC0311C08C4AEA0434D14940D122DBF97ECA10C0F624B03907D149403333333333B310C0CA501553E9D1494044FAEDEBC09910C09483D90418D84940613255302A4910C05EBEF561BDD749409A081B9E5E2910C0F46C567DAED64940E9263108AC1C10C045D4449F8FD4494098DD9387851A10C0C05FCC96ACD049408B6CE7FBA95110C0FF942A51F6CC4940F5DBD78173A610C0C43E011423CD4940FB5C6DC5FED210C0EC33677DCACF494077BE9F1A2F1D11C018080264E8CE4940B84082E2C73811C0F1129CFA40CC4940925CFE43FA4D11C0DCB930D28BC849409031772D213F11C09772BED87BC74940B515FBCBEE2911C0FA0B3D62F4C64940D7A3703D0AF710C0B5C4CA68E4C54940107A36AB3ED710C0037CB779E3C249403333333333B310C0037CB779E3C2494007CE1951DA9B10C0BC0512143FC64940295C8FC2F56810C0DCB930D28BC84940280F0BB5A6F90FC0645DDC4603C8494012143FC6DCB50FC0661536035CC24940C6DCB5847C100FC0BC92E4B9BEC149404F401361C3530EC0774B72C0AEC04940E9263108AC1C0EC0EA95B20C71BC494031992A1895D40DC0AC8F87BEBBBB494003098A1F63AE0DC05470784144BC4940BF7D1D3867440DC00F29064834BB4940B37BF2B050EB0CC0EC4D0CC9C9B649401C7C613255700CC0793A579412B049409D11A5BDC1D70BC0978C63247BAE494017B7D100DE820BC06BB8C83D5DAF4940B6847CD0B3990AC0F392FFC9DFB34940363CBD5296A109C0651D8EAED2BB49403E7958A8350D09C0764F1E166ABD494010E9B7AF03E708C01766A19DD3BE49401C7C6132557008C063EE5A423EC049409A779CA2233908C0B9DE365321C4494007CE1951DADB07C086C954C1A8C44940CCEEC9C342AD07C02D211FF46CC6494029ED0DBE30D906C0A9A0A2EA57CC4940265305A392FA05C0795C548B88D84940431CEBE236DA04C03927F6D03EDC49402575029A085B04C09BC8CC052EDD49401B9E5E29CB1004C05EBA490C02DB49404703780B242804C069E21DE049D149401D38674469EF04C09FAF592E1BCB494037894160E55005C01CEBE2361AC849408BFD65F7E46105C0F2CEA10C55C349408F537424977F05C040868E1D54C04940F46C567DAEB605C0AC8F87BEBBBB49404850FC18739706C069006F8104B549401F85EB51B85E07C0B07614E7A8B1494077BE9F1A2F5D08C02DB29DEFA7AE4940304CA60A46A508C06AC020E9D3A8494038F8C264AAE008C06EA7AD11C19E494073D712F2410F09C06891ED7C3F9D4940D6C56D34803709C09CA6CF0EB89C49400C022B87169909C0D36BB3B1129D4940A301BC0512140AC0FF3F4E98309C49403255302AA9530AC012A1116C5C994940CEAACFD556EC0AC012A1116C5C9949403B70CE88D25E0BC043FE99417C9E49408BFD65F7E4210CC018B325AB229E49406DC5FEB27B720CC0C87A6AF5D59B4940DFE00B93A9020DC04487C091409D494067D5E76A2B760EC0F1457BBC909C4940462575029A080FC03B527DE7179B494093A98251499D0FC005C1E3DBBB98494008AC1C5A641B10C005C1E3DBBB984940EE5A423EE85910C0B27F9E060C98494014D044D8F09410C06C054D4BAC964940F931E6AE25C410C007F01648509449403EE8D9ACFADC10C07E1D386744914940F085C954C1E810C004E78C28ED8D49406666666666E610C09D84D217428C4940C8073D9B55DF10C0570A815CE28A4940736891ED7CBF10C097FF907EFB8A49402C6519E2589710C0486E4DBA2D8B4940742497FF907E10C0D94125AE638A494020D26F5F076E10C0842BA0504F894940B98D06F0166810C000917EFB3A8849406F8104C58F7110C05EBEF561BD8749404DF38E53748410C07BF65CA6268749407958A835CDDB10C04565C39ACA844940C05B2041F10311C0410FB56D187F494036CD3B4ED15111C01AA20A7F867D494082734694F68611C0DAACFA5C6D7D4940D712F241CFA611C04694F6065F804940EEEBC03923EA11C0D87DC7F0D8814940BF0E9C33A21412C04694F6065F804940645DDC46033812C0A089B0E1E97D4940F31FD26F5F4712C00249D8B7937A49402E90A0F8314612C009FD4CBD6E774940D93D7958A83512C022FDF675E07449409FCDAACFD53612C07520EBA9D571494033333333335312C0EC4D0CC9C96E494088855AD3BC6312C0C72DE6E7866C494088855AD3BC6312C0063065E0806849402497FF907E5B12C01B800D88106549402497FF907E5B12C0431CEBE23662494065AA6054526712C0E71DA7E8485E4940FB5C6DC5FE9212C0E3C798BB96584940211FF46C56DD12C04C88B9A46A5149401904560E2D5213C06688635DDC4E4940BC0512143F6613C08CD7BCAAB34C4940E4839ECDAA6F13C04A7F2F85074B4940F0164850FC9813C044FAEDEBC04949400B46257502BA13C03126FDBD144849405F984C158CCA13C0986A662D054649405F984C158CCA13C0226C787AA54449401D38674469AF13C06361889CBE4449403A234A7B838F13C0F1129CFA40444940AEB6627FD97D13C05F29CB10C7424940D1915CFE437A13C0C66D3480B7404940D734EF38458713C0E3A59BC420404940DCD78173469413C0A3B08BA20740494032772D211FB413C0CBF27519FE414940EE5A423EE8D913C0053411363C4549400E2DB29DEF0714C0378DEDB5A045494090A0F831E62E14C072FDBB3E73444940BEC11726534514C0E92ADD5D67414940D656EC2FBB4714C0FB58C16F433E49400B24287E8C3914C0E5D4CE30B53B4940F241CF66D52714C0EF384547723949402DB29DEFA72614C074B515FBCB364940F241CF66D52714C0CEAACFD55634494074B515FBCB4E14C0FA7E6ABC743349402D431CEBE27614C0F4F928232E324940D5E76A2BF69714C0CFD90242EB2F4940B459F5B9DAAA14C0A8E49CD8432D4940B459F5B9DAAA14C06D567DAEB62A4940A167B3EA73B514C00F0BB5A679274940E3C798BB96D014C0789CA223B92449401C7C6132551015C0AED4B320942149409EEFA7C64B3715C097033DD4B61F4940A323B9FC879415C065AA6054521F49406EA301BC05B215C0D3C08F6AD81D49409A779CA223B915C0EB73B515FB1B4940105839B4C8B615C0273108AC1C1A4940FE65F7E461C115C0855E7F129F19494066F7E461A1D615C026E4839ECD1A4940E86A2BF697FD15C0B91AD995961B49408B6CE7FBA91116C0705B5B785E1C49401B2FDD24064116C02882380F271E49406519E258177716C05089EB18571E49409D8026C286A716C0DCD78173461C49409F3C2CD49AE616C0B1321AF9BC184940D8817346941617C0978C63247B1649408FC2F5285C2F17C02CF2EB87D812494033C4B12E6E4317C010E9B7AF030F4940C286A757CA5217C04C88B9A46A094940AE47E17A144E17C0742497FF90064940BDE3141DC94517C0F9A067B3EA034940DE718A8EE43217C0581B6327BC02494062A1D634EF1817C0D6E3BED53A034940917EFB3A70EE16C0CB9D996038094940022B8716D98E16C073F56393FC0A49400AD7A3703D6A16C0E54350357A0B494039B4C876BE3F16C01118EB1B980A4940C0EC9E3C2CF415C01C7C6132550849404BC8073D9BB515C0BE30992A1805494075029A081B7E15C02575029A08034940022B8716D94E15C030D978B0C50049405DDC4603782B15C01955867137FE484093A98251491D15C03A1F9E25C8FA484017D9CEF7530315C077DCF0BBE9F8484046B6F3FDD4D814C04A0856D5CBF94840C442AD69DEB114C0986A662D05FE4840DFE00B93A98214C0BAF8DB9E200349409D8026C2866714C0AE65321CCF09494062105839B46814C0B37BF2B0500B4940CE88D2DEE06B14C04B598638D60D494014AE47E17A7414C0A31F0DA7CC0F4940D93D7958A87514C032772D211F1449404F1E166A4D7314C0D88173469416494085EB51B81E6514C0ACADD85F76174940E2E995B20C5114C0ACADD85F7617494091ED7C3F353E14C0C9E53FA4DF164940FD87F4DBD72114C0454B1E4FCB154940E25817B7D10014C0B5C4CA68E4154940AF94658863DD13C0CF6A813D261849404260E5D022BB13C0174850FC181B49408A1F63EE5AA213C02B69C537141C4940A60A4625758213C02B69C537141C494095D40968224C13C0FF942A51F61C4940A323B9FC873413C065AA6054521F49402BF697DD932713C04CAAB69BE021494066666666662613C04643C6A35424494017B7D100DE2213C07D21E4BCFF254940AF25E4839E0D13C00F0BB5A679274940CB10C7BAB8ED12C08509A359D9284940E6AE25E483BE12C08509A359D92849407E1D386744A912C0B1DD3D40F7274940386744696F9012C094A5D6FB8D284940BC96900F7A7612C0766D6FB724294940C9E53FA4DF5E12C0BCE7C072842A4940D734EF38454712C0AD4B8DD0CF2A49407CF2B0506B1A12C0AD4B8DD0CF2A49405D6DC5FEB2FB11C0ACFE08C3802B49401B0DE02D90E011C005C58F31772D494077BE9F1A2FBD11C097AE601BF12E4940098A1F63EE9A11C009FD4CBD6E2F4940C286A757CA7211C0D7A3703D0A2F4940BC96900F7A5611C022FDF675E02C494088855AD3BC2311C0CA367007EA2A49408A8EE4F21FF210C0F60A0BEE072A4940091B9E5E29CB10C0A779C7293A2A49407958A835CDBB10C04ED1915CFE2B4940AF25E4839EAD10C0C382FB010F2E49402AA913D044B810C0BA6B09F9A02F49406C09F9A067D310C02F6AF7AB00314940AC1C5A643BDF10C060764F1E16324940BBB88D06F0D610C065FB90B75C3349408D976E1283C010C0575F5D15A833494011C7BAB88DA610C092CF2B9E7A324940598638D6C58D10C07FFB3A70CE304940CF66D5E76A8B10C088122D793C2F4940E3A59BC4209010C021B07268912D49402DB29DEFA78610C0E0BA6246782D4940C520B072687110C021B07268912D49406F8104C58F5110C0EF5696E82C2D4940CC7F48BF7D3D10C03F355EBA492C4940772D211FF42C10C03AB01C21032B4940ED0DBE30992A10C084BC1E4C8A2949408B6CE7FBA93110C0C07971E2AB2749402D211FF46C3610C0764F1E166A254940C6DCB5847C3010C0F2B4FCC05524494023DBF97E6A1C10C0B1BFEC9E3C244940CCEEC9C342ED0FC027BEDA519C2549407AA52C431CAB0FC0B7442E3883254940598638D6C56D0FC08066101FD82349401C7C613255300FC095B6B8C6672049402D211FF46C160FC04754A86E2E1C49408E75711B0DE00EC0AF9811DE1E1A4940CFF753E3A59B0EC042CF66D5E71A4940C217265305630EC014AE47E17A1C494067D5E76A2B360EC01A33897AC11D49402B1895D409280EC07B1002F2251E4940BE30992A18150EC046072461DF1C4940D0D556EC2FFB0DC01F12BEF7371A4940EB73B515FBCB0DC0A913D044D818494037894160E5900DC0CCD078228819494035EF384547720DC042CF66D5E71A4940DC4603780B640DC01A33897AC11D4940DC4603780B640DC0137F1475E62049408C4AEA0434510DC075029A081B264940EA04341136FC0CC0AF4335255929494016FBCBEEC9830CC0BA4DB857E62B49401B0DE02D90200CC07E9065C1C42D4940984C158C4AEA0BC025E82FF4882F49405C8FC2F528DC0BC06840BD1935314940BE30992A18D50BC0508D976E1233494070CE88D2DEE00BC0C68B85217234494041F163CC5D0B0CC0151DC9E53F344940A913D044D8700CC0DAACFA5C6D354940F0164850FC980CC0BB270F0BB536494099BB96900FBA0CC0B2101D02473849404B598638D6C50CC0D73043E3893A4940A2B437F8C2A40CC02C47C8409E3B4940BD5296218E750CC0A245B6F3FD3C4940C74B378941600CC0C286A757CA424940764F1E166A4D0CC08D9B1A683E454940E2E995B20C310CC033A6608DB34749404BEA043411F60BC03CDBA337DC49494018265305A3D20BC005A3923A014D494018265305A3D20BC0ACADD85F764F49408E06F01648D00BC08E75711B0D504940211FF46C56BD0BC08E75711B0D50494009F9A067B36A0BC05C1C959BA84F4940EC51B81E85AB0AC0ACADD85F764F4940D044D8F0F40A0AC0B1321AF9BC5049403F575BB1BF6C09C011C30E63D251494075931804560E09C0A167B3EA73554940B1E1E995B24C08C089B48D3F515749403A92CB7F487F07C048BF7D1D3857494052499D80260207C07EAA0A0DC45449404A7B832F4C6606C036CD3B4ED1514940D712F241CFE605C07A54FCDF114F4940EFC9C342AD6905C005A3923A014D4940355EBA490CC204C06DE7FBA9F14A49405AF5B9DA8A7D04C08716D9CEF74349405D6DC5FEB2FB03C01118EB1B98424940780B24287ECC03C0E0BE0E9C33424940454772F90FA903C0645930F147434940B1E1E995B28C03C00CB1FA230C454940C520B072689103C05F7AFB73D14649403108AC1C5AA403C0DBFD2AC077494940F7E461A1D6B403C0ADDC0BCC0A4B49406DC5FEB27BB203C063D009A1834C4940EA043411367C03C023DBF97E6A4C494048BF7D1D382703C0C6DCB5847C48494052499D80264202C0C15774EB35474940DFE00B93A9C201C0CFF3A78DEA464940FDF675E09C1101C033A6608DB3474940BBB88D06F09600C076FEEDB25F4949407DAEB6627F5900C0001E51A1BA4B494036AB3E575B3100C0ACADD85F764F49405C8FC2F5281C00C03048FAB48A50494070CE88D2DE2000C0CD3B4ED191544940C4B12E6EA38100C0560E2DB29D574940F0164850FCD800C02A3A92CB7F584940D42B6519E2D800C0DFE00B93A95A4940986E1283C0CA00C0637B2DE8BD5B49403D2CD49AE69D00C0A4703D0AD75B4940F6285C8FC27500C0FC1873D7125A4940F241CF66D52700C07D5D86FF745549408638D6C56D34FFBF8411FB0450524940B5A679C7293AFEBF61545227A051494087A757CA32C4FDBF2FFB75A73B514940FA7E6ABC7493FABF2FFB75A73B514940006F8104C58FF9BFC8B60C384B53494044696FF085C9F8BF1822A7AFE75D4940C58F31772DA1F6BFFEF2C98AE1644940DD2406819543F5BFA54A94BDA5664940B0726891EDFCF4BF9C33A2B4376849401361C3D32BE5F4BFAF0793E2E369494065AA60545227F5BF153B1A87FA6F4940A245B6F3FDD4F6BFADF6B0170A72494045D8F0F44A59F7BF3C3080F0A17249406D567DAEB662F7BF9D0DF967067349407AC7293A92CBF6BFADF6B0170A724940E63FA4DFBE0EF6BF50ABE80FCD6E494060764F1E16EAF4BF35D1E7A38C664940D712F241CF66F3BF5C2041F1636449406C09F9A067B3F2BF2B14E97E4E634940287E8CB96B09F2BF21B072689165494030BB270F0B35F1BF5AF10D85CF6849407A36AB3E57DBF0BF7497C459116B4940D8F0F44A5986F0BFD6743DD1756B4940FAEDEBC03923F0BFA06B5F402F6A49402063EE5A423EEFBFFA60191BBA674940C364AA605452EEBFE107E753C764494061C3D32B6519EEBFE2E995B20C614940B1BFEC9E3C2CEEBF6D382C0DFC5E49402CD49AE61DA7EEBF0A86730D335E49402063EE5A423EEFBF45F64196055D4940BF7D1D386744F0BF81B3942C275B494003098A1F63EEF0BFD95BCAF962594940F0164850FC18F1BFD2730B5D895649404ED1915CFEC3F0BF66D993C0E6524940D49AE61DA7E8EFBFBF81C98D225149403E7958A835CDEEBF4E8061F9F34F4940166A4DF38E53EDBFDCB930D28B50494023DBF97E6ABCECBFDCD7817346544940C1A8A44E4013EBBF4643C6A3545C4940CF66D5E76A2BE6BFA8C64B3789614940C442AD69DE71E2BF4A99D4D006624940EFC9C342AD69E1BFF7578FFB56614940492EFF21FDF6DBBFC5FEB27BF260494072F90FE9B7AFD7BF4A99D4D006624940A1F831E6AE25D4BF05C58F3177654940D1915CFE43FAC9BF98FBE42840664940744694F6065FC4BF45BA9F539065494061545227A089A0BF06F4C29D0B614940BDE3141DC9E5B73F5E9CF86A475F4940AF946588635DC43F1EA7E8482E5F4940A4703D0AD7A3C83FA2410A9E42604940FDF675E09C11CD3FACFE08C380634940053411363CBDD23F2635B401D8664940A54E401361C3D53FA9A0A2EA576C4940956588635DDCD83FDF313CF6B36E494062A1D634EF38DB3FDACA4BFE2771494043AD69DE718ADE3F2D944C4EED724940992A1895D409E23F01C0B167CF73494061C3D32B6519E53FF2237EC51A7449407E8CB96B09F9E83FF2237EC51A744940F6285C8FC2F5EB3F4565C39ACA744940F853E3A59BC4ED3F8A929048DB764940F54A598638D6EE3FE25817B7D17849407F6ABC749318EF3FE6AE25E4837E494004560E2DB29DEE3F20F0C000C2814940545227A089B0EE3F24287E8CB983494048E17A14AE47EF3FFC8BA0319386494029ED0DBE3099F03FBBB4E1B0348A4940ABCFD556ECAFF13F62BF27D6A98C4940CB10C7BAB88DF23F4487C091408D4940B22E6EA301BCF33FB7D5AC33BE8D49401CEBE2361A40F43F4A0C022B878E4940E6AE25E4839EF43F7A185A9D9C8F494038F8C264AAE0F43FA60A462575924940C4B12E6EA301F53FE04BE141B39549403E7958A8354DF53F074147AB5A984940098A1F63EEDAF53FE4A1EF6E659B4940ABCFD556EC2FF63F29CFBC1C769D4940BF0E9C33A234F63FCFD90242EB9F49403255302AA913F63F27A089B0E1A14940F54A598638D6F53F7E198C1189A4494044FAEDEBC0B9F53FCC7B9C69C2A84940E25817B7D100F63F4D840D4FAFAC494098DD9387855AF63FD0D1AA9674AE4940E8D9ACFA5C6DF63F066344A2D0B04940E78C28ED0D3EF63F7C61325530B24940CC7F48BF7D9DF53F5A46EA3D95B149408B6CE7FBA9F1F43FF38E537424AF49408C4AEA043411F43FD1AFAD9FFEAD4940F2D24D621058F33F1ADEACC1FBAC494060E5D022DBF9F23F1ADEACC1FBAC49405917B7D1005EF23F8BDF14562AAE494029CB10C7BAB8F13F01DE02098AAF4940BEC117265305F13F506F46CD57AF4940F2B0506B9A77F03F598638D6C5AD4940423EE8D9ACFAEE3F4BEA043411AE4940AEB6627FD93DEE3FFB58C16F43AE49401904560E2DB2EB3FE3A59BC420B04940EC2FBB270F0BE83FA7E8482EFFB14940ED9E3C2CD49AE63FCAA5F10BAFB2494016FBCBEEC9C3E33F49BBD1C77CB24940C8073D9B559FE23F6C787AA52CB34940BA6B09F9A067E13F8F352383DCB34940C976BE9F1A2FE13FD3DA34B6D7B4494082E2C798BB96E13F5378D0ECBAB54940840D4FAF9465E33F79E57ADB4CB74940AEB6627FD93DE53F213D450E11B949406ABC74931804E63F7506465ED6BA4940ACADD85F764FE63FEA04341136BC49400BB5A679C729E63F6E52D158FBBD49409FABADD85F76E53F5FB69DB646BE4940098A1F63EE5AE43FF08975AA7CBD4940FBCBEEC9C342E03F4832AB77B8BB4940DE718A8EE4F2DB3FB9AB5791D1BB4940C66D3480B740DA3F1C5E10919ABC49402041F163CC5DD93F9FABADD85FBE4940D044D8F0F44AD93F73D712F241BF4940431CEBE2361ADA3FBD0166BE83C14940CE88D2DEE00BDF3FE0BE0E9C33C24940DF4F8D976E12E13FEE5A423EE8C1494009F9A067B3EAE23F2F50526001C24940AC8BDB68006FE33FF4DF83D72EC3494066F7E461A1D6E33F45D4449F8FC449408E75711B0DE0E33F5AF5B9DA8AC5494007F0164850FCE33F3CBD529621C649403108AC1C5A64E43FFCC7427408C64940B6847CD0B359E53FFCC7427408C6494024287E8CB96BE63FDE8FDB2F9FC6494068B3EA73B515E73FA31F0DA7CCC74940D3BCE3141DC9E73F76FEEDB25FC94940EE5A423EE8D9E93FD2FC31AD4DCD4940AF25E4839ECDEC3FC9E53FA4DFCE4940CA32C4B12E6EED3F3E97A949F0D049400B24287E8CB9ED3F8411FB0450D249401DC9E53FA4DFED3F174850FC18D34940F2B0506B9A77ED3F8411FB0450D249405F29CB10C7BAEC3FA1496249B9D14940917EFB3A70CEEB3F92AD2EA704D249401904560E2DB2EB3F26E4839ECDD249404182E2C798BBEB3F6EC1525DC0D54940D7A3703D0AD7EC3FB43BA41820D74940BB270F0BB5A6ED3F39D6C56D34D84940AEB6627FD93DEE3FD95BCAF962D94940772D211FF46CEE3FB1BFEC9E3CDC4940ED0DBE30992AEE3FFBE93F6B7EDE49404A7B832F4CA6ED3FDDB1D82615DF49408E75711B0DE0EC3FA8A8FA95CEDD4940226C787AA52CEC3F113AE8120EDB4940C66D3480B740EB3F55C1A8A44ED84940D044D8F0F44AEA3F55C1A8A44ED849403F575BB1BFECE93F787E5182FED84940C6DCB5847CD0E93F81B3942C27DB49403F575BB1BFECE93F015130630ADC4940DDB5847CD0B3E93F71CADC7C23DC4940D34D62105839E93F7217618A72DB494080B74082E2C7E83F37894160E5D849409A9999999999E73F29ED0DBE30D949401F85EB51B81EE73FDFE00B93A9DA4940F46C567DAEB6E63F45F6419605DD4940956588635DDCE63F6D382C0DFCDE49406F8104C58F31E73F4EB340BB43E0494003098A1F63EEE73F5D4F745DF8DF49400F9C33A2B437EA3FB090B932A8E0494005C58F31772DEB3FB515FBCBEEE1494061C3D32B6519EC3F65FB90B75CE34940EEEBC039234AEC3F164CFC51D4E74940C4B12E6EA301ED3FADF6B0170AEA4940B7627FD93D79EE3FF3ACA415DFEA494001DE02098A1FEF3FF3ACA415DFEA4940A4703D0AD7A3EF3FA2B8E34D7EE94940E0BE0E9C3322F03F8D976E1283E84940F4FDD478E926F03F97AE601BF1E64940CC7F48BF7D1DF03F1361C3D32BE549406C787AA52C43F03F9E62D520CCE34940C3F5285C8FC2F03F4ED1915CFEE3494067D5E76A2B76F13F8D976E1283E849408D976E1283C0F23F8351499D80EE49408D28ED0DBE30F43F4694F6065FF049402F6EA301BC85F43F5BB56B425AF149402F6EA301BC85F43F9F5A7D7555F24940DD2406819543F43F5BB56B425AF14940FED478E926B1F33FE8667FA0DCF04940E561A1D6346FF33F1AC05B2041F149407FD93D795828F33F20459DB987F24940CE88D2DEE00BF33F5401F73C7FF44940575BB1BFEC1EF33F68226C787AF54940F9A067B3EA73F33F7C43E1B375F64940789CA223B9FCF33FB0FF3A376DF849404260E5D0225BF43FC520B07268F9494080B74082E2C7F43FC520B07268F949409A779CA22339F53F97FF907EFBFA4940143FC6DCB584F53F8881AE7D01FF49408CB96B09F9A0F53FCDAE7B2B12014A403D0AD7A370BDF53F7CEE04FBAF054A40D1915CFE437AF63FF392FFC9DF0B4A40CA54C1A8A44EF73F1F85EB51B80E4A40E7FBA9F1D2CDF73FD9B0A6B228124A40AC8BDB6800EFF73FD449B6BA9C144A4039454772F90FF83F53E751F17F154A4012143FC6DC35F83F7E8CB96B09194A40A69BC420B0F2F83FE5EE737CB41A4A406B2BF697DD13F93FFF21FDF675204A40C7293A92CBFFF83FE4F6CB272B2C4A4021B07268916DF93FA46C91B41B374A40711B0DE02D10FA3F865AD3BCE33C4A40DF4F8D976E92FA3FE57FF277EF4A4A40371AC05B2041FB3FC139234A7B534A409B559FABAD58FB3F1D38674469574A405F984C158C4AFB3F2BA5677A895B4A4032E6AE25E403FB3FC3D7D7BAD4664A400EBE30992A98F93FF7578FFB56714A408126C286A7D7F73FCE8C7E349C784A40C58F31772DA1F53F6094A0BFD07D4A408FE4F21FD2EFF23FB35DA10F967F4A4029CB10C7BA38F13FCB2E185C73814A40AF946588635DEA3F3C3080F0A1824A40448B6CE7FBA9E93F105CE50984834A40AD69DE718A8EE83FFB3A70CE88824A40C9E53FA4DFBEE73F8789062978804A404C37894160E5E63F4694F6065F804A4058A835CD3B4EE63F4694F6065F804A404CA60A462575E53FCB2E185C73814A40D1915CFE43FAE43F64EAAEEC82834A4040A4DFBE0E9CE43F865AD3BCE3844A40C58F31772D21E43F5401F73C7F844A40FA7E6ABC7493E33FADF6B0170A824A401895D4096822E33FF702B34291804A401895D4096822E33FD1950854FF7E4A40F0164850FC18E33FBEC11726537D4A40FD87F4DBD781E23FAF25E4839E7D4A405AF5B9DA8AFDE13F295C8FC2F5804A40DFE00B93A982E13F2D944C4EED824A405A643BDF4F8DE03F0B24287E8C814A4037894160E5D0DE3F55302AA913804A4074B515FBCBEEDD3FD6743DD1757B4A40F775E09C11A5DB3FA54A94BDA5764A40105839B4C876DA3F22DFA5D425714A40894160E5D022D93F53927538BA6C4A40EEEBC039234AD73F5A46EA3D95694A40E0BE0E9C33A2D43FA452EC681C684A4031992A1895D4D13F787E5182FE684A40B98D06F01648CC3F3D0E83F92B6A4A402D431CEBE236CA3F317BD976DA704A405C2041F163CCC13FD11E2FA4C3754A403411363CBD52B63F35D1E7A38C764A4058A835CD3B4EB13F5C3E92921E784A404182E2C798BB863F61C3D32B65794A401361C3D32B6559BF091B9E5E297B4A402D431CEBE2364A3FA60EF27A307F4A407FD93D7958A8A53F7286E28E37834A40C139234A7B83B73FDE205A2BDA864A40E71DA7E8482EBF3FC66D3480B7884A4020D26F5F07CEC13F0516C09481894A4010E9B7AF03E7C43FE8DD5850188A4A4082E2C798BB96C83F49BBD1C77C8A4A40F5DBD7817346CC3F7B14AE47E18A4A40C217265305A3CE3F6B2BF697DD8B4A40E63FA4DFBE0ED03F18080264E88E4A405E4BC8073D9BD13FFDD8243FE2954A4054742497FF90D23F274F594DD79D4A4054742497FF90D23F57790261A7A24A40A4703D0AD7A3D23FBD344580D3A94A400E4FAF946588D13FAD69DE718AAE4A409A081B9E5E29D13F8E0244C18CB34A4036CD3B4ED191CC3F3A92CB7F48B74A4027A089B0E1E9C93F6058FE7C5BBE4A401904560E2DB2BD3F7B32FFE89BC64A4005A3923A014DA4BF3BE3FBE252CB4A40EC2FBB270F0BBDBF0F0F61FC34CC4A403A92CB7F48BFC5BF43CBBA7F2CCE4A4057EC2FBB270FCBBF73F56393FCD24A40B0726891ED7CCFBF7EFFE6C589D54A408F53742497FFD0BF07D2C5A695D84A404D840D4FAF94D3BFADDC0BCC0ADB4A40A1D634EF3845D7BF0FBA84436FDB4A40744694F6065FDABF9E40D82956DB4A4089D2DEE00B93E1BF810871E5ECDB4A406F8104C58F31E4BF726C3D4338DC4A4019E25817B7D1E4BF05A3923A01DD4A4019E25817B7D1E4BFF7065F984CDD4A40D6C56D3480B7E2BFD9CEF753E3DD4A4050FC1873D712DABFE86A2BF697DD4A40C0EC9E3C2CD4D6BF4698A25C1ADD4A40D0D556EC2FBBD3BF001E51A1BADB4A403480B74082E2D1BF6F63B323D5D54A40EE5A423EE8D9C8BFC9586DFE5FD34A40D200DE02098AC3BF7AC7293A92D34A40F5B9DA8AFD65BFBF6ADE718A8ED44A40228E75711B0DB0BFC80BE9F010D44A4083C0CAA145B6A3BF7AA9D898D7CF4A40D3DEE00B93A9A23FB519A721AACE4A4095D40968226CB03F2593533BC3CE4A40B6F3FDD478E9B63FF9BEB854A5CF4A40925CFE43FAEDBB3FA016838769D14A40D712F241CF66BD3F82919735B1D24A4055302AA913D0BC3F9483D90418D84A40EE5A423EE8D9B43F4698A25C1ADD4A406F1283C0CAA1A53F598AE42B81E24A409CC420B0726881BFFF942A51F6E44A40AEB6627FD93D99BFB459F5B9DAEA4A40992A1895D409B0BFBBB88D06F0F64A409A9999999999C5BF9C51F355F2FB4A4052499D8026C2CABFB4AA251DE5FE4A403D9B559FABADCCBFF48AA71E69024B40FBCBEEC9C342CDBF780B24287E044B401F85EB51B81ECDBFF241CF66D5074B409CA223B9FC87CCBF8BFD65F7E4094B4039D6C56D3480CBBF5DDC4603780B4B406B9A779CA223C9BFE6AE25E4830E4B404A7B832F4CA6C2BF4D11E0F42E104B40FF21FDF675E0C0BF355EBA490C124B40BE30992A1895C0BF3A9677D503144B40401361C3D32BC1BFFF25A94C31154B40D122DBF97E6AC4BF2593533BC3164B40C520B0726891CDBF643BDF4F8D174B40ABCFD556EC2FCFBF0917F2086E1E4B40ED0DBE30992AD4BF5E2D7766821F4B408E06F0164850D4BFC9C7EE0225234B403D0AD7A3703DD4BF53E751F17F254B4010E9B7AF03E7D4BFD734EF3845274B40AB3E575BB1BFD6BF6A6B44300E284B40643BDF4F8D97D8BF6FF085C954294B40EC51B81E85EBD9BF39B874CC792C4B40645DDC460378DBBF787E5182FE304B40454772F90FE9DBBF0FED6305BF334B404A7B832F4CA6DCBF8B70935165364B40B37BF2B0506BDEBF6ABC7493183C4B40A779C7293A92E1BF92CF2B9E7A424B4014AE47E17A14E4BF228AC91B60484B40A089B0E1E995E7BFBB4560AC6F4A4B4093A98251499DE9BF80D591239D4B4B40FED478E92631EDBF01C0B167CF4B4B4017D9CEF753E3EEBFA245B6F3FD4C4B409487855AD33CF0BF2B1895D409504B404182E2C7983BF1BF04C93B8732524B40AF25E4839E4DF2BFC3D32B6519524B4005A3923A01CDF2BFFE43FAEDEB504B401B2FDD240601F3BF085BECF6594F4B4057EC2FBB270FF3BF499D8026C24E4B4080B74082E247F3BF8A929048DB4E4B400EBE30992A98F3BFCE37A27BD64F4B404FAF946588E3F3BF234E27D9EA504B4050FC1873D712F4BF83DE1B4300524B403CBD5296210EF4BF97FF907EFB524B4013F241CF66D5F3BFAB2006BAF6534B409A779CA223B9F3BFB98D06F016584B408638D6C56DB4F3BFE4326E6AA05B4B404FAF946588E3F3BFD0B7054B755F4B402EFF21FDF675F4BFC0EC9E3C2C644B40742497FF907EF5BFF92D3A596A674B40A323B9FC87F4F5BFF44E05DCF36A4B4008AC1C5A643BF6BFDB6CACC43C714B4044696FF08549F6BFBC0512143F764B4058A835CD3B4EF6BF4A5D328E917A4B40211FF46C567DF6BF3ECA880B40814B4014AE47E17A14F7BFDF6DDE3829864B407B832F4CA68AF7BF5F29CB10C78A4B4037894160E550F8BFE27668588C8C4B409D11A5BDC197F8BF28F1B913EC8D4B40B1506B9A779CF8BFF568AA27F3914B40105839B4C876F8BF0DC2DCEEE5944B405C2041F1634CF8BF2593533BC3964B405C2041F1634CF8BFD122DBF97E9A4B40FC1873D71272F8BF8B4E965AEF9D4B4013F241CF66D5F8BF0FBA84436FA34B40F775E09C11A5F9BFF7065F984CA54B405DFE43FAEDEBF9BFFB3E1C2444A74B400E4FAF946508FABF2B69C53714AC4B405DFE43FAEDEBF9BF349E08E23CAE4B405DFE43FAEDEBF9BF560E2DB29DAF4B40228E75711B0DFABFA038807EDFB14B40280F0BB5A679FABFB30C71AC8BB34B40B4C876BE9F9AFABF7CD45FAFB0B64B40F085C954C1A8FABF2635B401D8BE4B402D431CEBE2B6FABF705F07CE19C14B407D3F355EBAC9FABFE41071732AC34B40CE88D2DEE00BFBBF295C8FC2F5C84B40C364AA6054D2FBBFF2237EC51ACC4B4014AE47E17A14FCBF1DC9E53FA4CF4B4019E25817B751FCBF5857056A31D24B40569FABADD85FFCBF1C9AB2D30FD44B4007F01648507CFCBFE129E44A3DD54B40CF66D5E76AABFCBFFE614B8FA6D44B4021B0726891EDFCBF93C7D3F203D14B40143FC6DCB584FDBFBF9B6ED921D04B4055302AA913D0FDBF4F22C2BF08D04B40933A014D840DFEBFD3BCE3141DD14B40F775E09C1125FEBFD28DB0A888D54B40448B6CE7FB29FEBFB308C556D0D64B40D044D8F0F44AFEBF438F183DB7D64B40F90FE9B7AF83FEBF211FF46C56D54B40AF94658863DDFEBF6214048F6FD54B40DC4603780B24FFBFF54A598638D64B402E90A0F83166FFBF081F4AB4E4D74B40431CEBE2369AFFBF91F12895F0DA4B40431CEBE2369AFFBFE9B7AF03E7DC4B40431CEBE2369AFFBF501A6A1492DE4B40931804560EADFFBF5470784144E44B408351499D806600C0ECDE8AC404E74B40A4703D0AD7A300C0933655F7C8E84B40B8AF03E78CA800C0C87A6AF5D5EB4B4077BE9F1A2F9D00C0FAF19716F5EF4B40C1A8A44E409300C0F33D23111AF34B405F07CE19519A00C042EDB776A2F64B4089D2DEE00BD300C0904FC8CEDBFA4B40E7FBA9F1D24D01C01822A7AFE7FD4B409A081B9E5E2902C0FBE93F6B7EFE4B403F575BB1BF6C03C0EC4D0CC9C9FE4B403BDF4F8D97EE03C032C85D8429004C402041F163CC1D04C0CE8C7E349C084C40780B24287ECC04C0C7D8092FC10B4C404BC8073D9B1505C0AF25E4839E0D4C4046B6F3FDD47805C0AF25E4839E0D4C405DDC460378CB05C0DBF97E6ABC0C4C40EFC9C342AD6906C0C8258E3C100B4C402575029A08DB06C0DD28B2D650084C407958A835CD3B07C0C4CF7F0F5E054C40143FC6DCB5C407C0A8C64B3789014C40CB10C7BAB84D08C0B1DD3D40F7FF4B40B459F5B9DACA08C032C85D8429004C40C8073D9B559F09C00B46257502024C405BB1BFEC9E7C0AC00E4FAF9465004C40DAACFA5C6D850BC03FE42D573F004C408CDB68006F410DC0C5FEB27BF2004C406ADE718A8EA40DC02B14E97E4E034C403EE8D9ACFA1C0EC05456D3F544054C40CCEEC9C3426D0EC0B05417F032094C40BC96900F7AB60EC00D535BEA200D4C406E3480B740C20EC02524D236FE0E4C40D0D556EC2FBB0EC0069FE6E445104C40B1506B9A779C0EC0E8667FA0DC104C40F46C567DAE760EC0736891ED7C0F4C405227A089B0210EC0EA95B20C710C4C40BADA8AFD65B70DC0F3ACA415DF0A4C408E75711B0D600DC0D6743DD1750B4C40CEAACFD556EC0CC0B83CD68C0C0C4C4040A4DFBE0E9C0CC0C7D8092FC10B4C40EE5A423EE8590CC03DB9A64066094C408D976E1283C00BC0C8073D9B55074C404A0C022B87160BC01899805F23074C405A643BDF4FCD0AC0BA6B09F9A0074C404C37894160650AC02F6AF7AB00094C40BC96900F7AF609C08C683BA6EE0C4C40F2D24D62109809C02FE1D05B3C124C40B4C876BE9F5A09C0226C787AA51C4C4086C954C1A8E408C0DD9733DB15204C40F8C264AA609408C0A1DAE044F4214C40FB3A70CE881208C02E8CF4A276214C40575BB1BFEC9E07C0EBE6E26F7B204C40BC749318041607C079E57ADB4C1F4C4005A3923A018D06C0B98D06F016204C40D93D7958A83506C052499D8026224C4007CE1951DADB05C0FDD8243FE2254C40BE30992A189505C0A4E36A6457284C40C7293A92CB7F05C04487C091402D4C406688635DDC8605C05DE0F25833304C407B14AE47E1BA05C08200193A76324C401D5A643BDF0F06C0D7169E978A334C40FCA9F1D24DA206C01BBCAFCA85344C4000917EFB3AF006C08D0A9C6C03354C40780B24287E0C07C0E04BE141B3354C40780B24287E0C07C0E4839ECDAA374C401DC9E53FA4DF06C0AF9811DE1E3A4C4024287E8CB9AB06C0008DD2A57F3B4C4086C954C1A8A406C0386BF0BE2A3D4C40386744696FB006C0CBA145B6F33D4C4014D044D8F0F406C06D74CE4F713E4C40BF0E9C33A23407C0D4B837BF613C4C40D122DBF97EEA07C07D3F355EBA394C4032E6AE25E48308C0DFFE5C3464364C40F931E6AE256409C03D2CD49AE6354C4076E09C11A5FD09C05A643BDF4F354C40F38E537424970AC06E85B01A4B364C4031992A1895D40AC02579AEEFC3374C400BB5A679C7E90AC08509A359D9384C40006F8104C5CF0AC06D567DAEB63A4C40696FF085C9940AC08177F2E9B13B4C4062A1D634EFF809C0C4CF7F0F5E3D4C402575029A081B09C07AC37DE4D63E4C403333333333B308C0A305685BCD404C40B0726891ED7C08C01232906797414C40DE02098A1F2308C0E65DF58079424C4069006F81048507C0448B6CE7FB414C4007F0164850BC06C0448B6CE7FB414C404D840D4FAF1406C017B7D100DE424C402EFF21FDF6F505C0FEB627486C454C40BF7D1D3867C405C068226C787

If I try to fetch that in mssql, I get the following stack:

buffer.js:830
    throw new RangeError('Index out of range');
    ^

RangeError: Index out of range
    at checkOffset (buffer.js:830:11)
    at Buffer.readUInt32LE (buffer.js:892:5)
    at parseGeography (/geo-serv/node_modules/mssql/lib/udt.js:123:33)
    at Object.exports.PARSERS.geography (/geo-serv/node_modules/mssql/lib/udt.js:251:14)
    at valueCorrection (/geo-serv/node_modules/mssql/lib/tedious.js:261:46)
    at Request.<anonymous> (/gb/geo-serv/node_modules/mssql/lib/tedious.js:950:33)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at Parser.<anonymous> (/geo-serv/node_modules/tedious/lib/connection.js:323:33)
    at emitOne (events.js:96:13)
    at Parser.emit (events.js:188:7)
    at Parser.<anonymous> (/geo-serv/node_modules/tedious/lib/token/token-stream-parser.js:42:15)
    at emitOne (events.js:96:13)
    at Parser.emit ⏎```
@djMax
Copy link
Author

djMax commented Jun 28, 2016

bump... Anything obvious here or should I try and make a fix and PR?

@patriksimek
Copy link
Collaborator

Nothing obvious here, unfortunately. PR is very welcome.

@chidg
Copy link

chidg commented May 9, 2017

I'm getting the same issue. @djMax, did you make any progress? The problem is caused by calling Buffer methods like readInt32LE with an offset greater than the length of the buffer. There are many places in https://github.com/patriksimek/node-mssql/blob/master/lib/udt.js where there is potential for this. I may make a PR however I can only get version 3.3.0 of this library working with my project.

@jryu01
Copy link

jryu01 commented Nov 27, 2017

is this issue fixed yet?

@ssontag55
Copy link

Seems to be an issue when selecting polygon geometry

@ssontag55
Copy link

ssontag55 commented Aug 8, 2019

Any Update on this? still getting it with 6 beta

RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 140. Received 144 at boundsError (internal/buffer.js:49:9) at Buffer.readUInt32LE (internal/buffer.js:105:5) at parseGeography node_modules/mssql/lib/udt.js:276:37) at Object.geography node_modules/mssql/lib/udt.js:293:12) at valueCorrection node_modules/mssql/lib/tedious.js:159:44) at Request.req.on.columns node_modules/mssql/lib/tedious.js:774:25) at Request.emit (events.js:198:13) at Parser.tokenStreamParser.on.token node_modules/tedious/lib/connection.js:844:24) at Parser.emit (events.js:198:13) at Parser.parser.on.token node_modules/tedious/lib/token/token-stream-parser.js:27:14)

Just try, catching this, fixed my issue:
https://github.com/tediousjs/node-mssql/blob/master/lib/udt.js#L276

@dhensby
Copy link
Collaborator

dhensby commented Aug 20, 2019

@ssontag55 if you have a fix for it please open a PR, Geography type is not a part of my current focus

dhensby added a commit that referenced this issue Nov 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants