Surprise! We've been running on hardware provided by BuyVM for a few months and wanted to show them a little appreciation.
Running a paste site comes with unique challenges, ones that aren't always obvious and hard to control. As such, BuyVM offered us a home where we could worry less about the hosting side of things and focus on maintaining a clean and useful service! Go check them out and show them some love!
Description: What FF 43 devtools Pretty Print makes of it
Submitted on January 25, 2016 at 10:15 AM

Section 1 (Text)

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661406624066340664406654066640667406684066940670406714067240673406744067540676406774067840679406804068140682406834068440685406864068740688406894069040691406924069340694406954069640697406984069940700407014070240703407044070540706407074070840709407104071140712407134071440715407164071740718407194072040721407224072340724407254072640727407284072940730407314073240733407344073540736407374073840739407404074140742407434074440745407464074740748407494075040751407524075340754407554075640757407584075940760407614076240763407644076540766407674076840769407704077140772407734077440775407764077740778407794078040781407824078340784407854078640787407884078940790407914079240793407944079540796407974079840799408004080140802408034080440805408064080740808408094081040811408124081340814408154081640817408184081940820408214082240823408244082540826408274082840829408304083140832408334083440835408364083740838408394084040841408424084340844408454084640847408484084940850408514085240853408544085540856408574085840859408604086140862408634086440865408664086740868408694087040871408724087340874408754087640877408784087940880408814088240883408844088540886408874088840889408904089140892408934089440895408964089740898408994090040901409024090340904409054090640907409084090940910409114091240913409144091540916409174091840919409204092140922409234092440925409264092740928409294093040931409324093340934409354093640937409384093940940409414094240943409444094540946409474094840949409504095140952409534095440955409564095740958409594096040961409624096340964409654096640967409684096940970409714097240973409744097540976409774097840979409804098140982409834098440985409864098740988409894099040991409924099340994409954099640997409984099941000410014100241003410044100541006410074100841009410104101141012410134101441015410164101741018410194102041021410224102341024410254102641027410284102941030410314103241033410344103541036410374103841039410404104141042410434104441045410464104741048410494105041051410524105341054410554105641057410584105941060410614106241063410644106541066410674106841069410704107141072410734107441075410764107741078410794108041081410824108341084410854108641087410884108941090410914109241093410944109541096410974109841099411004110141102411034110441105411064110741108411094111041111411124111341114411154111641117411184111941120411214112241123411244112541126411274112841129411304113141132411334113441135411364113741138411394114041141411424114341144411454114641147411484114941150411514115241153411544115541156411574115841159411604116141162411634116441165411664116741168411694117041171411724117341174411754117641177411784117941180411814118241183411844118541186411874118841189411904119141192411934119441195411964119741198411994120041201412024120341204412054120641207412084120941210412114121241213412144121541216412174121841219412204122141222412234122441225412264122741228412294123041231412324123341234412354123641237412384123941240412414124241243412444124541246412474124841249412504125141252412534125441255412564125741258412594126041261412624126341264412654126641267412684126941270412714127241273412744127541276412774127841279412804128141282412834128441285412864128741288412894129041291412924129341294412954129641297412984129941300413014130241303413044130541306413074130841309413104131141312413134131441315413164131741318413194132041321413224132341324413254132641327413284132941330413314133241333413344133541336413374133841339413404134141342413434134441345413464134741348413494135041351413524135341354413554135641357413584135941360413614136241363413644136541366413674136841369413704137141372413734137441375413764137741378413794138041381413824138341384413854138641387413884138941390413914139241393413944139541396413974139841399414004140141402414034140441405414064140741408414094141041411414124141341414414154141641417414184141941420414214142241423414244142541426414274142841429414304143141432414334143441435414364143741438414394144041441414424144341444414454144641447414484144941450414514145241453414544145541456414574145841459414604146141462414634146441465414664146741468414694147041471414724147341474414754147641477414784147941480414814148241483414844148541486414874148841489414904149141492414934149441495414964149741498414994150041501415024150341504415054150641507415084150941510415114151241513415144151541516415174151841519415204152141522415234152441525415264152741528415294153041531415324153341534415354153641537415384153941540415414154241543415444154541546415474154841549415504155141552415534155441555415564155741558415594156041561415624156341564415654156641567415684156941570415714157241573415744157541576415774157841579415804158141582415834158441585415864158741588415894159041591415924159341594415954159641597415984159941600416014160241603416044160541606416074160841609416104161141612416134161441615416164161741618416194162041621416224162341624416254162641627416284162941630416314163241633416344163541636416374163841639416404164141642416434164441645416464164741648416494165041651416524165341654416554165641657416584165941660416614166241663416644166541666416674166841669416704167141672416734167441675416764167741678416794168041681416824168341684416854168641687416884168941690416914169241693416944169541696416974169841699417004170141702417034170441705417064170741708417094171041711417124171341714417154171641717417184171941720417214172241723417244172541726417274172841729417304173141732417334173441735417364173741738417394174041741417424174341744417454174641747417484174941750417514175241753417544175541756417574175841759417604176141762417634176441765417664176741768417694177041771417724177341774417754177641777417784177941780417814178241783417844178541786417874178841789417904179141792417934179441795417964179741798417994180041801418024180341804418054180641807418084180941810418114181241813418144181541816418174181841819418204182141822418234182441825418264182741828418294183041831418324183341834418354183641837418384183941840418414184241843418444184541846418474184841849418504185141852418534185441855418564185741858418594186041861418624186341864418654186641867418684186941870418714187241873418744187541876418774187841879418804188141882418834188441885418864188741888418894189041891418924189341894418954189641897418984189941900419014190241903419044190541906419074190841909419104191141912419134191441915419164191741918419194192041921419224192341924419254192641927419284192941930419314193241933419344193541936419374193841939419404194141942419434194441945419464194741948419494195041951419524195341954419554195641957419584195941960419614196241963419644196541966419674196841969419704197141972419734197441975419764197741978419794198041981419824198341984419854198641987419884198941990419914199241993419944199541996419974199841999420004200142002420034200442005420064200742008420094201042011420124201342014420154201642017420184201942020420214202242023420244202542026420274202842029420304203142032420334203442035420364203742038420394204042041420424204342044420454204642047420484204942050420514205242053420544205542056420574205842059420604206142062420634206442065420664206742068420694207042071420724207342074420754207642077420784207942080420814208242083420844208542086420874208842089420904209142092420934209442095420964209742098420994210042101421024210342104421054210642107421084210942110421114211242113421144211542116421174211842119421204212142122421234212442125421264212742128421294213042131421324213342134421354213642137421384213942140421414214242143421444214542146421474214842149421504215142152421534215442155421564215742158421594216042161421624216342164421654216642167421684216942170421714217242173421744217542176421774217842179421804218142182421834218442185421864218742188421894219042191421924219342194421954219642197421984219942200422014220242203422044220542206422074220842209422104221142212422134221442215422164221742218422194222042221422224222342224422254222642227422284222942230422314223242233422344223542236422374223842239422404224142242422434224442245422464224742248422494225042251422524225342254422554225642257422584225942260422614226242263422644226542266422674226842269422704227142272422734227442275422764227742278422794228042281422824228342284422854228642287422884228942290422914229242293422944229542296422974229842299423004230142302423034230442305423064230742308423094231042311423124231342314423154231642317423184231942320423214232242323423244232542326423274232842329423304233142332423334233442335423364233742338423394234042341423424234342344423454234642347423484234942350423514235242353423544235542356423574235842359423604236142362423634236442365423664236742368423694237042371423724237342374423754237642377423784237942380423814238242383423844238542386423874238842389423904239142392423934239442395423964239742398423994240042401424024240342404424054240642407424084240942410424114241242413424144241542416424174241842419424204242142422424234242442425424264242742428424294243042431424324243342434424354243642437424384243942440424414244242443424444244542446424474244842449424504245142452424534245442455424564245742458424594246042461424624246342464424654246642467424684246942470424714247242473424744247542476424774247842479424804248142482424834248442485424864248742488424894249042491424924249342494424954249642497424984249942500425014250242503425044250542506425074250842509425104251142512425134251442515425164251742518425194252042521425224252342524425254252642527425284252942530425314253242533425344253542536425374253842539425404254142542425434254442545425464254742548425494255042551425524255342554425554255642557425584255942560425614256242563425644256542566425674256842569425704257142572425734257442575425764257742578425794258042581425824258342584425854258642587425884258942590425914259242593425944259542596425974259842599426004260142602426034260442605426064260742608426094261042611426124261342614426154261642617426184261942620426214262242623426244262542626426274262842629426304263142632426334263442635426364263742638426394264042641426424264342644426454264642647426484264942650426514265242653426544265542656426574265842659426604266142662426634266442665426664266742668426694267042671426724267342674426754267642677426784267942680426814268242683426844268542686426874268842689426904269142692426934269442695426964269742698426994270042701427024270342704427054270642707427084270942710427114271242713427144271542716427174271842719427204272142722427234272442725427264272742728427294273042731427324273342734427354273642737427384273942740427414274242743427444274542746427474274842749427504275142752427534275442755427564275742758427594276042761427624276342764427654276642767427684276942770427714277242773427744277542776427774277842779427804278142782427834278442785427864278742788427894279042791427924279342794427954279642797427984279942800428014280242803428044280542806428074280842809428104281142812428134281442815428164281742818428194282042821428224282342824428254282642827428284282942830428314283242833428344283542836428374283842839428404284142842428434284442845428464284742848428494285042851428524285342854428554285642857428584285942860428614286242863428644286542866428674286842869428704287142872428734287442875428764287742878428794288042881428824288342884428854288642887428884288942890428914289242893428944289542896428974289842899429004290142902429034290442905429064290742908429094291042911429124291342914429154291642917429184291942920429214292242923429244292542926429274292842929429304293142932429334293442935429364293742938429394294042941429424294342944429454294642947429484294942950429514295242953429544295542956429574295842959429604296142962429634296442965429664296742968429694297042971429724297342974429754297642977429784297942980429814298242983429844298542986429874298842989429904299142992429934299442995429964299742998429994300043001430024300343004430054300643007430084300943010430114301243013430144301543016430174301843019430204302143022430234302443025430264302743028430294303043031430324303343034430354303643037430384303943040430414304243043430444304543046430474304843049430504305143052430534305443055430564305743058430594306043061430624306343064430654306643067430684306943070430714307243073430744307543076430774307843079430804308143082430834308443085430864308743088430894309043091430924309343094430954309643097430984309943100431014310243103431044310543106431074310843109431104311143112431134311443115431164311743118431194312043121431224312343124431254312643127431284312943130431314313243133431344313543136431374313843139431404314143142431434314443145431464314743148431494315043151431524315343154431554315643157431584315943160431614316243163431644316543166431674316843169431704317143172431734317443175431764317743178431794318043181431824318343184431854318643187431884318943190431914319243193431944319543196431974319843199432004320143202432034320443205432064320743208432094321043211432124321343214432154321643217432184321943220432214322243223432244322543226432274322843229432304323143232432334323443235432364323743238432394324043241432424324343244432454324643247432484324943250432514325243253432544325543256432574325843259432604326143262432634326443265432664326743268432694327043271432724327343274432754327643277432784327943280432814328243283432844328543286432874328843289432904329143292432934329443295432964329743298432994330043301433024330343304433054330643307433084330943310433114331243313433144331543316433174331843319433204332143322433234332443325433264332743328433294333043331433324333343334433354333643337433384333943340433414334243343433444334543346433474334843349433504335143352433534335443355433564335743358433594336043361433624336343364433654336643367433684336943370433714337243373433744337543376433774337843379433804338143382433834338443385433864338743388433894339043391433924339343394433954339643397433984339943400434014340243403434044340543406434074340843409434104341143412434134341443415434164341743418434194342043421434224342343424434254342643427434284342943430434314343243433434344343543436434374343843439434404344143442434434344443445434464344743448434494345043451434524345343454434554345643457434584345943460434614346243463434644346543466434674346843469434704347143472434734347443475434764347743478434794348043481434824348343484434854348643487434884348943490434914349243493434944349543496434974349843499435004350143502435034350443505435064350743508435094351043511435124351343514435154351643517435184351943520435214352243523435244352543526435274352843529435304353143532435334353443535435364353743538435394354043541435424354343544435454354643547435484354943550435514355243553435544355543556435574355843559435604356143562435634356443565435664356743568435694357043571435724357343574435754357643577435784357943580435814358243583435844358543586435874358843589435904359143592435934359443595435964359743598435994360043601436024360343604436054360643607436084360943610436114361243613436144361543616436174361843619436204362143622436234362443625436264362743628436294363043631436324363343634436354363643637436384363943640436414364243643436444364543646436474364843649436504365143652436534365443655436564365743658436594366043661436624366343664436654366643667436684366943670436714367243673436744367543676436774367843679436804368143682436834368443685436864368743688436894369043691436924369343694436954369643697436984369943700437014370243703437044370543706437074370843709437104371143712437134371443715437164371743718437194372043721437224372343724437254372643727437284372943730437314373243733437344373543736437374373843739437404374143742437434374443745437464374743748437494375043751437524375343754437554375643757437584375943760437614376243763437644376543766437674376843769437704377143772437734377443775437764377743778437794378043781437824378343784437854378643787437884378943790437914379243793437944379543796437974379843799438004380143802438034380443805438064380743808438094381043811438124381343814438154381643817438184381943820438214382243823438244382543826438274382843829438304383143832438334383443835438364383743838438394384043841438424384343844438454384643847438484384943850438514385243853438544385543856438574385843859438604386143862438634386443865438664386743868438694387043871438724387343874438754387643877438784387943880438814388243883438844388543886438874388843889438904389143892438934389443895438964389743898438994390043901439024390343904439054390643907439084390943910439114391243913439144391543916439174391843919439204392143922439234392443925439264392743928439294393043931439324393343934439354393643937439384393943940439414394243943439444394543946439474394843949439504395143952439534395443955439564395743958439594396043961439624396343964439654396643967439684396943970439714397243973439744397543976439774397843979439804398143982439834398443985439864398743988439894399043991439924399343994439954399643997439984399944000440014400244003440044400544006440074400844009440104401144012440134401444015440164401744018440194402044021440224402344024440254402644027440284402944030440314403244033440344403544036440374403844039440404404144042440434404444045440464404744048440494405044051440524405344054440554405644057440584405944060440614406244063440644406544066440674406844069440704407144072440734407444075440764407744078440794408044081440824408344084440854408644087440884408944090440914409244093440944409544096440974409844099441004410144102441034410444105441064410744108441094411044111441124411344114441154411644117441184411944120441214412244123441244412544126441274412844129441304413144132441334413444135441364413744138441394414044141441424414344144441454414644147441484414944150441514415244153441544415544156441574415844159441604416144162441634416444165441664416744168441694417044171441724417344174441754417644177441784417944180441814418244183441844418544186441874418844189441904419144192441934419444195441964419744198441994420044201442024420344204442054420644207442084420944210442114421244213442144421544216442174421844219442204422144222442234422444225442264422744228442294423044231442324423344234442354423644237442384423944240442414424244243442444424544246442474424844249442504425144252442534425444255442564425744258442594426044261442624426344264442654426644267442684426944270442714427244273442744427544276442774427844279442804428144282442834428444285442864428744288442894429044291442924429344294442954429644297442984429944300443014430244303443044430544306443074430844309443104431144312443134431444315443164431744318443194432044321443224432344324443254432644327443284432944330443314433244333443344433544336443374433844339443404434144342443434434444345443464434744348443494435044351443524435344354443554435644357443584435944360443614436244363443644436544366443674436844369443704437144372443734437444375443764437744378443794438044381443824438344384443854438644387443884438944390443914439244393443944439544396443974439844399444004440144402444034440444405444064440744408444094441044411444124441344414444154441644417444184441944420444214442244423444244442544426444274442844429444304443144432444334443444435444364443744438444394444044441444424444344444444454444644447444484444944450444514445244453444544445544456444574445844459444604446144462444634446444465444664446744468444694447044471444724447344474444754447644477444784447944480444814448244483444844448544486444874448844489444904449144492444934449444495444964449744498444994450044501445024450344504445054450644507445084450944510445114451244513445144451544516445174451844519445204452144522445234452444525445264452744528445294453044531445324453344534445354453644537445384453944540445414454244543445444454544546445474454844549445504455144552445534455444555445564455744558445594456044561445624456344564445654456644567445684456944570445714457244573445744457544576445774457844579445804458144582445834458444585445864458744588445894459044591445924459344594445954459644597445984459944600446014460244603446044460544606446074460844609446104461144612446134461444615446164461744618446194462044621446224462344624446254462644627446284462944630446314463244633446344463544636446374463844639446404464144642446434464444645446464464744648446494465044651446524465344654446554465644657446584465944660446614466244663446644466544666446674466844669446704467144672446734467444675446764467744678446794468044681446824468344684446854468644687446884468944690446914469244693446944469544696446974469844699447004470144702447034470444705447064470744708447094471044711447124471344714447154471644717447184471944720447214472244723447244472544726447274472844729447304473144732447334473444735447364473744738447394474044741447424474344744447454474644747447484474944750447514475244753447544475544756447574475844759447604476144762447634476444765447664476744768447694477044771447724477344774447754477644777447784477944780447814478244783447844478544786447874478844789447904479144792447934479444795447964479744798447994480044801448024480344804448054480644807448084480944810448114481244813448144481544816448174481844819448204482144822448234482444825448264482744828448294483044831448324483344834448354483644837448384483944840448414484244843448444484544846448474484844849448504485144852448534485444855448564485744858448594486044861448624486344864448654486644867448684486944870448714487244873448744487544876448774487844879448804488144882448834488444885448864488744888448894489044891448924489344894448954489644897448984489944900449014490244903449044490544906449074490844909449104491144912449134491444915449164491744918449194492044921449224492344924449254492644927449284492944930449314493244933449344493544936449374493844939449404494144942449434494444945449464494744948449494495044951449524495344954449554495644957449584495944960449614496244963449644496544966449674496844969449704497144972449734497444975449764497744978449794498044981449824498344984449854498644987449884498944990449914499244993449944499544996449974499844999450004500145002450034500445005450064500745008450094501045011450124501345014450154501645017450184501945020450214502245023450244502545026450274502845029450304503145032450334503445035450364503745038450394504045041450424504345044450454504645047450484504945050450514505245053450544505545056450574505845059450604506145062450634506445065450664506745068450694507045071450724507345074450754507645077450784507945080450814508245083450844508545086450874508845089450904509145092450934509445095450964509745098450994510045101451024510345104451054510645107451084510945110451114511245113451144511545116451174511845119451204512145122451234512445125451264512745128451294513045131451324513345134451354513645137451384513945140451414514245143451444514545146451474514845149451504515145152451534515445155451564515745158451594516045161451624516345164451654516645167451684516945170451714517245173451744517545176451774517845179451804518145182451834518445185451864518745188451894519045191451924519345194451954519645197451984519945200452014520245203452044520545206452074520845209452104521145212452134521445215452164521745218452194522045221452224522345224452254522645227452284522945230452314523245233452344523545236452374523845239452404524145242452434524445245452464524745248452494525045251452524525345254452554525645257452584525945260452614526245263452644526545266452674526845269452704527145272452734527445275452764527745278452794528045281452824528345284452854528645287452884528945290452914529245293452944529545296452974529845299453004530145302453034530445305453064530745308453094531045311453124531345314453154531645317453184531945320453214532245323453244532545326453274532845329453304533145332453334533445335453364533745338453394534045341453424534345344453454534645347453484534945350453514535245353453544535545356453574535845359453604536145362453634536445365453664536745368453694537045371453724537345374453754537645377453784537945380453814538245383453844538545386453874538845389453904539145392453934539445395453964539745398453994540045401454024540345404454054540645407454084540945410454114541245413454144541545416454174541845419454204542145422454234542445425454264542745428454294543045431454324543345434454354543645437454384543945440454414544245443454444544545446454474544845449454504545145452454534545445455454564545745458454594546045461454624546345464454654546645467454684546945470454714547245473454744547545476454774547845479454804548145482454834548445485454864548745488454894549045491454924549345494454954549645497454984549945500455014550245503455044550545506455074550845509455104551145512455134551445515455164551745518455194552045521455224552345524455254552645527455284552945530455314553245533455344553545536455374553845539455404554145542455434554445545455464554745548455494555045551455524555345554455554555645557455584555945560455614556245563455644556545566455674556845569455704557145572455734557445575455764557745578455794558045581455824558345584455854558645587455884558945590455914559245593455944559545596455974559845599456004560145602456034560445605456064560745608456094561045611456124561345614456154561645617456184561945620456214562245623456244562545626456274562845629456304563145632456334563445635456364563745638456394564045641456424564345644456454564645647456484564945650456514565245653456544565545656456574565845659456604566145662456634566445665456664566745668456694567045671456724567345674456754567645677456784567945680456814568245683456844568545686456874568845689456904569145692456934569445695456964569745698456994570045701457024570345704457054570645707457084570945710457114571245713457144571545716457174571845719457204572145722457234572445725457264572745728457294573045731457324573345734457354573645737457384573945740457414574245743457444574545746457474574845749457504575145752457534575445755457564575745758457594576045761457624576345764457654576645767457684576945770457714577245773457744577545776457774577845779457804578145782457834578445785457864578745788457894579045791457924579345794457954579645797457984579945800458014580245803458044580545806458074580845809458104581145812458134581445815458164581745818458194582045821458224582345824458254582645827458284582945830458314583245833458344583545836458374583845839458404584145842458434584445845458464584745848458494585045851458524585345854458554585645857458584585945860458614586245863458644586545866458674586845869458704587145872458734587445875458764587745878458794588045881458824588345884458854588645887458884588945890458914589245893458944589545896458974589845899459004590145902459034590445905459064590745908459094591045911459124591345914459154591645917459184591945920459214592245923459244592545926459274592845929459304593145932459334593445935459364593745938459394594045941459424594345944459454594645947459484594945950459514595245953459544595545956459574595845959459604596145962459634596445965459664596745968459694597045971459724597345974459754597645977459784597945980459814598245983459844598545986459874598845989459904599145992459934599445995459964599745998459994600046001460024600346004460054600646007460084600946010460114601246013460144601546016460174601846019460204602146022460234602446025460264602746028460294603046031460324603346034460354603646037460384603946040460414604246043460444604546046460474604846049460504605146052460534605446055460564605746058460594606046061460624606346064460654606646067460684606946070460714607246073460744607546076460774607846079460804608146082460834608446085460864608746088460894609046091460924609346094460954609646097460984609946100461014610246103461044610546106461074610846109461104611146112461134611446115461164611746118461194612046121461224612346124461254612646127461284612946130461314613246133461344613546136461374613846139461404614146142461434614446145461464614746148461494615046151461524615346154461554615646157461584615946160461614616246163461644616546166461674616846169461704617146172461734617446175461764617746178461794618046181461824618346184461854618646187461884618946190461914619246193461944619546196461974619846199462004620146202462034620446205462064620746208462094621046211462124621346214462154621646217462184621946220462214622246223462244622546226462274622846229462304623146232462334623446235462364623746238462394624046241462424624346244462454624646247462484624946250462514625246253462544625546256462574625846259462604626146262462634626446265462664626746268462694627046271462724627346274462754627646277462784627946280462814628246283462844628546286462874628846289462904629146292462934629446295462964629746298462994630046301463024630346304463054630646307463084630946310463114631246313463144631546316463174631846319463204632146322463234632446325463264632746328463294633046331463324633346334463354633646337463384633946340463414634246343463444634546346463474634846349463504635146352463534635446355463564635746358463594636046361463624636346364463654636646367463684636946370463714637246373463744637546376463774637846379463804638146382463834638446385463864638746388463894639046391463924639346394463954639646397463984639946400464014640246403464044640546406464074640846409464104641146412464134641446415464164641746418464194642046421464224642346424464254642646427464284642946430464314643246433464344643546436464374643846439464404644146442464434644446445464464644746448464494645046451464524645346454464554645646457464584645946460464614646246463464644646546466464674646846469464704647146472464734647446475464764647746478464794648046481464824648346484464854648646487464884648946490464914649246493464944649546496464974649846499465004650146502465034650446505465064650746508465094651046511465124651346514465154651646517465184651946520465214652246523465244652546526465274652846529465304653146532465334653446535465364653746538465394654046541465424654346544465454654646547465484654946550465514655246553465544655546556465574655846559465604656146562465634656446565465664656746568465694657046571465724657346574465754657646577465784657946580465814658246583465844658546586465874658846589465904659146592465934659446595465964659746598465994660046601466024660346604466054660646607466084660946610466114661246613466144661546616466174661846619466204662146622466234662446625466264662746628466294663046631466324663346634466354663646637466384663946640466414664246643466444664546646466474664846649466504665146652466534665446655466564665746658466594666046661466624666346664466654666646667466684666946670466714667246673466744667546676466774667846679466804668146682466834668446685466864668746688466894669046691466924669346694466954669646697466984669946700467014670246703467044670546706467074670846709467104671146712467134671446715467164671746718467194672046721467224672346724467254672646727467284672946730467314673246733467344673546736467374673846739467404674146742467434674446745467464674746748467494675046751467524675346754467554675646757467584675946760467614676246763467644676546766467674676846769467704677146772467734677446775467764677746778467794678046781467824678346784467854678646787467884678946790467914679246793467944679546796467974679846799468004680146802468034680446805468064680746808468094681046811468124681346814468154681646817468184681946820468214682246823468244682546826468274682846829468304683146832468334683446835468364683746838468394684046841468424684346844468454684646847468484684946850468514685246853468544685546856468574685846859468604686146862468634686446865468664686746868468694687046871468724687346874468754687646877468784687946880468814688246883468844688546886468874688846889468904689146892468934689446895468964689746898468994690046901469024690346904469054690646907469084690946910469114691246913469144691546916469174691846919469204692146922469234692446925469264692746928469294693046931469324693346934469354693646937469384693946940469414694246943469444694546946469474694846949469504695146952469534695446955469564695746958469594696046961469624696346964469654696646967469684696946970469714697246973469744697546976469774697846979469804698146982469834698446985469864698746988469894699046991469924699346994469954699646997469984699947000470014700247003470044700547006470074700847009470104701147012470134701447015470164701747018470194702047021470224702347024470254702647027470284702947030470314703247033470344703547036470374703847039470404704147042470434704447045470464704747048470494705047051470524705347054470554705647057470584705947060470614706247063470644706547066470674706847069470704707147072470734707447075470764707747078470794708047081470824708347084470854708647087470884708947090470914709247093470944709547096470974709847099471004710147102471034710447105471064710747108471094711047111471124711347114471154711647117471184711947120471214712247123471244712547126471274712847129471304713147132471334713447135471364713747138471394714047141471424714347144471454714647147471484714947150471514715247153471544715547156471574715847159471604716147162471634716447165471664716747168471694717047171471724717347174471754717647177471784717947180471814718247183471844718547186471874718847189471904719147192471934719447195471964719747198471994720047201472024720347204472054720647207472084720947210472114721247213472144721547216472174721847219472204722147222472234722447225472264722747228472294723047231472324723347234472354723647237472384723947240472414724247243472444724547246472474724847249472504725147252472534725447255472564725747258472594726047261472624726347264472654726647267472684726947270472714727247273472744727547276472774727847279472804728147282472834728447285472864728747288472894729047291472924729347294472954729647297472984729947300473014730247303473044730547306473074730847309473104731147312473134731447315473164731747318473194732047321473224732347324473254732647327473284732947330473314733247333473344733547336473374733847339473404734147342473434734447345473464734747348473494735047351473524735347354473554735647357473584735947360473614736247363473644736547366473674736847369473704737147372473734737447375473764737747378473794738047381473824738347384473854738647387473884738947390473914739247393473944739547396473974739847399474004740147402474034740447405474064740747408474094741047411474124741347414474154741647417474184741947420474214742247423474244742547426474274742847429474304743147432474334743447435474364743747438474394744047441474424744347444474454744647447474484744947450474514745247453474544745547456474574745847459474604746147462474634746447465474664746747468474694747047471474724747347474474754747647477474784747947480474814748247483474844748547486474874748847489474904749147492474934749447495474964749747498474994750047501475024750347504475054750647507475084750947510475114751247513475144751547516475174751847519475204752147522475234752447525475264752747528475294753047531475324753347534475354753647537475384753947540475414754247543475444754547546475474754847549475504755147552475534755447555475564755747558475594756047561475624756347564475654756647567475684756947570475714757247573475744757547576475774757847579475804758147582475834758447585475864758747588475894759047591475924759347594475954759647597475984759947600476014760247603476044760547606476074760847609476104761147612476134761447615476164761747618476194762047621476224762347624476254762647627476284762947630476314763247633476344763547636476374763847639476404764147642476434764447645476464764747648476494765047651476524765347654476554765647657476584765947660476614766247663476644766547666476674766847669476704767147672476734767447675476764767747678476794768047681476824768347684476854768647687476884768947690476914769247693476944769547696476974769847699477004770147702477034770447705477064770747708477094771047711477124771347714477154771647717477184771947720477214772247723477244772547726477274772847729477304773147732477334773447735477364773747738477394774047741477424774347744477454774647747477484774947750477514775247753477544775547756477574775847759477604776147762477634776447765477664776747768477694777047771477724777347774477754777647777477784777947780477814778247783477844778547786477874778847789477904779147792477934779447795477964779747798477994780047801478024780347804478054780647807478084780947810478114781247813478144781547816478174781847819478204782147822478234782447825478264782747828478294783047831478324783347834478354783647837478384783947840478414784247843478444784547846478474784847849478504785147852478534785447855478564785747858478594786047861478624786347864478654786647867478684786947870478714787247873478744787547876478774787847879478804788147882478834788447885478864788747888478894789047891478924789347894478954789647897478984789947900479014790247903479044790547906479074790847909479104791147912479134791447915479164791747918479194792047921479224792347924479254792647927479284792947930479314793247933479344793547936479374793847939479404794147942479434794447945479464794747948479494795047951479524795347954479554795647957479584795947960479614796247963479644796547966479674796847969479704797147972479734797447975479764797747978479794798047981479824798347984479854798647987479884798947990479914799247993479944799547996479974799847999480004800148002480034800448005480064800748008480094801048011480124801348014480154801648017480184801948020480214802248023480244802548026480274802848029480304803148032480334803448035480364803748038480394804048041480424804348044480454804648047480484804948050480514805248053480544805548056480574805848059480604806148062480634806448065480664806748068480694807048071480724807348074480754807648077480784807948080480814808248083480844808548086480874808848089480904809148092480934809448095480964809748098480994810048101481024810348104481054810648107481084810948110481114811248113481144811548116481174811848119481204812148122481234812448125481264812748128481294813048131481324813348134481354813648137481384813948140481414814248143481444814548146481474814848149481504815148152481534815448155481564815748158481594816048161481624816348164481654816648167481684816948170481714817248173481744817548176481774817848179481804818148182481834818448185481864818748188481894819048191481924819348194481954819648197481984819948200482014820248203482044820548206482074820848209482104821148212482134821448215482164821748218482194822048221482224822348224482254822648227482284822948230482314823248233482344823548236482374823848239482404824148242482434824448245482464824748248482494825048251482524825348254482554825648257482584825948260482614826248263482644826548266482674826848269482704827148272482734827448275482764827748278482794828048281482824828348284482854828648287482884828948290482914829248293482944829548296482974829848299483004830148302483034830448305483064830748308483094831048311483124831348314483154831648317483184831948320483214832248323483244832548326483274832848329483304833148332483334833448335483364833748338483394834048341483424834348344483454834648347483484834948350483514835248353483544835548356483574835848359483604836148362483634836448365483664836748368483694837048371483724837348374483754837648377483784837948380483814838248383483844838548386483874838848389483904839148392483934839448395483964839748398483994840048401484024840348404484054840648407484084840948410484114841248413484144841548416484174841848419484204842148422484234842448425484264842748428484294843048431484324843348434484354843648437484384843948440484414844248443484444844548446484474844848449484504845148452484534845448455484564845748458484594846048461484624846348464484654846648467484684846948470484714847248473484744847548476484774847848479484804848148482484834848448485484864848748488484894849048491484924849348494484954849648497484984849948500485014850248503485044850548506485074850848509485104851148512485134851448515485164851748518485194852048521485224852348524485254852648527485284852948530485314853248533485344853548536485374853848539485404854148542485434854448545485464854748548485494855048551485524855348554485554855648557485584855948560485614856248563485644856548566485674856848569485704857148572485734857448575485764857748578485794858048581485824858348584485854858648587485884858948590485914859248593485944859548596485974859848599486004860148602486034860448605486064860748608486094861048611486124861348614486154861648617486184861948620486214862248623486244862548626486274862848629486304863148632486334863448635486364863748638486394864048641486424864348644486454864648647486484864948650486514865248653486544865548656486574865848659486604866148662486634866448665486664866748668486694867048671486724867348674486754867648677486784867948680486814868248683486844868548686486874868848689486904869148692486934869448695486964869748698486994870048701487024870348704487054870648707487084870948710487114871248713487144871548716487174871848719487204872148722487234872448725487264872748728487294873048731487324873348734487354873648737487384873948740487414874248743487444874548746487474874848749487504875148752487534875448755487564875748758487594876048761487624876348764487654876648767487684876948770487714877248773487744877548776487774877848779487804878148782487834878448785487864878748788487894879048791487924879348794487954879648797487984879948800488014880248803488044880548806488074880848809488104881148812488134881448815488164881748818488194882048821488224882348824488254882648827488284882948830488314883248833488344883548836488374883848839488404884148842488434884448845488464884748848488494885048851488524885348854488554885648857488584885948860488614886248863488644886548866488674886848869488704887148872488734887448875488764887748878488794888048881488824888348884488854888648887488884888948890488914889248893488944889548896488974889848899489004890148902489034890448905489064890748908489094891048911489124891348914489154891648917489184891948920489214892248923489244892548926489274892848929489304893148932489334893448935489364893748938489394894048941489424894348944489454894648947489484894948950489514895248953489544895548956489574895848959489604896148962489634896448965489664896748968489694897048971489724897348974489754897648977489784897948980489814898248983489844898548986489874898848989489904899148992489934899448995489964899748998489994900049001490024900349004490054900649007490084900949010490114901249013490144901549016490174901849019490204902149022490234902449025490264902749028490294903049031490324903349034490354903649037490384903949040490414904249043490444904549046490474904849049490504905149052490534905449055490564905749058490594906049061490624906349064490654906649067490684906949070490714907249073490744907549076490774907849079490804908149082490834908449085490864908749088490894909049091490924909349094490954909649097490984909949100491014910249103491044910549106491074910849109491104911149112491134911449115491164911749118491194912049121491224912349124491254912649127491284912949130491314913249133491344913549136491374913849139491404914149142491434914449145491464914749148491494915049151491524915349154491554915649157491584915949160491614916249163491644916549166491674916849169491704917149172491734917449175491764917749178491794918049181491824918349184491854918649187491884918949190491914919249193491944919549196491974919849199492004920149202492034920449205492064920749208492094921049211492124921349214492154921649217492184921949220492214922249223492244922549226492274922849229492304923149232492334923449235492364923749238492394924049241492424924349244492454924649247492484924949250492514925249253492544925549256492574925849259492604926149262492634926449265492664926749268492694927049271492724927349274492754927649277492784927949280492814928249283492844928549286492874928849289492904929149292492934929449295492964929749298492994930049301493024930349304493054930649307493084930949310493114931249313493144931549316493174931849319493204932149322493234932449325493264932749328493294933049331493324933349334493354933649337493384933949340493414934249343493444934549346493474934849349493504935149352493534935449355493564935749358493594936049361493624936349364493654936649367493684936949370493714937249373493744937549376493774937849379493804938149382493834938449385493864938749388493894939049391493924939349394493954939649397493984939949400494014940249403494044940549406494074940849409494104941149412494134941449415494164941749418494194942049421494224942349424494254942649427494284942949430494314943249433494344943549436494374943849439494404944149442494434944449445494464944749448494494945049451494524945349454494554945649457494584945949460494614946249463494644946549466494674946849469494704947149472494734947449475494764947749478494794948049481494824948349484494854948649487494884948949490494914949249493494944949549496494974949849499495004950149502495034950449505495064950749508495094951049511495124951349514495154951649517495184951949520495214952249523495244952549526495274952849529495304953149532495334953449535495364953749538495394954049541495424954349544495454954649547495484954949550495514955249553495544955549556495574955849559495604956149562495634956449565495664956749568495694957049571495724957349574495754957649577495784957949580495814958249583495844958549586495874958849589495904959149592495934959449595495964959749598495994960049601496024960349604496054960649607496084960949610496114961249613496144961549616496174961849619496204962149622496234962449625496264962749628496294963049631496324963349634496354963649637496384963949640496414964249643496444964549646496474964849649496504965149652496534965449655496564965749658496594966049661496624966349664496654966649667496684966949670496714967249673496744967549676496774967849679496804968149682496834968449685496864968749688496894969049691496924969349694496954969649697496984969949700497014970249703497044970549706497074970849709497104971149712497134971449715497164971749718497194972049721497224972349724497254972649727497284972949730497314973249733497344973549736497374973849739497404974149742497434974449745497464974749748497494975049751497524975349754497554975649757497584975949760497614976249763497644976549766497674976849769497704977149772497734977449775497764977749778497794978049781497824978349784497854978649787497884978949790497914979249793497944979549796497974979849799498004980149802498034980449805498064980749808498094981049811498124981349814498154981649817498184981949820498214982249823498244982549826498274982849829498304983149832498334983449835498364983749838498394984049841498424984349844498454984649847498484984949850498514985249853498544985549856498574985849859498604986149862498634986449865498664986749868498694987049871498724987349874498754987649877498784987949880498814988249883498844988549886498874988849889498904989149892498934989449895498964989749898498994990049901499024990349904499054990649907499084990949910499114991249913499144991549916499174991849919499204992149922499234992449925499264992749928499294993049931499324993349934499354993649937499384993949940499414994249943499444994549946499474994849949499504995149952499534995449955499564995749958499594996049961499624996349964499654996649967499684996949970499714997249973499744997549976499774997849979499804998149982499834998449985499864998749988499894999049991499924999349994499954999649997499984999950000500015000250003500045000550006500075000850009500105001150012500135001450015500165001750018500195002050021500225002350024500255002650027500285002950030500315003250033500345003550036500375003850039500405004150042500435004450045500465004750048500495005050051500525005350054500555005650057500585005950060500615006250063500645006550066500675006850069500705007150072500735007450075500765007750078500795008050081500825008350084500855008650087500885008950090500915009250093500945009550096500975009850099501005010150102501035010450105501065010750108501095011050111501125011350114501155011650117501185011950120501215012250123501245012550126501275012850129501305013150132501335013450135501365013750138501395014050141501425014350144501455014650147501485014950150501515015250153501545015550156501575015850159501605016150162501635016450165501665016750168501695017050171501725017350174501755017650177501785017950180501815018250183501845018550186501875018850189501905019150192501935019450195501965019750198501995020050201502025020350204502055020650207502085020950210502115021250213502145021550216502175021850219502205022150222502235022450225502265022750228502295023050231502325023350234502355023650237502385023950240502415024250243502445024550246502475024850249502505025150252502535025450255502565025750258502595026050261502625026350264502655026650267502685026950270502715027250273502745027550276502775027850279502805028150282502835028450285502865028750288502895029050291502925029350294502955029650297502985029950300503015030250303503045030550306503075030850309503105031150312503135031450315503165031750318503195032050321503225032350324503255032650327503285032950330503315033250333503345033550336503375033850339503405034150342503435034450345503465034750348503495035050351503525035350354503555035650357503585035950360503615036250363503645036550366503675036850369503705037150372503735037450375503765037750378503795038050381503825038350384503855038650387503885038950390503915039250393503945039550396503975039850399504005040150402504035040450405504065040750408504095041050411504125041350414504155041650417504185041950420504215042250423504245042550426504275042850429504305043150432504335043450435504365043750438504395044050441504425044350444504455044650447504485044950450504515045250453504545045550456504575045850459504605046150462504635046450465504665046750468504695047050471504725047350474504755047650477504785047950480504815048250483504845048550486504875048850489504905049150492504935049450495504965049750498504995050050501505025050350504505055050650507505085050950510505115051250513505145051550516505175051850519505205052150522505235052450525505265052750528505295053050531505325053350534505355053650537505385053950540505415054250543505445054550546505475054850549505505055150552505535055450555505565055750558505595056050561505625056350564505655056650567505685056950570505715057250573505745057550576505775057850579505805058150582505835058450585505865058750588505895059050591505925059350594505955059650597505985059950600506015060250603506045060550606506075060850609506105061150612506135061450615506165061750618506195062050621506225062350624506255062650627506285062950630506315063250633506345063550636506375063850639506405064150642506435064450645506465064750648506495065050651506525065350654506555065650657506585065950660506615066250663506645066550666506675066850669506705067150672506735067450675506765067750678506795068050681506825068350684506855068650687506885068950690506915069250693506945069550696506975069850699507005070150702507035070450705507065070750708507095071050711507125071350714507155071650717507185071950720507215072250723507245072550726507275072850729507305073150732507335073450735507365073750738507395074050741507425074350744507455074650747507485074950750507515075250753507545075550756507575075850759507605076150762507635076450765507665076750768507695077050771507725077350774507755077650777507785077950780507815078250783507845078550786507875078850789507905079150792507935079450795507965079750798507995080050801508025080350804508055080650807508085080950810508115081250813508145081550816508175081850819508205082150822508235082450825508265082750828508295083050831508325083350834508355083650837508385083950840508415084250843508445084550846508475084850849508505085150852508535085450855508565085750858508595086050861508625086350864508655086650867508685086950870508715087250873508745087550876508775087850879508805088150882508835088450885508865088750888508895089050891508925089350894508955089650897508985089950900509015090250903509045090550906509075090850909509105091150912509135091450915509165091750918509195092050921509225092350924509255092650927509285092950930509315093250933509345093550936509375093850939509405094150942509435094450945509465094750948509495095050951509525095350954509555095650957509585095950960509615096250963509645096550966509675096850969509705097150972509735097450975509765097750978509795098050981509825098350984509855098650987509885098950990509915099250993509945099550996509975099850999510005100151002510035100451005510065100751008510095101051011510125101351014510155101651017510185101951020510215102251023510245102551026510275102851029510305103151032510335103451035510365103751038510395104051041510425104351044510455104651047510485104951050510515105251053510545105551056510575105851059510605106151062510635106451065510665106751068510695107051071510725107351074510755107651077510785107951080510815108251083510845108551086510875108851089510905109151092510935109451095510965109751098510995110051101511025110351104511055110651107511085110951110511115111251113511145111551116511175111851119511205112151122511235112451125511265112751128511295113051131511325113351134511355113651137511385113951140511415114251143511445114551146511475114851149511505115151152511535115451155511565115751158511595116051161511625116351164511655116651167511685116951170511715117251173511745117551176511775117851179511805118151182511835118451185511865118751188511895119051191511925119351194511955119651197511985119951200512015120251203512045120551206512075120851209512105121151212512135121451215512165121751218512195122051221512225122351224512255122651227512285122951230512315123251233512345123551236512375123851239512405124151242512435124451245512465124751248512495125051251512525125351254512555125651257512585125951260512615126251263512645126551266512675126851269512705127151272512735127451275512765127751278512795128051281512825128351284512855128651287512885128951290512915129251293512945129551296512975129851299513005130151302513035130451305513065130751308513095131051311513125131351314513155131651317513185131951320513215132251323513245132551326513275132851329513305133151332513335133451335513365133751338513395134051341513425134351344513455134651347513485134951350513515135251353513545135551356513575135851359513605136151362513635136451365513665136751368513695137051371513725137351374513755137651377513785137951380513815138251383513845138551386513875138851389513905139151392513935139451395513965139751398513995140051401514025140351404514055140651407514085140951410514115141251413514145141551416514175141851419514205142151422514235142451425514265142751428514295143051431514325143351434514355143651437514385143951440514415144251443514445144551446514475144851449514505145151452514535145451455514565145751458514595146051461514625146351464514655146651467514685146951470514715147251473514745147551476514775147851479514805148151482514835148451485514865148751488514895149051491514925149351494514955149651497514985149951500515015150251503515045150551506515075150851509515105151151512515135151451515515165151751518515195152051521515225152351524515255152651527515285152951530515315153251533515345153551536515375153851539515405154151542515435154451545515465154751548515495155051551515525155351554515555155651557515585155951560515615156251563515645156551566515675156851569515705157151572515735157451575515765157751578515795158051581515825158351584515855158651587515885158951590515915159251593515945159551596515975159851599516005160151602516035160451605516065160751608516095161051611516125161351614516155161651617516185161951620516215162251623516245162551626516275162851629516305163151632516335163451635516365163751638516395164051641516425164351644516455164651647516485164951650516515165251653516545165551656516575165851659516605166151662516635166451665516665166751668516695167051671516725167351674516755167651677516785167951680516815168251683516845168551686516875168851689516905169151692516935169451695516965169751698516995170051701517025170351704517055170651707517085170951710517115171251713517145171551716517175171851719517205172151722517235172451725517265172751728517295173051731517325173351734517355173651737517385173951740517415174251743517445174551746517475174851749517505175151752517535175451755517565175751758517595176051761517625176351764517655176651767517685176951770517715177251773517745177551776517775177851779517805178151782517835178451785517865178751788517895179051791517925179351794517955179651797517985179951800518015180251803518045180551806518075180851809518105181151812518135181451815518165181751818518195182051821518225182351824518255182651827518285182951830518315183251833518345183551836518375183851839518405184151842518435184451845518465184751848518495185051851518525185351854518555185651857518585185951860518615186251863518645186551866518675186851869518705187151872518735187451875518765187751878518795188051881518825188351884518855188651887518885188951890518915189251893518945189551896518975189851899519005190151902519035190451905519065190751908519095191051911519125191351914519155191651917519185191951920519215192251923519245192551926519275192851929519305193151932519335193451935519365193751938519395194051941519425194351944519455194651947519485194951950519515195251953519545195551956519575195851959519605196151962519635196451965519665196751968519695197051971519725197351974519755197651977519785197951980519815198251983519845198551986519875198851989519905199151992519935199451995519965199751998519995200052001520025200352004520055200652007520085200952010520115201252013520145201552016520175201852019520205202152022520235202452025520265202752028520295203052031520325203352034520355203652037520385203952040520415204252043520445204552046520475204852049520505205152052520535205452055520565205752058520595206052061520625206352064520655206652067520685206952070520715207252073520745207552076520775207852079520805208152082520835208452085520865208752088520895209052091520925209352094520955209652097520985209952100521015210252103521045210552106521075210852109521105211152112521135211452115521165211752118521195212052121521225212352124521255212652127521285212952130521315213252133521345213552136521375213852139521405214152142521435214452145521465214752148521495215052151521525215352154521555215652157521585215952160521615216252163521645216552166521675216852169521705217152172521735217452175521765217752178521795218052181521825218352184521855218652187521885218952190521915219252193521945219552196521975219852199522005220152202522035220452205522065220752208522095221052211522125221352214522155221652217522185221952220522215222252223522245222552226522275222852229522305223152232522335223452235522365223752238522395224052241522425224352244522455224652247522485224952250522515225252253522545225552256522575225852259522605226152262522635226452265522665226752268522695227052271522725227352274522755227652277522785227952280522815228252283522845228552286522875228852289522905229152292522935229452295522965229752298522995230052301523025230352304523055230652307523085230952310523115231252313523145231552316523175231852319523205232152322523235232452325523265232752328523295233052331523325233352334523355233652337523385233952340523415234252343523445234552346523475234852349523505235152352523535235452355523565235752358523595236052361523625236352364523655236652367523685236952370523715237252373523745237552376523775237852379523805238152382523835238452385523865238752388523895239052391523925239352394523955239652397523985239952400524015240252403524045240552406524075240852409524105241152412524135241452415524165241752418524195242052421524225242352424524255242652427524285242952430524315243252433524345243552436524375243852439524405244152442524435244452445524465244752448524495245052451524525245352454524555245652457524585245952460524615246252463524645246552466524675246852469524705247152472524735247452475524765247752478524795248052481524825248352484524855248652487524885248952490524915249252493524945249552496524975249852499525005250152502525035250452505525065250752508525095251052511525125251352514525155251652517525185251952520525215252252523525245252552526525275252852529525305253152532525335253452535525365253752538525395254052541525425254352544525455254652547525485254952550525515255252553525545255552556525575255852559525605256152562525635256452565525665256752568525695257052571525725257352574525755257652577525785257952580525815258252583525845258552586525875258852589525905259152592525935259452595525965259752598525995260052601526025260352604526055260652607526085260952610526115261252613526145261552616526175261852619526205262152622526235262452625526265262752628526295263052631526325263352634526355263652637526385263952640526415264252643526445264552646526475264852649526505265152652526535265452655526565265752658526595266052661526625266352664526655266652667526685266952670526715267252673526745267552676526775267852679526805268152682526835268452685526865268752688526895269052691526925269352694526955269652697526985269952700527015270252703527045270552706527075270852709527105271152712527135271452715527165271752718527195272052721527225272352724527255272652727527285272952730527315273252733527345273552736527375273852739527405274152742527435274452745527465274752748527495275052751527525275352754527555275652757527585275952760527615276252763527645276552766527675276852769527705277152772527735277452775527765277752778527795278052781527825278352784527855278652787527885278952790527915279252793527945279552796527975279852799528005280152802528035280452805528065280752808528095281052811528125281352814528155281652817528185281952820528215282252823528245282552826528275282852829528305283152832528335283452835528365283752838528395284052841528425284352844528455284652847528485284952850528515285252853528545285552856528575285852859528605286152862528635286452865528665286752868528695287052871528725287352874528755287652877528785287952880528815288252883528845288552886528875288852889528905289152892528935289452895528965289752898528995290052901529025290352904529055290652907529085290952910529115291252913529145291552916529175291852919529205292152922529235292452925529265292752928529295293052931529325293352934529355293652937529385293952940529415294252943529445294552946529475294852949529505295152952529535295452955529565295752958529595296052961529625296352964529655296652967529685296952970529715297252973529745297552976529775297852979529805298152982529835298452985529865298752988529895299052991529925299352994529955299652997529985299953000530015300253003530045300553006530075300853009530105301153012530135301453015530165301753018530195302053021530225302353024530255302653027530285302953030530315303253033530345303553036530375303853039530405304153042530435304453045530465304753048530495305053051530525305353054530555305653057530585305953060530615306253063530645306553066530675306853069530705307153072530735307453075530765307753078530795308053081530825308353084530855308653087530885308953090530915309253093530945309553096530975309853099531005310153102531035310453105531065310753108531095311053111531125311353114531155311653117531185311953120531215312253123531245312553126531275312853129531305313153132531335313453135531365313753138531395314053141531425314353144531455314653147531485314953150531515315253153531545315553156531575315853159531605316153162531635316453165531665316753168531695317053171531725317353174531755317653177531785317953180531815318253183531845318553186531875318853189531905319153192531935319453195531965319753198531995320053201532025320353204532055320653207532085320953210532115321253213532145321553216532175321853219532205322153222532235322453225532265322753228532295323053231532325323353234532355323653237532385323953240532415324253243532445324553246532475324853249532505325153252532535325453255532565325753258532595326053261532625326353264532655326653267532685326953270532715327253273532745327553276532775327853279532805328153282532835328453285532865328753288532895329053291532925329353294532955329653297532985329953300533015330253303533045330553306533075330853309533105331153312533135331453315533165331753318533195332053321533225332353324533255332653327533285332953330533315333253333533345333553336533375333853339533405334153342533435334453345533465334753348533495335053351533525335353354533555335653357533585335953360533615336253363533645336553366533675336853369533705337153372533735337453375533765337753378533795338053381533825338353384533855338653387533885338953390533915339253393533945339553396533975339853399534005340153402534035340453405534065340753408534095341053411534125341353414534155341653417534185341953420534215342253423534245342553426534275342853429534305343153432534335343453435534365343753438534395344053441534425344353444534455344653447534485344953450534515345253453534545345553456534575345853459534605346153462534635346453465534665346753468534695347053471534725347353474534755347653477534785347953480534815348253483534845348553486534875348853489534905349153492534935349453495534965349753498534995350053501535025350353504535055350653507535085350953510535115351253513535145351553516535175351853519535205352153522535235352453525535265352753528535295353053531535325353353534535355353653537535385353953540535415354253543535445354553546535475354853549535505355153552535535355453555535565355753558535595356053561535625356353564535655356653567535685356953570535715357253573535745357553576535775357853579535805358153582535835358453585535865358753588535895359053591535925359353594535955359653597535985359953600536015360253603536045360553606536075360853609536105361153612536135361453615536165361753618536195362053621536225362353624536255362653627536285362953630536315363253633536345363553636536375363853639536405364153642536435364453645536465364753648536495365053651536525365353654536555365653657536585365953660536615366253663536645366553666536675366853669536705367153672536735367453675536765367753678536795368053681536825368353684536855368653687536885368953690536915369253693536945369553696536975369853699537005370153702537035370453705537065370753708537095371053711537125371353714537155371653717537185371953720537215372253723537245372553726537275372853729537305373153732537335373453735537365373753738537395374053741537425374353744537455374653747537485374953750537515375253753537545375553756537575375853759537605376153762537635376453765537665376753768537695377053771537725377353774537755377653777537785377953780537815378253783537845378553786537875378853789537905379153792537935379453795537965379753798537995380053801538025380353804538055380653807538085380953810538115381253813538145381553816538175381853819538205382153822538235382453825538265382753828538295383053831538325383353834538355383653837538385383953840538415384253843538445384553846538475384853849538505385153852538535385453855538565385753858538595386053861538625386353864538655386653867538685386953870538715387253873538745387553876538775387853879538805388153882538835388453885538865388753888538895389053891538925389353894538955389653897538985389953900539015390253903539045390553906539075390853909539105391153912539135391453915539165391753918539195392053921539225392353924539255392653927539285392953930539315393253933539345393553936539375393853939539405394153942539435394453945539465394753948539495395053951539525395353954539555395653957539585395953960539615396253963539645396553966539675396853969539705397153972539735397453975539765397753978539795398053981539825398353984539855398653987539885398953990539915399253993539945399553996539975399853999540005400154002540035400454005540065400754008540095401054011540125401354014540155401654017540185401954020540215402254023540245402554026540275402854029540305403154032540335403454035540365403754038540395404054041540425404354044540455404654047540485404954050540515405254053540545405554056540575405854059540605406154062540635406454065540665406754068540695407054071540725407354074540755407654077540785407954080540815408254083540845408554086540875408854089540905409154092540935409454095540965409754098540995410054101541025410354104541055410654107541085410954110541115411254113541145411554116541175411854119541205412154122541235412454125541265412754128541295413054131
/*!
 * clipboard.js v1.5.5
 * https://zenorocha.github.io/clipboard.js
 *
 * Licensed MIT © Zeno Rocha
 */
!function (t) {
  if ('object' == typeof exports && 'undefined' != typeof module) module.exports = t();
   else if ('function' == typeof define && define.amd) define([], t);
   else {
    var e;
    e = 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : this,
    e.Clipboard = t()
  }
}(function () {
  var t,
  e,
  n;
  return function t(e, n, r) {
    function o(a, c) {
      if (!n[a]) {
        if (!e[a]) {
          var s = 'function' == typeof require && require;
          if (!c && s) return s(a, !0);
          if (i) return i(a, !0);
          var u = new Error('Cannot find module \'' + a + '\'');
          throw u.code = 'MODULE_NOT_FOUND',
          u
        }
        var l = n[a] = {
          exports: {
          }
        };
        e[a][0].call(l.exports, function (t) {
          var n = e[a][1][t];
          return o(n ? n : t)
        }, l, l.exports, t, e, n, r)
      }
      return n[a].exports
    }
    for (var i = 'function' == typeof require && require, a = 0; a < r.length; a++) o(r[a]);
    return o
  }({
    1: [
      function (t, e, n) {
        var r = t('matches-selector');
        e.exports = function (t, e, n) {
          for (var o = n ? t : t.parentNode; o && o !== document; ) {
            if (r(o, e)) return o;
            o = o.parentNode
          }
        }
      },
      {
        'matches-selector': 2
      }
    ],
    2: [
      function (t, e, n) {
        function r(t, e) {
          if (i) return i.call(t, e);
          for (var n = t.parentNode.querySelectorAll(e), r = 0; r < n.length; ++r) if (n[r] == t) return !0;
          return !1
        }
        var o = Element.prototype,
        i = o.matchesSelector || o.webkitMatchesSelector || o.mozMatchesSelector || o.msMatchesSelector || o.oMatchesSelector;
        e.exports = r
      },
      {
      }
    ],
    3: [
      function (t, e, n) {
        function r(t, e, n, r) {
          var i = o.apply(this, arguments);
          return t.addEventListener(n, i),
          {
            destroy: function () {
              t.removeEventListener(n, i)
            }
          }
        }
        function o(t, e, n, r) {
          return function (n) {
            n.delegateTarget = i(n.target, e, !0),
            n.delegateTarget && r.call(t, n)
          }
        }
        var i = t('closest');
        e.exports = r
      },
      {
        closest: 1
      }
    ],
    4: [
      function (t, e, n) {
        n.node = function (t) {
          return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType
        },
        n.nodeList = function (t) {
          var e = Object.prototype.toString.call(t);
          return void 0 !== t && ('[object NodeList]' === e || '[object HTMLCollection]' === e) && 'length' in t && (0 === t.length || n.node(t[0]))
        },
        n.string = function (t) {
          return 'string' == typeof t || t instanceof String
        },
        n.function = function (t) {
          var e = Object.prototype.toString.call(t);
          return '[object Function]' === e
        }
      },
      {
      }
    ],
    5: [
      function (t, e, n) {
        function r(t, e, n) {
          if (!t && !e && !n) throw new Error('Missing required arguments');
          if (!c.string(e)) throw new TypeError('Second argument must be a String');
          if (!c.function (n)) throw new TypeError('Third argument must be a Function');
          if (c.node(t)) return o(t, e, n);
          if (c.nodeList(t)) return i(t, e, n);
          if (c.string(t)) return a(t, e, n);
          throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList')
        }
        function o(t, e, n) {
          return t.addEventListener(e, n),
          {
            destroy: function () {
              t.removeEventListener(e, n)
            }
          }
        }
        function i(t, e, n) {
          return Array.prototype.forEach.call(t, function (t) {
            t.addEventListener(e, n)
          }),
          {
            destroy: function () {
              Array.prototype.forEach.call(t, function (t) {
                t.removeEventListener(e, n)
              })
            }
          }
        }
        function a(t, e, n) {
          return s(document.body, t, e, n)
        }
        var c = t('./is'),
        s = t('delegate');
        e.exports = r
      },
      {
        './is': 4,
        delegate: 3
      }
    ],
    6: [
      function (t, e, n) {
        function r(t) {
          var e;
          if ('INPUT' === t.nodeName || 'TEXTAREA' === t.nodeName) t.focus(),
          t.setSelectionRange(0, t.value.length),
          e = t.value;
           else {
            t.hasAttribute('contenteditable') && t.focus();
            var n = window.getSelection(),
            r = document.createRange();
            r.selectNodeContents(t),
            n.removeAllRanges(),
            n.addRange(r),
            e = n.toString()
          }
          return e
        }
        e.exports = r
      },
      {
      }
    ],
    7: [
      function (t, e, n) {
        function r() {
        }
        r.prototype = {
          on: function (t, e, n) {
            var r = this.e || (this.e = {
            });
            return (r[t] || (r[t] = [
            ])).push({
              fn: e,
              ctx: n
            }),
            this
          },
          once: function (t, e, n) {
            function r() {
              o.off(t, r),
              e.apply(n, arguments)
            }
            var o = this;
            return r._ = e,
            this.on(t, r, n)
          },
          emit: function (t) {
            var e = [
            ].slice.call(arguments, 1),
            n = ((this.e || (this.e = {
            })) [t] || []).slice(),
            r = 0,
            o = n.length;
            for (r; o > r; r++) n[r].fn.apply(n[r].ctx, e);
            return this
          },
          off: function (t, e) {
            var n = this.e || (this.e = {
            }),
            r = n[t],
            o = [
            ];
            if (r && e) for (var i = 0, a = r.length; a > i; i++) r[i].fn !== e && r[i].fn._ !== e && o.push(r[i]);
            return o.length ? n[t] = o : delete n[t],
            this
          }
        },
        e.exports = r
      },
      {
      }
    ],
    8: [
      function (t, e, n) {
        'use strict';
        function r(t) {
          return t && t.__esModule ? t : {
            'default': t
          }
        }
        function o(t, e) {
          if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function')
        }
        n.__esModule = !0;
        var i = function () {
          function t(t, e) {
            for (var n = 0; n < e.length; n++) {
              var r = e[n];
              r.enumerable = r.enumerable || !1,
              r.configurable = !0,
              'value' in r && (r.writable = !0),
              Object.defineProperty(t, r.key, r)
            }
          }
          return function (e, n, r) {
            return n && t(e.prototype, n),
            r && t(e, r),
            e
          }
        }(),
        a = t('select'),
        c = r(a),
        s = function () {
          function t(e) {
            o(this, t),
            this.resolveOptions(e),
            this.initSelection()
          }
          return t.prototype.resolveOptions = function t() {
            var e = arguments.length <= 0 || void 0 === arguments[0] ? {
            }
             : arguments[0];
            this.action = e.action,
            this.emitter = e.emitter,
            this.target = e.target,
            this.text = e.text,
            this.trigger = e.trigger,
            this.selectedText = ''
          },
          t.prototype.initSelection = function t() {
            if (this.text && this.target) throw new Error('Multiple attributes declared, use either "target" or "text"');
            if (this.text) this.selectFake();
             else {
              if (!this.target) throw new Error('Missing required attributes, use either "target" or "text"');
              this.selectTarget()
            }
          },
          t.prototype.selectFake = function t() {
            var e = this;
            this.removeFake(),
            this.fakeHandler = document.body.addEventListener('click', function () {
              return e.removeFake()
            }),
            this.fakeElem = document.createElement('textarea'),
            this.fakeElem.style.position = 'absolute',
            this.fakeElem.style.left = '-9999px',
            this.fakeElem.style.top = (window.pageYOffset || document.documentElement.scrollTop) + 'px',
            this.fakeElem.setAttribute('readonly', ''),
            this.fakeElem.value = this.text,
            document.body.appendChild(this.fakeElem),
            this.selectedText = c.default(this.fakeElem),
            this.copyText()
          },
          t.prototype.removeFake = function t() {
            this.fakeHandler && (document.body.removeEventListener('click'), this.fakeHandler = null),
            this.fakeElem && (document.body.removeChild(this.fakeElem), this.fakeElem = null)
          },
          t.prototype.selectTarget = function t() {
            this.selectedText = c.default(this.target),
            this.copyText()
          },
          t.prototype.copyText = function t() {
            var e = void 0;
            try {
              e = document.execCommand(this.action)
            } catch (n) {
              e = !1
            }
            this.handleResult(e)
          },
          t.prototype.handleResult = function t(e) {
            e ? this.emitter.emit('success', {
              action: this.action,
              text: this.selectedText,
              trigger: this.trigger,
              clearSelection: this.clearSelection.bind(this)
            })  : this.emitter.emit('error', {
              action: this.action,
              trigger: this.trigger,
              clearSelection: this.clearSelection.bind(this)
            })
          },
          t.prototype.clearSelection = function t() {
            this.target && this.target.blur(),
            window.getSelection().removeAllRanges()
          },
          t.prototype.destroy = function t() {
            this.removeFake()
          },
          i(t, [
            {
              key: 'action',
              set: function t() {
                var e = arguments.length <= 0 || void 0 === arguments[0] ? 'copy' : arguments[0];
                if (this._action = e, 'copy' !== this._action && 'cut' !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"')
              },
              get: function t() {
                return this._action
              }
            },
            {
              key: 'target',
              set: function t(e) {
                if (void 0 !== e) {
                  if (!e || 'object' != typeof e || 1 !== e.nodeType) throw new Error('Invalid "target" value, use a valid Element');
                  this._target = e
                }
              },
              get: function t() {
                return this._target
              }
            }
          ]),
          t
        }();
        n.default = s,
        e.exports = n.default
      },
      {
        select: 6
      }
      ],
      9: [
        function (t, e, n) {
          'use strict';
          function r(t) {
            return t && t.__esModule ? t : {
              'default': t
            }
          }
          function o(t, e) {
            if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function')
          }
          function i(t, e) {
            if ('function' != typeof e && null !== e) throw new TypeError('Super expression must either be null or a function, not ' + typeof e);
            t.prototype = Object.create(e && e.prototype, {
              constructor: {
                value: t,
                enumerable: !1,
                writable: !0,
                configurable: !0
              }
            }),
            e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e)  : t.__proto__ = e)
          }
          function a(t, e) {
            var n = 'data-clipboard-' + t;
            if (e.hasAttribute(n)) return e.getAttribute(n)
          }
          n.__esModule = !0;
          var c = t('./clipboard-action'),
          s = r(c),
          u = t('tiny-emitter'),
          l = r(u),
          f = t('good-listener'),
          d = r(f),
          h = function (t) {
            function e(n, r) {
              o(this, e),
              t.call(this),
              this.resolveOptions(r),
              this.listenClick(n)
            }
            return i(e, t),
            e.prototype.resolveOptions = function t() {
              var e = arguments.length <= 0 || void 0 === arguments[0] ? {
              }
               : arguments[0];
              this.action = 'function' == typeof e.action ? e.action : this.defaultAction,
              this.target = 'function' == typeof e.target ? e.target : this.defaultTarget,
              this.text = 'function' == typeof e.text ? e.text : this.defaultText
            },
            e.prototype.listenClick = function t(e) {
              var n = this;
              this.listener = d.default(e, 'click', function (t) {
                return n.onClick(t)
              })
            },
            e.prototype.onClick = function t(e) {
              var n = e.delegateTarget || e.currentTarget;
              this.clipboardAction && (this.clipboardAction = null),
              this.clipboardAction = new s.default({
                action: this.action(n),
                target: this.target(n),
                text: this.text(n),
                trigger: n,
                emitter: this
              })
            },
            e.prototype.defaultAction = function t(e) {
              return a('action', e)
            },
            e.prototype.defaultTarget = function t(e) {
              var n = a('target', e);
              return n ? document.querySelector(n)  : void 0
            },
            e.prototype.defaultText = function t(e) {
              return a('text', e)
            },
            e.prototype.destroy = function t() {
              this.listener.destroy(),
              this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null)
            },
            e
          }(l.default); n.default = h,
          e.exports = n.default
        },
        {
          './clipboard-action': 8,
          'good-listener': 5,
          'tiny-emitter': 7
        }
        ]
      },
      {
      },
      [
        9
      ]) (9)
    });
    /*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
    !function (a, b) {
      'object' == typeof module && 'object' == typeof module.exports ? module.exports = a.document ? b(a, !0)  : function (a) {
        if (!a.document) throw new Error('jQuery requires a window with a document');
        return b(a)
      }
       : b(a)
    }('undefined' != typeof window ? window : this, function (a, b) {
      var c = [
      ],
      d = c.slice,
      e = c.concat,
      f = c.push,
      g = c.indexOf,
      h = {
      },
      i = h.toString,
      j = h.hasOwnProperty,
      k = {
      },
      l = '1.11.3',
      m = function (a, b) {
        return new m.fn.init(a, b)
      },
      n = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
      o = /^-ms-/,
      p = /-([\da-z])/gi,
      q = function (a, b) {
        return b.toUpperCase()
      };
      m.fn = m.prototype = {
        jquery: l,
        constructor: m,
        selector: '',
        length: 0,
        toArray: function () {
          return d.call(this)
        },
        get: function (a) {
          return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this)
        },
        pushStack: function (a) {
          var b = m.merge(this.constructor(), a);
          return b.prevObject = this,
          b.context = this.context,
          b
        },
        each: function (a, b) {
          return m.each(this, a, b)
        },
        map: function (a) {
          return this.pushStack(m.map(this, function (b, c) {
            return a.call(b, c, b)
          }))
        },
        slice: function () {
          return this.pushStack(d.apply(this, arguments))
        },
        first: function () {
          return this.eq(0)
        },
        last: function () {
          return this.eq( - 1)
        },
        eq: function (a) {
          var b = this.length,
          c = + a + (0 > a ? b : 0);
          return this.pushStack(c >= 0 && b > c ? [
            this[c]
          ] : [
          ])
        },
        end: function () {
          return this.prevObject || this.constructor(null)
        },
        push: f,
        sort: c.sort,
        splice: c.splice
      },
      m.extend = m.fn.extend = function () {
        var a,
        b,
        c,
        d,
        e,
        f,
        g = arguments[0] || {
        },
        h = 1,
        i = arguments.length,
        j = !1;
        for ('boolean' == typeof g && (j = g, g = arguments[h] || {
        }, h++), 'object' == typeof g || m.isFunction(g) || (g = {
        }), h === i && (g = this, h--); i > h; h++) if (null != (e = arguments[h])) for (d in e) a = g[d],
        c = e[d],
        g !== c && (j && c && (m.isPlainObject(c) || (b = m.isArray(c))) ? (b ? (b = !1, f = a && m.isArray(a) ? a : [
        ])  : f = a && m.isPlainObject(a) ? a : {
        }, g[d] = m.extend(j, f, c))  : void 0 !== c && (g[d] = c));
        return g
      },
      m.extend({
        expando: 'jQuery' + (l + Math.random()).replace(/\D/g, ''),
        isReady: !0,
        error: function (a) {
          throw new Error(a)
        },
        noop: function () {
        },
        isFunction: function (a) {
          return 'function' === m.type(a)
        },
        isArray: Array.isArray || function (a) {
          return 'array' === m.type(a)
        },
        isWindow: function (a) {
          return null != a && a == a.window
        },
        isNumeric: function (a) {
          return !m.isArray(a) && a - parseFloat(a) + 1 >= 0
        },
        isEmptyObject: function (a) {
          var b;
          for (b in a) return !1;
          return !0
        },
        isPlainObject: function (a) {
          var b;
          if (!a || 'object' !== m.type(a) || a.nodeType || m.isWindow(a)) return !1;
          try {
            if (a.constructor && !j.call(a, 'constructor') && !j.call(a.constructor.prototype, 'isPrototypeOf')) return !1
          } catch (c) {
            return !1
          }
          if (k.ownLast) for (b in a) return j.call(a, b);
          for (b in a);
          return void 0 === b || j.call(a, b)
        },
        type: function (a) {
          return null == a ? a + '' : 'object' == typeof a || 'function' == typeof a ? h[i.call(a)] || 'object' : typeof a
        },
        globalEval: function (b) {
          b && m.trim(b) && (a.execScript || function (b) {
            a.eval.call(a, b)
          }) (b)
        },
        camelCase: function (a) {
          return a.replace(o, 'ms-').replace(p, q)
        },
        nodeName: function (a, b) {
          return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
        },
        each: function (a, b, c) {
          var d,
          e = 0,
          f = a.length,
          g = r(a);
          if (c) {
            if (g) {
              for (; f > e; e++) if (d = b.apply(a[e], c), d === !1) break
            } else for (e in a) if (d = b.apply(a[e], c), d === !1) break
          } else if (g) {
            for (; f > e; e++) if (d = b.call(a[e], e, a[e]), d === !1) break
          } else for (e in a) if (d = b.call(a[e], e, a[e]), d === !1) break;
          return a
        },
        trim: function (a) {
          return null == a ? '' : (a + '').replace(n, '')
        },
        makeArray: function (a, b) {
          var c = b || [];
          return null != a && (r(Object(a)) ? m.merge(c, 'string' == typeof a ? [
            a
          ] : a)  : f.call(c, a)),
          c
        },
        inArray: function (a, b, c) {
          var d;
          if (b) {
            if (g) return g.call(b, a, c);
            for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c)  : c : 0; d > c; c++) if (c in b && b[c] === a) return c
          }
          return - 1
        },
        merge: function (a, b) {
          var c = + b.length,
          d = 0,
          e = a.length;
          while (c > d) a[e++] = b[d++];
          if (c !== c) while (void 0 !== b[d]) a[e++] = b[d++];
          return a.length = e,
          a
        },
        grep: function (a, b, c) {
          for (var d, e = [
          ], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f),
          d !== h && e.push(a[f]);
          return e
        },
        map: function (a, b, c) {
          var d,
          f = 0,
          g = a.length,
          h = r(a),
          i = [
          ];
          if (h) for (; g > f; f++) d = b(a[f], f, c),
          null != d && i.push(d);
           else for (f in a) d = b(a[f], f, c),
          null != d && i.push(d);
          return e.apply([], i)
        },
        guid: 1,
        proxy: function (a, b) {
          var c,
          e,
          f;
          return 'string' == typeof b && (f = a[b], b = a, a = f),
          m.isFunction(a) ? (c = d.call(arguments, 2), e = function () {
            return a.apply(b || this, c.concat(d.call(arguments)))
          }, e.guid = a.guid = a.guid || m.guid++, e)  : void 0
        },
        now: function () {
          return + new Date
        },
        support: k
      }),
      m.each('Boolean Number String Function Array Date RegExp Object Error'.split(' '), function (a, b) {
        h['[object ' + b + ']'] = b.toLowerCase()
      });
      function r(a) {
        var b = 'length' in a && a.length,
        c = m.type(a);
        return 'function' === c || m.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : 'array' === c || 0 === b || 'number' == typeof b && b > 0 && b - 1 in a
      }
      var s = function (a) {
        var b,
        c,
        d,
        e,
        f,
        g,
        h,
        i,
        j,
        k,
        l,
        m,
        n,
        o,
        p,
        q,
        r,
        s,
        t,
        u = 'sizzle' + 1 * new Date,
        v = a.document,
        w = 0,
        x = 0,
        y = ha(),
        z = ha(),
        A = ha(),
        B = function (a, b) {
          return a === b && (l = !0),
          0
        },
        C = 1 << 31,
        D = {
        }.hasOwnProperty,
        E = [
        ],
        F = E.pop,
        G = E.push,
        H = E.push,
        I = E.slice,
        J = function (a, b) {
          for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c;
          return - 1
        },
        K = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped',
        L = '[\\x20\\t\\r\\n\\f]',
        M = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+',
        N = M.replace('w', 'w#'),
        O = '\\[' + L + '*(' + M + ')(?:' + L + '*([*^$|!~]?=)' + L + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + N + '))|)' + L + '*\\]',
        P = ':(' + M + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + O + ')*)|.*)\\)|)',
        Q = new RegExp(L + '+', 'g'),
        R = new RegExp('^' + L + '+|((?:^|[^\\\\])(?:\\\\.)*)' + L + '+$', 'g'),
        S = new RegExp('^' + L + '*,' + L + '*'),
        T = new RegExp('^' + L + '*([>+~]|' + L + ')' + L + '*'),
        U = new RegExp('=' + L + '*([^\\]\'"]*?)' + L + '*\\]', 'g'),
        V = new RegExp(P),
        W = new RegExp('^' + N + '$'),
        X = {
          ID: new RegExp('^#(' + M + ')'),
          CLASS: new RegExp('^\\.(' + M + ')'),
          TAG: new RegExp('^(' + M.replace('w', 'w*') + ')'),
          ATTR: new RegExp('^' + O),
          PSEUDO: new RegExp('^' + P),
          CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + L + '*(even|odd|(([+-]|)(\\d*)n|)' + L + '*(?:([+-]|)' + L + '*(\\d+)|))' + L + '*\\)|)', 'i'),
          bool: new RegExp('^(?:' + K + ')$', 'i'),
          needsContext: new RegExp('^' + L + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + L + '*((?:-\\d)?\\d*)' + L + '*\\)|)(?=[^-]|$)', 'i')
        },
        Y = /^(?:input|select|textarea|button)$/i,
        Z = /^h\d$/i,
        $ = /^[^{]+\{\s*\[native \w/,
        _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
        aa = /[+~]/,
        ba = /'|\\/g,
        ca = new RegExp('\\\\([\\da-f]{1,6}' + L + '?|(' + L + ')|.)', 'ig'),
        da = function (a, b, c) {
          var d = '0x' + b - 65536;
          return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536)  : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
        },
        ea = function () {
          m()
        };
        try {
          H.apply(E = I.call(v.childNodes), v.childNodes),
          E[v.childNodes.length].nodeType
        } catch (fa) {
          H = {
            apply: E.length ? function (a, b) {
              G.apply(a, I.call(b))
            }
             : function (a, b) {
              var c = a.length,
              d = 0;
              while (a[c++] = b[d++]);
              a.length = c - 1
            }
          }
        }
        function ga(a, b, d, e) {
          var f,
          h,
          j,
          k,
          l,
          o,
          r,
          s,
          w,
          x;
          if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], k = b.nodeType, 'string' != typeof a || !a || 1 !== k && 9 !== k && 11 !== k) return d;
          if (!e && p) {
            if (11 !== k && (f = _.exec(a))) if (j = f[1]) {
              if (9 === k) {
                if (h = b.getElementById(j), !h || !h.parentNode) return d;
                if (h.id === j) return d.push(h),
                d
              } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) return d.push(h),
              d
            } else {
              if (f[2]) return H.apply(d, b.getElementsByTagName(a)),
              d;
              if ((j = f[3]) && c.getElementsByClassName) return H.apply(d, b.getElementsByClassName(j)),
              d
            }
            if (c.qsa && (!q || !q.test(a))) {
              if (s = r = u, w = b, x = 1 !== k && a, 1 === k && 'object' !== b.nodeName.toLowerCase()) {
                o = g(a),
                (r = b.getAttribute('id')) ? s = r.replace(ba, '\\$&')  : b.setAttribute('id', s),
                s = '[id=\'' + s + '\'] ',
                l = o.length;
                while (l--) o[l] = s + ra(o[l]);
                w = aa.test(a) && pa(b.parentNode) || b,
                x = o.join(',')
              }
              if (x) try {
                return H.apply(d, w.querySelectorAll(x)),
                d
              } catch (y) {
              } finally {
                r || b.removeAttribute('id')
              }
            }
          }
          return i(a.replace(R, '$1'), b, d, e)
        }
        function ha() {
          var a = [
          ];
          function b(c, e) {
            return a.push(c + ' ') > d.cacheLength && delete b[a.shift()],
            b[c + ' '] = e
          }
          return b
        }
        function ia(a) {
          return a[u] = !0,
          a
        }
        function ja(a) {
          var b = n.createElement('div');
          try {
            return !!a(b)
          } catch (c) {
            return !1
          } finally {
            b.parentNode && b.parentNode.removeChild(b),
            b = null
          }
        }
        function ka(a, b) {
          var c = a.split('|'),
          e = a.length;
          while (e--) d.attrHandle[c[e]] = b
        }
        function la(a, b) {
          var c = b && a,
          d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || C) - (~a.sourceIndex || C);
          if (d) return d;
          if (c) while (c = c.nextSibling) if (c === b) return - 1;
          return a ? 1 : - 1
        }
        function ma(a) {
          return function (b) {
            var c = b.nodeName.toLowerCase();
            return 'input' === c && b.type === a
          }
        }
        function na(a) {
          return function (b) {
            var c = b.nodeName.toLowerCase();
            return ('input' === c || 'button' === c) && b.type === a
          }
        }
        function oa(a) {
          return ia(function (b) {
            return b = + b,
            ia(function (c, d) {
              var e,
              f = a([], c.length, b),
              g = f.length;
              while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
            })
          })
        }
        function pa(a) {
          return a && 'undefined' != typeof a.getElementsByTagName && a
        }
        c = ga.support = {
        },
        f = ga.isXML = function (a) {
          var b = a && (a.ownerDocument || a).documentElement;
          return b ? 'HTML' !== b.nodeName : !1
        },
        m = ga.setDocument = function (a) {
          var b,
          e,
          g = a ? a.ownerDocument || a : v;
          return g !== n && 9 === g.nodeType && g.documentElement ? (n = g, o = g.documentElement, e = g.defaultView, e && e !== e.top && (e.addEventListener ? e.addEventListener('unload', ea, !1)  : e.attachEvent && e.attachEvent('onunload', ea)), p = !f(g), c.attributes = ja(function (a) {
            return a.className = 'i',
            !a.getAttribute('className')
          }), c.getElementsByTagName = ja(function (a) {
            return a.appendChild(g.createComment('')),
            !a.getElementsByTagName('*').length
          }), c.getElementsByClassName = $.test(g.getElementsByClassName), c.getById = ja(function (a) {
            return o.appendChild(a).id = u,
            !g.getElementsByName || !g.getElementsByName(u).length
          }), c.getById ? (d.find.ID = function (a, b) {
            if ('undefined' != typeof b.getElementById && p) {
              var c = b.getElementById(a);
              return c && c.parentNode ? [
                c
              ] : [
              ]
            }
          }, d.filter.ID = function (a) {
            var b = a.replace(ca, da);
            return function (a) {
              return a.getAttribute('id') === b
            }
          })  : (delete d.find.ID, d.filter.ID = function (a) {
            var b = a.replace(ca, da);
            return function (a) {
              var c = 'undefined' != typeof a.getAttributeNode && a.getAttributeNode('id');
              return c && c.value === b
            }
          }), d.find.TAG = c.getElementsByTagName ? function (a, b) {
            return 'undefined' != typeof b.getElementsByTagName ? b.getElementsByTagName(a)  : c.qsa ? b.querySelectorAll(a)  : void 0
          }
           : function (a, b) {
            var c,
            d = [
            ],
            e = 0,
            f = b.getElementsByTagName(a);
            if ('*' === a) {
              while (c = f[e++]) 1 === c.nodeType && d.push(c);
              return d
            }
            return f
          }, d.find.CLASS = c.getElementsByClassName && function (a, b) {
            return p ? b.getElementsByClassName(a)  : void 0
          }, r = [
          ], q = [
          ], (c.qsa = $.test(g.querySelectorAll)) && (ja(function (a) {
            o.appendChild(a).innerHTML = '<a id=\'' + u + '\'></a><select id=\'' + u + '-\f]\' msallowcapture=\'\'><option selected=\'\'></option></select>',
            a.querySelectorAll('[msallowcapture^=\'\']').length && q.push('[*^$]=' + L + '*(?:\'\'|"")'),
            a.querySelectorAll('[selected]').length || q.push('\\[' + L + '*(?:value|' + K + ')'),
            a.querySelectorAll('[id~=' + u + '-]').length || q.push('~='),
            a.querySelectorAll(':checked').length || q.push(':checked'),
            a.querySelectorAll('a#' + u + '+*').length || q.push('.#.+[+~]')
          }), ja(function (a) {
            var b = g.createElement('input');
            b.setAttribute('type', 'hidden'),
            a.appendChild(b).setAttribute('name', 'D'),
            a.querySelectorAll('[name=d]').length && q.push('name' + L + '*[*^$|!~]?='),
            a.querySelectorAll(':enabled').length || q.push(':enabled', ':disabled'),
            a.querySelectorAll('*,:x'),
            q.push(',.*:')
          })), (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function (a) {
            c.disconnectedMatch = s.call(a, 'div'),
            s.call(a, '[s!=\'\']:x'),
            r.push('!=', P)
          }), q = q.length && new RegExp(q.join('|')), r = r.length && new RegExp(r.join('|')), b = $.test(o.compareDocumentPosition), t = b || $.test(o.contains) ? function (a, b) {
            var c = 9 === a.nodeType ? a.documentElement : a,
            d = b && b.parentNode;
            return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d)  : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
          }
           : function (a, b) {
            if (b) while (b = b.parentNode) if (b === a) return !0;
            return !1
          }, B = b ? function (a, b) {
            if (a === b) return l = !0,
            0;
            var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
            return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b)  : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === g || a.ownerDocument === v && t(v, a) ? - 1 : b === g || b.ownerDocument === v && t(v, b) ? 1 : k ? J(k, a) - J(k, b)  : 0 : 4 & d ? - 1 : 1)
          }
           : function (a, b) {
            if (a === b) return l = !0,
            0;
            var c,
            d = 0,
            e = a.parentNode,
            f = b.parentNode,
            h = [
              a
            ],
            i = [
              b
            ];
            if (!e || !f) return a === g ? - 1 : b === g ? 1 : e ? - 1 : f ? 1 : k ? J(k, a) - J(k, b)  : 0;
            if (e === f) return la(a, b);
            c = a;
            while (c = c.parentNode) h.unshift(c);
            c = b;
            while (c = c.parentNode) i.unshift(c);
            while (h[d] === i[d]) d++;
            return d ? la(h[d], i[d])  : h[d] === v ? - 1 : i[d] === v ? 1 : 0
          }, g)  : n
        },
        ga.matches = function (a, b) {
          return ga(a, null, null, b)
        },
        ga.matchesSelector = function (a, b) {
          if ((a.ownerDocument || a) !== n && m(a), b = b.replace(U, '=\'$1\']'), !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b))) try {
            var d = s.call(a, b);
            if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
          } catch (e) {
          }
          return ga(b, n, null, [
            a
          ]).length > 0
        },
        ga.contains = function (a, b) {
          return (a.ownerDocument || a) !== n && m(a),
          t(a, b)
        },
        ga.attr = function (a, b) {
          (a.ownerDocument || a) !== n && m(a);
          var e = d.attrHandle[b.toLowerCase()],
          f = e && D.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p)  : void 0;
          return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b)  : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
        },
        ga.error = function (a) {
          throw new Error('Syntax error, unrecognized expression: ' + a)
        },
        ga.uniqueSort = function (a) {
          var b,
          d = [
          ],
          e = 0,
          f = 0;
          if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) {
            while (b = a[f++]) b === a[f] && (e = d.push(f));
            while (e--) a.splice(d[e], 1)
          }
          return k = null,
          a
        },
        e = ga.getText = function (a) {
          var b,
          c = '',
          d = 0,
          f = a.nodeType;
          if (f) {
            if (1 === f || 9 === f || 11 === f) {
              if ('string' == typeof a.textContent) return a.textContent;
              for (a = a.firstChild; a; a = a.nextSibling) c += e(a)
            } else if (3 === f || 4 === f) return a.nodeValue
          } else while (b = a[d++]) c += e(b);
          return c
        },
        d = ga.selectors = {
          cacheLength: 50,
          createPseudo: ia,
          match: X,
          attrHandle: {
          },
          find: {
          },
          relative: {
            '>': {
              dir: 'parentNode',
              first: !0
            },
            ' ': {
              dir: 'parentNode'
            },
            '+': {
              dir: 'previousSibling',
              first: !0
            },
            '~': {
              dir: 'previousSibling'
            }
          },
          preFilter: {
            ATTR: function (a) {
              return a[1] = a[1].replace(ca, da),
              a[3] = (a[3] || a[4] || a[5] || '').replace(ca, da),
              '~=' === a[2] && (a[3] = ' ' + a[3] + ' '),
              a.slice(0, 4)
            },
            CHILD: function (a) {
              return a[1] = a[1].toLowerCase(),
              'nth' === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]), a[4] = + (a[4] ? a[5] + (a[6] || 1)  : 2 * ('even' === a[3] || 'odd' === a[3])), a[5] = + (a[7] + a[8] || 'odd' === a[3]))  : a[3] && ga.error(a[0]),
              a
            },
            PSEUDO: function (a) {
              var b,
              c = !a[6] && a[2];
              return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || '' : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(')', c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
            }
          },
          filter: {
            TAG: function (a) {
              var b = a.replace(ca, da).toLowerCase();
              return '*' === a ? function () {
                return !0
              }
               : function (a) {
                return a.nodeName && a.nodeName.toLowerCase() === b
              }
            },
            CLASS: function (a) {
              var b = y[a + ' '];
              return b || (b = new RegExp('(^|' + L + ')' + a + '(' + L + '|$)')) && y(a, function (a) {
                return b.test('string' == typeof a.className && a.className || 'undefined' != typeof a.getAttribute && a.getAttribute('class') || '')
              })
            },
            ATTR: function (a, b, c) {
              return function (d) {
                var e = ga.attr(d, a);
                return null == e ? '!=' === b : b ? (e += '', '=' === b ? e === c : '!=' === b ? e !== c : '^=' === b ? c && 0 === e.indexOf(c)  : '*=' === b ? c && e.indexOf(c) > - 1 : '$=' === b ? c && e.slice( - c.length) === c : '~=' === b ? (' ' + e.replace(Q, ' ') + ' ').indexOf(c) > - 1 : '|=' === b ? e === c || e.slice(0, c.length + 1) === c + '-' : !1)  : !0
              }
            },
            CHILD: function (a, b, c, d, e) {
              var f = 'nth' !== a.slice(0, 3),
              g = 'last' !== a.slice( - 4),
              h = 'of-type' === b;
              return 1 === d && 0 === e ? function (a) {
                return !!a.parentNode
              }
               : function (b, c, i) {
                var j,
                k,
                l,
                m,
                n,
                o,
                p = f !== g ? 'nextSibling' : 'previousSibling',
                q = b.parentNode,
                r = h && b.nodeName.toLowerCase(),
                s = !i && !h;
                if (q) {
                  if (f) {
                    while (p) {
                      l = b;
                      while (l = l[p]) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
                      o = p = 'only' === a && !o && 'nextSibling'
                    }
                    return !0
                  }
                  if (o = [
                    g ? q.firstChild : q.lastChild
                  ], g && s) {
                    k = q[u] || (q[u] = {
                    }),
                    j = k[a] || [],
                    n = j[0] === w && j[1],
                    m = j[0] === w && j[2],
                    l = n && q.childNodes[n];
                    while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if (1 === l.nodeType && ++m && l === b) {
                      k[a] = [
                        w,
                        n,
                        m
                      ];
                      break
                    }
                  } else if (s && (j = (b[u] || (b[u] = {
                  })) [a]) && j[0] === w) m = j[1];
                   else while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {
                  })) [a] = [
                    w,
                    m
                  ]), l === b)) break;
                  return m -= e,
                  m === d || m % d === 0 && m / d >= 0
                }
              }
            },
            PSEUDO: function (a, b) {
              var c,
              e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error('unsupported pseudo: ' + a);
              return e[u] ? e(b)  : e.length > 1 ? (c = [
                a,
                a,
                '',
                b
              ], d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function (a, c) {
                var d,
                f = e(a, b),
                g = f.length;
                while (g--) d = J(a, f[g]),
                a[d] = !(c[d] = f[g])
              })  : function (a) {
                return e(a, 0, c)
              })  : e
            }
          },
          pseudos: {
            not: ia(function (a) {
              var b = [
              ],
              c = [
              ],
              d = h(a.replace(R, '$1'));
              return d[u] ? ia(function (a, b, c, e) {
                var f,
                g = d(a, null, e, [
                ]),
                h = a.length;
                while (h--) (f = g[h]) && (a[h] = !(b[h] = f))
              })  : function (a, e, f) {
                return b[0] = a,
                d(b, null, f, c),
                b[0] = null,
                !c.pop()
              }
            }),
            has: ia(function (a) {
              return function (b) {
                return ga(a, b).length > 0
              }
            }),
            contains: ia(function (a) {
              return a = a.replace(ca, da),
              function (b) {
                return (b.textContent || b.innerText || e(b)).indexOf(a) > - 1
              }
            }),
            lang: ia(function (a) {
              return W.test(a || '') || ga.error('unsupported lang: ' + a),
              a = a.replace(ca, da).toLowerCase(),
              function (b) {
                var c;
                do if (c = p ? b.lang : b.getAttribute('xml:lang') || b.getAttribute('lang')) return c = c.toLowerCase(),
                c === a || 0 === c.indexOf(a + '-');
                while ((b = b.parentNode) && 1 === b.nodeType);
                return !1
              }
            }),
            target: function (b) {
              var c = a.location && a.location.hash;
              return c && c.slice(1) === b.id
            },
            root: function (a) {
              return a === o
            },
            focus: function (a) {
              return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
            },
            enabled: function (a) {
              return a.disabled === !1
            },
            disabled: function (a) {
              return a.disabled === !0
            },
            checked: function (a) {
              var b = a.nodeName.toLowerCase();
              return 'input' === b && !!a.checked || 'option' === b && !!a.selected
            },
            selected: function (a) {
              return a.parentNode && a.parentNode.selectedIndex,
              a.selected === !0
            },
            empty: function (a) {
              for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1;
              return !0
            },
            parent: function (a) {
              return !d.pseudos.empty(a)
            },
            header: function (a) {
              return Z.test(a.nodeName)
            },
            input: function (a) {
              return Y.test(a.nodeName)
            },
            button: function (a) {
              var b = a.nodeName.toLowerCase();
              return 'input' === b && 'button' === a.type || 'button' === b
            },
            text: function (a) {
              var b;
              return 'input' === a.nodeName.toLowerCase() && 'text' === a.type && (null == (b = a.getAttribute('type')) || 'text' === b.toLowerCase())
            },
            first: oa(function () {
              return [0]
            }),
            last: oa(function (a, b) {
              return [b - 1]
            }),
            eq: oa(function (a, b, c) {
              return [0 > c ? c + b : c]
            }),
            even: oa(function (a, b) {
              for (var c = 0; b > c; c += 2) a.push(c);
              return a
            }),
            odd: oa(function (a, b) {
              for (var c = 1; b > c; c += 2) a.push(c);
              return a
            }),
            lt: oa(function (a, b, c) {
              for (var d = 0 > c ? c + b : c; --d >= 0; ) a.push(d);
              return a
            }),
            gt: oa(function (a, b, c) {
              for (var d = 0 > c ? c + b : c; ++d < b; ) a.push(d);
              return a
            })
          }
        },
        d.pseudos.nth = d.pseudos.eq;
        for (b in {
          radio: !0,
          checkbox: !0,
          file: !0,
          password: !0,
          image: !0
        }) d.pseudos[b] = ma(b);
        for (b in {
          submit: !0,
          reset: !0
        }) d.pseudos[b] = na(b);
        function qa() {
        }
        qa.prototype = d.filters = d.pseudos,
        d.setFilters = new qa,
        g = ga.tokenize = function (a, b) {
          var c,
          e,
          f,
          g,
          h,
          i,
          j,
          k = z[a + ' '];
          if (k) return b ? 0 : k.slice(0);
          h = a,
          i = [
          ],
          j = d.preFilter;
          while (h) {
            (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [
            ])),
            c = !1,
            (e = T.exec(h)) && (c = e.shift(), f.push({
              value: c,
              type: e[0].replace(R, ' ')
            }), h = h.slice(c.length));
            for (g in d.filter) !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({
              value: c,
              type: g,
              matches: e
            }), h = h.slice(c.length));
            if (!c) break
          }
          return b ? h.length : h ? ga.error(a)  : z(a, i).slice(0)
        };
        function ra(a) {
          for (var b = 0, c = a.length, d = ''; c > b; b++) d += a[b].value;
          return d
        }
        function sa(a, b, c) {
          var d = b.dir,
          e = c && 'parentNode' === d,
          f = x++;
          return b.first ? function (b, c, f) {
            while (b = b[d]) if (1 === b.nodeType || e) return a(b, c, f)
          }
           : function (b, c, g) {
            var h,
            i,
            j = [
              w,
              f
            ];
            if (g) {
              while (b = b[d]) if ((1 === b.nodeType || e) && a(b, c, g)) return !0
            } else while (b = b[d]) if (1 === b.nodeType || e) {
              if (i = b[u] || (b[u] = {
              }), (h = i[d]) && h[0] === w && h[1] === f) return j[2] = h[2];
              if (i[d] = j, j[2] = a(b, c, g)) return !0
            }
          }
        }
        function ta(a) {
          return a.length > 1 ? function (b, c, d) {
            var e = a.length;
            while (e--) if (!a[e](b, c, d)) return !1;
            return !0
          }
           : a[0]
        }
        function ua(a, b, c) {
          for (var d = 0, e = b.length; e > d; d++) ga(a, b[d], c);
          return c
        }
        function va(a, b, c, d, e) {
          for (var f, g = [
          ], h = 0, i = a.length, j = null != b; i > h; h++) (f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
          return g
        }
        function wa(a, b, c, d, e, f) {
          return d && !d[u] && (d = wa(d)),
          e && !e[u] && (e = wa(e, f)),
          ia(function (f, g, h, i) {
            var j,
            k,
            l,
            m = [
            ],
            n = [
            ],
            o = g.length,
            p = f || ua(b || '*', h.nodeType ? [
              h
            ] : h, [
            ]),
            q = !a || !f && b ? p : va(p, m, a, h, i),
            r = c ? e || (f ? a : o || d) ? [
            ] : g : q;
            if (c && c(q, r, h, i), d) {
              j = va(r, n),
              d(j, [
              ], h, i),
              k = j.length;
              while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
            }
            if (f) {
              if (e || a) {
                if (e) {
                  j = [
                  ],
                  k = r.length;
                  while (k--) (l = r[k]) && j.push(q[k] = l);
                  e(null, r = [
                  ], j, i)
                }
                k = r.length;
                while (k--) (l = r[k]) && (j = e ? J(f, l)  : m[k]) > - 1 && (f[j] = !(g[j] = l))
              }
            } else r = va(r === g ? r.splice(o, r.length)  : r),
            e ? e(null, g, r, i)  : H.apply(g, r)
          })
        }
        function xa(a) {
          for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[' '], i = g ? 1 : 0, k = sa(function (a) {
            return a === b
          }, h, !0), l = sa(function (a) {
            return J(b, a) > - 1
          }, h, !0), m = [
            function (a, c, d) {
              var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d)  : l(a, c, d));
              return b = null,
              e
            }
          ]; f > i; i++) if (c = d.relative[a[i].type]) m = [
            sa(ta(m), c)
          ];
           else {
            if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) {
              for (e = ++i; f > e; e++) if (d.relative[a[e].type]) break;
              return wa(i > 1 && ta(m), i > 1 && ra(a.slice(0, i - 1).concat({
                value: ' ' === a[i - 2].type ? '*' : ''
              })).replace(R, '$1'), c, e > i && xa(a.slice(i, e)), f > e && xa(a = a.slice(e)), f > e && ra(a))
            }
            m.push(c)
          }
          return ta(m)
        }
        function ya(a, b) {
          var c = b.length > 0,
          e = a.length > 0,
          f = function (f, g, h, i, k) {
            var l,
            m,
            o,
            p = 0,
            q = '0',
            r = f && [],
            s = [
            ],
            t = j,
            u = f || e && d.find.TAG('*', k),
            v = w += null == t ? 1 : Math.random() || 0.1,
            x = u.length;
            for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) {
              if (e && l) {
                m = 0;
                while (o = a[m++]) if (o(l, g, h)) {
                  i.push(l);
                  break
                }
                k && (w = v)
              }
              c && ((l = !o && l) && p--, f && r.push(l))
            }
            if (p += q, c && q !== p) {
              m = 0;
              while (o = b[m++]) o(r, s, g, h);
              if (f) {
                if (p > 0) while (q--) r[q] || s[q] || (s[q] = F.call(i));
                s = va(s)
              }
              H.apply(i, s),
              k && !f && s.length > 0 && p + b.length > 1 && ga.uniqueSort(i)
            }
            return k && (w = v, j = t),
            r
          };
          return c ? ia(f)  : f
        }
        return h = ga.compile = function (a, b) {
          var c,
          d = [
          ],
          e = [
          ],
          f = A[a + ' '];
          if (!f) {
            b || (b = g(a)),
            c = b.length;
            while (c--) f = xa(b[c]),
            f[u] ? d.push(f)  : e.push(f);
            f = A(a, ya(e, d)),
            f.selector = a
          }
          return f
        },
        i = ga.select = function (a, b, e, f) {
          var i,
          j,
          k,
          l,
          m,
          n = 'function' == typeof a && a,
          o = !f && g(a = n.selector || a);
          if (e = e || [], 1 === o.length) {
            if (j = o[0] = o[0].slice(0), j.length > 2 && 'ID' === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) {
              if (b = (d.find.ID(k.matches[0].replace(ca, da), b) || []) [0], !b) return e;
              n && (b = b.parentNode),
              a = a.slice(j.shift().value.length)
            }
            i = X.needsContext.test(a) ? 0 : j.length;
            while (i--) {
              if (k = j[i], d.relative[l = k.type]) break;
              if ((m = d.find[l]) && (f = m(k.matches[0].replace(ca, da), aa.test(j[0].type) && pa(b.parentNode) || b))) {
                if (j.splice(i, 1), a = f.length && ra(j), !a) return H.apply(e, f),
                e;
                break
              }
            }
          }
          return (n || h(a, o)) (f, b, !p, e, aa.test(a) && pa(b.parentNode) || b),
          e
        },
        c.sortStable = u.split('').sort(B).join('') === u,
        c.detectDuplicates = !!l,
        m(),
        c.sortDetached = ja(function (a) {
          return 1 & a.compareDocumentPosition(n.createElement('div'))
        }),
        ja(function (a) {
          return a.innerHTML = '<a href=\'#\'></a>',
          '#' === a.firstChild.getAttribute('href')
        }) || ka('type|href|height|width', function (a, b, c) {
          return c ? void 0 : a.getAttribute(b, 'type' === b.toLowerCase() ? 1 : 2)
        }),
        c.attributes && ja(function (a) {
          return a.innerHTML = '<input/>',
          a.firstChild.setAttribute('value', ''),
          '' === a.firstChild.getAttribute('value')
        }) || ka('value', function (a, b, c) {
          return c || 'input' !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
        }),
        ja(function (a) {
          return null == a.getAttribute('disabled')
        }) || ka(K, function (a, b, c) {
          var d;
          return c ? void 0 : a[b] === !0 ? b.toLowerCase()  : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
        }),
        ga
      }(a);
      m.find = s,
      m.expr = s.selectors,
      m.expr[':'] = m.expr.pseudos,
      m.unique = s.uniqueSort,
      m.text = s.getText,
      m.isXMLDoc = s.isXML,
      m.contains = s.contains;
      var t = m.expr.match.needsContext,
      u = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
      v = /^.[^:#\[\.,]*$/;
      function w(a, b, c) {
        if (m.isFunction(b)) return m.grep(a, function (a, d) {
          return !!b.call(a, d, a) !== c
        });
        if (b.nodeType) return m.grep(a, function (a) {
          return a === b !== c
        });
        if ('string' == typeof b) {
          if (v.test(b)) return m.filter(b, a, c);
          b = m.filter(b, a)
        }
        return m.grep(a, function (a) {
          return m.inArray(a, b) >= 0 !== c
        })
      }
      m.filter = function (a, b, c) {
        var d = b[0];
        return c && (a = ':not(' + a + ')'),
        1 === b.length && 1 === d.nodeType ? m.find.matchesSelector(d, a) ? [
          d
        ] : [
        ] : m.find.matches(a, m.grep(b, function (a) {
          return 1 === a.nodeType
        }))
      },
      m.fn.extend({
        find: function (a) {
          var b,
          c = [
          ],
          d = this,
          e = d.length;
          if ('string' != typeof a) return this.pushStack(m(a).filter(function () {
            for (b = 0; e > b; b++) if (m.contains(d[b], this)) return !0
          }));
          for (b = 0; e > b; b++) m.find(a, d[b], c);
          return c = this.pushStack(e > 1 ? m.unique(c)  : c),
          c.selector = this.selector ? this.selector + ' ' + a : a,
          c
        },
        filter: function (a) {
          return this.pushStack(w(this, a || [], !1))
        },
        not: function (a) {
          return this.pushStack(w(this, a || [], !0))
        },
        is: function (a) {
          return !!w(this, 'string' == typeof a && t.test(a) ? m(a)  : a || [], !1).length
        }
      });
      var x,
      y = a.document,
      z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
      A = m.fn.init = function (a, b) {
        var c,
        d;
        if (!a) return this;
        if ('string' == typeof a) {
          if (c = '<' === a.charAt(0) && '>' === a.charAt(a.length - 1) && a.length >= 3 ? [
            null,
            a,
            null
          ] : z.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || x).find(a)  : this.constructor(b).find(a);
          if (c[1]) {
            if (b = b instanceof m ? b[0] : b, m.merge(this, m.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : y, !0)), u.test(c[1]) && m.isPlainObject(b)) for (c in b) m.isFunction(this[c]) ? this[c](b[c])  : this.attr(c, b[c]);
            return this
          }
          if (d = y.getElementById(c[2]), d && d.parentNode) {
            if (d.id !== c[2]) return x.find(a);
            this.length = 1,
            this[0] = d
          }
          return this.context = y,
          this.selector = a,
          this
        }
        return a.nodeType ? (this.context = this[0] = a, this.length = 1, this)  : m.isFunction(a) ? 'undefined' != typeof x.ready ? x.ready(a)  : a(m)  : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), m.makeArray(a, this))
      };
      A.prototype = m.fn,
      x = m(y);
      var B = /^(?:parents|prev(?:Until|All))/,
      C = {
        children: !0,
        contents: !0,
        next: !0,
        prev: !0
      };
      m.extend({
        dir: function (a, b, c) {
          var d = [
          ],
          e = a[b];
          while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !m(e).is(c))) 1 === e.nodeType && d.push(e),
          e = e[b];
          return d
        },
        sibling: function (a, b) {
          for (var c = [
          ]; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
          return c
        }
      }),
      m.fn.extend({
        has: function (a) {
          var b,
          c = m(a, this),
          d = c.length;
          return this.filter(function () {
            for (b = 0; d > b; b++) if (m.contains(this, c[b])) return !0
          })
        },
        closest: function (a, b) {
          for (var c, d = 0, e = this.length, f = [
          ], g = t.test(a) || 'string' != typeof a ? m(a, b || this.context)  : 0; e > d; d++) for (c = this[d]; c && c !== b; c = c.parentNode) if (c.nodeType < 11 && (g ? g.index(c) > - 1 : 1 === c.nodeType && m.find.matchesSelector(c, a))) {
            f.push(c);
            break
          }
          return this.pushStack(f.length > 1 ? m.unique(f)  : f)
        },
        index: function (a) {
          return a ? 'string' == typeof a ? m.inArray(this[0], m(a))  : m.inArray(a.jquery ? a[0] : a, this)  : this[0] && this[0].parentNode ? this.first().prevAll().length : - 1
        },
        add: function (a, b) {
          return this.pushStack(m.unique(m.merge(this.get(), m(a, b))))
        },
        addBack: function (a) {
          return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
        }
      });
      function D(a, b) {
        do a = a[b];
        while (a && 1 !== a.nodeType);
        return a
      }
      m.each({
        parent: function (a) {
          var b = a.parentNode;
          return b && 11 !== b.nodeType ? b : null
        },
        parents: function (a) {
          return m.dir(a, 'parentNode')
        },
        parentsUntil: function (a, b, c) {
          return m.dir(a, 'parentNode', c)
        },
        next: function (a) {
          return D(a, 'nextSibling')
        },
        prev: function (a) {
          return D(a, 'previousSibling')
        },
        nextAll: function (a) {
          return m.dir(a, 'nextSibling')
        },
        prevAll: function (a) {
          return m.dir(a, 'previousSibling')
        },
        nextUntil: function (a, b, c) {
          return m.dir(a, 'nextSibling', c)
        },
        prevUntil: function (a, b, c) {
          return m.dir(a, 'previousSibling', c)
        },
        siblings: function (a) {
          return m.sibling((a.parentNode || {
          }).firstChild, a)
        },
        children: function (a) {
          return m.sibling(a.firstChild)
        },
        contents: function (a) {
          return m.nodeName(a, 'iframe') ? a.contentDocument || a.contentWindow.document : m.merge([], a.childNodes)
        }
      }, function (a, b) {
        m.fn[a] = function (c, d) {
          var e = m.map(this, b, c);
          return 'Until' !== a.slice( - 5) && (d = c),
          d && 'string' == typeof d && (e = m.filter(d, e)),
          this.length > 1 && (C[a] || (e = m.unique(e)), B.test(a) && (e = e.reverse())),
          this.pushStack(e)
        }
      });
      var E = /\S+/g,
      F = {
      };
      function G(a) {
        var b = F[a] = {
        };
        return m.each(a.match(E) || [], function (a, c) {
          b[c] = !0
        }),
        b
      }
      m.Callbacks = function (a) {
        a = 'string' == typeof a ? F[a] || G(a)  : m.extend({
        }, a);
        var b,
        c,
        d,
        e,
        f,
        g,
        h = [
        ],
        i = !a.once && [],
        j = function (l) {
          for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++) if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) {
            c = !1;
            break
          }
          b = !1,
          h && (i ? i.length && j(i.shift())  : c ? h = [
          ] : k.disable())
        },
        k = {
          add: function () {
            if (h) {
              var d = h.length;
              !function f(b) {
                m.each(b, function (b, c) {
                  var d = m.type(c);
                  'function' === d ? a.unique && k.has(c) || h.push(c)  : c && c.length && 'string' !== d && f(c)
                })
              }(arguments),
              b ? e = h.length : c && (g = d, j(c))
            }
            return this
          },
          remove: function () {
            return h && m.each(arguments, function (a, c) {
              var d;
              while ((d = m.inArray(c, h, d)) > - 1) h.splice(d, 1),
              b && (e >= d && e--, f >= d && f--)
            }),
            this
          },
          has: function (a) {
            return a ? m.inArray(a, h) > - 1 : !(!h || !h.length)
          },
          empty: function () {
            return h = [
            ],
            e = 0,
            this
          },
          disable: function () {
            return h = i = c = void 0,
            this
          },
          disabled: function () {
            return !h
          },
          lock: function () {
            return i = void 0,
            c || k.disable(),
            this
          },
          locked: function () {
            return !i
          },
          fireWith: function (a, c) {
            return !h || d && !i || (c = c || [], c = [
              a,
              c.slice ? c.slice()  : c
            ], b ? i.push(c)  : j(c)),
            this
          },
          fire: function () {
            return k.fireWith(this, arguments),
            this
          },
          fired: function () {
            return !!d
          }
        };
        return k
      },
      m.extend({
        Deferred: function (a) {
          var b = [
            ['resolve',
            'done',
            m.Callbacks('once memory'),
            'resolved'],
            [
              'reject',
              'fail',
              m.Callbacks('once memory'),
              'rejected'
            ],
            [
              'notify',
              'progress',
              m.Callbacks('memory')
            ]
          ],
          c = 'pending',
          d = {
            state: function () {
              return c
            },
            always: function () {
              return e.done(arguments).fail(arguments),
              this
            },
            then: function () {
              var a = arguments;
              return m.Deferred(function (c) {
                m.each(b, function (b, f) {
                  var g = m.isFunction(a[b]) && a[b];
                  e[f[1]](function () {
                    var a = g && g.apply(this, arguments);
                    a && m.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify)  : c[f[0] + 'With'](this === d ? c.promise()  : this, g ? [
                      a
                    ] : arguments)
                  })
                }),
                a = null
              }).promise()
            },
            promise: function (a) {
              return null != a ? m.extend(a, d)  : d
            }
          },
          e = {
          };
          return d.pipe = d.then,
          m.each(b, function (a, f) {
            var g = f[2],
            h = f[3];
            d[f[1]] = g.add,
            h && g.add(function () {
              c = h
            }, b[1 ^ a][2].disable, b[2][2].lock),
            e[f[0]] = function () {
              return e[f[0] + 'With'](this === e ? d : this, arguments),
              this
            },
            e[f[0] + 'With'] = g.fireWith
          }),
          d.promise(e),
          a && a.call(e, e),
          e
        },
        when: function (a) {
          var b = 0,
          c = d.call(arguments),
          e = c.length,
          f = 1 !== e || a && m.isFunction(a.promise) ? e : 0,
          g = 1 === f ? a : m.Deferred(),
          h = function (a, b, c) {
            return function (e) {
              b[a] = this,
              c[a] = arguments.length > 1 ? d.call(arguments)  : e,
              c === i ? g.notifyWith(b, c)  : --f || g.resolveWith(b, c)
            }
          },
          i,
          j,
          k;
          if (e > 1) for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) c[b] && m.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i))  : --f;
          return f || g.resolveWith(k, c),
          g.promise()
        }
      });
      var H;
      m.fn.ready = function (a) {
        return m.ready.promise().done(a),
        this
      },
      m.extend({
        isReady: !1,
        readyWait: 1,
        holdReady: function (a) {
          a ? m.readyWait++ : m.ready(!0)
        },
        ready: function (a) {
          if (a === !0 ? !--m.readyWait : !m.isReady) {
            if (!y.body) return setTimeout(m.ready);
            m.isReady = !0,
            a !== !0 && --m.readyWait > 0 || (H.resolveWith(y, [
              m
            ]), m.fn.triggerHandler && (m(y).triggerHandler('ready'), m(y).off('ready')))
          }
        }
      });
      function I() {
        y.addEventListener ? (y.removeEventListener('DOMContentLoaded', J, !1), a.removeEventListener('load', J, !1))  : (y.detachEvent('onreadystatechange', J), a.detachEvent('onload', J))
      }
      function J() {
        (y.addEventListener || 'load' === event.type || 'complete' === y.readyState) && (I(), m.ready())
      }
      m.ready.promise = function (b) {
        if (!H) if (H = m.Deferred(), 'complete' === y.readyState) setTimeout(m.ready);
         else if (y.addEventListener) y.addEventListener('DOMContentLoaded', J, !1),
        a.addEventListener('load', J, !1);
         else {
          y.attachEvent('onreadystatechange', J),
          a.attachEvent('onload', J);
          var c = !1;
          try {
            c = null == a.frameElement && y.documentElement
          } catch (d) {
          }
          c && c.doScroll && !function e() {
            if (!m.isReady) {
              try {
                c.doScroll('left')
              } catch (a) {
                return setTimeout(e, 50)
              }
              I(),
              m.ready()
            }
          }()
        }
        return H.promise(b)
      };
      var K = 'undefined',
      L;
      for (L in m(k)) break;
      k.ownLast = '0' !== L,
      k.inlineBlockNeedsLayout = !1,
      m(function () {
        var a,
        b,
        c,
        d;
        c = y.getElementsByTagName('body') [0],
        c && c.style && (b = y.createElement('div'), d = y.createElement('div'), d.style.cssText = 'position:absolute;border:0;width:0;height:0;top:0;left:-9999px', c.appendChild(d).appendChild(b), typeof b.style.zoom !== K && (b.style.cssText = 'display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1', k.inlineBlockNeedsLayout = a = 3 === b.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(d))
      }),
      function () {
        var a = y.createElement('div');
        if (null == k.deleteExpando) {
          k.deleteExpando = !0;
          try {
            delete a.test
          } catch (b) {
            k.deleteExpando = !1
          }
        }
        a = null
      }(),
      m.acceptData = function (a) {
        var b = m.noData[(a.nodeName + ' ').toLowerCase()],
        c = + a.nodeType || 1;
        return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute('classid') === b
      };
      var M = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
      N = /([A-Z])/g;
      function O(a, b, c) {
        if (void 0 === c && 1 === a.nodeType) {
          var d = 'data-' + b.replace(N, '-$1').toLowerCase();
          if (c = a.getAttribute(d), 'string' == typeof c) {
            try {
              c = 'true' === c ? !0 : 'false' === c ? !1 : 'null' === c ? null : + c + '' === c ? + c : M.test(c) ? m.parseJSON(c)  : c
            } catch (e) {
            }
            m.data(a, b, c)
          } else c = void 0
        }
        return c
      }
      function P(a) {
        var b;
        for (b in a) if (('data' !== b || !m.isEmptyObject(a[b])) && 'toJSON' !== b) return !1;
        return !0
      }
      function Q(a, b, d, e) {
        if (m.acceptData(a)) {
          var f,
          g,
          h = m.expando,
          i = a.nodeType,
          j = i ? m.cache : a,
          k = i ? a[h] : a[h] && h;
          if (k && j[k] && (e || j[k].data) || void 0 !== d || 'string' != typeof b) return k || (k = i ? a[h] = c.pop() || m.guid++ : h),
          j[k] || (j[k] = i ? {
          }
           : {
            toJSON: m.noop
          }),
          ('object' == typeof b || 'function' == typeof b) && (e ? j[k] = m.extend(j[k], b)  : j[k].data = m.extend(j[k].data, b)),
          g = j[k],
          e || (g.data || (g.data = {
          }), g = g.data),
          void 0 !== d && (g[m.camelCase(b)] = d),
          'string' == typeof b ? (f = g[b], null == f && (f = g[m.camelCase(b)]))  : f = g,
          f
        }
      }
      function R(a, b, c) {
        if (m.acceptData(a)) {
          var d,
          e,
          f = a.nodeType,
          g = f ? m.cache : a,
          h = f ? a[m.expando] : m.expando;
          if (g[h]) {
            if (b && (d = c ? g[h] : g[h].data)) {
              m.isArray(b) ? b = b.concat(m.map(b, m.camelCase))  : b in d ? b = [
                b
              ] : (b = m.camelCase(b), b = b in d ? [
                b
              ] : b.split(' ')),
              e = b.length;
              while (e--) delete d[b[e]];
              if (c ? !P(d)  : !m.isEmptyObject(d)) return
            }(c || (delete g[h].data, P(g[h]))) && (f ? m.cleanData([a], !0)  : k.deleteExpando || g != g.window ? delete g[h] : g[h] = null)
          }
        }
      }
      m.extend({
        cache: {
        },
        noData: {
          'applet ': !0,
          'embed ': !0,
          'object ': 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
        },
        hasData: function (a) {
          return a = a.nodeType ? m.cache[a[m.expando]] : a[m.expando],
          !!a && !P(a)
        },
        data: function (a, b, c) {
          return Q(a, b, c)
        },
        removeData: function (a, b) {
          return R(a, b)
        },
        _data: function (a, b, c) {
          return Q(a, b, c, !0)
        },
        _removeData: function (a, b) {
          return R(a, b, !0)
        }
      }),
      m.fn.extend({
        data: function (a, b) {
          var c,
          d,
          e,
          f = this[0],
          g = f && f.attributes;
          if (void 0 === a) {
            if (this.length && (e = m.data(f), 1 === f.nodeType && !m._data(f, 'parsedAttrs'))) {
              c = g.length;
              while (c--) g[c] && (d = g[c].name, 0 === d.indexOf('data-') && (d = m.camelCase(d.slice(5)), O(f, d, e[d])));
              m._data(f, 'parsedAttrs', !0)
            }
            return e
          }
          return 'object' == typeof a ? this.each(function () {
            m.data(this, a)
          })  : arguments.length > 1 ? this.each(function () {
            m.data(this, a, b)
          })  : f ? O(f, a, m.data(f, a))  : void 0
        },
        removeData: function (a) {
          return this.each(function () {
            m.removeData(this, a)
          })
        }
      }),
      m.extend({
        queue: function (a, b, c) {
          var d;
          return a ? (b = (b || 'fx') + 'queue', d = m._data(a, b), c && (!d || m.isArray(c) ? d = m._data(a, b, m.makeArray(c))  : d.push(c)), d || [])  : void 0
        },
        dequeue: function (a, b) {
          b = b || 'fx';
          var c = m.queue(a, b),
          d = c.length,
          e = c.shift(),
          f = m._queueHooks(a, b),
          g = function () {
            m.dequeue(a, b)
          };
          'inprogress' === e && (e = c.shift(), d--),
          e && ('fx' === b && c.unshift('inprogress'), delete f.stop, e.call(a, g, f)),
          !d && f && f.empty.fire()
        },
        _queueHooks: function (a, b) {
          var c = b + 'queueHooks';
          return m._data(a, c) || m._data(a, c, {
            empty: m.Callbacks('once memory').add(function () {
              m._removeData(a, b + 'queue'),
              m._removeData(a, c)
            })
          })
        }
      }),
      m.fn.extend({
        queue: function (a, b) {
          var c = 2;
          return 'string' != typeof a && (b = a, a = 'fx', c--),
          arguments.length < c ? m.queue(this[0], a)  : void 0 === b ? this : this.each(function () {
            var c = m.queue(this, a, b);
            m._queueHooks(this, a),
            'fx' === a && 'inprogress' !== c[0] && m.dequeue(this, a)
          })
        },
        dequeue: function (a) {
          return this.each(function () {
            m.dequeue(this, a)
          })
        },
        clearQueue: function (a) {
          return this.queue(a || 'fx', [
          ])
        },
        promise: function (a, b) {
          var c,
          d = 1,
          e = m.Deferred(),
          f = this,
          g = this.length,
          h = function () {
            --d || e.resolveWith(f, [
              f
            ])
          };
          'string' != typeof a && (b = a, a = void 0),
          a = a || 'fx';
          while (g--) c = m._data(f[g], a + 'queueHooks'),
          c && c.empty && (d++, c.empty.add(h));
          return h(),
          e.promise(b)
        }
      });
      var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
      T = [
        'Top',
        'Right',
        'Bottom',
        'Left'
      ],
      U = function (a, b) {
        return a = b || a,
        'none' === m.css(a, 'display') || !m.contains(a.ownerDocument, a)
      },
      V = m.access = function (a, b, c, d, e, f, g) {
        var h = 0,
        i = a.length,
        j = null == c;
        if ('object' === m.type(c)) {
          e = !0;
          for (h in c) m.access(a, b, h, c[h], !0, f, g)
        } else if (void 0 !== d && (e = !0, m.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null)  : (j = b, b = function (a, b, c) {
          return j.call(m(a), c)
        })), b)) for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
        return e ? a : j ? b.call(a)  : i ? b(a[0], c)  : f
      },
      W = /^(?:checkbox|radio)$/i;
      !function () {
        var a = y.createElement('input'),
        b = y.createElement('div'),
        c = y.createDocumentFragment();
        if (b.innerHTML = '  <link/><table></table><a href=\'/a\'>a</a><input type=\'checkbox\'/>', k.leadingWhitespace = 3 === b.firstChild.nodeType, k.tbody = !b.getElementsByTagName('tbody').length, k.htmlSerialize = !!b.getElementsByTagName('link').length, k.html5Clone = '<:nav></:nav>' !== y.createElement('nav').cloneNode(!0).outerHTML, a.type = 'checkbox', a.checked = !0, c.appendChild(a), k.appendChecked = a.checked, b.innerHTML = '<textarea>x</textarea>', k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, c.appendChild(b), b.innerHTML = '<input type=\'radio\' checked=\'checked\' name=\'t\'/>', k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, k.noCloneEvent = !0, b.attachEvent && (b.attachEvent('onclick', function () {
          k.noCloneEvent = !1
        }), b.cloneNode(!0).click()), null == k.deleteExpando) {
          k.deleteExpando = !0;
          try {
            delete b.test
          } catch (d) {
            k.deleteExpando = !1
          }
        }
      }(),
      function () {
        var b,
        c,
        d = y.createElement('div');
        for (b in {
          submit: !0,
          change: !0,
          focusin: !0
        }) c = 'on' + b,
        (k[b + 'Bubbles'] = c in a) || (d.setAttribute(c, 't'), k[b + 'Bubbles'] = d.attributes[c].expando === !1);
        d = null
      }();
      var X = /^(?:input|select|textarea)$/i,
      Y = /^key/,
      Z = /^(?:mouse|pointer|contextmenu)|click/,
      $ = /^(?:focusinfocus|focusoutblur)$/,
      _ = /^([^.]*)(?:\.(.+)|)$/;
      function aa() {
        return !0
      }
      function ba() {
        return !1
      }
      function ca() {
        try {
          return y.activeElement
        } catch (a) {
        }
      }
      m.event = {
        global: {
        },
        add: function (a, b, c, d, e) {
          var f,
          g,
          h,
          i,
          j,
          k,
          l,
          n,
          o,
          p,
          q,
          r = m._data(a);
          if (r) {
            c.handler && (i = c, c = i.handler, e = i.selector),
            c.guid || (c.guid = m.guid++),
            (g = r.events) || (g = r.events = {
            }),
            (k = r.handle) || (k = r.handle = function (a) {
              return typeof m === K || a && m.event.triggered === a.type ? void 0 : m.event.dispatch.apply(k.elem, arguments)
            }, k.elem = a),
            b = (b || '').match(E) || [''],
            h = b.length;
            while (h--) f = _.exec(b[h]) || [],
            o = q = f[1],
            p = (f[2] || '').split('.').sort(),
            o && (j = m.event.special[o] || {
            }, o = (e ? j.delegateType : j.bindType) || o, j = m.event.special[o] || {
            }, l = m.extend({
              type: o,
              origType: q,
              data: d,
              handler: c,
              guid: c.guid,
              selector: e,
              needsContext: e && m.expr.match.needsContext.test(e),
              namespace: p.join('.')
            }, i), (n = g[o]) || (n = g[o] = [
            ], n.delegateCount = 0, j.setup && j.setup.call(a, d, p, k) !== !1 || (a.addEventListener ? a.addEventListener(o, k, !1)  : a.attachEvent && a.attachEvent('on' + o, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? n.splice(n.delegateCount++, 0, l)  : n.push(l), m.event.global[o] = !0);
            a = null
          }
        },
        remove: function (a, b, c, d, e) {
          var f,
          g,
          h,
          i,
          j,
          k,
          l,
          n,
          o,
          p,
          q,
          r = m.hasData(a) && m._data(a);
          if (r && (k = r.events)) {
            b = (b || '').match(E) || [''],
            j = b.length;
            while (j--) if (h = _.exec(b[j]) || [], o = q = h[1], p = (h[2] || '').split('.').sort(), o) {
              l = m.event.special[o] || {
              },
              o = (d ? l.delegateType : l.bindType) || o,
              n = k[o] || [],
              h = h[2] && new RegExp('(^|\\.)' + p.join('\\.(?:.*\\.|)') + '(\\.|$)'),
              i = f = n.length;
              while (f--) g = n[f],
              !e && q !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ('**' !== d || !g.selector) || (n.splice(f, 1), g.selector && n.delegateCount--, l.remove && l.remove.call(a, g));
              i && !n.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || m.removeEvent(a, o, r.handle), delete k[o])
            } else for (o in k) m.event.remove(a, o + b[j], c, d, !0);
            m.isEmptyObject(k) && (delete r.handle, m._removeData(a, 'events'))
          }
        },
        trigger: function (b, c, d, e) {
          var f,
          g,
          h,
          i,
          k,
          l,
          n,
          o = [
            d || y
          ],
          p = j.call(b, 'type') ? b.type : b,
          q = j.call(b, 'namespace') ? b.namespace.split('.')  : [
          ];
          if (h = l = d = d || y, 3 !== d.nodeType && 8 !== d.nodeType && !$.test(p + m.event.triggered) && (p.indexOf('.') >= 0 && (q = p.split('.'), p = q.shift(), q.sort()), g = p.indexOf(':') < 0 && 'on' + p, b = b[m.expando] ? b : new m.Event(p, 'object' == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = q.join('.'), b.namespace_re = b.namespace ? new RegExp('(^|\\.)' + q.join('\\.(?:.*\\.|)') + '(\\.|$)')  : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [
            b
          ] : m.makeArray(c, [
            b
          ]), k = m.event.special[p] || {
          }, e || !k.trigger || k.trigger.apply(d, c) !== !1)) {
            if (!e && !k.noBubble && !m.isWindow(d)) {
              for (i = k.delegateType || p, $.test(i + p) || (h = h.parentNode); h; h = h.parentNode) o.push(h),
              l = h;
              l === (d.ownerDocument || y) && o.push(l.defaultView || l.parentWindow || a)
            }
            n = 0;
            while ((h = o[n++]) && !b.isPropagationStopped()) b.type = n > 1 ? i : k.bindType || p,
            f = (m._data(h, 'events') || {
            }) [b.type] && m._data(h, 'handle'),
            f && f.apply(h, c),
            f = g && h[g],
            f && f.apply && m.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault());
            if (b.type = p, !e && !b.isDefaultPrevented() && (!k._default || k._default.apply(o.pop(), c) === !1) && m.acceptData(d) && g && d[p] && !m.isWindow(d)) {
              l = d[g],
              l && (d[g] = null),
              m.event.triggered = p;
              try {
                d[p]()
              } catch (r) {
              }
              m.event.triggered = void 0,
              l && (d[g] = l)
            }
            return b.result
          }
        },
        dispatch: function (a) {
          a = m.event.fix(a);
          var b,
          c,
          e,
          f,
          g,
          h = [
          ],
          i = d.call(arguments),
          j = (m._data(this, 'events') || {
          }) [a.type] || [],
          k = m.event.special[a.type] || {
          };
          if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) {
            h = m.event.handlers.call(this, a, j),
            b = 0;
            while ((f = h[b++]) && !a.isPropagationStopped()) {
              a.currentTarget = f.elem,
              g = 0;
              while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped()) (!a.namespace_re || a.namespace_re.test(e.namespace)) && (a.handleObj = e, a.data = e.data, c = ((m.event.special[e.origType] || {
              }).handle || e.handler).apply(f.elem, i), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation()))
            }
            return k.postDispatch && k.postDispatch.call(this, a),
            a.result
          }
        },
        handlers: function (a, b) {
          var c,
          d,
          e,
          f,
          g = [
          ],
          h = b.delegateCount,
          i = a.target;
          if (h && i.nodeType && (!a.button || 'click' !== a.type)) for (; i != this; i = i.parentNode || this) if (1 === i.nodeType && (i.disabled !== !0 || 'click' !== a.type)) {
            for (e = [
            ], f = 0; h > f; f++) d = b[f],
            c = d.selector + ' ',
            void 0 === e[c] && (e[c] = d.needsContext ? m(c, this).index(i) >= 0 : m.find(c, this, null, [
              i
            ]).length),
            e[c] && e.push(d);
            e.length && g.push({
              elem: i,
              handlers: e
            })
          }
          return h < b.length && g.push({
            elem: this,
            handlers: b.slice(h)
          }),
          g
        },
        fix: function (a) {
          if (a[m.expando]) return a;
          var b,
          c,
          d,
          e = a.type,
          f = a,
          g = this.fixHooks[e];
          g || (this.fixHooks[e] = g = Z.test(e) ? this.mouseHooks : Y.test(e) ? this.keyHooks : {
          }),
          d = g.props ? this.props.concat(g.props)  : this.props,
          a = new m.Event(f),
          b = d.length;
          while (b--) c = d[b],
          a[c] = f[c];
          return a.target || (a.target = f.srcElement || y),
          3 === a.target.nodeType && (a.target = a.target.parentNode),
          a.metaKey = !!a.metaKey,
          g.filter ? g.filter(a, f)  : a
        },
        props: 'altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which'.split(' '),
        fixHooks: {
        },
        keyHooks: {
          props: 'char charCode key keyCode'.split(' '),
          filter: function (a, b) {
            return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode),
            a
          }
        },
        mouseHooks: {
          props: 'button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement'.split(' '),
          filter: function (a, b) {
            var c,
            d,
            e,
            f = b.button,
            g = b.fromElement;
            return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || y, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)),
            !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g),
            a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0),
            a
          }
        },
        special: {
          load: {
            noBubble: !0
          },
          focus: {
            trigger: function () {
              if (this !== ca() && this.focus) try {
                return this.focus(),
                !1
              } catch (a) {
              }
            },
            delegateType: 'focusin'
          },
          blur: {
            trigger: function () {
              return this === ca() && this.blur ? (this.blur(), !1)  : void 0
            },
            delegateType: 'focusout'
          },
          click: {
            trigger: function () {
              return m.nodeName(this, 'input') && 'checkbox' === this.type && this.click ? (this.click(), !1)  : void 0
            },
            _default: function (a) {
              return m.nodeName(a.target, 'a')
            }
          },
          beforeunload: {
            postDispatch: function (a) {
              void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
            }
          }
        },
        simulate: function (a, b, c, d) {
          var e = m.extend(new m.Event, c, {
            type: a,
            isSimulated: !0,
            originalEvent: {
            }
          });
          d ? m.event.trigger(e, null, b)  : m.event.dispatch.call(b, e),
          e.isDefaultPrevented() && c.preventDefault()
        }
      },
      m.removeEvent = y.removeEventListener ? function (a, b, c) {
        a.removeEventListener && a.removeEventListener(b, c, !1)
      }
       : function (a, b, c) {
        var d = 'on' + b;
        a.detachEvent && (typeof a[d] === K && (a[d] = null), a.detachEvent(d, c))
      },
      m.Event = function (a, b) {
        return this instanceof m.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? aa : ba)  : this.type = a, b && m.extend(this, b), this.timeStamp = a && a.timeStamp || m.now(), void (this[m.expando] = !0))  : new m.Event(a, b)
      },
      m.Event.prototype = {
        isDefaultPrevented: ba,
        isPropagationStopped: ba,
        isImmediatePropagationStopped: ba,
        preventDefault: function () {
          var a = this.originalEvent;
          this.isDefaultPrevented = aa,
          a && (a.preventDefault ? a.preventDefault()  : a.returnValue = !1)
        },
        stopPropagation: function () {
          var a = this.originalEvent;
          this.isPropagationStopped = aa,
          a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
        },
        stopImmediatePropagation: function () {
          var a = this.originalEvent;
          this.isImmediatePropagationStopped = aa,
          a && a.stopImmediatePropagation && a.stopImmediatePropagation(),
          this.stopPropagation()
        }
      },
      m.each({
        mouseenter: 'mouseover',
        mouseleave: 'mouseout',
        pointerenter: 'pointerover',
        pointerleave: 'pointerout'
      }, function (a, b) {
        m.event.special[a] = {
          delegateType: b,
          bindType: b,
          handle: function (a) {
            var c,
            d = this,
            e = a.relatedTarget,
            f = a.handleObj;
            return (!e || e !== d && !m.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b),
            c
          }
        }
      }),
      k.submitBubbles || (m.event.special.submit = {
        setup: function () {
          return m.nodeName(this, 'form') ? !1 : void m.event.add(this, 'click._submit keypress._submit', function (a) {
            var b = a.target,
            c = m.nodeName(b, 'input') || m.nodeName(b, 'button') ? b.form : void 0;
            c && !m._data(c, 'submitBubbles') && (m.event.add(c, 'submit._submit', function (a) {
              a._submit_bubble = !0
            }), m._data(c, 'submitBubbles', !0))
          })
        },
        postDispatch: function (a) {
          a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && m.event.simulate('submit', this.parentNode, a, !0))
        },
        teardown: function () {
          return m.nodeName(this, 'form') ? !1 : void m.event.remove(this, '._submit')
        }
      }),
      k.changeBubbles || (m.event.special.change = {
        setup: function () {
          return X.test(this.nodeName) ? (('checkbox' === this.type || 'radio' === this.type) && (m.event.add(this, 'propertychange._change', function (a) {
            'checked' === a.originalEvent.propertyName && (this._just_changed = !0)
          }), m.event.add(this, 'click._change', function (a) {
            this._just_changed && !a.isTrigger && (this._just_changed = !1),
            m.event.simulate('change', this, a, !0)
          })), !1)  : void m.event.add(this, 'beforeactivate._change', function (a) {
            var b = a.target;
            X.test(b.nodeName) && !m._data(b, 'changeBubbles') && (m.event.add(b, 'change._change', function (a) {
              !this.parentNode || a.isSimulated || a.isTrigger || m.event.simulate('change', this.parentNode, a, !0)
            }), m._data(b, 'changeBubbles', !0))
          })
        },
        handle: function (a) {
          var b = a.target;
          return this !== b || a.isSimulated || a.isTrigger || 'radio' !== b.type && 'checkbox' !== b.type ? a.handleObj.handler.apply(this, arguments)  : void 0
        },
        teardown: function () {
          return m.event.remove(this, '._change'),
          !X.test(this.nodeName)
        }
      }),
      k.focusinBubbles || m.each({
        focus: 'focusin',
        blur: 'focusout'
      }, function (a, b) {
        var c = function (a) {
          m.event.simulate(b, a.target, m.event.fix(a), !0)
        };
        m.event.special[b] = {
          setup: function () {
            var d = this.ownerDocument || this,
            e = m._data(d, b);
            e || d.addEventListener(a, c, !0),
            m._data(d, b, (e || 0) + 1)
          },
          teardown: function () {
            var d = this.ownerDocument || this,
            e = m._data(d, b) - 1;
            e ? m._data(d, b, e)  : (d.removeEventListener(a, c, !0), m._removeData(d, b))
          }
        }
      }),
      m.fn.extend({
        on: function (a, b, c, d, e) {
          var f,
          g;
          if ('object' == typeof a) {
            'string' != typeof b && (c = c || b, b = void 0);
            for (f in a) this.on(f, b, c, a[f], e);
            return this
          }
          if (null == c && null == d ? (d = b, c = b = void 0)  : null == d && ('string' == typeof b ? (d = c, c = void 0)  : (d = c, c = b, b = void 0)), d === !1) d = ba;
           else if (!d) return this;
          return 1 === e && (g = d, d = function (a) {
            return m().off(a),
            g.apply(this, arguments)
          }, d.guid = g.guid || (g.guid = m.guid++)),
          this.each(function () {
            m.event.add(this, a, d, c, b)
          })
        },
        one: function (a, b, c, d) {
          return this.on(a, b, c, d, 1)
        },
        off: function (a, b, c) {
          var d,
          e;
          if (a && a.preventDefault && a.handleObj) return d = a.handleObj,
          m(a.delegateTarget).off(d.namespace ? d.origType + '.' + d.namespace : d.origType, d.selector, d.handler),
          this;
          if ('object' == typeof a) {
            for (e in a) this.off(e, b, a[e]);
            return this
          }
          return (b === !1 || 'function' == typeof b) && (c = b, b = void 0),
          c === !1 && (c = ba),
          this.each(function () {
            m.event.remove(this, a, c, b)
          })
        },
        trigger: function (a, b) {
          return this.each(function () {
            m.event.trigger(a, b, this)
          })
        },
        triggerHandler: function (a, b) {
          var c = this[0];
          return c ? m.event.trigger(a, b, c, !0)  : void 0
        }
      });
      function da(a) {
        var b = ea.split('|'),
        c = a.createDocumentFragment();
        if (c.createElement) while (b.length) c.createElement(b.pop());
        return c
      }
      var ea = 'abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video',
      fa = / jQuery\d+="(?:null|\d+)"/g,
      ga = new RegExp('<(?:' + ea + ')[\\s/>]', 'i'),
      ha = /^\s+/,
      ia = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
      ja = /<([\w:]+)/,
      ka = /<tbody/i,
      la = /<|&#?\w+;/,
      ma = /<(?:script|style|link)/i,
      na = /checked\s*(?:[^=]|=\s*.checked.)/i,
      oa = /^$|\/(?:java|ecma)script/i,
      pa = /^true\/(.*)/,
      qa = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
      ra = {
        option: [
          1,
          '<select multiple=\'multiple\'>',
          '</select>'
        ],
        legend: [
          1,
          '<fieldset>',
          '</fieldset>'
        ],
        area: [
          1,
          '<map>',
          '</map>'
        ],
        param: [
          1,
          '<object>',
          '</object>'
        ],
        thead: [
          1,
          '<table>',
          '</table>'
        ],
        tr: [
          2,
          '<table><tbody>',
          '</tbody></table>'
        ],
        col: [
          2,
          '<table><tbody></tbody><colgroup>',
          '</colgroup></table>'
        ],
        td: [
          3,
          '<table><tbody><tr>',
          '</tr></tbody></table>'
        ],
        _default: k.htmlSerialize ? [
          0,
          '',
          ''
        ] : [
          1,
          'X<div>',
          '</div>'
        ]
      },
      sa = da(y),
      ta = sa.appendChild(y.createElement('div'));
      ra.optgroup = ra.option,
      ra.tbody = ra.tfoot = ra.colgroup = ra.caption = ra.thead,
      ra.th = ra.td;
      function ua(a, b) {
        var c,
        d,
        e = 0,
        f = typeof a.getElementsByTagName !== K ? a.getElementsByTagName(b || '*')  : typeof a.querySelectorAll !== K ? a.querySelectorAll(b || '*')  : void 0;
        if (!f) for (f = [
        ], c = a.childNodes || a; null != (d = c[e]); e++) !b || m.nodeName(d, b) ? f.push(d)  : m.merge(f, ua(d, b));
        return void 0 === b || b && m.nodeName(a, b) ? m.merge([a], f)  : f
      }
      function va(a) {
        W.test(a.type) && (a.defaultChecked = a.checked)
      }
      function wa(a, b) {
        return m.nodeName(a, 'table') && m.nodeName(11 !== b.nodeType ? b : b.firstChild, 'tr') ? a.getElementsByTagName('tbody') [0] || a.appendChild(a.ownerDocument.createElement('tbody'))  : a
      }
      function xa(a) {
        return a.type = (null !== m.find.attr(a, 'type')) + '/' + a.type,
        a
      }
      function ya(a) {
        var b = pa.exec(a.type);
        return b ? a.type = b[1] : a.removeAttribute('type'),
        a
      }
      function za(a, b) {
        for (var c, d = 0; null != (c = a[d]); d++) m._data(c, 'globalEval', !b || m._data(b[d], 'globalEval'))
      }
      function Aa(a, b) {
        if (1 === b.nodeType && m.hasData(a)) {
          var c,
          d,
          e,
          f = m._data(a),
          g = m._data(b, f),
          h = f.events;
          if (h) {
            delete g.handle,
            g.events = {
            };
            for (c in h) for (d = 0, e = h[c].length; e > d; d++) m.event.add(b, c, h[c][d])
          }
          g.data && (g.data = m.extend({
          }, g.data))
        }
      }
      function Ba(a, b) {
        var c,
        d,
        e;
        if (1 === b.nodeType) {
          if (c = b.nodeName.toLowerCase(), !k.noCloneEvent && b[m.expando]) {
            e = m._data(b);
            for (d in e.events) m.removeEvent(b, d, e.handle);
            b.removeAttribute(m.expando)
          }
          'script' === c && b.text !== a.text ? (xa(b).text = a.text, ya(b))  : 'object' === c ? (b.parentNode && (b.outerHTML = a.outerHTML), k.html5Clone && a.innerHTML && !m.trim(b.innerHTML) && (b.innerHTML = a.innerHTML))  : 'input' === c && W.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value))  : 'option' === c ? b.defaultSelected = b.selected = a.defaultSelected : ('input' === c || 'textarea' === c) && (b.defaultValue = a.defaultValue)
        }
      }
      m.extend({
        clone: function (a, b, c) {
          var d,
          e,
          f,
          g,
          h,
          i = m.contains(a.ownerDocument, a);
          if (k.html5Clone || m.isXMLDoc(a) || !ga.test('<' + a.nodeName + '>') ? f = a.cloneNode(!0)  : (ta.innerHTML = a.outerHTML, ta.removeChild(f = ta.firstChild)), !(k.noCloneEvent && k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || m.isXMLDoc(a))) for (d = ua(f), h = ua(a), g = 0; null != (e = h[g]); ++g) d[g] && Ba(e, d[g]);
          if (b) if (c) for (h = h || ua(a), d = d || ua(f), g = 0; null != (e = h[g]); g++) Aa(e, d[g]);
           else Aa(a, f);
          return d = ua(f, 'script'),
          d.length > 0 && za(d, !i && ua(a, 'script')),
          d = h = e = null,
          f
        },
        buildFragment: function (a, b, c, d) {
          for (var e, f, g, h, i, j, l, n = a.length, o = da(b), p = [
          ], q = 0; n > q; q++) if (f = a[q], f || 0 === f) if ('object' === m.type(f)) m.merge(p, f.nodeType ? [
            f
          ] : f);
           else if (la.test(f)) {
            h = h || o.appendChild(b.createElement('div')),
            i = (ja.exec(f) || ['',
            '']) [1].toLowerCase(),
            l = ra[i] || ra._default,
            h.innerHTML = l[1] + f.replace(ia, '<$1></$2>') + l[2],
            e = l[0];
            while (e--) h = h.lastChild;
            if (!k.leadingWhitespace && ha.test(f) && p.push(b.createTextNode(ha.exec(f) [0])), !k.tbody) {
              f = 'table' !== i || ka.test(f) ? '<table>' !== l[1] || ka.test(f) ? 0 : h : h.firstChild,
              e = f && f.childNodes.length;
              while (e--) m.nodeName(j = f.childNodes[e], 'tbody') && !j.childNodes.length && f.removeChild(j)
            }
            m.merge(p, h.childNodes),
            h.textContent = '';
            while (h.firstChild) h.removeChild(h.firstChild);
            h = o.lastChild
          } else p.push(b.createTextNode(f));
          h && o.removeChild(h),
          k.appendChecked || m.grep(ua(p, 'input'), va),
          q = 0;
          while (f = p[q++]) if ((!d || - 1 === m.inArray(f, d)) && (g = m.contains(f.ownerDocument, f), h = ua(o.appendChild(f), 'script'), g && za(h), c)) {
            e = 0;
            while (f = h[e++]) oa.test(f.type || '') && c.push(f)
          }
          return h = null,
          o
        },
        cleanData: function (a, b) {
          for (var d, e, f, g, h = 0, i = m.expando, j = m.cache, l = k.deleteExpando, n = m.event.special; null != (d = a[h]); h++) if ((b || m.acceptData(d)) && (f = d[i], g = f && j[f])) {
            if (g.events) for (e in g.events) n[e] ? m.event.remove(d, e)  : m.removeEvent(d, e, g.handle);
            j[f] && (delete j[f], l ? delete d[i] : typeof d.removeAttribute !== K ? d.removeAttribute(i)  : d[i] = null, c.push(f))
          }
        }
      }),
      m.fn.extend({
        text: function (a) {
          return V(this, function (a) {
            return void 0 === a ? m.text(this)  : this.empty().append((this[0] && this[0].ownerDocument || y).createTextNode(a))
          }, null, a, arguments.length)
        },
        append: function () {
          return this.domManip(arguments, function (a) {
            if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
              var b = wa(this, a);
              b.appendChild(a)
            }
          })
        },
        prepend: function () {
          return this.domManip(arguments, function (a) {
            if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
              var b = wa(this, a);
              b.insertBefore(a, b.firstChild)
            }
          })
        },
        before: function () {
          return this.domManip(arguments, function (a) {
            this.parentNode && this.parentNode.insertBefore(a, this)
          })
        },
        after: function () {
          return this.domManip(arguments, function (a) {
            this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
          })
        },
        remove: function (a, b) {
          for (var c, d = a ? m.filter(a, this)  : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || m.cleanData(ua(c)),
          c.parentNode && (b && m.contains(c.ownerDocument, c) && za(ua(c, 'script')), c.parentNode.removeChild(c));
          return this
        },
        empty: function () {
          for (var a, b = 0; null != (a = this[b]); b++) {
            1 === a.nodeType && m.cleanData(ua(a, !1));
            while (a.firstChild) a.removeChild(a.firstChild);
            a.options && m.nodeName(a, 'select') && (a.options.length = 0)
          }
          return this
        },
        clone: function (a, b) {
          return a = null == a ? !1 : a,
          b = null == b ? a : b,
          this.map(function () {
            return m.clone(this, a, b)
          })
        },
        html: function (a) {
          return V(this, function (a) {
            var b = this[0] || {
            },
            c = 0,
            d = this.length;
            if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(fa, '')  : void 0;
            if (!('string' != typeof a || ma.test(a) || !k.htmlSerialize && ga.test(a) || !k.leadingWhitespace && ha.test(a) || ra[(ja.exec(a) || ['',
            '']) [1].toLowerCase()])) {
              a = a.replace(ia, '<$1></$2>');
              try {
                for (; d > c; c++) b = this[c] || {
                },
                1 === b.nodeType && (m.cleanData(ua(b, !1)), b.innerHTML = a);
                b = 0
              } catch (e) {
              }
            }
            b && this.empty().append(a)
          }, null, a, arguments.length)
        },
        replaceWith: function () {
          var a = arguments[0];
          return this.domManip(arguments, function (b) {
            a = this.parentNode,
            m.cleanData(ua(this)),
            a && a.replaceChild(b, this)
          }),
          a && (a.length || a.nodeType) ? this : this.remove()
        },
        detach: function (a) {
          return this.remove(a, !0)
        },
        domManip: function (a, b) {
          a = e.apply([], a);
          var c,
          d,
          f,
          g,
          h,
          i,
          j = 0,
          l = this.length,
          n = this,
          o = l - 1,
          p = a[0],
          q = m.isFunction(p);
          if (q || l > 1 && 'string' == typeof p && !k.checkClone && na.test(p)) return this.each(function (c) {
            var d = n.eq(c);
            q && (a[0] = p.call(this, c, d.html())),
            d.domManip(a, b)
          });
          if (l && (i = m.buildFragment(a, this[0].ownerDocument, !1, this), c = i.firstChild, 1 === i.childNodes.length && (i = c), c)) {
            for (g = m.map(ua(i, 'script'), xa), f = g.length; l > j; j++) d = i,
            j !== o && (d = m.clone(d, !0, !0), f && m.merge(g, ua(d, 'script'))),
            b.call(this[j], d, j);
            if (f) for (h = g[g.length - 1].ownerDocument, m.map(g, ya), j = 0; f > j; j++) d = g[j],
            oa.test(d.type || '') && !m._data(d, 'globalEval') && m.contains(h, d) && (d.src ? m._evalUrl && m._evalUrl(d.src)  : m.globalEval((d.text || d.textContent || d.innerHTML || '').replace(qa, '')));
            i = c = null
          }
          return this
        }
      }),
      m.each({
        appendTo: 'append',
        prependTo: 'prepend',
        insertBefore: 'before',
        insertAfter: 'after',
        replaceAll: 'replaceWith'
      }, function (a, b) {
        m.fn[a] = function (a) {
          for (var c, d = 0, e = [
          ], g = m(a), h = g.length - 1; h >= d; d++) c = d === h ? this : this.clone(!0),
          m(g[d]) [b](c),
          f.apply(e, c.get());
          return this.pushStack(e)
        }
      });
      var Ca,
      Da = {
      };
      function Ea(b, c) {
        var d,
        e = m(c.createElement(b)).appendTo(c.body),
        f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : m.css(e[0], 'display');
        return e.detach(),
        f
      }
      function Fa(a) {
        var b = y,
        c = Da[a];
        return c || (c = Ea(a, b), 'none' !== c && c || (Ca = (Ca || m('<iframe frameborder=\'0\' width=\'0\' height=\'0\'/>')).appendTo(b.documentElement), b = (Ca[0].contentWindow || Ca[0].contentDocument).document, b.write(), b.close(), c = Ea(a, b), Ca.detach()), Da[a] = c),
        c
      }
      !function () {
        var a;
        k.shrinkWrapBlocks = function () {
          if (null != a) return a;
          a = !1;
          var b,
          c,
          d;
          return c = y.getElementsByTagName('body') [0],
          c && c.style ? (b = y.createElement('div'), d = y.createElement('div'), d.style.cssText = 'position:absolute;border:0;width:0;height:0;top:0;left:-9999px', c.appendChild(d).appendChild(b), typeof b.style.zoom !== K && (b.style.cssText = '-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1', b.appendChild(y.createElement('div')).style.width = '5px', a = 3 !== b.offsetWidth), c.removeChild(d), a)  : void 0
        }
      }();
      var Ga = /^margin/,
      Ha = new RegExp('^(' + S + ')(?!px)[a-z%]+$', 'i'),
      Ia,
      Ja,
      Ka = /^(top|right|bottom|left)$/;
      a.getComputedStyle ? (Ia = function (b) {
        return b.ownerDocument.defaultView.opener ? b.ownerDocument.defaultView.getComputedStyle(b, null)  : a.getComputedStyle(b, null)
      }, Ja = function (a, b, c) {
        var d,
        e,
        f,
        g,
        h = a.style;
        return c = c || Ia(a),
        g = c ? c.getPropertyValue(b) || c[b] : void 0,
        c && ('' !== g || m.contains(a.ownerDocument, a) || (g = m.style(a, b)), Ha.test(g) && Ga.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)),
        void 0 === g ? g : g + ''
      })  : y.documentElement.currentStyle && (Ia = function (a) {
        return a.currentStyle
      }, Ja = function (a, b, c) {
        var d,
        e,
        f,
        g,
        h = a.style;
        return c = c || Ia(a),
        g = c ? c[b] : void 0,
        null == g && h && h[b] && (g = h[b]),
        Ha.test(g) && !Ka.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = 'fontSize' === b ? '1em' : g, g = h.pixelLeft + 'px', h.left = d, f && (e.left = f)),
        void 0 === g ? g : g + '' || 'auto'
      });
      function La(a, b) {
        return {
          get: function () {
            var c = a();
            if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments)
          }
        }
      }
      !function () {
        var b,
        c,
        d,
        e,
        f,
        g,
        h;
        if (b = y.createElement('div'), b.innerHTML = '  <link/><table></table><a href=\'/a\'>a</a><input type=\'checkbox\'/>', d = b.getElementsByTagName('a') [0], c = d && d.style) {
          c.cssText = 'float:left;opacity:.5',
          k.opacity = '0.5' === c.opacity,
          k.cssFloat = !!c.cssFloat,
          b.style.backgroundClip = 'content-box',
          b.cloneNode(!0).style.backgroundClip = '',
          k.clearCloneStyle = 'content-box' === b.style.backgroundClip,
          k.boxSizing = '' === c.boxSizing || '' === c.MozBoxSizing || '' === c.WebkitBoxSizing,
          m.extend(k, {
            reliableHiddenOffsets: function () {
              return null == g && i(),
              g
            },
            boxSizingReliable: function () {
              return null == f && i(),
              f
            },
            pixelPosition: function () {
              return null == e && i(),
              e
            },
            reliableMarginRight: function () {
              return null == h && i(),
              h
            }
          });
          function i() {
            var b,
            c,
            d,
            i;
            c = y.getElementsByTagName('body') [0],
            c && c.style && (b = y.createElement('div'), d = y.createElement('div'), d.style.cssText = 'position:absolute;border:0;width:0;height:0;top:0;left:-9999px', c.appendChild(d).appendChild(b), b.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute', e = f = !1, h = !0, a.getComputedStyle && (e = '1%' !== (a.getComputedStyle(b, null) || {
            }).top, f = '4px' === (a.getComputedStyle(b, null) || {
              width: '4px'
            }).width, i = b.appendChild(y.createElement('div')), i.style.cssText = b.style.cssText = '-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0', i.style.marginRight = i.style.width = '0', b.style.width = '1px', h = !parseFloat((a.getComputedStyle(i, null) || {
            }).marginRight), b.removeChild(i)), b.innerHTML = '<table><tr><td></td><td>t</td></tr></table>', i = b.getElementsByTagName('td'), i[0].style.cssText = 'margin:0;border:0;padding:0;display:none', g = 0 === i[0].offsetHeight, g && (i[0].style.display = '', i[1].style.display = 'none', g = 0 === i[0].offsetHeight), c.removeChild(d))
          }
        }
      }(),
      m.swap = function (a, b, c, d) {
        var e,
        f,
        g = {
        };
        for (f in b) g[f] = a.style[f],
        a.style[f] = b[f];
        e = c.apply(a, d || []);
        for (f in b) a.style[f] = g[f];
        return e
      };
      var Ma = /alpha\([^)]*\)/i,
      Na = /opacity\s*=\s*([^)]*)/,
      Oa = /^(none|table(?!-c[ea]).+)/,
      Pa = new RegExp('^(' + S + ')(.*)$', 'i'),
      Qa = new RegExp('^([+-])=(' + S + ')', 'i'),
      Ra = {
        position: 'absolute',
        visibility: 'hidden',
        display: 'block'
      },
      Sa = {
        letterSpacing: '0',
        fontWeight: '400'
      },
      Ta = [
        'Webkit',
        'O',
        'Moz',
        'ms'
      ];
      function Ua(a, b) {
        if (b in a) return b;
        var c = b.charAt(0).toUpperCase() + b.slice(1),
        d = b,
        e = Ta.length;
        while (e--) if (b = Ta[e] + c, b in a) return b;
        return d
      }
      function Va(a, b) {
        for (var c, d, e, f = [
        ], g = 0, h = a.length; h > g; g++) d = a[g],
        d.style && (f[g] = m._data(d, 'olddisplay'), c = d.style.display, b ? (f[g] || 'none' !== c || (d.style.display = ''), '' === d.style.display && U(d) && (f[g] = m._data(d, 'olddisplay', Fa(d.nodeName))))  : (e = U(d), (c && 'none' !== c || !e) && m._data(d, 'olddisplay', e ? c : m.css(d, 'display'))));
        for (g = 0; h > g; g++) d = a[g],
        d.style && (b && 'none' !== d.style.display && '' !== d.style.display || (d.style.display = b ? f[g] || '' : 'none'));
        return a
      }
      function Wa(a, b, c) {
        var d = Pa.exec(b);
        return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || 'px')  : b
      }
      function Xa(a, b, c, d, e) {
        for (var f = c === (d ? 'border' : 'content') ? 4 : 'width' === b ? 1 : 0, g = 0; 4 > f; f += 2) 'margin' === c && (g += m.css(a, c + T[f], !0, e)),
        d ? ('content' === c && (g -= m.css(a, 'padding' + T[f], !0, e)), 'margin' !== c && (g -= m.css(a, 'border' + T[f] + 'Width', !0, e)))  : (g += m.css(a, 'padding' + T[f], !0, e), 'padding' !== c && (g += m.css(a, 'border' + T[f] + 'Width', !0, e)));
        return g
      }
      function Ya(a, b, c) {
        var d = !0,
        e = 'width' === b ? a.offsetWidth : a.offsetHeight,
        f = Ia(a),
        g = k.boxSizing && 'border-box' === m.css(a, 'boxSizing', !1, f);
        if (0 >= e || null == e) {
          if (e = Ja(a, b, f), (0 > e || null == e) && (e = a.style[b]), Ha.test(e)) return e;
          d = g && (k.boxSizingReliable() || e === a.style[b]),
          e = parseFloat(e) || 0
        }
        return e + Xa(a, b, c || (g ? 'border' : 'content'), d, f) + 'px'
      }
      m.extend({
        cssHooks: {
          opacity: {
            get: function (a, b) {
              if (b) {
                var c = Ja(a, 'opacity');
                return '' === c ? '1' : c
              }
            }
          }
        },
        cssNumber: {
          columnCount: !0,
          fillOpacity: !0,
          flexGrow: !0,
          flexShrink: !0,
          fontWeight: !0,
          lineHeight: !0,
          opacity: !0,
          order: !0,
          orphans: !0,
          widows: !0,
          zIndex: !0,
          zoom: !0
        },
        cssProps: {
          'float': k.cssFloat ? 'cssFloat' : 'styleFloat'
        },
        style: function (a, b, c, d) {
          if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
            var e,
            f,
            g,
            h = m.camelCase(b),
            i = a.style;
            if (b = m.cssProps[h] || (m.cssProps[h] = Ua(i, h)), g = m.cssHooks[b] || m.cssHooks[h], void 0 === c) return g && 'get' in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b];
            if (f = typeof c, 'string' === f && (e = Qa.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(m.css(a, b)), f = 'number'), null != c && c === c && ('number' !== f || m.cssNumber[h] || (c += 'px'), k.clearCloneStyle || '' !== c || 0 !== b.indexOf('background') || (i[b] = 'inherit'), !(g && 'set' in g && void 0 === (c = g.set(a, c, d))))) try {
              i[b] = c
            } catch (j) {
            }
          }
        },
        css: function (a, b, c, d) {
          var e,
          f,
          g,
          h = m.camelCase(b);
          return b = m.cssProps[h] || (m.cssProps[h] = Ua(a.style, h)),
          g = m.cssHooks[b] || m.cssHooks[h],
          g && 'get' in g && (f = g.get(a, !0, c)),
          void 0 === f && (f = Ja(a, b, d)),
          'normal' === f && b in Sa && (f = Sa[b]),
          '' === c || c ? (e = parseFloat(f), c === !0 || m.isNumeric(e) ? e || 0 : f)  : f
        }
      }),
      m.each(['height',
      'width'], function (a, b) {
        m.cssHooks[b] = {
          get: function (a, c, d) {
            return c ? Oa.test(m.css(a, 'display')) && 0 === a.offsetWidth ? m.swap(a, Ra, function () {
              return Ya(a, b, d)
            })  : Ya(a, b, d)  : void 0
          },
          set: function (a, c, d) {
            var e = d && Ia(a);
            return Wa(a, c, d ? Xa(a, b, d, k.boxSizing && 'border-box' === m.css(a, 'boxSizing', !1, e), e)  : 0)
          }
        }
      }),
      k.opacity || (m.cssHooks.opacity = {
        get: function (a, b) {
          return Na.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || '') ? 0.01 * parseFloat(RegExp.$1) + '' : b ? '1' : ''
        },
        set: function (a, b) {
          var c = a.style,
          d = a.currentStyle,
          e = m.isNumeric(b) ? 'alpha(opacity=' + 100 * b + ')' : '',
          f = d && d.filter || c.filter || '';
          c.zoom = 1,
          (b >= 1 || '' === b) && '' === m.trim(f.replace(Ma, '')) && c.removeAttribute && (c.removeAttribute('filter'), '' === b || d && !d.filter) || (c.filter = Ma.test(f) ? f.replace(Ma, e)  : f + ' ' + e)
        }
      }),
      m.cssHooks.marginRight = La(k.reliableMarginRight, function (a, b) {
        return b ? m.swap(a, {
          display: 'inline-block'
        }, Ja, [
          a,
          'marginRight'
        ])  : void 0
      }),
      m.each({
        margin: '',
        padding: '',
        border: 'Width'
      }, function (a, b) {
        m.cssHooks[a + b] = {
          expand: function (c) {
            for (var d = 0, e = {
            }, f = 'string' == typeof c ? c.split(' ')  : [
              c
            ]; 4 > d; d++) e[a + T[d] + b] = f[d] || f[d - 2] || f[0];
            return e
          }
        },
        Ga.test(a) || (m.cssHooks[a + b].set = Wa)
      }),
      m.fn.extend({
        css: function (a, b) {
          return V(this, function (a, b, c) {
            var d,
            e,
            f = {
            },
            g = 0;
            if (m.isArray(b)) {
              for (d = Ia(a), e = b.length; e > g; g++) f[b[g]] = m.css(a, b[g], !1, d);
              return f
            }
            return void 0 !== c ? m.style(a, b, c)  : m.css(a, b)
          }, a, b, arguments.length > 1)
        },
        show: function () {
          return Va(this, !0)
        },
        hide: function () {
          return Va(this)
        },
        toggle: function (a) {
          return 'boolean' == typeof a ? a ? this.show()  : this.hide()  : this.each(function () {
            U(this) ? m(this).show()  : m(this).hide()
          })
        }
      });
      function Za(a, b, c, d, e) {
        return new Za.prototype.init(a, b, c, d, e)
      }
      m.Tween = Za,
      Za.prototype = {
        constructor: Za,
        init: function (a, b, c, d, e, f) {
          this.elem = a,
          this.prop = c,
          this.easing = e || 'swing',
          this.options = b,
          this.start = this.now = this.cur(),
          this.end = d,
          this.unit = f || (m.cssNumber[c] ? '' : 'px')
        },
        cur: function () {
          var a = Za.propHooks[this.prop];
          return a && a.get ? a.get(this)  : Za.propHooks._default.get(this)
        },
        run: function (a) {
          var b,
          c = Za.propHooks[this.prop];
          return this.options.duration ? this.pos = b = m.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration)  : this.pos = b = a,
          this.now = (this.end - this.start) * b + this.start,
          this.options.step && this.options.step.call(this.elem, this.now, this),
          c && c.set ? c.set(this)  : Za.propHooks._default.set(this),
          this
        }
      },
      Za.prototype.init.prototype = Za.prototype,
      Za.propHooks = {
        _default: {
          get: function (a) {
            var b;
            return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = m.css(a.elem, a.prop, ''), b && 'auto' !== b ? b : 0)  : a.elem[a.prop]
          },
          set: function (a) {
            m.fx.step[a.prop] ? m.fx.step[a.prop](a)  : a.elem.style && (null != a.elem.style[m.cssProps[a.prop]] || m.cssHooks[a.prop]) ? m.style(a.elem, a.prop, a.now + a.unit)  : a.elem[a.prop] = a.now
          }
        }
      },
      Za.propHooks.scrollTop = Za.propHooks.scrollLeft = {
        set: function (a) {
          a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
        }
      },
      m.easing = {
        linear: function (a) {
          return a
        },
        swing: function (a) {
          return 0.5 - Math.cos(a * Math.PI) / 2
        }
      },
      m.fx = Za.prototype.init,
      m.fx.step = {
      };
      var $a,
      _a,
      ab = /^(?:toggle|show|hide)$/,
      bb = new RegExp('^(?:([+-])=|)(' + S + ')([a-z%]*)$', 'i'),
      cb = /queueHooks$/,
      db = [
        ib
      ],
      eb = {
        '*': [
          function (a, b) {
            var c = this.createTween(a, b),
            d = c.cur(),
            e = bb.exec(b),
            f = e && e[3] || (m.cssNumber[a] ? '' : 'px'),
            g = (m.cssNumber[a] || 'px' !== f && + d) && bb.exec(m.css(c.elem, a)),
            h = 1,
            i = 20;
            if (g && g[3] !== f) {
              f = f || g[3],
              e = e || [],
              g = + d || 1;
              do h = h || '.5',
              g /= h,
              m.style(c.elem, a, g + f);
              while (h !== (h = c.cur() / d) && 1 !== h && --i)
            }
            return e && (g = c.start = + g || + d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : + e[2]),
            c
          }
        ]
      };
      function fb() {
        return setTimeout(function () {
          $a = void 0
        }),
        $a = m.now()
      }
      function gb(a, b) {
        var c,
        d = {
          height: a
        },
        e = 0;
        for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = T[e],
        d['margin' + c] = d['padding' + c] = a;
        return b && (d.opacity = d.width = a),
        d
      }
      function hb(a, b, c) {
        for (var d, e = (eb[b] || []).concat(eb['*']), f = 0, g = e.length; g > f; f++) if (d = e[f].call(c, b, a)) return d
      }
      function ib(a, b, c) {
        var d,
        e,
        f,
        g,
        h,
        i,
        j,
        l,
        n = this,
        o = {
        },
        p = a.style,
        q = a.nodeType && U(a),
        r = m._data(a, 'fxshow');
        c.queue || (h = m._queueHooks(a, 'fx'), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () {
          h.unqueued || i()
        }), h.unqueued++, n.always(function () {
          n.always(function () {
            h.unqueued--,
            m.queue(a, 'fx').length || h.empty.fire()
          })
        })),
        1 === a.nodeType && ('height' in b || 'width' in b) && (c.overflow = [
          p.overflow,
          p.overflowX,
          p.overflowY
        ], j = m.css(a, 'display'), l = 'none' === j ? m._data(a, 'olddisplay') || Fa(a.nodeName)  : j, 'inline' === l && 'none' === m.css(a, 'float') && (k.inlineBlockNeedsLayout && 'inline' !== Fa(a.nodeName) ? p.zoom = 1 : p.display = 'inline-block')),
        c.overflow && (p.overflow = 'hidden', k.shrinkWrapBlocks() || n.always(function () {
          p.overflow = c.overflow[0],
          p.overflowX = c.overflow[1],
          p.overflowY = c.overflow[2]
        }));
        for (d in b) if (e = b[d], ab.exec(e)) {
          if (delete b[d], f = f || 'toggle' === e, e === (q ? 'hide' : 'show')) {
            if ('show' !== e || !r || void 0 === r[d]) continue;
            q = !0
          }
          o[d] = r && r[d] || m.style(a, d)
        } else j = void 0;
        if (m.isEmptyObject(o)) 'inline' === ('none' === j ? Fa(a.nodeName)  : j) && (p.display = j);
         else {
          r ? 'hidden' in r && (q = r.hidden)  : r = m._data(a, 'fxshow', {
          }),
          f && (r.hidden = !q),
          q ? m(a).show()  : n.done(function () {
            m(a).hide()
          }),
          n.done(function () {
            var b;
            m._removeData(a, 'fxshow');
            for (b in o) m.style(a, b, o[b])
          });
          for (d in o) g = hb(q ? r[d] : 0, d, n),
          d in r || (r[d] = g.start, q && (g.end = g.start, g.start = 'width' === d || 'height' === d ? 1 : 0))
        }
      }
      function jb(a, b) {
        var c,
        d,
        e,
        f,
        g;
        for (c in a) if (d = m.camelCase(c), e = b[d], f = a[c], m.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = m.cssHooks[d], g && 'expand' in g) {
          f = g.expand(f),
          delete a[d];
          for (c in f) c in a || (a[c] = f[c], b[c] = e)
        } else b[d] = e
      }
      function kb(a, b, c) {
        var d,
        e,
        f = 0,
        g = db.length,
        h = m.Deferred().always(function () {
          delete i.elem
        }),
        i = function () {
          if (e) return !1;
          for (var b = $a || fb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
          return h.notifyWith(a, [
            j,
            f,
            c
          ]),
          1 > f && i ? c : (h.resolveWith(a, [
            j
          ]), !1)
        },
        j = h.promise({
          elem: a,
          props: m.extend({
          }, b),
          opts: m.extend(!0, {
            specialEasing: {
            }
          }, c),
          originalProperties: b,
          originalOptions: c,
          startTime: $a || fb(),
          duration: c.duration,
          tweens: [
          ],
          createTween: function (b, c) {
            var d = m.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
            return j.tweens.push(d),
            d
          },
          stop: function (b) {
            var c = 0,
            d = b ? j.tweens.length : 0;
            if (e) return this;
            for (e = !0; d > c; c++) j.tweens[c].run(1);
            return b ? h.resolveWith(a, [
              j,
              b
            ])  : h.rejectWith(a, [
              j,
              b
            ]),
            this
          }
        }),
        k = j.props;
        for (jb(k, j.opts.specialEasing); g > f; f++) if (d = db[f].call(j, a, k, j.opts)) return d;
        return m.map(k, hb, j),
        m.isFunction(j.opts.start) && j.opts.start.call(a, j),
        m.fx.timer(m.extend(i, {
          elem: a,
          anim: j,
          queue: j.opts.queue
        })),
        j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
      }
      m.Animation = m.extend(kb, {
        tweener: function (a, b) {
          m.isFunction(a) ? (b = a, a = [
            '*'
          ])  : a = a.split(' ');
          for (var c, d = 0, e = a.length; e > d; d++) c = a[d],
          eb[c] = eb[c] || [],
          eb[c].unshift(b)
        },
        prefilter: function (a, b) {
          b ? db.unshift(a)  : db.push(a)
        }
      }),
      m.speed = function (a, b, c) {
        var d = a && 'object' == typeof a ? m.extend({
        }, a)  : {
          complete: c || !c && b || m.isFunction(a) && a,
          duration: a,
          easing: c && b || b && !m.isFunction(b) && b
        };
        return d.duration = m.fx.off ? 0 : 'number' == typeof d.duration ? d.duration : d.duration in m.fx.speeds ? m.fx.speeds[d.duration] : m.fx.speeds._default,
        (null == d.queue || d.queue === !0) && (d.queue = 'fx'),
        d.old = d.complete,
        d.complete = function () {
          m.isFunction(d.old) && d.old.call(this),
          d.queue && m.dequeue(this, d.queue)
        },
        d
      },
      m.fn.extend({
        fadeTo: function (a, b, c, d) {
          return this.filter(U).css('opacity', 0).show().end().animate({
            opacity: b
          }, a, c, d)
        },
        animate: function (a, b, c, d) {
          var e = m.isEmptyObject(a),
          f = m.speed(b, c, d),
          g = function () {
            var b = kb(this, m.extend({
            }, a), f);
            (e || m._data(this, 'finish')) && b.stop(!0)
          };
          return g.finish = g,
          e || f.queue === !1 ? this.each(g)  : this.queue(f.queue, g)
        },
        stop: function (a, b, c) {
          var d = function (a) {
            var b = a.stop;
            delete a.stop,
            b(c)
          };
          return 'string' != typeof a && (c = b, b = a, a = void 0),
          b && a !== !1 && this.queue(a || 'fx', [
          ]),
          this.each(function () {
            var b = !0,
            e = null != a && a + 'queueHooks',
            f = m.timers,
            g = m._data(this);
            if (e) g[e] && g[e].stop && d(g[e]);
             else for (e in g) g[e] && g[e].stop && cb.test(e) && d(g[e]);
            for (e = f.length; e--; ) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
            (b || !c) && m.dequeue(this, a)
          })
        },
        finish: function (a) {
          return a !== !1 && (a = a || 'fx'),
          this.each(function () {
            var b,
            c = m._data(this),
            d = c[a + 'queue'],
            e = c[a + 'queueHooks'],
            f = m.timers,
            g = d ? d.length : 0;
            for (c.finish = !0, m.queue(this, a, [
            ]), e && e.stop && e.stop.call(this, !0), b = f.length; b--; ) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
            for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
            delete c.finish
          })
        }
      }),
      m.each(['toggle',
      'show',
      'hide'], function (a, b) {
        var c = m.fn[b];
        m.fn[b] = function (a, d, e) {
          return null == a || 'boolean' == typeof a ? c.apply(this, arguments)  : this.animate(gb(b, !0), a, d, e)
        }
      }),
      m.each({
        slideDown: gb('show'),
        slideUp: gb('hide'),
        slideToggle: gb('toggle'),
        fadeIn: {
          opacity: 'show'
        },
        fadeOut: {
          opacity: 'hide'
        },
        fadeToggle: {
          opacity: 'toggle'
        }
      }, function (a, b) {
        m.fn[a] = function (a, c, d) {
          return this.animate(b, a, c, d)
        }
      }),
      m.timers = [
      ],
      m.fx.tick = function () {
        var a,
        b = m.timers,
        c = 0;
        for ($a = m.now(); c < b.length; c++) a = b[c],
        a() || b[c] !== a || b.splice(c--, 1);
        b.length || m.fx.stop(),
        $a = void 0
      },
      m.fx.timer = function (a) {
        m.timers.push(a),
        a() ? m.fx.start()  : m.timers.pop()
      },
      m.fx.interval = 13,
      m.fx.start = function () {
        _a || (_a = setInterval(m.fx.tick, m.fx.interval))
      },
      m.fx.stop = function () {
        clearInterval(_a),
        _a = null
      },
      m.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
      },
      m.fn.delay = function (a, b) {
        return a = m.fx ? m.fx.speeds[a] || a : a,
        b = b || 'fx',
        this.queue(b, function (b, c) {
          var d = setTimeout(b, a);
          c.stop = function () {
            clearTimeout(d)
          }
        })
      },
      function () {
        var a,
        b,
        c,
        d,
        e;
        b = y.createElement('div'),
        b.setAttribute('className', 't'),
        b.innerHTML = '  <link/><table></table><a href=\'/a\'>a</a><input type=\'checkbox\'/>',
        d = b.getElementsByTagName('a') [0],
        c = y.createElement('select'),
        e = c.appendChild(y.createElement('option')),
        a = b.getElementsByTagName('input') [0],
        d.style.cssText = 'top:1px',
        k.getSetAttribute = 't' !== b.className,
        k.style = /top/.test(d.getAttribute('style')),
        k.hrefNormalized = '/a' === d.getAttribute('href'),
        k.checkOn = !!a.value,
        k.optSelected = e.selected,
        k.enctype = !!y.createElement('form').enctype,
        c.disabled = !0,
        k.optDisabled = !e.disabled,
        a = y.createElement('input'),
        a.setAttribute('value', ''),
        k.input = '' === a.getAttribute('value'),
        a.value = 't',
        a.setAttribute('type', 'radio'),
        k.radioValue = 't' === a.value
      }();
      var lb = /\r/g;
      m.fn.extend({
        val: function (a) {
          var b,
          c,
          d,
          e = this[0];
          {
            if (arguments.length) return d = m.isFunction(a),
            this.each(function (c) {
              var e;
              1 === this.nodeType && (e = d ? a.call(this, c, m(this).val())  : a, null == e ? e = '' : 'number' == typeof e ? e += '' : m.isArray(e) && (e = m.map(e, function (a) {
                return null == a ? '' : a + ''
              })), b = m.valHooks[this.type] || m.valHooks[this.nodeName.toLowerCase()], b && 'set' in b && void 0 !== b.set(this, e, 'value') || (this.value = e))
            });
            if (e) return b = m.valHooks[e.type] || m.valHooks[e.nodeName.toLowerCase()],
            b && 'get' in b && void 0 !== (c = b.get(e, 'value')) ? c : (c = e.value, 'string' == typeof c ? c.replace(lb, '')  : null == c ? '' : c)
          }
        }
      }),
      m.extend({
        valHooks: {
          option: {
            get: function (a) {
              var b = m.find.attr(a, 'value');
              return null != b ? b : m.trim(m.text(a))
            }
          },
          select: {
            get: function (a) {
              for (var b, c, d = a.options, e = a.selectedIndex, f = 'select-one' === a.type || 0 > e, g = f ? null : [
              ], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++) if (c = d[i], !(!c.selected && i !== e || (k.optDisabled ? c.disabled : null !== c.getAttribute('disabled')) || c.parentNode.disabled && m.nodeName(c.parentNode, 'optgroup'))) {
                if (b = m(c).val(), f) return b;
                g.push(b)
              }
              return g
            },
            set: function (a, b) {
              var c,
              d,
              e = a.options,
              f = m.makeArray(b),
              g = e.length;
              while (g--) if (d = e[g], m.inArray(m.valHooks.option.get(d), f) >= 0) try {
                d.selected = c = !0
              } catch (h) {
                d.scrollHeight
              } else d.selected = !1;
              return c || (a.selectedIndex = - 1),
              e
            }
          }
        }
      }),
      m.each(['radio',
      'checkbox'], function () {
        m.valHooks[this] = {
          set: function (a, b) {
            return m.isArray(b) ? a.checked = m.inArray(m(a).val(), b) >= 0 : void 0
          }
        },
        k.checkOn || (m.valHooks[this].get = function (a) {
          return null === a.getAttribute('value') ? 'on' : a.value
        })
      });
      var mb,
      nb,
      ob = m.expr.attrHandle,
      pb = /^(?:checked|selected)$/i,
      qb = k.getSetAttribute,
      rb = k.input;
      m.fn.extend({
        attr: function (a, b) {
          return V(this, m.attr, a, b, arguments.length > 1)
        },
        removeAttr: function (a) {
          return this.each(function () {
            m.removeAttr(this, a)
          })
        }
      }),
      m.extend({
        attr: function (a, b, c) {
          var d,
          e,
          f = a.nodeType;
          if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === K ? m.prop(a, b, c)  : (1 === f && m.isXMLDoc(a) || (b = b.toLowerCase(), d = m.attrHooks[b] || (m.expr.match.bool.test(b) ? nb : mb)), void 0 === c ? d && 'get' in d && null !== (e = d.get(a, b)) ? e : (e = m.find.attr(a, b), null == e ? void 0 : e)  : null !== c ? d && 'set' in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ''), c)  : void m.removeAttr(a, b))
        },
        removeAttr: function (a, b) {
          var c,
          d,
          e = 0,
          f = b && b.match(E);
          if (f && 1 === a.nodeType) while (c = f[e++]) d = m.propFix[c] || c,
          m.expr.match.bool.test(c) ? rb && qb || !pb.test(c) ? a[d] = !1 : a[m.camelCase('default-' + c)] = a[d] = !1 : m.attr(a, c, ''),
          a.removeAttribute(qb ? c : d)
        },
        attrHooks: {
          type: {
            set: function (a, b) {
              if (!k.radioValue && 'radio' === b && m.nodeName(a, 'input')) {
                var c = a.value;
                return a.setAttribute('type', b),
                c && (a.value = c),
                b
              }
            }
          }
        }
      }),
      nb = {
        set: function (a, b, c) {
          return b === !1 ? m.removeAttr(a, c)  : rb && qb || !pb.test(c) ? a.setAttribute(!qb && m.propFix[c] || c, c)  : a[m.camelCase('default-' + c)] = a[c] = !0,
          c
        }
      },
      m.each(m.expr.match.bool.source.match(/\w+/g), function (a, b) {
        var c = ob[b] || m.find.attr;
        ob[b] = rb && qb || !pb.test(b) ? function (a, b, d) {
          var e,
          f;
          return d || (f = ob[b], ob[b] = e, e = null != c(a, b, d) ? b.toLowerCase()  : null, ob[b] = f),
          e
        }
         : function (a, b, c) {
          return c ? void 0 : a[m.camelCase('default-' + b)] ? b.toLowerCase()  : null
        }
      }),
      rb && qb || (m.attrHooks.value = {
        set: function (a, b, c) {
          return m.nodeName(a, 'input') ? void (a.defaultValue = b)  : mb && mb.set(a, b, c)
        }
      }),
      qb || (mb = {
        set: function (a, b, c) {
          var d = a.getAttributeNode(c);
          return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)),
          d.value = b += '',
          'value' === c || b === a.getAttribute(c) ? b : void 0
        }
      }, ob.id = ob.name = ob.coords = function (a, b, c) {
        var d;
        return c ? void 0 : (d = a.getAttributeNode(b)) && '' !== d.value ? d.value : null
      }, m.valHooks.button = {
        get: function (a, b) {
          var c = a.getAttributeNode(b);
          return c && c.specified ? c.value : void 0
        },
        set: mb.set
      }, m.attrHooks.contenteditable = {
        set: function (a, b, c) {
          mb.set(a, '' === b ? !1 : b, c)
        }
      }, m.each(['width',
      'height'], function (a, b) {
        m.attrHooks[b] = {
          set: function (a, c) {
            return '' === c ? (a.setAttribute(b, 'auto'), c)  : void 0
          }
        }
      })),
      k.style || (m.attrHooks.style = {
        get: function (a) {
          return a.style.cssText || void 0
        },
        set: function (a, b) {
          return a.style.cssText = b + ''
        }
      });
      var sb = /^(?:input|select|textarea|button|object)$/i,
      tb = /^(?:a|area)$/i;
      m.fn.extend({
        prop: function (a, b) {
          return V(this, m.prop, a, b, arguments.length > 1)
        },
        removeProp: function (a) {
          return a = m.propFix[a] || a,
          this.each(function () {
            try {
              this[a] = void 0,
              delete this[a]
            } catch (b) {
            }
          })
        }
      }),
      m.extend({
        propFix: {
          'for': 'htmlFor',
          'class': 'className'
        },
        prop: function (a, b, c) {
          var d,
          e,
          f,
          g = a.nodeType;
          if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !m.isXMLDoc(a),
          f && (b = m.propFix[b] || b, e = m.propHooks[b]),
          void 0 !== c ? e && 'set' in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && 'get' in e && null !== (d = e.get(a, b)) ? d : a[b]
        },
        propHooks: {
          tabIndex: {
            get: function (a) {
              var b = m.find.attr(a, 'tabindex');
              return b ? parseInt(b, 10)  : sb.test(a.nodeName) || tb.test(a.nodeName) && a.href ? 0 : - 1
            }
          }
        }
      }),
      k.hrefNormalized || m.each(['href',
      'src'], function (a, b) {
        m.propHooks[b] = {
          get: function (a) {
            return a.getAttribute(b, 4)
          }
        }
      }),
      k.optSelected || (m.propHooks.selected = {
        get: function (a) {
          var b = a.parentNode;
          return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex),
          null
        }
      }),
      m.each(['tabIndex',
      'readOnly',
      'maxLength',
      'cellSpacing',
      'cellPadding',
      'rowSpan',
      'colSpan',
      'useMap',
      'frameBorder',
      'contentEditable'], function () {
        m.propFix[this.toLowerCase()] = this
      }),
      k.enctype || (m.propFix.enctype = 'encoding');
      var ub = /[\t\r\n\f]/g;
      m.fn.extend({
        addClass: function (a) {
          var b,
          c,
          d,
          e,
          f,
          g,
          h = 0,
          i = this.length,
          j = 'string' == typeof a && a;
          if (m.isFunction(a)) return this.each(function (b) {
            m(this).addClass(a.call(this, b, this.className))
          });
          if (j) for (b = (a || '').match(E) || []; i > h; h++) if (c = this[h], d = 1 === c.nodeType && (c.className ? (' ' + c.className + ' ').replace(ub, ' ')  : ' ')) {
            f = 0;
            while (e = b[f++]) d.indexOf(' ' + e + ' ') < 0 && (d += e + ' ');
            g = m.trim(d),
            c.className !== g && (c.className = g)
          }
          return this
        },
        removeClass: function (a) {
          var b,
          c,
          d,
          e,
          f,
          g,
          h = 0,
          i = this.length,
          j = 0 === arguments.length || 'string' == typeof a && a;
          if (m.isFunction(a)) return this.each(function (b) {
            m(this).removeClass(a.call(this, b, this.className))
          });
          if (j) for (b = (a || '').match(E) || []; i > h; h++) if (c = this[h], d = 1 === c.nodeType && (c.className ? (' ' + c.className + ' ').replace(ub, ' ')  : '')) {
            f = 0;
            while (e = b[f++]) while (d.indexOf(' ' + e + ' ') >= 0) d = d.replace(' ' + e + ' ', ' ');
            g = a ? m.trim(d)  : '',
            c.className !== g && (c.className = g)
          }
          return this
        },
        toggleClass: function (a, b) {
          var c = typeof a;
          return 'boolean' == typeof b && 'string' === c ? b ? this.addClass(a)  : this.removeClass(a)  : this.each(m.isFunction(a) ? function (c) {
            m(this).toggleClass(a.call(this, c, this.className, b), b)
          }
           : function () {
            if ('string' === c) {
              var b,
              d = 0,
              e = m(this),
              f = a.match(E) || [];
              while (b = f[d++]) e.hasClass(b) ? e.removeClass(b)  : e.addClass(b)
            } else (c === K || 'boolean' === c) && (this.className && m._data(this, '__className__', this.className), this.className = this.className || a === !1 ? '' : m._data(this, '__className__') || '')
          })
        },
        hasClass: function (a) {
          for (var b = ' ' + a + ' ', c = 0, d = this.length; d > c; c++) if (1 === this[c].nodeType && (' ' + this[c].className + ' ').replace(ub, ' ').indexOf(b) >= 0) return !0;
          return !1
        }
      }),
      m.each('blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu'.split(' '), function (a, b) {
        m.fn[b] = function (a, c) {
          return arguments.length > 0 ? this.on(b, null, a, c)  : this.trigger(b)
        }
      }),
      m.fn.extend({
        hover: function (a, b) {
          return this.mouseenter(a).mouseleave(b || a)
        },
        bind: function (a, b, c) {
          return this.on(a, null, b, c)
        },
        unbind: function (a, b) {
          return this.off(a, null, b)
        },
        delegate: function (a, b, c, d) {
          return this.on(b, a, c, d)
        },
        undelegate: function (a, b, c) {
          return 1 === arguments.length ? this.off(a, '**')  : this.off(b, a || '**', c)
        }
      });
      var vb = m.now(),
      wb = /\?/,
      xb = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
      m.parseJSON = function (b) {
        if (a.JSON && a.JSON.parse) return a.JSON.parse(b + '');
        var c,
        d = null,
        e = m.trim(b + '');
        return e && !m.trim(e.replace(xb, function (a, b, e, f) {
          return c && b && (d = 0),
          0 === d ? a : (c = e || b, d += !f - !e, '')
        })) ? Function('return ' + e) ()  : m.error('Invalid JSON: ' + b)
      },
      m.parseXML = function (b) {
        var c,
        d;
        if (!b || 'string' != typeof b) return null;
        try {
          a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, 'text/xml'))  : (c = new ActiveXObject('Microsoft.XMLDOM'), c.async = 'false', c.loadXML(b))
        } catch (e) {
          c = void 0
        }
        return c && c.documentElement && !c.getElementsByTagName('parsererror').length || m.error('Invalid XML: ' + b),
        c
      };
      var yb,
      zb,
      Ab = /#.*$/,
      Bb = /([?&])_=[^&]*/,
      Cb = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
      Db = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
      Eb = /^(?:GET|HEAD)$/,
      Fb = /^\/\//,
      Gb = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
      Hb = {
      },
      Ib = {
      },
      Jb = '*/'.concat('*');
      try {
        zb = location.href
      } catch (Kb) {
        zb = y.createElement('a'),
        zb.href = '',
        zb = zb.href
      }
      yb = Gb.exec(zb.toLowerCase()) || [];
      function Lb(a) {
        return function (b, c) {
          'string' != typeof b && (c = b, b = '*');
          var d,
          e = 0,
          f = b.toLowerCase().match(E) || [];
          if (m.isFunction(c)) while (d = f[e++]) '+' === d.charAt(0) ? (d = d.slice(1) || '*', (a[d] = a[d] || []).unshift(c))  : (a[d] = a[d] || []).push(c)
        }
      }
      function Mb(a, b, c, d) {
        var e = {
        },
        f = a === Ib;
        function g(h) {
          var i;
          return e[h] = !0,
          m.each(a[h] || [], function (a, h) {
            var j = h(b, c, d);
            return 'string' != typeof j || f || e[j] ? f ? !(i = j)  : void 0 : (b.dataTypes.unshift(j), g(j), !1)
          }),
          i
        }
        return g(b.dataTypes[0]) || !e['*'] && g('*')
      }
      function Nb(a, b) {
        var c,
        d,
        e = m.ajaxSettings.flatOptions || {
        };
        for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {
        })) [d] = b[d]);
        return c && m.extend(!0, a, c),
        a
      }
      function Ob(a, b, c) {
        var d,
        e,
        f,
        g,
        h = a.contents,
        i = a.dataTypes;
        while ('*' === i[0]) i.shift(),
        void 0 === e && (e = a.mimeType || b.getResponseHeader('Content-Type'));
        if (e) for (g in h) if (h[g] && h[g].test(e)) {
          i.unshift(g);
          break
        }
        if (i[0] in c) f = i[0];
         else {
          for (g in c) {
            if (!i[0] || a.converters[g + ' ' + i[0]]) {
              f = g;
              break
            }
            d || (d = g)
          }
          f = f || d
        }
        return f ? (f !== i[0] && i.unshift(f), c[f])  : void 0
      }
      function Pb(a, b, c, d) {
        var e,
        f,
        g,
        h,
        i,
        j = {
        },
        k = a.dataTypes.slice();
        if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
        f = k.shift();
        while (f) if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if ('*' === f) f = i;
         else if ('*' !== i && i !== f) {
          if (g = j[i + ' ' + f] || j['* ' + f], !g) for (e in j) if (h = e.split(' '), h[1] === f && (g = j[i + ' ' + h[0]] || j['* ' + h[0]])) {
            g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
            break
          }
          if (g !== !0) if (g && a['throws']) b = g(b);
           else try {
            b = g(b)
          } catch (l) {
            return {
              state: 'parsererror',
              error: g ? l : 'No conversion from ' + i + ' to ' + f
            }
          }
        }
        return {
          state: 'success',
          data: b
        }
      }
      m.extend({
        active: 0,
        lastModified: {
        },
        etag: {
        },
        ajaxSettings: {
          url: zb,
          type: 'GET',
          isLocal: Db.test(yb[1]),
          global: !0,
          processData: !0,
          async: !0,
          contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
          accepts: {
            '*': Jb,
            text: 'text/plain',
            html: 'text/html',
            xml: 'application/xml, text/xml',
            json: 'application/json, text/javascript'
          },
          contents: {
            xml: /xml/,
            html: /html/,
            json: /json/
          },
          responseFields: {
            xml: 'responseXML',
            text: 'responseText',
            json: 'responseJSON'
          },
          converters: {
            '* text': String,
            'text html': !0,
            'text json': m.parseJSON,
            'text xml': m.parseXML
          },
          flatOptions: {
            url: !0,
            context: !0
          }
        },
        ajaxSetup: function (a, b) {
          return b ? Nb(Nb(a, m.ajaxSettings), b)  : Nb(m.ajaxSettings, a)
        },
        ajaxPrefilter: Lb(Hb),
        ajaxTransport: Lb(Ib),
        ajax: function (a, b) {
          'object' == typeof a && (b = a, a = void 0),
          b = b || {
          };
          var c,
          d,
          e,
          f,
          g,
          h,
          i,
          j,
          k = m.ajaxSetup({
          }, b),
          l = k.context || k,
          n = k.context && (l.nodeType || l.jquery) ? m(l)  : m.event,
          o = m.Deferred(),
          p = m.Callbacks('once memory'),
          q = k.statusCode || {
          },
          r = {
          },
          s = {
          },
          t = 0,
          u = 'canceled',
          v = {
            readyState: 0,
            getResponseHeader: function (a) {
              var b;
              if (2 === t) {
                if (!j) {
                  j = {
                  };
                  while (b = Cb.exec(f)) j[b[1].toLowerCase()] = b[2]
                }
                b = j[a.toLowerCase()]
              }
              return null == b ? null : b
            },
            getAllResponseHeaders: function () {
              return 2 === t ? f : null
            },
            setRequestHeader: function (a, b) {
              var c = a.toLowerCase();
              return t || (a = s[c] = s[c] || a, r[a] = b),
              this
            },
            overrideMimeType: function (a) {
              return t || (k.mimeType = a),
              this
            },
            statusCode: function (a) {
              var b;
              if (a) if (2 > t) for (b in a) q[b] = [
                q[b],
                a[b]
              ];
               else v.always(a[v.status]);
              return this
            },
            abort: function (a) {
              var b = a || u;
              return i && i.abort(b),
              x(0, b),
              this
            }
          };
          if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || zb) + '').replace(Ab, '').replace(Fb, yb[1] + '//'), k.type = b.method || b.type || k.method || k.type, k.dataTypes = m.trim(k.dataType || '*').toLowerCase().match(E) || [''], null == k.crossDomain && (c = Gb.exec(k.url.toLowerCase()), k.crossDomain = !(!c || c[1] === yb[1] && c[2] === yb[2] && (c[3] || ('http:' === c[1] ? '80' : '443')) === (yb[3] || ('http:' === yb[1] ? '80' : '443')))), k.data && k.processData && 'string' != typeof k.data && (k.data = m.param(k.data, k.traditional)), Mb(Hb, k, b, v), 2 === t) return v;
          h = m.event && k.global,
          h && 0 === m.active++ && m.event.trigger('ajaxStart'),
          k.type = k.type.toUpperCase(),
          k.hasContent = !Eb.test(k.type),
          e = k.url,
          k.hasContent || (k.data && (e = k.url += (wb.test(e) ? '&' : '?') + k.data, delete k.data), k.cache === !1 && (k.url = Bb.test(e) ? e.replace(Bb, '$1_=' + vb++)  : e + (wb.test(e) ? '&' : '?') + '_=' + vb++)),
          k.ifModified && (m.lastModified[e] && v.setRequestHeader('If-Modified-Since', m.lastModified[e]), m.etag[e] && v.setRequestHeader('If-None-Match', m.etag[e])),
          (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader('Content-Type', k.contentType),
          v.setRequestHeader('Accept', k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ('*' !== k.dataTypes[0] ? ', ' + Jb + '; q=0.01' : '')  : k.accepts['*']);
          for (d in k.headers) v.setRequestHeader(d, k.headers[d]);
          if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort();
          u = 'abort';
          for (d in {
            success: 1,
            error: 1,
            complete: 1
          }) v[d](k[d]);
          if (i = Mb(Ib, k, b, v)) {
            v.readyState = 1,
            h && n.trigger('ajaxSend', [
              v,
              k
            ]),
            k.async && k.timeout > 0 && (g = setTimeout(function () {
              v.abort('timeout')
            }, k.timeout));
            try {
              t = 1,
              i.send(r, x)
            } catch (w) {
              if (!(2 > t)) throw w;
              x( - 1, w)
            }
          } else x( - 1, 'No Transport');
          function x(a, b, c, d) {
            var j,
            r,
            s,
            u,
            w,
            x = b;
            2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || '', v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Ob(k, v, c)), u = Pb(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader('Last-Modified'), w && (m.lastModified[e] = w), w = v.getResponseHeader('etag'), w && (m.etag[e] = w)), 204 === a || 'HEAD' === k.type ? x = 'nocontent' : 304 === a ? x = 'notmodified' : (x = u.state, r = u.data, s = u.error, j = !s))  : (s = x, (a || !x) && (x = 'error', 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + '', j ? o.resolveWith(l, [
              r,
              x,
              v
            ])  : o.rejectWith(l, [
              v,
              x,
              s
            ]), v.statusCode(q), q = void 0, h && n.trigger(j ? 'ajaxSuccess' : 'ajaxError', [
              v,
              k,
              j ? r : s
            ]), p.fireWith(l, [
              v,
              x
            ]), h && (n.trigger('ajaxComplete', [
              v,
              k
            ]), --m.active || m.event.trigger('ajaxStop')))
          }
          return v
        },
        getJSON: function (a, b, c) {
          return m.get(a, b, c, 'json')
        },
        getScript: function (a, b) {
          return m.get(a, void 0, b, 'script')
        }
      }),
      m.each(['get',
      'post'], function (a, b) {
        m[b] = function (a, c, d, e) {
          return m.isFunction(c) && (e = e || d, d = c, c = void 0),
          m.ajax({
            url: a,
            type: b,
            dataType: e,
            data: c,
            success: d
          })
        }
      }),
      m._evalUrl = function (a) {
        return m.ajax({
          url: a,
          type: 'GET',
          dataType: 'script',
          async: !1,
          global: !1,
          'throws': !0
        })
      },
      m.fn.extend({
        wrapAll: function (a) {
          if (m.isFunction(a)) return this.each(function (b) {
            m(this).wrapAll(a.call(this, b))
          });
          if (this[0]) {
            var b = m(a, this[0].ownerDocument).eq(0).clone(!0);
            this[0].parentNode && b.insertBefore(this[0]),
            b.map(function () {
              var a = this;
              while (a.firstChild && 1 === a.firstChild.nodeType) a = a.firstChild;
              return a
            }).append(this)
          }
          return this
        },
        wrapInner: function (a) {
          return this.each(m.isFunction(a) ? function (b) {
            m(this).wrapInner(a.call(this, b))
          }
           : function () {
            var b = m(this),
            c = b.contents();
            c.length ? c.wrapAll(a)  : b.append(a)
          })
        },
        wrap: function (a) {
          var b = m.isFunction(a);
          return this.each(function (c) {
            m(this).wrapAll(b ? a.call(this, c)  : a)
          })
        },
        unwrap: function () {
          return this.parent().each(function () {
            m.nodeName(this, 'body') || m(this).replaceWith(this.childNodes)
          }).end()
        }
      }),
      m.expr.filters.hidden = function (a) {
        return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !k.reliableHiddenOffsets() && 'none' === (a.style && a.style.display || m.css(a, 'display'))
      },
      m.expr.filters.visible = function (a) {
        return !m.expr.filters.hidden(a)
      };
      var Qb = /%20/g,
      Rb = /\[\]$/,
      Sb = /\r?\n/g,
      Tb = /^(?:submit|button|image|reset|file)$/i,
      Ub = /^(?:input|select|textarea|keygen)/i;
      function Vb(a, b, c, d) {
        var e;
        if (m.isArray(b)) m.each(b, function (b, e) {
          c || Rb.test(a) ? d(a, e)  : Vb(a + '[' + ('object' == typeof e ? b : '') + ']', e, c, d)
        });
         else if (c || 'object' !== m.type(b)) d(a, b);
         else for (e in b) Vb(a + '[' + e + ']', b[e], c, d)
      }
      m.param = function (a, b) {
        var c,
        d = [
        ],
        e = function (a, b) {
          b = m.isFunction(b) ? b()  : null == b ? '' : b,
          d[d.length] = encodeURIComponent(a) + '=' + encodeURIComponent(b)
        };
        if (void 0 === b && (b = m.ajaxSettings && m.ajaxSettings.traditional), m.isArray(a) || a.jquery && !m.isPlainObject(a)) m.each(a, function () {
          e(this.name, this.value)
        });
         else for (c in a) Vb(c, a[c], b, e);
        return d.join('&').replace(Qb, '+')
      },
      m.fn.extend({
        serialize: function () {
          return m.param(this.serializeArray())
        },
        serializeArray: function () {
          return this.map(function () {
            var a = m.prop(this, 'elements');
            return a ? m.makeArray(a)  : this
          }).filter(function () {
            var a = this.type;
            return this.name && !m(this).is(':disabled') && Ub.test(this.nodeName) && !Tb.test(a) && (this.checked || !W.test(a))
          }).map(function (a, b) {
            var c = m(this).val();
            return null == c ? null : m.isArray(c) ? m.map(c, function (a) {
              return {
                name: b.name,
                value: a.replace(Sb, '\r\n')
              }
            })  : {
              name: b.name,
              value: c.replace(Sb, '\r\n')
            }
          }).get()
        }
      }),
      m.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function () {
        return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && Zb() || $b()
      }
       : Zb;
      var Wb = 0,
      Xb = {
      },
      Yb = m.ajaxSettings.xhr();
      a.attachEvent && a.attachEvent('onunload', function () {
        for (var a in Xb) Xb[a](void 0, !0)
      }),
      k.cors = !!Yb && 'withCredentials' in Yb,
      Yb = k.ajax = !!Yb,
      Yb && m.ajaxTransport(function (a) {
        if (!a.crossDomain || k.cors) {
          var b;
          return {
            send: function (c, d) {
              var e,
              f = a.xhr(),
              g = ++Wb;
              if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) for (e in a.xhrFields) f[e] = a.xhrFields[e];
              a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType),
              a.crossDomain || c['X-Requested-With'] || (c['X-Requested-With'] = 'XMLHttpRequest');
              for (e in c) void 0 !== c[e] && f.setRequestHeader(e, c[e] + '');
              f.send(a.hasContent && a.data || null),
              b = function (c, e) {
                var h,
                i,
                j;
                if (b && (e || 4 === f.readyState)) if (delete Xb[g], b = void 0, f.onreadystatechange = m.noop, e) 4 !== f.readyState && f.abort();
                 else {
                  j = {
                  },
                  h = f.status,
                  'string' == typeof f.responseText && (j.text = f.responseText);
                  try {
                    i = f.statusText
                  } catch (k) {
                    i = ''
                  }
                  h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204)  : h = j.text ? 200 : 404
                }
                j && d(h, i, j, f.getAllResponseHeaders())
              },
              a.async ? 4 === f.readyState ? setTimeout(b)  : f.onreadystatechange = Xb[g] = b : b()
            },
            abort: function () {
              b && b(void 0, !0)
            }
          }
        }
      });
      function Zb() {
        try {
          return new a.XMLHttpRequest
        } catch (b) {
        }
      }
      function $b() {
        try {
          return new a.ActiveXObject('Microsoft.XMLHTTP')
        } catch (b) {
        }
      }
      m.ajaxSetup({
        accepts: {
          script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'
        },
        contents: {
          script: /(?:java|ecma)script/
        },
        converters: {
          'text script': function (a) {
            return m.globalEval(a),
            a
          }
        }
      }),
      m.ajaxPrefilter('script', function (a) {
        void 0 === a.cache && (a.cache = !1),
        a.crossDomain && (a.type = 'GET', a.global = !1)
      }),
      m.ajaxTransport('script', function (a) {
        if (a.crossDomain) {
          var b,
          c = y.head || m('head') [0] || y.documentElement;
          return {
            send: function (d, e) {
              b = y.createElement('script'),
              b.async = !0,
              a.scriptCharset && (b.charset = a.scriptCharset),
              b.src = a.url,
              b.onload = b.onreadystatechange = function (a, c) {
                (c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, 'success'))
              },
              c.insertBefore(b, c.firstChild)
            },
            abort: function () {
              b && b.onload(void 0, !0)
            }
          }
        }
      });
      var _b = [
      ],
      ac = /(=)\?(?=&|$)|\?\?/;
      m.ajaxSetup({
        jsonp: 'callback',
        jsonpCallback: function () {
          var a = _b.pop() || m.expando + '_' + vb++;
          return this[a] = !0,
          a
        }
      }),
      m.ajaxPrefilter('json jsonp', function (b, c, d) {
        var e,
        f,
        g,
        h = b.jsonp !== !1 && (ac.test(b.url) ? 'url' : 'string' == typeof b.data && !(b.contentType || '').indexOf('application/x-www-form-urlencoded') && ac.test(b.data) && 'data');
        return h || 'jsonp' === b.dataTypes[0] ? (e = b.jsonpCallback = m.isFunction(b.jsonpCallback) ? b.jsonpCallback()  : b.jsonpCallback, h ? b[h] = b[h].replace(ac, '$1' + e)  : b.jsonp !== !1 && (b.url += (wb.test(b.url) ? '&' : '?') + b.jsonp + '=' + e), b.converters['script json'] = function () {
          return g || m.error(e + ' was not called'),
          g[0]
        }, b.dataTypes[0] = 'json', f = a[e], a[e] = function () {
          g = arguments
        }, d.always(function () {
          a[e] = f,
          b[e] && (b.jsonpCallback = c.jsonpCallback, _b.push(e)),
          g && m.isFunction(f) && f(g[0]),
          g = f = void 0
        }), 'script')  : void 0
      }),
      m.parseHTML = function (a, b, c) {
        if (!a || 'string' != typeof a) return null;
        'boolean' == typeof b && (c = b, b = !1),
        b = b || y;
        var d = u.exec(a),
        e = !c && [];
        return d ? [
          b.createElement(d[1])
        ] : (d = m.buildFragment([a], b, e), e && e.length && m(e).remove(), m.merge([], d.childNodes))
      };
      var bc = m.fn.load;
      m.fn.load = function (a, b, c) {
        if ('string' != typeof a && bc) return bc.apply(this, arguments);
        var d,
        e,
        f,
        g = this,
        h = a.indexOf(' ');
        return h >= 0 && (d = m.trim(a.slice(h, a.length)), a = a.slice(0, h)),
        m.isFunction(b) ? (c = b, b = void 0)  : b && 'object' == typeof b && (f = 'POST'),
        g.length > 0 && m.ajax({
          url: a,
          type: f,
          dataType: 'html',
          data: b
        }).done(function (a) {
          e = arguments,
          g.html(d ? m('<div>').append(m.parseHTML(a)).find(d)  : a)
        }).complete(c && function (a, b) {
          g.each(c, e || [a.responseText,
          b,
          a])
        }),
        this
      },
      m.each(['ajaxStart',
      'ajaxStop',
      'ajaxComplete',
      'ajaxError',
      'ajaxSuccess',
      'ajaxSend'], function (a, b) {
        m.fn[b] = function (a) {
          return this.on(b, a)
        }
      }),
      m.expr.filters.animated = function (a) {
        return m.grep(m.timers, function (b) {
          return a === b.elem
        }).length
      };
      var cc = a.document.documentElement;
      function dc(a) {
        return m.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1
      }
      m.offset = {
        setOffset: function (a, b, c) {
          var d,
          e,
          f,
          g,
          h,
          i,
          j,
          k = m.css(a, 'position'),
          l = m(a),
          n = {
          };
          'static' === k && (a.style.position = 'relative'),
          h = l.offset(),
          f = m.css(a, 'top'),
          i = m.css(a, 'left'),
          j = ('absolute' === k || 'fixed' === k) && m.inArray('auto', [
            f,
            i
          ]) > - 1,
          j ? (d = l.position(), g = d.top, e = d.left)  : (g = parseFloat(f) || 0, e = parseFloat(i) || 0),
          m.isFunction(b) && (b = b.call(a, c, h)),
          null != b.top && (n.top = b.top - h.top + g),
          null != b.left && (n.left = b.left - h.left + e),
          'using' in b ? b.using.call(a, n)  : l.css(n)
        }
      },
      m.fn.extend({
        offset: function (a) {
          if (arguments.length) return void 0 === a ? this : this.each(function (b) {
            m.offset.setOffset(this, a, b)
          });
          var b,
          c,
          d = {
            top: 0,
            left: 0
          },
          e = this[0],
          f = e && e.ownerDocument;
          if (f) return b = f.documentElement,
          m.contains(b, e) ? (typeof e.getBoundingClientRect !== K && (d = e.getBoundingClientRect()), c = dc(f), {
            top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0),
            left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0)
          })  : d
        },
        position: function () {
          if (this[0]) {
            var a,
            b,
            c = {
              top: 0,
              left: 0
            },
            d = this[0];
            return 'fixed' === m.css(d, 'position') ? b = d.getBoundingClientRect()  : (a = this.offsetParent(), b = this.offset(), m.nodeName(a[0], 'html') || (c = a.offset()), c.top += m.css(a[0], 'borderTopWidth', !0), c.left += m.css(a[0], 'borderLeftWidth', !0)),
            {
              top: b.top - c.top - m.css(d, 'marginTop', !0),
              left: b.left - c.left - m.css(d, 'marginLeft', !0)
            }
          }
        },
        offsetParent: function () {
          return this.map(function () {
            var a = this.offsetParent || cc;
            while (a && !m.nodeName(a, 'html') && 'static' === m.css(a, 'position')) a = a.offsetParent;
            return a || cc
          })
        }
      }),
      m.each({
        scrollLeft: 'pageXOffset',
        scrollTop: 'pageYOffset'
      }, function (a, b) {
        var c = /Y/.test(b);
        m.fn[a] = function (d) {
          return V(this, function (a, d, e) {
            var f = dc(a);
            return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void (f ? f.scrollTo(c ? m(f).scrollLeft()  : e, c ? e : m(f).scrollTop())  : a[d] = e)
          }, a, d, arguments.length, null)
        }
      }),
      m.each(['top',
      'left'], function (a, b) {
        m.cssHooks[b] = La(k.pixelPosition, function (a, c) {
          return c ? (c = Ja(a, b), Ha.test(c) ? m(a).position() [b] + 'px' : c)  : void 0
        })
      }),
      m.each({
        Height: 'height',
        Width: 'width'
      }, function (a, b) {
        m.each({
          padding: 'inner' + a,
          content: b,
          '': 'outer' + a
        }, function (c, d) {
          m.fn[d] = function (d, e) {
            var f = arguments.length && (c || 'boolean' != typeof d),
            g = c || (d === !0 || e === !0 ? 'margin' : 'border');
            return V(this, function (b, c, d) {
              var e;
              return m.isWindow(b) ? b.document.documentElement['client' + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body['scroll' + a], e['scroll' + a], b.body['offset' + a], e['offset' + a], e['client' + a]))  : void 0 === d ? m.css(b, c, g)  : m.style(b, c, d, g)
            }, b, f ? d : void 0, f, null)
          }
        })
      }),
      m.fn.size = function () {
        return this.length
      },
      m.fn.andSelf = m.fn.addBack,
      'function' == typeof define && define.amd && define('jquery', [
      ], function () {
        return m
      });
      var ec = a.jQuery,
      fc = a.$;
      return m.noConflict = function (b) {
        return a.$ === m && (a.$ = fc),
        b && a.jQuery === m && (a.jQuery = ec),
        m
      },
      typeof b === K && (a.jQuery = a.$ = m),
      m
    });
    /*! jQuery UI - v1.11.4 - 2015-10-11
* http://jqueryui.com
* Includes: core.js, widget.js, mouse.js, position.js, draggable.js, droppable.js, resizable.js, selectable.js, sortable.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, menu.js, progressbar.js, selectmenu.js, slider.js, spinner.js, tabs.js, tooltip.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
    (function (e) {
      'function' == typeof define && define.amd ? define(['jquery'], e)  : e(jQuery)
    }) (function (e) {
      function t(t, s) {
        var n,
        a,
        o,
        r = t.nodeName.toLowerCase();
        return 'area' === r ? (n = t.parentNode, a = n.name, t.href && a && 'map' === n.nodeName.toLowerCase() ? (o = e('img[usemap=\'#' + a + '\']') [0], !!o && i(o))  : !1)  : (/^(input|select|textarea|button|object)$/.test(r) ? !t.disabled : 'a' === r ? t.href || s : s) && i(t)
      }
      function i(t) {
        return e.expr.filters.visible(t) && !e(t).parents().addBack().filter(function () {
          return 'hidden' === e.css(this, 'visibility')
        }).length
      }
      function s(e) {
        for (var t, i; e.length && e[0] !== document; ) {
          if (t = e.css('position'), ('absolute' === t || 'relative' === t || 'fixed' === t) && (i = parseInt(e.css('zIndex'), 10), !isNaN(i) && 0 !== i)) return i;
          e = e.parent()
        }
        return 0
      }
      function n() {
        this._curInst = null,
        this._keyEvent = !1,
        this._disabledInputs = [
        ],
        this._datepickerShowing = !1,
        this._inDialog = !1,
        this._mainDivId = 'ui-datepicker-div',
        this._inlineClass = 'ui-datepicker-inline',
        this._appendClass = 'ui-datepicker-append',
        this._triggerClass = 'ui-datepicker-trigger',
        this._dialogClass = 'ui-datepicker-dialog',
        this._disableClass = 'ui-datepicker-disabled',
        this._unselectableClass = 'ui-datepicker-unselectable',
        this._currentClass = 'ui-datepicker-current-day',
        this._dayOverClass = 'ui-datepicker-days-cell-over',
        this.regional = [
        ],
        this.regional[''] = {
          closeText: 'Done',
          prevText: 'Prev',
          nextText: 'Next',
          currentText: 'Today',
          monthNames: [
            'January',
            'February',
            'March',
            'April',
            'May',
            'June',
            'July',
            'August',
            'September',
            'October',
            'November',
            'December'
          ],
          monthNamesShort: [
            'Jan',
            'Feb',
            'Mar',
            'Apr',
            'May',
            'Jun',
            'Jul',
            'Aug',
            'Sep',
            'Oct',
            'Nov',
            'Dec'
          ],
          dayNames: [
            'Sunday',
            'Monday',
            'Tuesday',
            'Wednesday',
            'Thursday',
            'Friday',
            'Saturday'
          ],
          dayNamesShort: [
            'Sun',
            'Mon',
            'Tue',
            'Wed',
            'Thu',
            'Fri',
            'Sat'
          ],
          dayNamesMin: [
            'Su',
            'Mo',
            'Tu',
            'We',
            'Th',
            'Fr',
            'Sa'
          ],
          weekHeader: 'Wk',
          dateFormat: 'mm/dd/yy',
          firstDay: 0,
          isRTL: !1,
          showMonthAfterYear: !1,
          yearSuffix: ''
        },
        this._defaults = {
          showOn: 'focus',
          showAnim: 'fadeIn',
          showOptions: {
          },
          defaultDate: null,
          appendText: '',
          buttonText: '...',
          buttonImage: '',
          buttonImageOnly: !1,
          hideIfNoPrevNext: !1,
          navigationAsDateFormat: !1,
          gotoCurrent: !1,
          changeMonth: !1,
          changeYear: !1,
          yearRange: 'c-10:c+10',
          showOtherMonths: !1,
          selectOtherMonths: !1,
          showWeek: !1,
          calculateWeek: this.iso8601Week,
          shortYearCutoff: '+10',
          minDate: null,
          maxDate: null,
          duration: 'fast',
          beforeShowDay: null,
          beforeShow: null,
          onSelect: null,
          onChangeMonthYear: null,
          onClose: null,
          numberOfMonths: 1,
          showCurrentAtPos: 0,
          stepMonths: 1,
          stepBigMonths: 12,
          altField: '',
          altFormat: '',
          constrainInput: !0,
          showButtonPanel: !1,
          autoSize: !1,
          disabled: !1
        },
        e.extend(this._defaults, this.regional['']),
        this.regional.en = e.extend(!0, {
        }, this.regional['']),
        this.regional['en-US'] = e.extend(!0, {
        }, this.regional.en),
        this.dpDiv = a(e('<div id=\'' + this._mainDivId + '\' class=\'ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all\'></div>'))
      }
      function a(t) {
        var i = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return t.delegate(i, 'mouseout', function () {
          e(this).removeClass('ui-state-hover'),
          - 1 !== this.className.indexOf('ui-datepicker-prev') && e(this).removeClass('ui-datepicker-prev-hover'),
          - 1 !== this.className.indexOf('ui-datepicker-next') && e(this).removeClass('ui-datepicker-next-hover')
        }).delegate(i, 'mouseover', o)
      }
      function o() {
        e.datepicker._isDisabledDatepicker(v.inline ? v.dpDiv.parent() [0] : v.input[0]) || (e(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'), e(this).addClass('ui-state-hover'), - 1 !== this.className.indexOf('ui-datepicker-prev') && e(this).addClass('ui-datepicker-prev-hover'), - 1 !== this.className.indexOf('ui-datepicker-next') && e(this).addClass('ui-datepicker-next-hover'))
      }
      function r(t, i) {
        e.extend(t, i);
        for (var s in i) null == i[s] && (t[s] = i[s]);
        return t
      }
      function h(e) {
        return function () {
          var t = this.element.val();
          e.apply(this, arguments),
          this._refresh(),
          t !== this.element.val() && this._trigger('change')
        }
      }
      e.ui = e.ui || {
      },
      e.extend(e.ui, {
        version: '1.11.4',
        keyCode: {
          BACKSPACE: 8,
          COMMA: 188,
          DELETE: 46,
          DOWN: 40,
          END: 35,
          ENTER: 13,
          ESCAPE: 27,
          HOME: 36,
          LEFT: 37,
          PAGE_DOWN: 34,
          PAGE_UP: 33,
          PERIOD: 190,
          RIGHT: 39,
          SPACE: 32,
          TAB: 9,
          UP: 38
        }
      }),
      e.fn.extend({
        scrollParent: function (t) {
          var i = this.css('position'),
          s = 'absolute' === i,
          n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
          a = this.parents().filter(function () {
            var t = e(this);
            return s && 'static' === t.css('position') ? !1 : n.test(t.css('overflow') + t.css('overflow-y') + t.css('overflow-x'))
          }).eq(0);
          return 'fixed' !== i && a.length ? a : e(this[0].ownerDocument || document)
        },
        uniqueId: function () {
          var e = 0;
          return function () {
            return this.each(function () {
              this.id || (this.id = 'ui-id-' + ++e)
            })
          }
        }(),
        removeUniqueId: function () {
          return this.each(function () {
            /^ui-id-\d+$/.test(this.id) && e(this).removeAttr('id')
          })
        }
      }),
      e.extend(e.expr[':'], {
        data: e.expr.createPseudo ? e.expr.createPseudo(function (t) {
          return function (i) {
            return !!e.data(i, t)
          }
        })  : function (t, i, s) {
          return !!e.data(t, s[3])
        },
        focusable: function (i) {
          return t(i, !isNaN(e.attr(i, 'tabindex')))
        },
        tabbable: function (i) {
          var s = e.attr(i, 'tabindex'),
          n = isNaN(s);
          return (n || s >= 0) && t(i, !n)
        }
      }),
      e('<a>').outerWidth(1).jquery || e.each(['Width',
      'Height'], function (t, i) {
        function s(t, i, s, a) {
          return e.each(n, function () {
            i -= parseFloat(e.css(t, 'padding' + this)) || 0,
            s && (i -= parseFloat(e.css(t, 'border' + this + 'Width')) || 0),
            a && (i -= parseFloat(e.css(t, 'margin' + this)) || 0)
          }),
          i
        }
        var n = 'Width' === i ? [
          'Left',
          'Right'
        ] : [
          'Top',
          'Bottom'
        ],
        a = i.toLowerCase(),
        o = {
          innerWidth: e.fn.innerWidth,
          innerHeight: e.fn.innerHeight,
          outerWidth: e.fn.outerWidth,
          outerHeight: e.fn.outerHeight
        };
        e.fn['inner' + i] = function (t) {
          return void 0 === t ? o['inner' + i].call(this)  : this.each(function () {
            e(this).css(a, s(this, t) + 'px')
          })
        },
        e.fn['outer' + i] = function (t, n) {
          return 'number' != typeof t ? o['outer' + i].call(this, t)  : this.each(function () {
            e(this).css(a, s(this, t, !0, n) + 'px')
          })
        }
      }),
      e.fn.addBack || (e.fn.addBack = function (e) {
        return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
      }),
      e('<a>').data('a-b', 'a').removeData('a-b').data('a-b') && (e.fn.removeData = function (t) {
        return function (i) {
          return arguments.length ? t.call(this, e.camelCase(i))  : t.call(this)
        }
      }(e.fn.removeData)),
      e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),
      e.fn.extend({
        focus: function (t) {
          return function (i, s) {
            return 'number' == typeof i ? this.each(function () {
              var t = this;
              setTimeout(function () {
                e(t).focus(),
                s && s.call(t)
              }, i)
            })  : t.apply(this, arguments)
          }
        }(e.fn.focus),
        disableSelection: function () {
          var e = 'onselectstart' in document.createElement('div') ? 'selectstart' : 'mousedown';
          return function () {
            return this.bind(e + '.ui-disableSelection', function (e) {
              e.preventDefault()
            })
          }
        }(),
        enableSelection: function () {
          return this.unbind('.ui-disableSelection')
        },
        zIndex: function (t) {
          if (void 0 !== t) return this.css('zIndex', t);
          if (this.length) for (var i, s, n = e(this[0]); n.length && n[0] !== document; ) {
            if (i = n.css('position'), ('absolute' === i || 'relative' === i || 'fixed' === i) && (s = parseInt(n.css('zIndex'), 10), !isNaN(s) && 0 !== s)) return s;
            n = n.parent()
          }
          return 0
        }
      }),
      e.ui.plugin = {
        add: function (t, i, s) {
          var n,
          a = e.ui[t].prototype;
          for (n in s) a.plugins[n] = a.plugins[n] || [],
          a.plugins[n].push([i,
          s[n]])
        },
        call: function (e, t, i, s) {
          var n,
          a = e.plugins[t];
          if (a && (s || e.element[0].parentNode && 11 !== e.element[0].parentNode.nodeType)) for (n = 0; a.length > n; n++) e.options[a[n][0]] && a[n][1].apply(e.element, i)
        }
      };
      var l = 0,
      u = Array.prototype.slice;
      e.cleanData = function (t) {
        return function (i) {
          var s,
          n,
          a;
          for (a = 0; null != (n = i[a]); a++) try {
            s = e._data(n, 'events'),
            s && s.remove && e(n).triggerHandler('remove')
          } catch (o) {
          }
          t(i)
        }
      }(e.cleanData),
      e.widget = function (t, i, s) {
        var n,
        a,
        o,
        r,
        h = {
        },
        l = t.split('.') [0];
        return t = t.split('.') [1],
        n = l + '-' + t,
        s || (s = i, i = e.Widget),
        e.expr[':'][n.toLowerCase()] = function (t) {
          return !!e.data(t, n)
        },
        e[l] = e[l] || {
        },
        a = e[l][t],
        o = e[l][t] = function (e, t) {
          return this._createWidget ? (arguments.length && this._createWidget(e, t), void 0)  : new o(e, t)
        },
        e.extend(o, a, {
          version: s.version,
          _proto: e.extend({
          }, s),
          _childConstructors: [
          ]
        }),
        r = new i,
        r.options = e.widget.extend({
        }, r.options),
        e.each(s, function (t, s) {
          return e.isFunction(s) ? (h[t] = function () {
            var e = function () {
              return i.prototype[t].apply(this, arguments)
            },
            n = function (e) {
              return i.prototype[t].apply(this, e)
            };
            return function () {
              var t,
              i = this._super,
              a = this._superApply;
              return this._super = e,
              this._superApply = n,
              t = s.apply(this, arguments),
              this._super = i,
              this._superApply = a,
              t
            }
          }(), void 0)  : (h[t] = s, void 0)
        }),
        o.prototype = e.widget.extend(r, {
          widgetEventPrefix: a ? r.widgetEventPrefix || t : t
        }, h, {
          constructor: o,
          namespace: l,
          widgetName: t,
          widgetFullName: n
        }),
        a ? (e.each(a._childConstructors, function (t, i) {
          var s = i.prototype;
          e.widget(s.namespace + '.' + s.widgetName, o, i._proto)
        }), delete a._childConstructors)  : i._childConstructors.push(o),
        e.widget.bridge(t, o),
        o
      },
      e.widget.extend = function (t) {
        for (var i, s, n = u.call(arguments, 1), a = 0, o = n.length; o > a; a++) for (i in n[a]) s = n[a][i],
        n[a].hasOwnProperty(i) && void 0 !== s && (t[i] = e.isPlainObject(s) ? e.isPlainObject(t[i]) ? e.widget.extend({
        }, t[i], s)  : e.widget.extend({
        }, s)  : s);
        return t
      },
      e.widget.bridge = function (t, i) {
        var s = i.prototype.widgetFullName || t;
        e.fn[t] = function (n) {
          var a = 'string' == typeof n,
          o = u.call(arguments, 1),
          r = this;
          return a ? this.each(function () {
            var i,
            a = e.data(this, s);
            return 'instance' === n ? (r = a, !1)  : a ? e.isFunction(a[n]) && '_' !== n.charAt(0) ? (i = a[n].apply(a, o), i !== a && void 0 !== i ? (r = i && i.jquery ? r.pushStack(i.get())  : i, !1)  : void 0)  : e.error('no such method \'' + n + '\' for ' + t + ' widget instance')  : e.error('cannot call methods on ' + t + ' prior to initialization; ' + 'attempted to call method \'' + n + '\'')
          })  : (o.length && (n = e.widget.extend.apply(null, [
            n
          ].concat(o))), this.each(function () {
            var t = e.data(this, s);
            t ? (t.option(n || {
            }), t._init && t._init())  : e.data(this, s, new i(n, this))
          })),
          r
        }
      },
      e.Widget = function () {
      },
      e.Widget._childConstructors = [
      ],
      e.Widget.prototype = {
        widgetName: 'widget',
        widgetEventPrefix: '',
        defaultElement: '<div>',
        options: {
          disabled: !1,
          create: null
        },
        _createWidget: function (t, i) {
          i = e(i || this.defaultElement || this) [0],
          this.element = e(i),
          this.uuid = l++,
          this.eventNamespace = '.' + this.widgetName + this.uuid,
          this.bindings = e(),
          this.hoverable = e(),
          this.focusable = e(),
          i !== this && (e.data(i, this.widgetFullName, this), this._on(!0, this.element, {
            remove: function (e) {
              e.target === i && this.destroy()
            }
          }), this.document = e(i.style ? i.ownerDocument : i.document || i), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)),
          this.options = e.widget.extend({
          }, this.options, this._getCreateOptions(), t),
          this._create(),
          this._trigger('create', null, this._getCreateEventData()),
          this._init()
        },
        _getCreateOptions: e.noop,
        _getCreateEventData: e.noop,
        _create: e.noop,
        _init: e.noop,
        destroy: function () {
          this._destroy(),
          this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),
          this.widget().unbind(this.eventNamespace).removeAttr('aria-disabled').removeClass(this.widgetFullName + '-disabled ' + 'ui-state-disabled'),
          this.bindings.unbind(this.eventNamespace),
          this.hoverable.removeClass('ui-state-hover'),
          this.focusable.removeClass('ui-state-focus')
        },
        _destroy: e.noop,
        widget: function () {
          return this.element
        },
        option: function (t, i) {
          var s,
          n,
          a,
          o = t;
          if (0 === arguments.length) return e.widget.extend({
          }, this.options);
          if ('string' == typeof t) if (o = {
          }, s = t.split('.'), t = s.shift(), s.length) {
            for (n = o[t] = e.widget.extend({
            }, this.options[t]), a = 0; s.length - 1 > a; a++) n[s[a]] = n[s[a]] || {
            },
            n = n[s[a]];
            if (t = s.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t];
            n[t] = i
          } else {
            if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t];
            o[t] = i
          }
          return this._setOptions(o),
          this
        },
        _setOptions: function (e) {
          var t;
          for (t in e) this._setOption(t, e[t]);
          return this
        },
        _setOption: function (e, t) {
          return this.options[e] = t,
          'disabled' === e && (this.widget().toggleClass(this.widgetFullName + '-disabled', !!t), t && (this.hoverable.removeClass('ui-state-hover'), this.focusable.removeClass('ui-state-focus'))),
          this
        },
        enable: function () {
          return this._setOptions({
            disabled: !1
          })
        },
        disable: function () {
          return this._setOptions({
            disabled: !0
          })
        },
        _on: function (t, i, s) {
          var n,
          a = this;
          'boolean' != typeof t && (s = i, i = t, t = !1),
          s ? (i = n = e(i), this.bindings = this.bindings.add(i))  : (s = i, i = this.element, n = this.widget()),
          e.each(s, function (s, o) {
            function r() {
              return t || a.options.disabled !== !0 && !e(this).hasClass('ui-state-disabled') ? ('string' == typeof o ? a[o] : o).apply(a, arguments)  : void 0
            }
            'string' != typeof o && (r.guid = o.guid = o.guid || r.guid || e.guid++);
            var h = s.match(/^([\w:-]*)\s*(.*)$/),
            l = h[1] + a.eventNamespace,
            u = h[2];
            u ? n.delegate(u, l, r)  : i.bind(l, r)
          })
        },
        _off: function (t, i) {
          i = (i || '').split(' ').join(this.eventNamespace + ' ') + this.eventNamespace,
          t.unbind(i).undelegate(i),
          this.bindings = e(this.bindings.not(t).get()),
          this.focusable = e(this.focusable.not(t).get()),
          this.hoverable = e(this.hoverable.not(t).get())
        },
        _delay: function (e, t) {
          function i() {
            return ('string' == typeof e ? s[e] : e).apply(s, arguments)
          }
          var s = this;
          return setTimeout(i, t || 0)
        },
        _hoverable: function (t) {
          this.hoverable = this.hoverable.add(t),
          this._on(t, {
            mouseenter: function (t) {
              e(t.currentTarget).addClass('ui-state-hover')
            },
            mouseleave: function (t) {
              e(t.currentTarget).removeClass('ui-state-hover')
            }
          })
        },
        _focusable: function (t) {
          this.focusable = this.focusable.add(t),
          this._on(t, {
            focusin: function (t) {
              e(t.currentTarget).addClass('ui-state-focus')
            },
            focusout: function (t) {
              e(t.currentTarget).removeClass('ui-state-focus')
            }
          })
        },
        _trigger: function (t, i, s) {
          var n,
          a,
          o = this.options[t];
          if (s = s || {
          }, i = e.Event(i), i.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), i.target = this.element[0], a = i.originalEvent) for (n in a) n in i || (i[n] = a[n]);
          return this.element.trigger(i, s),
          !(e.isFunction(o) && o.apply(this.element[0], [
            i
          ].concat(s)) === !1 || i.isDefaultPrevented())
        }
      },
      e.each({
        show: 'fadeIn',
        hide: 'fadeOut'
      }, function (t, i) {
        e.Widget.prototype['_' + t] = function (s, n, a) {
          'string' == typeof n && (n = {
            effect: n
          });
          var o,
          r = n ? n === !0 || 'number' == typeof n ? i : n.effect || i : t;
          n = n || {
          },
          'number' == typeof n && (n = {
            duration: n
          }),
          o = !e.isEmptyObject(n),
          n.complete = a,
          n.delay && s.delay(n.delay),
          o && e.effects && e.effects.effect[r] ? s[t](n)  : r !== t && s[r] ? s[r](n.duration, n.easing, a)  : s.queue(function (i) {
            e(this) [t](),
            a && a.call(s[0]),
            i()
          })
        }
      }),
      e.widget;
      var d = !1;
      e(document).mouseup(function () {
        d = !1
      }),
      e.widget('ui.mouse', {
        version: '1.11.4',
        options: {
          cancel: 'input,textarea,button,select,option',
          distance: 1,
          delay: 0
        },
        _mouseInit: function () {
          var t = this;
          this.element.bind('mousedown.' + this.widgetName, function (e) {
            return t._mouseDown(e)
          }).bind('click.' + this.widgetName, function (i) {
            return !0 === e.data(i.target, t.widgetName + '.preventClickEvent') ? (e.removeData(i.target, t.widgetName + '.preventClickEvent'), i.stopImmediatePropagation(), !1)  : void 0
          }),
          this.started = !1
        },
        _mouseDestroy: function () {
          this.element.unbind('.' + this.widgetName),
          this._mouseMoveDelegate && this.document.unbind('mousemove.' + this.widgetName, this._mouseMoveDelegate).unbind('mouseup.' + this.widgetName, this._mouseUpDelegate)
        },
        _mouseDown: function (t) {
          if (!d) {
            this._mouseMoved = !1,
            this._mouseStarted && this._mouseUp(t),
            this._mouseDownEvent = t;
            var i = this,
            s = 1 === t.which,
            n = 'string' == typeof this.options.cancel && t.target.nodeName ? e(t.target).closest(this.options.cancel).length : !1;
            return s && !n && this._mouseCapture(t) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () {
              i.mouseDelayMet = !0
            }, this.options.delay)), this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(t) !== !1, !this._mouseStarted) ? (t.preventDefault(), !0)  : (!0 === e.data(t.target, this.widgetName + '.preventClickEvent') && e.removeData(t.target, this.widgetName + '.preventClickEvent'), this._mouseMoveDelegate = function (e) {
              return i._mouseMove(e)
            }, this._mouseUpDelegate = function (e) {
              return i._mouseUp(e)
            }, this.document.bind('mousemove.' + this.widgetName, this._mouseMoveDelegate).bind('mouseup.' + this.widgetName, this._mouseUpDelegate), t.preventDefault(), d = !0, !0))  : !0
          }
        },
        _mouseMove: function (t) {
          if (this._mouseMoved) {
            if (e.ui.ie && (!document.documentMode || 9 > document.documentMode) && !t.button) return this._mouseUp(t);
            if (!t.which) return this._mouseUp(t)
          }
          return (t.which || t.button) && (this._mouseMoved = !0),
          this._mouseStarted ? (this._mouseDrag(t), t.preventDefault())  : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, t) !== !1, this._mouseStarted ? this._mouseDrag(t)  : this._mouseUp(t)), !this._mouseStarted)
        },
        _mouseUp: function (t) {
          return this.document.unbind('mousemove.' + this.widgetName, this._mouseMoveDelegate).unbind('mouseup.' + this.widgetName, this._mouseUpDelegate),
          this._mouseStarted && (this._mouseStarted = !1, t.target === this._mouseDownEvent.target && e.data(t.target, this.widgetName + '.preventClickEvent', !0), this._mouseStop(t)),
          d = !1,
          !1
        },
        _mouseDistanceMet: function (e) {
          return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance
        },
        _mouseDelayMet: function () {
          return this.mouseDelayMet
        },
        _mouseStart: function () {
        },
        _mouseDrag: function () {
        },
        _mouseStop: function () {
        },
        _mouseCapture: function () {
          return !0
        }
      }),
      function () {
        function t(e, t, i) {
          return [parseFloat(e[0]) * (p.test(e[0]) ? t / 100 : 1),
          parseFloat(e[1]) * (p.test(e[1]) ? i / 100 : 1)]
        }
        function i(t, i) {
          return parseInt(e.css(t, i), 10) || 0
        }
        function s(t) {
          var i = t[0];
          return 9 === i.nodeType ? {
            width: t.width(),
            height: t.height(),
            offset: {
              top: 0,
              left: 0
            }
          }
           : e.isWindow(i) ? {
            width: t.width(),
            height: t.height(),
            offset: {
              top: t.scrollTop(),
              left: t.scrollLeft()
            }
          }
           : i.preventDefault ? {
            width: 0,
            height: 0,
            offset: {
              top: i.pageY,
              left: i.pageX
            }
          }
           : {
            width: t.outerWidth(),
            height: t.outerHeight(),
            offset: t.offset()
          }
        }
        e.ui = e.ui || {
        };
        var n,
        a,
        o = Math.max,
        r = Math.abs,
        h = Math.round,
        l = /left|center|right/,
        u = /top|center|bottom/,
        d = /[\+\-]\d+(\.[\d]+)?%?/,
        c = /^\w+/,
        p = /%$/,
        f = e.fn.position;
        e.position = {
          scrollbarWidth: function () {
            if (void 0 !== n) return n;
            var t,
            i,
            s = e('<div style=\'display:block;position:absolute;width:50px;height:50px;overflow:hidden;\'><div style=\'height:100px;width:auto;\'></div></div>'),
            a = s.children() [0];
            return e('body').append(s),
            t = a.offsetWidth,
            s.css('overflow', 'scroll'),
            i = a.offsetWidth,
            t === i && (i = s[0].clientWidth),
            s.remove(),
            n = t - i
          },
          getScrollInfo: function (t) {
            var i = t.isWindow || t.isDocument ? '' : t.element.css('overflow-x'),
            s = t.isWindow || t.isDocument ? '' : t.element.css('overflow-y'),
            n = 'scroll' === i || 'auto' === i && t.width < t.element[0].scrollWidth,
            a = 'scroll' === s || 'auto' === s && t.height < t.element[0].scrollHeight;
            return {
              width: a ? e.position.scrollbarWidth()  : 0,
              height: n ? e.position.scrollbarWidth()  : 0
            }
          },
          getWithinInfo: function (t) {
            var i = e(t || window),
            s = e.isWindow(i[0]),
            n = !!i[0] && 9 === i[0].nodeType;
            return {
              element: i,
              isWindow: s,
              isDocument: n,
              offset: i.offset() || {
                left: 0,
                top: 0
              },
              scrollLeft: i.scrollLeft(),
              scrollTop: i.scrollTop(),
              width: s || n ? i.width()  : i.outerWidth(),
              height: s || n ? i.height()  : i.outerHeight()
            }
          }
        },
        e.fn.position = function (n) {
          if (!n || !n.of) return f.apply(this, arguments);
          n = e.extend({
          }, n);
          var p,
          m,
          g,
          v,
          y,
          b,
          _ = e(n.of),
          x = e.position.getWithinInfo(n.within),
          w = e.position.getScrollInfo(x),
          k = (n.collision || 'flip').split(' '),
          T = {
          };
          return b = s(_),
          _[0].preventDefault && (n.at = 'left top'),
          m = b.width,
          g = b.height,
          v = b.offset,
          y = e.extend({
          }, v),
          e.each(['my',
          'at'], function () {
            var e,
            t,
            i = (n[this] || '').split(' ');
            1 === i.length && (i = l.test(i[0]) ? i.concat(['center'])  : u.test(i[0]) ? [
              'center'
            ].concat(i)  : [
              'center',
              'center'
            ]),
            i[0] = l.test(i[0]) ? i[0] : 'center',
            i[1] = u.test(i[1]) ? i[1] : 'center',
            e = d.exec(i[0]),
            t = d.exec(i[1]),
            T[this] = [
              e ? e[0] : 0,
              t ? t[0] : 0
            ],
            n[this] = [
              c.exec(i[0]) [0],
              c.exec(i[1]) [0]
            ]
          }),
          1 === k.length && (k[1] = k[0]),
          'right' === n.at[0] ? y.left += m : 'center' === n.at[0] && (y.left += m / 2),
          'bottom' === n.at[1] ? y.top += g : 'center' === n.at[1] && (y.top += g / 2),
          p = t(T.at, m, g),
          y.left += p[0],
          y.top += p[1],
          this.each(function () {
            var s,
            l,
            u = e(this),
            d = u.outerWidth(),
            c = u.outerHeight(),
            f = i(this, 'marginLeft'),
            b = i(this, 'marginTop'),
            D = d + f + i(this, 'marginRight') + w.width,
            S = c + b + i(this, 'marginBottom') + w.height,
            M = e.extend({
            }, y),
            C = t(T.my, u.outerWidth(), u.outerHeight());
            'right' === n.my[0] ? M.left -= d : 'center' === n.my[0] && (M.left -= d / 2),
            'bottom' === n.my[1] ? M.top -= c : 'center' === n.my[1] && (M.top -= c / 2),
            M.left += C[0],
            M.top += C[1],
            a || (M.left = h(M.left), M.top = h(M.top)),
            s = {
              marginLeft: f,
              marginTop: b
            },
            e.each(['left',
            'top'], function (t, i) {
              e.ui.position[k[t]] && e.ui.position[k[t]][i](M, {
                targetWidth: m,
                targetHeight: g,
                elemWidth: d,
                elemHeight: c,
                collisionPosition: s,
                collisionWidth: D,
                collisionHeight: S,
                offset: [
                  p[0] + C[0],
                  p[1] + C[1]
                ],
                my: n.my,
                at: n.at,
                within: x,
                elem: u
              })
            }),
            n.using && (l = function (e) {
              var t = v.left - M.left,
              i = t + m - d,
              s = v.top - M.top,
              a = s + g - c,
              h = {
                target: {
                  element: _,
                  left: v.left,
                  top: v.top,
                  width: m,
                  height: g
                },
                element: {
                  element: u,
                  left: M.left,
                  top: M.top,
                  width: d,
                  height: c
                },
                horizontal: 0 > i ? 'left' : t > 0 ? 'right' : 'center',
                vertical: 0 > a ? 'top' : s > 0 ? 'bottom' : 'middle'
              };
              d > m && m > r(t + i) && (h.horizontal = 'center'),
              c > g && g > r(s + a) && (h.vertical = 'middle'),
              h.important = o(r(t), r(i)) > o(r(s), r(a)) ? 'horizontal' : 'vertical',
              n.using.call(this, e, h)
            }),
            u.offset(e.extend(M, {
              using: l
            }))
          })
        },
        e.ui.position = {
          fit: {
            left: function (e, t) {
              var i,
              s = t.within,
              n = s.isWindow ? s.scrollLeft : s.offset.left,
              a = s.width,
              r = e.left - t.collisionPosition.marginLeft,
              h = n - r,
              l = r + t.collisionWidth - a - n;
              t.collisionWidth > a ? h > 0 && 0 >= l ? (i = e.left + h + t.collisionWidth - a - n, e.left += h - i)  : e.left = l > 0 && 0 >= h ? n : h > l ? n + a - t.collisionWidth : n : h > 0 ? e.left += h : l > 0 ? e.left -= l : e.left = o(e.left - r, e.left)
            },
            top: function (e, t) {
              var i,
              s = t.within,
              n = s.isWindow ? s.scrollTop : s.offset.top,
              a = t.within.height,
              r = e.top - t.collisionPosition.marginTop,
              h = n - r,
              l = r + t.collisionHeight - a - n;
              t.collisionHeight > a ? h > 0 && 0 >= l ? (i = e.top + h + t.collisionHeight - a - n, e.top += h - i)  : e.top = l > 0 && 0 >= h ? n : h > l ? n + a - t.collisionHeight : n : h > 0 ? e.top += h : l > 0 ? e.top -= l : e.top = o(e.top - r, e.top)
            }
          },
          flip: {
            left: function (e, t) {
              var i,
              s,
              n = t.within,
              a = n.offset.left + n.scrollLeft,
              o = n.width,
              h = n.isWindow ? n.scrollLeft : n.offset.left,
              l = e.left - t.collisionPosition.marginLeft,
              u = l - h,
              d = l + t.collisionWidth - o - h,
              c = 'left' === t.my[0] ? - t.elemWidth : 'right' === t.my[0] ? t.elemWidth : 0,
              p = 'left' === t.at[0] ? t.targetWidth : 'right' === t.at[0] ? - t.targetWidth : 0,
              f = - 2 * t.offset[0];
              0 > u ? (i = e.left + c + p + f + t.collisionWidth - o - a, (0 > i || r(u) > i) && (e.left += c + p + f))  : d > 0 && (s = e.left - t.collisionPosition.marginLeft + c + p + f - h, (s > 0 || d > r(s)) && (e.left += c + p + f))
            },
            top: function (e, t) {
              var i,
              s,
              n = t.within,
              a = n.offset.top + n.scrollTop,
              o = n.height,
              h = n.isWindow ? n.scrollTop : n.offset.top,
              l = e.top - t.collisionPosition.marginTop,
              u = l - h,
              d = l + t.collisionHeight - o - h,
              c = 'top' === t.my[1],
              p = c ? - t.elemHeight : 'bottom' === t.my[1] ? t.elemHeight : 0,
              f = 'top' === t.at[1] ? t.targetHeight : 'bottom' === t.at[1] ? - t.targetHeight : 0,
              m = - 2 * t.offset[1];
              0 > u ? (s = e.top + p + f + m + t.collisionHeight - o - a, (0 > s || r(u) > s) && (e.top += p + f + m))  : d > 0 && (i = e.top - t.collisionPosition.marginTop + p + f + m - h, (i > 0 || d > r(i)) && (e.top += p + f + m))
            }
          },
          flipfit: {
            left: function () {
              e.ui.position.flip.left.apply(this, arguments),
              e.ui.position.fit.left.apply(this, arguments)
            },
            top: function () {
              e.ui.position.flip.top.apply(this, arguments),
              e.ui.position.fit.top.apply(this, arguments)
            }
          }
        },
        function () {
          var t,
          i,
          s,
          n,
          o,
          r = document.getElementsByTagName('body') [0],
          h = document.createElement('div');
          t = document.createElement(r ? 'div' : 'body'),
          s = {
            visibility: 'hidden',
            width: 0,
            height: 0,
            border: 0,
            margin: 0,
            background: 'none'
          },
          r && e.extend(s, {
            position: 'absolute',
            left: '-1000px',
            top: '-1000px'
          });
          for (o in s) t.style[o] = s[o];
          t.appendChild(h),
          i = r || document.documentElement,
          i.insertBefore(t, i.firstChild),
          h.style.cssText = 'position: absolute; left: 10.7432222px;',
          n = e(h).offset().left,
          a = n > 10 && 11 > n,
          t.innerHTML = '',
          i.removeChild(t)
        }()
      }(),
      e.ui.position,
      e.widget('ui.draggable', e.ui.mouse, {
        version: '1.11.4',
        widgetEventPrefix: 'drag',
        options: {
          addClasses: !0,
          appendTo: 'parent',
          axis: !1,
          connectToSortable: !1,
          containment: !1,
          cursor: 'auto',
          cursorAt: !1,
          grid: !1,
          handle: !1,
          helper: 'original',
          iframeFix: !1,
          opacity: !1,
          refreshPositions: !1,
          revert: !1,
          revertDuration: 500,
          scope: 'default',
          scroll: !0,
          scrollSensitivity: 20,
          scrollSpeed: 20,
          snap: !1,
          snapMode: 'both',
          snapTolerance: 20,
          stack: !1,
          zIndex: !1,
          drag: null,
          start: null,
          stop: null
        },
        _create: function () {
          'original' === this.options.helper && this._setPositionRelative(),
          this.options.addClasses && this.element.addClass('ui-draggable'),
          this.options.disabled && this.element.addClass('ui-draggable-disabled'),
          this._setHandleClassName(),
          this._mouseInit()
        },
        _setOption: function (e, t) {
          this._super(e, t),
          'handle' === e && (this._removeHandleClassName(), this._setHandleClassName())
        },
        _destroy: function () {
          return (this.helper || this.element).is('.ui-draggable-dragging') ? (this.destroyOnClear = !0, void 0)  : (this.element.removeClass('ui-draggable ui-draggable-dragging ui-draggable-disabled'), this._removeHandleClassName(), this._mouseDestroy(), void 0)
        },
        _mouseCapture: function (t) {
          var i = this.options;
          return this._blurActiveElement(t),
          this.helper || i.disabled || e(t.target).closest('.ui-resizable-handle').length > 0 ? !1 : (this.handle = this._getHandle(t), this.handle ? (this._blockFrames(i.iframeFix === !0 ? 'iframe' : i.iframeFix), !0)  : !1)
        },
        _blockFrames: function (t) {
          this.iframeBlocks = this.document.find(t).map(function () {
            var t = e(this);
            return e('<div>').css('position', 'absolute').appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset()) [0]
          })
        },
        _unblockFrames: function () {
          this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
        },
        _blurActiveElement: function (t) {
          var i = this.document[0];
          if (this.handleElement.is(t.target)) try {
            i.activeElement && 'body' !== i.activeElement.nodeName.toLowerCase() && e(i.activeElement).blur()
          } catch (s) {
          }
        },
        _mouseStart: function (t) {
          var i = this.options;
          return this.helper = this._createHelper(t),
          this.helper.addClass('ui-draggable-dragging'),
          this._cacheHelperProportions(),
          e.ui.ddmanager && (e.ui.ddmanager.current = this),
          this._cacheMargins(),
          this.cssPosition = this.helper.css('position'),
          this.scrollParent = this.helper.scrollParent(!0),
          this.offsetParent = this.helper.offsetParent(),
          this.hasFixedAncestor = this.helper.parents().filter(function () {
            return 'fixed' === e(this).css('position')
          }).length > 0,
          this.positionAbs = this.element.offset(),
          this._refreshOffsets(t),
          this.originalPosition = this.position = this._generatePosition(t, !1),
          this.originalPageX = t.pageX,
          this.originalPageY = t.pageY,
          i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt),
          this._setContainment(),
          this._trigger('start', t) === !1 ? (this._clear(), !1)  : (this._cacheHelperProportions(), e.ui.ddmanager && !i.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t), this._normalizeRightBottom(), this._mouseDrag(t, !0), e.ui.ddmanager && e.ui.ddmanager.dragStart(this, t), !0)
        },
        _refreshOffsets: function (e) {
          this.offset = {
            top: this.positionAbs.top - this.margins.top,
            left: this.positionAbs.left - this.margins.left,
            scroll: !1,
            parent: this._getParentOffset(),
            relative: this._getRelativeOffset()
          },
          this.offset.click = {
            left: e.pageX - this.offset.left,
            top: e.pageY - this.offset.top
          }
        },
        _mouseDrag: function (t, i) {
          if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(t, !0), this.positionAbs = this._convertPositionTo('absolute'), !i) {
            var s = this._uiHash();
            if (this._trigger('drag', t, s) === !1) return this._mouseUp({
            }),
            !1;
            this.position = s.position
          }
          return this.helper[0].style.left = this.position.left + 'px',
          this.helper[0].style.top = this.position.top + 'px',
          e.ui.ddmanager && e.ui.ddmanager.drag(this, t),
          !1
        },
        _mouseStop: function (t) {
          var i = this,
          s = !1;
          return e.ui.ddmanager && !this.options.dropBehaviour && (s = e.ui.ddmanager.drop(this, t)),
          this.dropped && (s = this.dropped, this.dropped = !1),
          'invalid' === this.options.revert && !s || 'valid' === this.options.revert && s || this.options.revert === !0 || e.isFunction(this.options.revert) && this.options.revert.call(this.element, s) ? e(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () {
            i._trigger('stop', t) !== !1 && i._clear()
          })  : this._trigger('stop', t) !== !1 && this._clear(),
          !1
        },
        _mouseUp: function (t) {
          return this._unblockFrames(),
          e.ui.ddmanager && e.ui.ddmanager.dragStop(this, t),
          this.handleElement.is(t.target) && this.element.focus(),
          e.ui.mouse.prototype._mouseUp.call(this, t)
        },
        cancel: function () {
          return this.helper.is('.ui-draggable-dragging') ? this._mouseUp({
          })  : this._clear(),
          this
        },
        _getHandle: function (t) {
          return this.options.handle ? !!e(t.target).closest(this.element.find(this.options.handle)).length : !0
        },
        _setHandleClassName: function () {
          this.handleElement = this.options.handle ? this.element.find(this.options.handle)  : this.element,
          this.handleElement.addClass('ui-draggable-handle')
        },
        _removeHandleClassName: function () {
          this.handleElement.removeClass('ui-draggable-handle')
        },
        _createHelper: function (t) {
          var i = this.options,
          s = e.isFunction(i.helper),
          n = s ? e(i.helper.apply(this.element[0], [
            t
          ]))  : 'clone' === i.helper ? this.element.clone().removeAttr('id')  : this.element;
          return n.parents('body').length || n.appendTo('parent' === i.appendTo ? this.element[0].parentNode : i.appendTo),
          s && n[0] === this.element[0] && this._setPositionRelative(),
          n[0] === this.element[0] || /(fixed|absolute)/.test(n.css('position')) || n.css('position', 'absolute'),
          n
        },
        _setPositionRelative: function () {
          /^(?:r|a|f)/.test(this.element.css('position')) || (this.element[0].style.position = 'relative')
        },
        _adjustOffsetFromHelper: function (t) {
          'string' == typeof t && (t = t.split(' ')),
          e.isArray(t) && (t = {
            left: + t[0],
            top: + t[1] || 0
          }),
          'left' in t && (this.offset.click.left = t.left + this.margins.left),
          'right' in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left),
          'top' in t && (this.offset.click.top = t.top + this.margins.top),
          'bottom' in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top)
        },
        _isRootNode: function (e) {
          return /(html|body)/i.test(e.tagName) || e === this.document[0]
        },
        _getParentOffset: function () {
          var t = this.offsetParent.offset(),
          i = this.document[0];
          return 'absolute' === this.cssPosition && this.scrollParent[0] !== i && e.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), t.top += this.scrollParent.scrollTop()),
          this._isRootNode(this.offsetParent[0]) && (t = {
            top: 0,
            left: 0
          }),
          {
            top: t.top + (parseInt(this.offsetParent.css('borderTopWidth'), 10) || 0),
            left: t.left + (parseInt(this.offsetParent.css('borderLeftWidth'), 10) || 0)
          }
        },
        _getRelativeOffset: function () {
          if ('relative' !== this.cssPosition) return {
            top: 0,
            left: 0
          };
          var e = this.element.position(),
          t = this._isRootNode(this.scrollParent[0]);
          return {
            top: e.top - (parseInt(this.helper.css('top'), 10) || 0) + (t ? 0 : this.scrollParent.scrollTop()),
            left: e.left - (parseInt(this.helper.css('left'), 10) || 0) + (t ? 0 : this.scrollParent.scrollLeft())
          }
        },
        _cacheMargins: function () {
          this.margins = {
            left: parseInt(this.element.css('marginLeft'), 10) || 0,
            top: parseInt(this.element.css('marginTop'), 10) || 0,
            right: parseInt(this.element.css('marginRight'), 10) || 0,
            bottom: parseInt(this.element.css('marginBottom'), 10) || 0
          }
        },
        _cacheHelperProportions: function () {
          this.helperProportions = {
            width: this.helper.outerWidth(),
            height: this.helper.outerHeight()
          }
        },
        _setContainment: function () {
          var t,
          i,
          s,
          n = this.options,
          a = this.document[0];
          return this.relativeContainer = null,
          n.containment ? 'window' === n.containment ? (this.containment = [
            e(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
            e(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
            e(window).scrollLeft() + e(window).width() - this.helperProportions.width - this.margins.left,
            e(window).scrollTop() + (e(window).height() || a.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
          ], void 0)  : 'document' === n.containment ? (this.containment = [
            0,
            0,
            e(a).width() - this.helperProportions.width - this.margins.left,
            (e(a).height() || a.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
          ], void 0)  : n.containment.constructor === Array ? (this.containment = n.containment, void 0)  : ('parent' === n.containment && (n.containment = this.helper[0].parentNode), i = e(n.containment), s = i[0], s && (t = /(scroll|auto)/.test(i.css('overflow')), this.containment = [
            (parseInt(i.css('borderLeftWidth'), 10) || 0) + (parseInt(i.css('paddingLeft'), 10) || 0),
            (parseInt(i.css('borderTopWidth'), 10) || 0) + (parseInt(i.css('paddingTop'), 10) || 0),
            (t ? Math.max(s.scrollWidth, s.offsetWidth)  : s.offsetWidth) - (parseInt(i.css('borderRightWidth'), 10) || 0) - (parseInt(i.css('paddingRight'), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
            (t ? Math.max(s.scrollHeight, s.offsetHeight)  : s.offsetHeight) - (parseInt(i.css('borderBottomWidth'), 10) || 0) - (parseInt(i.css('paddingBottom'), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom
          ], this.relativeContainer = i), void 0)  : (this.containment = null, void 0)
        },
        _convertPositionTo: function (e, t) {
          t || (t = this.position);
          var i = 'absolute' === e ? 1 : - 1,
          s = this._isRootNode(this.scrollParent[0]);
          return {
            top: t.top + this.offset.relative.top * i + this.offset.parent.top * i - ('fixed' === this.cssPosition ? - this.offset.scroll.top : s ? 0 : this.offset.scroll.top) * i,
            left: t.left + this.offset.relative.left * i + this.offset.parent.left * i - ('fixed' === this.cssPosition ? - this.offset.scroll.left : s ? 0 : this.offset.scroll.left) * i
          }
        },
        _generatePosition: function (e, t) {
          var i,
          s,
          n,
          a,
          o = this.options,
          r = this._isRootNode(this.scrollParent[0]),
          h = e.pageX,
          l = e.pageY;
          return r && this.offset.scroll || (this.offset.scroll = {
            top: this.scrollParent.scrollTop(),
            left: this.scrollParent.scrollLeft()
          }),
          t && (this.containment && (this.relativeContainer ? (s = this.relativeContainer.offset(), i = [
            this.containment[0] + s.left,
            this.containment[1] + s.top,
            this.containment[2] + s.left,
            this.containment[3] + s.top
          ])  : i = this.containment, e.pageX - this.offset.click.left < i[0] && (h = i[0] + this.offset.click.left), e.pageY - this.offset.click.top < i[1] && (l = i[1] + this.offset.click.top), e.pageX - this.offset.click.left > i[2] && (h = i[2] + this.offset.click.left), e.pageY - this.offset.click.top > i[3] && (l = i[3] + this.offset.click.top)), o.grid && (n = o.grid[1] ? this.originalPageY + Math.round((l - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY, l = i ? n - this.offset.click.top >= i[1] || n - this.offset.click.top > i[3] ? n : n - this.offset.click.top >= i[1] ? n - o.grid[1] : n + o.grid[1] : n, a = o.grid[0] ? this.originalPageX + Math.round((h - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX, h = i ? a - this.offset.click.left >= i[0] || a - this.offset.click.left > i[2] ? a : a - this.offset.click.left >= i[0] ? a - o.grid[0] : a + o.grid[0] : a), 'y' === o.axis && (h = this.originalPageX), 'x' === o.axis && (l = this.originalPageY)),
          {
            top: l - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ('fixed' === this.cssPosition ? - this.offset.scroll.top : r ? 0 : this.offset.scroll.top),
            left: h - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ('fixed' === this.cssPosition ? - this.offset.scroll.left : r ? 0 : this.offset.scroll.left)
          }
        },
        _clear: function () {
          this.helper.removeClass('ui-draggable-dragging'),
          this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(),
          this.helper = null,
          this.cancelHelperRemoval = !1,
          this.destroyOnClear && this.destroy()
        },
        _normalizeRightBottom: function () {
          'y' !== this.options.axis && 'auto' !== this.helper.css('right') && (this.helper.width(this.helper.width()), this.helper.css('right', 'auto')),
          'x' !== this.options.axis && 'auto' !== this.helper.css('bottom') && (this.helper.height(this.helper.height()), this.helper.css('bottom', 'auto'))
        },
        _trigger: function (t, i, s) {
          return s = s || this._uiHash(),
          e.ui.plugin.call(this, t, [
            i,
            s,
            this
          ], !0),
          /^(drag|start|stop)/.test(t) && (this.positionAbs = this._convertPositionTo('absolute'), s.offset = this.positionAbs),
          e.Widget.prototype._trigger.call(this, t, i, s)
        },
        plugins: {
        },
        _uiHash: function () {
          return {
            helper: this.helper,
            position: this.position,
            originalPosition: this.originalPosition,
            offset: this.positionAbs
          }
        }
      }),
      e.ui.plugin.add('draggable', 'connectToSortable', {
        start: function (t, i, s) {
          var n = e.extend({
          }, i, {
            item: s.element
          });
          s.sortables = [
          ],
          e(s.options.connectToSortable).each(function () {
            var i = e(this).sortable('instance');
            i && !i.options.disabled && (s.sortables.push(i), i.refreshPositions(), i._trigger('activate', t, n))
          })
        },
        stop: function (t, i, s) {
          var n = e.extend({
          }, i, {
            item: s.element
          });
          s.cancelHelperRemoval = !1,
          e.each(s.sortables, function () {
            var e = this;
            e.isOver ? (e.isOver = 0, s.cancelHelperRemoval = !0, e.cancelHelperRemoval = !1, e._storedCSS = {
              position: e.placeholder.css('position'),
              top: e.placeholder.css('top'),
              left: e.placeholder.css('left')
            }, e._mouseStop(t), e.options.helper = e.options._helper)  : (e.cancelHelperRemoval = !0, e._trigger('deactivate', t, n))
          })
        },
        drag: function (t, i, s) {
          e.each(s.sortables, function () {
            var n = !1,
            a = this;
            a.positionAbs = s.positionAbs,
            a.helperProportions = s.helperProportions,
            a.offset.click = s.offset.click,
            a._intersectsWith(a.containerCache) && (n = !0, e.each(s.sortables, function () {
              return this.positionAbs = s.positionAbs,
              this.helperProportions = s.helperProportions,
              this.offset.click = s.offset.click,
              this !== a && this._intersectsWith(this.containerCache) && e.contains(a.element[0], this.element[0]) && (n = !1),
              n
            })),
            n ? (a.isOver || (a.isOver = 1, s._parent = i.helper.parent(), a.currentItem = i.helper.appendTo(a.element).data('ui-sortable-item', !0), a.options._helper = a.options.helper, a.options.helper = function () {
              return i.helper[0]
            }, t.target = a.currentItem[0], a._mouseCapture(t, !0), a._mouseStart(t, !0, !0), a.offset.click.top = s.offset.click.top, a.offset.click.left = s.offset.click.left, a.offset.parent.left -= s.offset.parent.left - a.offset.parent.left, a.offset.parent.top -= s.offset.parent.top - a.offset.parent.top, s._trigger('toSortable', t), s.dropped = a.element, e.each(s.sortables, function () {
              this.refreshPositions()
            }), s.currentItem = s.element, a.fromOutside = s), a.currentItem && (a._mouseDrag(t), i.position = a.position))  : a.isOver && (a.isOver = 0, a.cancelHelperRemoval = !0, a.options._revert = a.options.revert, a.options.revert = !1, a._trigger('out', t, a._uiHash(a)), a._mouseStop(t, !0), a.options.revert = a.options._revert, a.options.helper = a.options._helper, a.placeholder && a.placeholder.remove(), i.helper.appendTo(s._parent), s._refreshOffsets(t), i.position = s._generatePosition(t, !0), s._trigger('fromSortable', t), s.dropped = !1, e.each(s.sortables, function () {
              this.refreshPositions()
            }))
          })
        }
      }),
      e.ui.plugin.add('draggable', 'cursor', {
        start: function (t, i, s) {
          var n = e('body'),
          a = s.options;
          n.css('cursor') && (a._cursor = n.css('cursor')),
          n.css('cursor', a.cursor)
        },
        stop: function (t, i, s) {
          var n = s.options;
          n._cursor && e('body').css('cursor', n._cursor)
        }
      }),
      e.ui.plugin.add('draggable', 'opacity', {
        start: function (t, i, s) {
          var n = e(i.helper),
          a = s.options;
          n.css('opacity') && (a._opacity = n.css('opacity')),
          n.css('opacity', a.opacity)
        },
        stop: function (t, i, s) {
          var n = s.options;
          n._opacity && e(i.helper).css('opacity', n._opacity)
        }
      }),
      e.ui.plugin.add('draggable', 'scroll', {
        start: function (e, t, i) {
          i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)),
          i.scrollParentNotHidden[0] !== i.document[0] && 'HTML' !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset())
        },
        drag: function (t, i, s) {
          var n = s.options,
          a = !1,
          o = s.scrollParentNotHidden[0],
          r = s.document[0];
          o !== r && 'HTML' !== o.tagName ? (n.axis && 'x' === n.axis || (s.overflowOffset.top + o.offsetHeight - t.pageY < n.scrollSensitivity ? o.scrollTop = a = o.scrollTop + n.scrollSpeed : t.pageY - s.overflowOffset.top < n.scrollSensitivity && (o.scrollTop = a = o.scrollTop - n.scrollSpeed)), n.axis && 'y' === n.axis || (s.overflowOffset.left + o.offsetWidth - t.pageX < n.scrollSensitivity ? o.scrollLeft = a = o.scrollLeft + n.scrollSpeed : t.pageX - s.overflowOffset.left < n.scrollSensitivity && (o.scrollLeft = a = o.scrollLeft - n.scrollSpeed)))  : (n.axis && 'x' === n.axis || (t.pageY - e(r).scrollTop() < n.scrollSensitivity ? a = e(r).scrollTop(e(r).scrollTop() - n.scrollSpeed)  : e(window).height() - (t.pageY - e(r).scrollTop()) < n.scrollSensitivity && (a = e(r).scrollTop(e(r).scrollTop() + n.scrollSpeed))), n.axis && 'y' === n.axis || (t.pageX - e(r).scrollLeft() < n.scrollSensitivity ? a = e(r).scrollLeft(e(r).scrollLeft() - n.scrollSpeed)  : e(window).width() - (t.pageX - e(r).scrollLeft()) < n.scrollSensitivity && (a = e(r).scrollLeft(e(r).scrollLeft() + n.scrollSpeed)))),
          a !== !1 && e.ui.ddmanager && !n.dropBehaviour && e.ui.ddmanager.prepareOffsets(s, t)
        }
      }),
      e.ui.plugin.add('draggable', 'snap', {
        start: function (t, i, s) {
          var n = s.options;
          s.snapElements = [
          ],
          e(n.snap.constructor !== String ? n.snap.items || ':data(ui-draggable)' : n.snap).each(function () {
            var t = e(this),
            i = t.offset();
            this !== s.element[0] && s.snapElements.push({
              item: this,
              width: t.outerWidth(),
              height: t.outerHeight(),
              top: i.top,
              left: i.left
            })
          })
        },
        drag: function (t, i, s) {
          var n,
          a,
          o,
          r,
          h,
          l,
          u,
          d,
          c,
          p,
          f = s.options,
          m = f.snapTolerance,
          g = i.offset.left,
          v = g + s.helperProportions.width,
          y = i.offset.top,
          b = y + s.helperProportions.height;
          for (c = s.snapElements.length - 1; c >= 0; c--) h = s.snapElements[c].left - s.margins.left,
          l = h + s.snapElements[c].width,
          u = s.snapElements[c].top - s.margins.top,
          d = u + s.snapElements[c].height,
          h - m > v || g > l + m || u - m > b || y > d + m || !e.contains(s.snapElements[c].item.ownerDocument, s.snapElements[c].item) ? (s.snapElements[c].snapping && s.options.snap.release && s.options.snap.release.call(s.element, t, e.extend(s._uiHash(), {
            snapItem: s.snapElements[c].item
          })), s.snapElements[c].snapping = !1)  : ('inner' !== f.snapMode && (n = m >= Math.abs(u - b), a = m >= Math.abs(d - y), o = m >= Math.abs(h - v), r = m >= Math.abs(l - g), n && (i.position.top = s._convertPositionTo('relative', {
            top: u - s.helperProportions.height,
            left: 0
          }).top), a && (i.position.top = s._convertPositionTo('relative', {
            top: d,
            left: 0
          }).top), o && (i.position.left = s._convertPositionTo('relative', {
            top: 0,
            left: h - s.helperProportions.width
          }).left), r && (i.position.left = s._convertPositionTo('relative', {
            top: 0,
            left: l
          }).left)), p = n || a || o || r, 'outer' !== f.snapMode && (n = m >= Math.abs(u - y), a = m >= Math.abs(d - b), o = m >= Math.abs(h - g), r = m >= Math.abs(l - v), n && (i.position.top = s._convertPositionTo('relative', {
            top: u,
            left: 0
          }).top), a && (i.position.top = s._convertPositionTo('relative', {
            top: d - s.helperProportions.height,
            left: 0
          }).top), o && (i.position.left = s._convertPositionTo('relative', {
            top: 0,
            left: h
          }).left), r && (i.position.left = s._convertPositionTo('relative', {
            top: 0,
            left: l - s.helperProportions.width
          }).left)), !s.snapElements[c].snapping && (n || a || o || r || p) && s.options.snap.snap && s.options.snap.snap.call(s.element, t, e.extend(s._uiHash(), {
            snapItem: s.snapElements[c].item
          })), s.snapElements[c].snapping = n || a || o || r || p)
        }
      }),
      e.ui.plugin.add('draggable', 'stack', {
        start: function (t, i, s) {
          var n,
          a = s.options,
          o = e.makeArray(e(a.stack)).sort(function (t, i) {
            return (parseInt(e(t).css('zIndex'), 10) || 0) - (parseInt(e(i).css('zIndex'), 10) || 0)
          });
          o.length && (n = parseInt(e(o[0]).css('zIndex'), 10) || 0, e(o).each(function (t) {
            e(this).css('zIndex', n + t)
          }), this.css('zIndex', n + o.length))
        }
      }),
      e.ui.plugin.add('draggable', 'zIndex', {
        start: function (t, i, s) {
          var n = e(i.helper),
          a = s.options;
          n.css('zIndex') && (a._zIndex = n.css('zIndex')),
          n.css('zIndex', a.zIndex)
        },
        stop: function (t, i, s) {
          var n = s.options;
          n._zIndex && e(i.helper).css('zIndex', n._zIndex)
        }
      }),
      e.ui.draggable,
      e.widget('ui.droppable', {
        version: '1.11.4',
        widgetEventPrefix: 'drop',
        options: {
          accept: '*',
          activeClass: !1,
          addClasses: !0,
          greedy: !1,
          hoverClass: !1,
          scope: 'default',
          tolerance: 'intersect',
          activate: null,
          deactivate: null,
          drop: null,
          out: null,
          over: null
        },
        _create: function () {
          var t,
          i = this.options,
          s = i.accept;
          this.isover = !1,
          this.isout = !0,
          this.accept = e.isFunction(s) ? s : function (e) {
            return e.is(s)
          },
          this.proportions = function () {
            return arguments.length ? (t = arguments[0], void 0)  : t ? t : t = {
              width: this.element[0].offsetWidth,
              height: this.element[0].offsetHeight
            }
          },
          this._addToManager(i.scope),
          i.addClasses && this.element.addClass('ui-droppable')
        },
        _addToManager: function (t) {
          e.ui.ddmanager.droppables[t] = e.ui.ddmanager.droppables[t] || [],
          e.ui.ddmanager.droppables[t].push(this)
        },
        _splice: function (e) {
          for (var t = 0; e.length > t; t++) e[t] === this && e.splice(t, 1)
        },
        _destroy: function () {
          var t = e.ui.ddmanager.droppables[this.options.scope];
          this._splice(t),
          this.element.removeClass('ui-droppable ui-droppable-disabled')
        },
        _setOption: function (t, i) {
          if ('accept' === t) this.accept = e.isFunction(i) ? i : function (e) {
            return e.is(i)
          };
           else if ('scope' === t) {
            var s = e.ui.ddmanager.droppables[this.options.scope];
            this._splice(s),
            this._addToManager(i)
          }
          this._super(t, i)
        },
        _activate: function (t) {
          var i = e.ui.ddmanager.current;
          this.options.activeClass && this.element.addClass(this.options.activeClass),
          i && this._trigger('activate', t, this.ui(i))
        },
        _deactivate: function (t) {
          var i = e.ui.ddmanager.current;
          this.options.activeClass && this.element.removeClass(this.options.activeClass),
          i && this._trigger('deactivate', t, this.ui(i))
        },
        _over: function (t) {
          var i = e.ui.ddmanager.current;
          i && (i.currentItem || i.element) [0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), this._trigger('over', t, this.ui(i)))
        },
        _out: function (t) {
          var i = e.ui.ddmanager.current;
          i && (i.currentItem || i.element) [0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger('out', t, this.ui(i)))
        },
        _drop: function (t, i) {
          var s = i || e.ui.ddmanager.current,
          n = !1;
          return s && (s.currentItem || s.element) [0] !== this.element[0] ? (this.element.find(':data(ui-droppable)').not('.ui-draggable-dragging').each(function () {
            var i = e(this).droppable('instance');
            return i.options.greedy && !i.options.disabled && i.options.scope === s.options.scope && i.accept.call(i.element[0], s.currentItem || s.element) && e.ui.intersect(s, e.extend(i, {
              offset: i.element.offset()
            }), i.options.tolerance, t) ? (n = !0, !1)  : void 0
          }), n ? !1 : this.accept.call(this.element[0], s.currentItem || s.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger('drop', t, this.ui(s)), this.element)  : !1)  : !1
        },
        ui: function (e) {
          return {
            draggable: e.currentItem || e.element,
            helper: e.helper,
            position: e.position,
            offset: e.positionAbs
          }
        }
      }),
      e.ui.intersect = function () {
        function e(e, t, i) {
          return e >= t && t + i > e
        }
        return function (t, i, s, n) {
          if (!i.offset) return !1;
          var a = (t.positionAbs || t.position.absolute).left + t.margins.left,
          o = (t.positionAbs || t.position.absolute).top + t.margins.top,
          r = a + t.helperProportions.width,
          h = o + t.helperProportions.height,
          l = i.offset.left,
          u = i.offset.top,
          d = l + i.proportions().width,
          c = u + i.proportions().height;
          switch (s) {
            case 'fit':
              return a >= l && d >= r && o >= u && c >= h;
            case 'intersect':
              return a + t.helperProportions.width / 2 > l && d > r - t.helperProportions.width / 2 && o + t.helperProportions.height / 2 > u && c > h - t.helperProportions.height / 2;
            case 'pointer':
              return e(n.pageY, u, i.proportions().height) && e(n.pageX, l, i.proportions().width);
            case 'touch':
              return (o >= u && c >= o || h >= u && c >= h || u > o && h > c) && (a >= l && d >= a || r >= l && d >= r || l > a && r > d);
            default:
              return !1
          }
        }
      }(),
      e.ui.ddmanager = {
        current: null,
        droppables: {
          'default': [
          ]
        },
        prepareOffsets: function (t, i) {
          var s,
          n,
          a = e.ui.ddmanager.droppables[t.options.scope] || [],
          o = i ? i.type : null,
          r = (t.currentItem || t.element).find(':data(ui-droppable)').addBack();
          e: for (s = 0; a.length > s; s++) if (!(a[s].options.disabled || t && !a[s].accept.call(a[s].element[0], t.currentItem || t.element))) {
            for (n = 0; r.length > n; n++) if (r[n] === a[s].element[0]) {
              a[s].proportions().height = 0;
              continue e
            }
            a[s].visible = 'none' !== a[s].element.css('display'),
            a[s].visible && ('mousedown' === o && a[s]._activate.call(a[s], i), a[s].offset = a[s].element.offset(), a[s].proportions({
              width: a[s].element[0].offsetWidth,
              height: a[s].element[0].offsetHeight
            }))
          }
        },
        drop: function (t, i) {
          var s = !1;
          return e.each((e.ui.ddmanager.droppables[t.options.scope] || []).slice(), function () {
            this.options && (!this.options.disabled && this.visible && e.ui.intersect(t, this, this.options.tolerance, i) && (s = this._drop.call(this, i) || s), !this.options.disabled && this.visible && this.accept.call(this.element[0], t.currentItem || t.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, i)))
          }),
          s
        },
        dragStart: function (t, i) {
          t.element.parentsUntil('body').bind('scroll.droppable', function () {
            t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, i)
          })
        },
        drag: function (t, i) {
          t.options.refreshPositions && e.ui.ddmanager.prepareOffsets(t, i),
          e.each(e.ui.ddmanager.droppables[t.options.scope] || [], function () {
            if (!this.options.disabled && !this.greedyChild && this.visible) {
              var s,
              n,
              a,
              o = e.ui.intersect(t, this, this.options.tolerance, i),
              r = !o && this.isover ? 'isout' : o && !this.isover ? 'isover' : null;
              r && (this.options.greedy && (n = this.options.scope, a = this.element.parents(':data(ui-droppable)').filter(function () {
                return e(this).droppable('instance').options.scope === n
              }), a.length && (s = e(a[0]).droppable('instance'), s.greedyChild = 'isover' === r)), s && 'isover' === r && (s.isover = !1, s.isout = !0, s._out.call(s, i)), this[r] = !0, this['isout' === r ? 'isover' : 'isout'] = !1, this['isover' === r ? '_over' : '_out'].call(this, i), s && 'isout' === r && (s.isout = !1, s.isover = !0, s._over.call(s, i)))
            }
          })
        },
        dragStop: function (t, i) {
          t.element.parentsUntil('body').unbind('scroll.droppable'),
          t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, i)
        }
      },
      e.ui.droppable,
      e.widget('ui.resizable', e.ui.mouse, {
        version: '1.11.4',
        widgetEventPrefix: 'resize',
        options: {
          alsoResize: !1,
          animate: !1,
          animateDuration: 'slow',
          animateEasing: 'swing',
          aspectRatio: !1,
          autoHide: !1,
          containment: !1,
          ghost: !1,
          grid: !1,
          handles: 'e,s,se',
          helper: !1,
          maxHeight: null,
          maxWidth: null,
          minHeight: 10,
          minWidth: 10,
          zIndex: 90,
          resize: null,
          start: null,
          stop: null
        },
        _num: function (e) {
          return parseInt(e, 10) || 0
        },
        _isNumber: function (e) {
          return !isNaN(parseInt(e, 10))
        },
        _hasScroll: function (t, i) {
          if ('hidden' === e(t).css('overflow')) return !1;
          var s = i && 'left' === i ? 'scrollLeft' : 'scrollTop',
          n = !1;
          return t[s] > 0 ? !0 : (t[s] = 1, n = t[s] > 0, t[s] = 0, n)
        },
        _create: function () {
          var t,
          i,
          s,
          n,
          a,
          o = this,
          r = this.options;
          if (this.element.addClass('ui-resizable'), e.extend(this, {
            _aspectRatio: !!r.aspectRatio,
            aspectRatio: r.aspectRatio,
            originalElement: this.element,
            _proportionallyResizeElements: [
            ],
            _helper: r.helper || r.ghost || r.animate ? r.helper || 'ui-resizable-helper' : null
          }), this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i) && (this.element.wrap(e('<div class=\'ui-wrapper\' style=\'overflow: hidden;\'></div>').css({
            position: this.element.css('position'),
            width: this.element.outerWidth(),
            height: this.element.outerHeight(),
            top: this.element.css('top'),
            left: this.element.css('left')
          })), this.element = this.element.parent().data('ui-resizable', this.element.resizable('instance')), this.elementIsWrapper = !0, this.element.css({
            marginLeft: this.originalElement.css('marginLeft'),
            marginTop: this.originalElement.css('marginTop'),
            marginRight: this.originalElement.css('marginRight'),
            marginBottom: this.originalElement.css('marginBottom')
          }), this.originalElement.css({
            marginLeft: 0,
            marginTop: 0,
            marginRight: 0,
            marginBottom: 0
          }), this.originalResizeStyle = this.originalElement.css('resize'), this.originalElement.css('resize', 'none'), this._proportionallyResizeElements.push(this.originalElement.css({
            position: 'static',
            zoom: 1,
            display: 'block'
          })), this.originalElement.css({
            margin: this.originalElement.css('margin')
          }), this._proportionallyResize()), this.handles = r.handles || (e('.ui-resizable-handle', this.element).length ? {
            n: '.ui-resizable-n',
            e: '.ui-resizable-e',
            s: '.ui-resizable-s',
            w: '.ui-resizable-w',
            se: '.ui-resizable-se',
            sw: '.ui-resizable-sw',
            ne: '.ui-resizable-ne',
            nw: '.ui-resizable-nw'
          }
           : 'e,s,se'), this._handles = e(), this.handles.constructor === String) for ('all' === this.handles && (this.handles = 'n,e,s,w,se,sw,ne,nw'), t = this.handles.split(','), this.handles = {
          }, i = 0; t.length > i; i++) s = e.trim(t[i]),
          a = 'ui-resizable-' + s,
          n = e('<div class=\'ui-resizable-handle ' + a + '\'></div>'),
          n.css({
            zIndex: r.zIndex
          }),
          'se' === s && n.addClass('ui-icon ui-icon-gripsmall-diagonal-se'),
          this.handles[s] = '.ui-resizable-' + s,
          this.element.append(n);
          this._renderAxis = function (t) {
            var i,
            s,
            n,
            a;
            t = t || this.element;
            for (i in this.handles) this.handles[i].constructor === String ? this.handles[i] = this.element.children(this.handles[i]).first().show()  : (this.handles[i].jquery || this.handles[i].nodeType) && (this.handles[i] = e(this.handles[i]), this._on(this.handles[i], {
              mousedown: o._mouseDown
            })),
            this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (s = e(this.handles[i], this.element), a = /sw|ne|nw|se|n|s/.test(i) ? s.outerHeight()  : s.outerWidth(), n = [
              'padding',
              /ne|nw|n/.test(i) ? 'Top' : /se|sw|s/.test(i) ? 'Bottom' : /^e$/.test(i) ? 'Right' : 'Left'
            ].join(''), t.css(n, a), this._proportionallyResize()),
            this._handles = this._handles.add(this.handles[i])
          },
          this._renderAxis(this.element),
          this._handles = this._handles.add(this.element.find('.ui-resizable-handle')),
          this._handles.disableSelection(),
          this._handles.mouseover(function () {
            o.resizing || (this.className && (n = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), o.axis = n && n[1] ? n[1] : 'se')
          }),
          r.autoHide && (this._handles.hide(), e(this.element).addClass('ui-resizable-autohide').mouseenter(function () {
            r.disabled || (e(this).removeClass('ui-resizable-autohide'), o._handles.show())
          }).mouseleave(function () {
            r.disabled || o.resizing || (e(this).addClass('ui-resizable-autohide'), o._handles.hide())
          })),
          this._mouseInit()
        },
        _destroy: function () {
          this._mouseDestroy();
          var t,
          i = function (t) {
            e(t).removeClass('ui-resizable ui-resizable-disabled ui-resizable-resizing').removeData('resizable').removeData('ui-resizable').unbind('.resizable').find('.ui-resizable-handle').remove()
          };
          return this.elementIsWrapper && (i(this.element), t = this.element, this.originalElement.css({
            position: t.css('position'),
            width: t.outerWidth(),
            height: t.outerHeight(),
            top: t.css('top'),
            left: t.css('left')
          }).insertAfter(t), t.remove()),
          this.originalElement.css('resize', this.originalResizeStyle),
          i(this.originalElement),
          this
        },
        _mouseCapture: function (t) {
          var i,
          s,
          n = !1;
          for (i in this.handles) s = e(this.handles[i]) [0],
          (s === t.target || e.contains(s, t.target)) && (n = !0);
          return !this.options.disabled && n
        },
        _mouseStart: function (t) {
          var i,
          s,
          n,
          a = this.options,
          o = this.element;
          return this.resizing = !0,
          this._renderProxy(),
          i = this._num(this.helper.css('left')),
          s = this._num(this.helper.css('top')),
          a.containment && (i += e(a.containment).scrollLeft() || 0, s += e(a.containment).scrollTop() || 0),
          this.offset = this.helper.offset(),
          this.position = {
            left: i,
            top: s
          },
          this.size = this._helper ? {
            width: this.helper.width(),
            height: this.helper.height()
          }
           : {
            width: o.width(),
            height: o.height()
          },
          this.originalSize = this._helper ? {
            width: o.outerWidth(),
            height: o.outerHeight()
          }
           : {
            width: o.width(),
            height: o.height()
          },
          this.sizeDiff = {
            width: o.outerWidth() - o.width(),
            height: o.outerHeight() - o.height()
          },
          this.originalPosition = {
            left: i,
            top: s
          },
          this.originalMousePosition = {
            left: t.pageX,
            top: t.pageY
          },
          this.aspectRatio = 'number' == typeof a.aspectRatio ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1,
          n = e('.ui-resizable-' + this.axis).css('cursor'),
          e('body').css('cursor', 'auto' === n ? this.axis + '-resize' : n),
          o.addClass('ui-resizable-resizing'),
          this._propagate('start', t),
          !0
        },
        _mouseDrag: function (t) {
          var i,
          s,
          n = this.originalMousePosition,
          a = this.axis,
          o = t.pageX - n.left || 0,
          r = t.pageY - n.top || 0,
          h = this._change[a];
          return this._updatePrevProperties(),
          h ? (i = h.apply(this, [
            t,
            o,
            r
          ]), this._updateVirtualBoundaries(t.shiftKey), (this._aspectRatio || t.shiftKey) && (i = this._updateRatio(i, t)), i = this._respectSize(i, t), this._updateCache(i), this._propagate('resize', t), s = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), e.isEmptyObject(s) || (this._updatePrevProperties(), this._trigger('resize', t, this.ui()), this._applyChanges()), !1)  : !1
        },
        _mouseStop: function (t) {
          this.resizing = !1;
          var i,
          s,
          n,
          a,
          o,
          r,
          h,
          l = this.options,
          u = this;
          return this._helper && (i = this._proportionallyResizeElements, s = i.length && /textarea/i.test(i[0].nodeName), n = s && this._hasScroll(i[0], 'left') ? 0 : u.sizeDiff.height, a = s ? 0 : u.sizeDiff.width, o = {
            width: u.helper.width() - a,
            height: u.helper.height() - n
          }, r = parseInt(u.element.css('left'), 10) + (u.position.left - u.originalPosition.left) || null, h = parseInt(u.element.css('top'), 10) + (u.position.top - u.originalPosition.top) || null, l.animate || this.element.css(e.extend(o, {
            top: h,
            left: r
          })), u.helper.height(u.size.height), u.helper.width(u.size.width), this._helper && !l.animate && this._proportionallyResize()),
          e('body').css('cursor', 'auto'),
          this.element.removeClass('ui-resizable-resizing'),
          this._propagate('stop', t),
          this._helper && this.helper.remove(),
          !1
        },
        _updatePrevProperties: function () {
          this.prevPosition = {
            top: this.position.top,
            left: this.position.left
          },
          this.prevSize = {
            width: this.size.width,
            height: this.size.height
          }
        },
        _applyChanges: function () {
          var e = {
          };
          return this.position.top !== this.prevPosition.top && (e.top = this.position.top + 'px'),
          this.position.left !== this.prevPosition.left && (e.left = this.position.left + 'px'),
          this.size.width !== this.prevSize.width && (e.width = this.size.width + 'px'),
          this.size.height !== this.prevSize.height && (e.height = this.size.height + 'px'),
          this.helper.css(e),
          e
        },
        _updateVirtualBoundaries: function (e) {
          var t,
          i,
          s,
          n,
          a,
          o = this.options;
          a = {
            minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0,
            maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : 1 / 0,
            minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0,
            maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : 1 / 0
          },
          (this._aspectRatio || e) && (t = a.minHeight * this.aspectRatio, s = a.minWidth / this.aspectRatio, i = a.maxHeight * this.aspectRatio, n = a.maxWidth / this.aspectRatio, t > a.minWidth && (a.minWidth = t), s > a.minHeight && (a.minHeight = s), a.maxWidth > i && (a.maxWidth = i), a.maxHeight > n && (a.maxHeight = n)),
          this._vBoundaries = a
        },
        _updateCache: function (e) {
          this.offset = this.helper.offset(),
          this._isNumber(e.left) && (this.position.left = e.left),
          this._isNumber(e.top) && (this.position.top = e.top),
          this._isNumber(e.height) && (this.size.height = e.height),
          this._isNumber(e.width) && (this.size.width = e.width)
        },
        _updateRatio: function (e) {
          var t = this.position,
          i = this.size,
          s = this.axis;
          return this._isNumber(e.height) ? e.width = e.height * this.aspectRatio : this._isNumber(e.width) && (e.height = e.width / this.aspectRatio),
          'sw' === s && (e.left = t.left + (i.width - e.width), e.top = null),
          'nw' === s && (e.top = t.top + (i.height - e.height), e.left = t.left + (i.width - e.width)),
          e
        },
        _respectSize: function (e) {
          var t = this._vBoundaries,
          i = this.axis,
          s = this._isNumber(e.width) && t.maxWidth && t.maxWidth < e.width,
          n = this._isNumber(e.height) && t.maxHeight && t.maxHeight < e.height,
          a = this._isNumber(e.width) && t.minWidth && t.minWidth > e.width,
          o = this._isNumber(e.height) && t.minHeight && t.minHeight > e.height,
          r = this.originalPosition.left + this.originalSize.width,
          h = this.position.top + this.size.height,
          l = /sw|nw|w/.test(i),
          u = /nw|ne|n/.test(i);
          return a && (e.width = t.minWidth),
          o && (e.height = t.minHeight),
          s && (e.width = t.maxWidth),
          n && (e.height = t.maxHeight),
          a && l && (e.left = r - t.minWidth),
          s && l && (e.left = r - t.maxWidth),
          o && u && (e.top = h - t.minHeight),
          n && u && (e.top = h - t.maxHeight),
          e.width || e.height || e.left || !e.top ? e.width || e.height || e.top || !e.left || (e.left = null)  : e.top = null,
          e
        },
        _getPaddingPlusBorderDimensions: function (e) {
          for (var t = 0, i = [
          ], s = [
            e.css('borderTopWidth'),
            e.css('borderRightWidth'),
            e.css('borderBottomWidth'),
            e.css('borderLeftWidth')
          ], n = [
            e.css('paddingTop'),
            e.css('paddingRight'),
            e.css('paddingBottom'),
            e.css('paddingLeft')
          ]; 4 > t; t++) i[t] = parseInt(s[t], 10) || 0,
          i[t] += parseInt(n[t], 10) || 0;
          return {
            height: i[0] + i[2],
            width: i[1] + i[3]
          }
        },
        _proportionallyResize: function () {
          if (this._proportionallyResizeElements.length) for (var e, t = 0, i = this.helper || this.element; this._proportionallyResizeElements.length > t; t++) e = this._proportionallyResizeElements[t],
          this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(e)),
          e.css({
            height: i.height() - this.outerDimensions.height || 0,
            width: i.width() - this.outerDimensions.width || 0
          })
        },
        _renderProxy: function () {
          var t = this.element,
          i = this.options;
          this.elementOffset = t.offset(),
          this._helper ? (this.helper = this.helper || e('<div style=\'overflow:hidden;\'></div>'), this.helper.addClass(this._helper).css({
            width: this.element.outerWidth() - 1,
            height: this.element.outerHeight() - 1,
            position: 'absolute',
            left: this.elementOffset.left + 'px',
            top: this.elementOffset.top + 'px',
            zIndex: ++i.zIndex
          }), this.helper.appendTo('body').disableSelection())  : this.helper = this.element
        },
        _change: {
          e: function (e, t) {
            return {
              width: this.originalSize.width + t
            }
          },
          w: function (e, t) {
            var i = this.originalSize,
            s = this.originalPosition;
            return {
              left: s.left + t,
              width: i.width - t
            }
          },
          n: function (e, t, i) {
            var s = this.originalSize,
            n = this.originalPosition;
            return {
              top: n.top + i,
              height: s.height - i
            }
          },
          s: function (e, t, i) {
            return {
              height: this.originalSize.height + i
            }
          },
          se: function (t, i, s) {
            return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [
              t,
              i,
              s
            ]))
          },
          sw: function (t, i, s) {
            return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [
              t,
              i,
              s
            ]))
          },
          ne: function (t, i, s) {
            return e.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [
              t,
              i,
              s
            ]))
          },
          nw: function (t, i, s) {
            return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [
              t,
              i,
              s
            ]))
          }
        },
        _propagate: function (t, i) {
          e.ui.plugin.call(this, t, [
            i,
            this.ui()
          ]),
          'resize' !== t && this._trigger(t, i, this.ui())
        },
        plugins: {
        },
        ui: function () {
          return {
            originalElement: this.originalElement,
            element: this.element,
            helper: this.helper,
            position: this.position,
            size: this.size,
            originalSize: this.originalSize,
            originalPosition: this.originalPosition
          }
        }
      }),
      e.ui.plugin.add('resizable', 'animate', {
        stop: function (t) {
          var i = e(this).resizable('instance'),
          s = i.options,
          n = i._proportionallyResizeElements,
          a = n.length && /textarea/i.test(n[0].nodeName),
          o = a && i._hasScroll(n[0], 'left') ? 0 : i.sizeDiff.height,
          r = a ? 0 : i.sizeDiff.width,
          h = {
            width: i.size.width - r,
            height: i.size.height - o
          },
          l = parseInt(i.element.css('left'), 10) + (i.position.left - i.originalPosition.left) || null,
          u = parseInt(i.element.css('top'), 10) + (i.position.top - i.originalPosition.top) || null;
          i.element.animate(e.extend(h, u && l ? {
            top: u,
            left: l
          }
           : {
          }), {
            duration: s.animateDuration,
            easing: s.animateEasing,
            step: function () {
              var s = {
                width: parseInt(i.element.css('width'), 10),
                height: parseInt(i.element.css('height'), 10),
                top: parseInt(i.element.css('top'), 10),
                left: parseInt(i.element.css('left'), 10)
              };
              n && n.length && e(n[0]).css({
                width: s.width,
                height: s.height
              }),
              i._updateCache(s),
              i._propagate('resize', t)
            }
          })
        }
      }),
      e.ui.plugin.add('resizable', 'containment', {
        start: function () {
          var t,
          i,
          s,
          n,
          a,
          o,
          r,
          h = e(this).resizable('instance'),
          l = h.options,
          u = h.element,
          d = l.containment,
          c = d instanceof e ? d.get(0)  : /parent/.test(d) ? u.parent().get(0)  : d;
          c && (h.containerElement = e(c), /document/.test(d) || d === document ? (h.containerOffset = {
            left: 0,
            top: 0
          }, h.containerPosition = {
            left: 0,
            top: 0
          }, h.parentData = {
            element: e(document),
            left: 0,
            top: 0,
            width: e(document).width(),
            height: e(document).height() || document.body.parentNode.scrollHeight
          })  : (t = e(c), i = [
          ], e(['Top',
          'Right',
          'Left',
          'Bottom']).each(function (e, s) {
            i[e] = h._num(t.css('padding' + s))
          }), h.containerOffset = t.offset(), h.containerPosition = t.position(), h.containerSize = {
            height: t.innerHeight() - i[3],
            width: t.innerWidth() - i[1]
          }, s = h.containerOffset, n = h.containerSize.height, a = h.containerSize.width, o = h._hasScroll(c, 'left') ? c.scrollWidth : a, r = h._hasScroll(c) ? c.scrollHeight : n, h.parentData = {
            element: c,
            left: s.left,
            top: s.top,
            width: o,
            height: r
          }))
        },
        resize: function (t) {
          var i,
          s,
          n,
          a,
          o = e(this).resizable('instance'),
          r = o.options,
          h = o.containerOffset,
          l = o.position,
          u = o._aspectRatio || t.shiftKey,
          d = {
            top: 0,
            left: 0
          },
          c = o.containerElement,
          p = !0;
          c[0] !== document && /static/.test(c.css('position')) && (d = h),
          l.left < (o._helper ? h.left : 0) && (o.size.width = o.size.width + (o._helper ? o.position.left - h.left : o.position.left - d.left), u && (o.size.height = o.size.width / o.aspectRatio, p = !1), o.position.left = r.helper ? h.left : 0),
          l.top < (o._helper ? h.top : 0) && (o.size.height = o.size.height + (o._helper ? o.position.top - h.top : o.position.top), u && (o.size.width = o.size.height * o.aspectRatio, p = !1), o.position.top = o._helper ? h.top : 0),
          n = o.containerElement.get(0) === o.element.parent().get(0),
          a = /relative|absolute/.test(o.containerElement.css('position')),
          n && a ? (o.offset.left = o.parentData.left + o.position.left, o.offset.top = o.parentData.top + o.position.top)  : (o.offset.left = o.element.offset().left, o.offset.top = o.element.offset().top),
          i = Math.abs(o.sizeDiff.width + (o._helper ? o.offset.left - d.left : o.offset.left - h.left)),
          s = Math.abs(o.sizeDiff.height + (o._helper ? o.offset.top - d.top : o.offset.top - h.top)),
          i + o.size.width >= o.parentData.width && (o.size.width = o.parentData.width - i, u && (o.size.height = o.size.width / o.aspectRatio, p = !1)),
          s + o.size.height >= o.parentData.height && (o.size.height = o.parentData.height - s, u && (o.size.width = o.size.height * o.aspectRatio, p = !1)),
          p || (o.position.left = o.prevPosition.left, o.position.top = o.prevPosition.top, o.size.width = o.prevSize.width, o.size.height = o.prevSize.height)
        },
        stop: function () {
          var t = e(this).resizable('instance'),
          i = t.options,
          s = t.containerOffset,
          n = t.containerPosition,
          a = t.containerElement,
          o = e(t.helper),
          r = o.offset(),
          h = o.outerWidth() - t.sizeDiff.width,
          l = o.outerHeight() - t.sizeDiff.height;
          t._helper && !i.animate && /relative/.test(a.css('position')) && e(this).css({
            left: r.left - n.left - s.left,
            width: h,
            height: l
          }),
          t._helper && !i.animate && /static/.test(a.css('position')) && e(this).css({
            left: r.left - n.left - s.left,
            width: h,
            height: l
          })
        }
      }),
      e.ui.plugin.add('resizable', 'alsoResize', {
        start: function () {
          var t = e(this).resizable('instance'),
          i = t.options;
          e(i.alsoResize).each(function () {
            var t = e(this);
            t.data('ui-resizable-alsoresize', {
              width: parseInt(t.width(), 10),
              height: parseInt(t.height(), 10),
              left: parseInt(t.css('left'), 10),
              top: parseInt(t.css('top'), 10)
            })
          })
        },
        resize: function (t, i) {
          var s = e(this).resizable('instance'),
          n = s.options,
          a = s.originalSize,
          o = s.originalPosition,
          r = {
            height: s.size.height - a.height || 0,
            width: s.size.width - a.width || 0,
            top: s.position.top - o.top || 0,
            left: s.position.left - o.left || 0
          };
          e(n.alsoResize).each(function () {
            var t = e(this),
            s = e(this).data('ui-resizable-alsoresize'),
            n = {
            },
            a = t.parents(i.originalElement[0]).length ? [
              'width',
              'height'
            ] : [
              'width',
              'height',
              'top',
              'left'
            ];
            e.each(a, function (e, t) {
              var i = (s[t] || 0) + (r[t] || 0);
              i && i >= 0 && (n[t] = i || null)
            }),
            t.css(n)
          })
        },
        stop: function () {
          e(this).removeData('resizable-alsoresize')
        }
      }),
      e.ui.plugin.add('resizable', 'ghost', {
        start: function () {
          var t = e(this).resizable('instance'),
          i = t.options,
          s = t.size;
          t.ghost = t.originalElement.clone(),
          t.ghost.css({
            opacity: 0.25,
            display: 'block',
            position: 'relative',
            height: s.height,
            width: s.width,
            margin: 0,
            left: 0,
            top: 0
          }).addClass('ui-resizable-ghost').addClass('string' == typeof i.ghost ? i.ghost : ''),
          t.ghost.appendTo(t.helper)
        },
        resize: function () {
          var t = e(this).resizable('instance');
          t.ghost && t.ghost.css({
            position: 'relative',
            height: t.size.height,
            width: t.size.width
          })
        },
        stop: function () {
          var t = e(this).resizable('instance');
          t.ghost && t.helper && t.helper.get(0).removeChild(t.ghost.get(0))
        }
      }),
      e.ui.plugin.add('resizable', 'grid', {
        resize: function () {
          var t,
          i = e(this).resizable('instance'),
          s = i.options,
          n = i.size,
          a = i.originalSize,
          o = i.originalPosition,
          r = i.axis,
          h = 'number' == typeof s.grid ? [
            s.grid,
            s.grid
          ] : s.grid,
          l = h[0] || 1,
          u = h[1] || 1,
          d = Math.round((n.width - a.width) / l) * l,
          c = Math.round((n.height - a.height) / u) * u,
          p = a.width + d,
          f = a.height + c,
          m = s.maxWidth && p > s.maxWidth,
          g = s.maxHeight && f > s.maxHeight,
          v = s.minWidth && s.minWidth > p,
          y = s.minHeight && s.minHeight > f;
          s.grid = h,
          v && (p += l),
          y && (f += u),
          m && (p -= l),
          g && (f -= u),
          /^(se|s|e)$/.test(r) ? (i.size.width = p, i.size.height = f)  : /^(ne)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.top = o.top - c)  : /^(sw)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.left = o.left - d)  : ((0 >= f - u || 0 >= p - l) && (t = i._getPaddingPlusBorderDimensions(this)), f - u > 0 ? (i.size.height = f, i.position.top = o.top - c)  : (f = u - t.height, i.size.height = f, i.position.top = o.top + a.height - f), p - l > 0 ? (i.size.width = p, i.position.left = o.left - d)  : (p = l - t.width, i.size.width = p, i.position.left = o.left + a.width - p))
        }
      }),
      e.ui.resizable,
      e.widget('ui.selectable', e.ui.mouse, {
        version: '1.11.4',
        options: {
          appendTo: 'body',
          autoRefresh: !0,
          distance: 0,
          filter: '*',
          tolerance: 'touch',
          selected: null,
          selecting: null,
          start: null,
          stop: null,
          unselected: null,
          unselecting: null
        },
        _create: function () {
          var t,
          i = this;
          this.element.addClass('ui-selectable'),
          this.dragged = !1,
          this.refresh = function () {
            t = e(i.options.filter, i.element[0]),
            t.addClass('ui-selectee'),
            t.each(function () {
              var t = e(this),
              i = t.offset();
              e.data(this, 'selectable-item', {
                element: this,
                $element: t,
                left: i.left,
                top: i.top,
                right: i.left + t.outerWidth(),
                bottom: i.top + t.outerHeight(),
                startselected: !1,
                selected: t.hasClass('ui-selected'),
                selecting: t.hasClass('ui-selecting'),
                unselecting: t.hasClass('ui-unselecting')
              })
            })
          },
          this.refresh(),
          this.selectees = t.addClass('ui-selectee'),
          this._mouseInit(),
          this.helper = e('<div class=\'ui-selectable-helper\'></div>')
        },
        _destroy: function () {
          this.selectees.removeClass('ui-selectee').removeData('selectable-item'),
          this.element.removeClass('ui-selectable ui-selectable-disabled'),
          this._mouseDestroy()
        },
        _mouseStart: function (t) {
          var i = this,
          s = this.options;
          this.opos = [
            t.pageX,
            t.pageY
          ],
          this.options.disabled || (this.selectees = e(s.filter, this.element[0]), this._trigger('start', t), e(s.appendTo).append(this.helper), this.helper.css({
            left: t.pageX,
            top: t.pageY,
            width: 0,
            height: 0
          }), s.autoRefresh && this.refresh(), this.selectees.filter('.ui-selected').each(function () {
            var s = e.data(this, 'selectable-item');
            s.startselected = !0,
            t.metaKey || t.ctrlKey || (s.$element.removeClass('ui-selected'), s.selected = !1, s.$element.addClass('ui-unselecting'), s.unselecting = !0, i._trigger('unselecting', t, {
              unselecting: s.element
            }))
          }), e(t.target).parents().addBack().each(function () {
            var s,
            n = e.data(this, 'selectable-item');
            return n ? (s = !t.metaKey && !t.ctrlKey || !n.$element.hasClass('ui-selected'), n.$element.removeClass(s ? 'ui-unselecting' : 'ui-selected').addClass(s ? 'ui-selecting' : 'ui-unselecting'), n.unselecting = !s, n.selecting = s, n.selected = s, s ? i._trigger('selecting', t, {
              selecting: n.element
            })  : i._trigger('unselecting', t, {
              unselecting: n.element
            }), !1)  : void 0
          }))
        },
        _mouseDrag: function (t) {
          if (this.dragged = !0, !this.options.disabled) {
            var i,
            s = this,
            n = this.options,
            a = this.opos[0],
            o = this.opos[1],
            r = t.pageX,
            h = t.pageY;
            return a > r && (i = r, r = a, a = i),
            o > h && (i = h, h = o, o = i),
            this.helper.css({
              left: a,
              top: o,
              width: r - a,
              height: h - o
            }),
            this.selectees.each(function () {
              var i = e.data(this, 'selectable-item'),
              l = !1;
              i && i.element !== s.element[0] && ('touch' === n.tolerance ? l = !(i.left > r || a > i.right || i.top > h || o > i.bottom)  : 'fit' === n.tolerance && (l = i.left > a && r > i.right && i.top > o && h > i.bottom), l ? (i.selected && (i.$element.removeClass('ui-selected'), i.selected = !1), i.unselecting && (i.$element.removeClass('ui-unselecting'), i.unselecting = !1), i.selecting || (i.$element.addClass('ui-selecting'), i.selecting = !0, s._trigger('selecting', t, {
                selecting: i.element
              })))  : (i.selecting && ((t.metaKey || t.ctrlKey) && i.startselected ? (i.$element.removeClass('ui-selecting'), i.selecting = !1, i.$element.addClass('ui-selected'), i.selected = !0)  : (i.$element.removeClass('ui-selecting'), i.selecting = !1, i.startselected && (i.$element.addClass('ui-unselecting'), i.unselecting = !0), s._trigger('unselecting', t, {
                unselecting: i.element
              }))), i.selected && (t.metaKey || t.ctrlKey || i.startselected || (i.$element.removeClass('ui-selected'), i.selected = !1, i.$element.addClass('ui-unselecting'), i.unselecting = !0, s._trigger('unselecting', t, {
                unselecting: i.element
              })))))
            }),
            !1
          }
        },
        _mouseStop: function (t) {
          var i = this;
          return this.dragged = !1,
          e('.ui-unselecting', this.element[0]).each(function () {
            var s = e.data(this, 'selectable-item');
            s.$element.removeClass('ui-unselecting'),
            s.unselecting = !1,
            s.startselected = !1,
            i._trigger('unselected', t, {
              unselected: s.element
            })
          }),
          e('.ui-selecting', this.element[0]).each(function () {
            var s = e.data(this, 'selectable-item');
            s.$element.removeClass('ui-selecting').addClass('ui-selected'),
            s.selecting = !1,
            s.selected = !0,
            s.startselected = !0,
            i._trigger('selected', t, {
              selected: s.element
            })
          }),
          this._trigger('stop', t),
          this.helper.remove(),
          !1
        }
      }),
      e.widget('ui.sortable', e.ui.mouse, {
        version: '1.11.4',
        widgetEventPrefix: 'sort',
        ready: !1,
        options: {
          appendTo: 'parent',
          axis: !1,
          connectWith: !1,
          containment: !1,
          cursor: 'auto',
          cursorAt: !1,
          dropOnEmpty: !0,
          forcePlaceholderSize: !1,
          forceHelperSize: !1,
          grid: !1,
          handle: !1,
          helper: 'original',
          items: '> *',
          opacity: !1,
          placeholder: !1,
          revert: !1,
          scroll: !0,
          scrollSensitivity: 20,
          scrollSpeed: 20,
          scope: 'default',
          tolerance: 'intersect',
          zIndex: 1000,
          activate: null,
          beforeStop: null,
          change: null,
          deactivate: null,
          out: null,
          over: null,
          receive: null,
          remove: null,
          sort: null,
          start: null,
          stop: null,
          update: null
        },
        _isOverAxis: function (e, t, i) {
          return e >= t && t + i > e
        },
        _isFloating: function (e) {
          return /left|right/.test(e.css('float')) || /inline|table-cell/.test(e.css('display'))
        },
        _create: function () {
          this.containerCache = {
          },
          this.element.addClass('ui-sortable'),
          this.refresh(),
          this.offset = this.element.offset(),
          this._mouseInit(),
          this._setHandleClassName(),
          this.ready = !0
        },
        _setOption: function (e, t) {
          this._super(e, t),
          'handle' === e && this._setHandleClassName()
        },
        _setHandleClassName: function () {
          this.element.find('.ui-sortable-handle').removeClass('ui-sortable-handle'),
          e.each(this.items, function () {
            (this.instance.options.handle ? this.item.find(this.instance.options.handle)  : this.item).addClass('ui-sortable-handle')
          })
        },
        _destroy: function () {
          this.element.removeClass('ui-sortable ui-sortable-disabled').find('.ui-sortable-handle').removeClass('ui-sortable-handle'),
          this._mouseDestroy();
          for (var e = this.items.length - 1; e >= 0; e--) this.items[e].item.removeData(this.widgetName + '-item');
          return this
        },
        _mouseCapture: function (t, i) {
          var s = null,
          n = !1,
          a = this;
          return this.reverting ? !1 : this.options.disabled || 'static' === this.options.type ? !1 : (this._refreshItems(t), e(t.target).parents().each(function () {
            return e.data(this, a.widgetName + '-item') === a ? (s = e(this), !1)  : void 0
          }), e.data(t.target, a.widgetName + '-item') === a && (s = e(t.target)), s ? !this.options.handle || i || (e(this.options.handle, s).find('*').addBack().each(function () {
            this === t.target && (n = !0)
          }), n) ? (this.currentItem = s, this._removeCurrentsFromItems(), !0)  : !1 : !1)
        },
        _mouseStart: function (t, i, s) {
          var n,
          a,
          o = this.options;
          if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(t), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = {
            top: this.offset.top - this.margins.top,
            left: this.offset.left - this.margins.left
          }, e.extend(this.offset, {
            click: {
              left: t.pageX - this.offset.left,
              top: t.pageY - this.offset.top
            },
            parent: this._getParentOffset(),
            relative: this._getRelativeOffset()
          }), this.helper.css('position', 'absolute'), this.cssPosition = this.helper.css('position'), this.originalPosition = this._generatePosition(t), this.originalPageX = t.pageX, this.originalPageY = t.pageY, o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt), this.domPosition = {
            prev: this.currentItem.prev() [0],
            parent: this.currentItem.parent() [0]
          }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), o.containment && this._setContainment(), o.cursor && 'auto' !== o.cursor && (a = this.document.find('body'), this.storedCursor = a.css('cursor'), a.css('cursor', o.cursor), this.storedStylesheet = e('<style>*{ cursor: ' + o.cursor + ' !important; }</style>').appendTo(a)), o.opacity && (this.helper.css('opacity') && (this._storedOpacity = this.helper.css('opacity')), this.helper.css('opacity', o.opacity)), o.zIndex && (this.helper.css('zIndex') && (this._storedZIndex = this.helper.css('zIndex')), this.helper.css('zIndex', o.zIndex)), this.scrollParent[0] !== this.document[0] && 'HTML' !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger('start', t, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !s) for (n = this.containers.length - 1; n >= 0; n--) this.containers[n]._trigger('activate', t, this._uiHash(this));
          return e.ui.ddmanager && (e.ui.ddmanager.current = this),
          e.ui.ddmanager && !o.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t),
          this.dragging = !0,
          this.helper.addClass('ui-sortable-helper'),
          this._mouseDrag(t),
          !0
        },
        _mouseDrag: function (t) {
          var i,
          s,
          n,
          a,
          o = this.options,
          r = !1;
          for (this.position = this._generatePosition(t), this.positionAbs = this._convertPositionTo('absolute'), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== this.document[0] && 'HTML' !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - t.pageY < o.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + o.scrollSpeed : t.pageY - this.overflowOffset.top < o.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - o.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - t.pageX < o.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + o.scrollSpeed : t.pageX - this.overflowOffset.left < o.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - o.scrollSpeed))  : (t.pageY - this.document.scrollTop() < o.scrollSensitivity ? r = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed)  : this.window.height() - (t.pageY - this.document.scrollTop()) < o.scrollSensitivity && (r = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed)), t.pageX - this.document.scrollLeft() < o.scrollSensitivity ? r = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed)  : this.window.width() - (t.pageX - this.document.scrollLeft()) < o.scrollSensitivity && (r = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed))), r !== !1 && e.ui.ddmanager && !o.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t)), this.positionAbs = this._convertPositionTo('absolute'), this.options.axis && 'y' === this.options.axis || (this.helper[0].style.left = this.position.left + 'px'), this.options.axis && 'x' === this.options.axis || (this.helper[0].style.top = this.position.top + 'px'), i = this.items.length - 1; i >= 0; i--) if (s = this.items[i], n = s.item[0], a = this._intersectsWithPointer(s), a && s.instance === this.currentContainer && n !== this.currentItem[0] && this.placeholder[1 === a ? 'next' : 'prev']() [0] !== n && !e.contains(this.placeholder[0], n) && ('semi-dynamic' === this.options.type ? !e.contains(this.element[0], n)  : !0)) {
            if (this.direction = 1 === a ? 'down' : 'up', 'pointer' !== this.options.tolerance && !this._intersectsWithSides(s)) break;
            this._rearrange(t, s),
            this._trigger('change', t, this._uiHash());
            break
          }
          return this._contactContainers(t),
          e.ui.ddmanager && e.ui.ddmanager.drag(this, t),
          this._trigger('sort', t, this._uiHash()),
          this.lastPositionAbs = this.positionAbs,
          !1
        },
        _mouseStop: function (t, i) {
          if (t) {
            if (e.ui.ddmanager && !this.options.dropBehaviour && e.ui.ddmanager.drop(this, t), this.options.revert) {
              var s = this,
              n = this.placeholder.offset(),
              a = this.options.axis,
              o = {
              };
              a && 'x' !== a || (o.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)),
              a && 'y' !== a || (o.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)),
              this.reverting = !0,
              e(this.helper).animate(o, parseInt(this.options.revert, 10) || 500, function () {
                s._clear(t)
              })
            } else this._clear(t, i);
            return !1
          }
        },
        cancel: function () {
          if (this.dragging) {
            this._mouseUp({
              target: null
            }),
            'original' === this.options.helper ? this.currentItem.css(this._storedCSS).removeClass('ui-sortable-helper')  : this.currentItem.show();
            for (var t = this.containers.length - 1; t >= 0; t--) this.containers[t]._trigger('deactivate', null, this._uiHash(this)),
            this.containers[t].containerCache.over && (this.containers[t]._trigger('out', null, this._uiHash(this)), this.containers[t].containerCache.over = 0)
          }
          return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), 'original' !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), e.extend(this, {
            helper: null,
            dragging: !1,
            reverting: !1,
            _noFinalSort: null
          }), this.domPosition.prev ? e(this.domPosition.prev).after(this.currentItem)  : e(this.domPosition.parent).prepend(this.currentItem)),
          this
        },
        serialize: function (t) {
          var i = this._getItemsAsjQuery(t && t.connected),
          s = [
          ];
          return t = t || {
          },
          e(i).each(function () {
            var i = (e(t.item || this).attr(t.attribute || 'id') || '').match(t.expression || /(.+)[\-=_](.+)/);
            i && s.push((t.key || i[1] + '[]') + '=' + (t.key && t.expression ? i[1] : i[2]))
          }),
          !s.length && t.key && s.push(t.key + '='),
          s.join('&')
        },
        toArray: function (t) {
          var i = this._getItemsAsjQuery(t && t.connected),
          s = [
          ];
          return t = t || {
          },
          i.each(function () {
            s.push(e(t.item || this).attr(t.attribute || 'id') || '')
          }),
          s
        },
        _intersectsWith: function (e) {
          var t = this.positionAbs.left,
          i = t + this.helperProportions.width,
          s = this.positionAbs.top,
          n = s + this.helperProportions.height,
          a = e.left,
          o = a + e.width,
          r = e.top,
          h = r + e.height,
          l = this.offset.click.top,
          u = this.offset.click.left,
          d = 'x' === this.options.axis || s + l > r && h > s + l,
          c = 'y' === this.options.axis || t + u > a && o > t + u,
          p = d && c;
          return 'pointer' === this.options.tolerance || this.options.forcePointerForContainers || 'pointer' !== this.options.tolerance && this.helperProportions[this.floating ? 'width' : 'height'] > e[this.floating ? 'width' : 'height'] ? p : t + this.helperProportions.width / 2 > a && o > i - this.helperProportions.width / 2 && s + this.helperProportions.height / 2 > r && h > n - this.helperProportions.height / 2
        },
        _intersectsWithPointer: function (e) {
          var t = 'x' === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, e.top, e.height),
          i = 'y' === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, e.left, e.width),
          s = t && i,
          n = this._getDragVerticalDirection(),
          a = this._getDragHorizontalDirection();
          return s ? this.floating ? a && 'right' === a || 'down' === n ? 2 : 1 : n && ('down' === n ? 2 : 1)  : !1
        },
        _intersectsWithSides: function (e) {
          var t = this._isOverAxis(this.positionAbs.top + this.offset.click.top, e.top + e.height / 2, e.height),
          i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, e.left + e.width / 2, e.width),
          s = this._getDragVerticalDirection(),
          n = this._getDragHorizontalDirection();
          return this.floating && n ? 'right' === n && i || 'left' === n && !i : s && ('down' === s && t || 'up' === s && !t)
        },
        _getDragVerticalDirection: function () {
          var e = this.positionAbs.top - this.lastPositionAbs.top;
          return 0 !== e && (e > 0 ? 'down' : 'up')
        },
        _getDragHorizontalDirection: function () {
          var e = this.positionAbs.left - this.lastPositionAbs.left;
          return 0 !== e && (e > 0 ? 'right' : 'left')
        },
        refresh: function (e) {
          return this._refreshItems(e),
          this._setHandleClassName(),
          this.refreshPositions(),
          this
        },
        _connectWith: function () {
          var e = this.options;
          return e.connectWith.constructor === String ? [
            e.connectWith
          ] : e.connectWith
        },
        _getItemsAsjQuery: function (t) {
          function i() {
            r.push(this)
          }
          var s,
          n,
          a,
          o,
          r = [
          ],
          h = [
          ],
          l = this._connectWith();
          if (l && t) for (s = l.length - 1; s >= 0; s--) for (a = e(l[s], this.document[0]), n = a.length - 1; n >= 0; n--) o = e.data(a[n], this.widgetFullName),
          o && o !== this && !o.options.disabled && h.push([e.isFunction(o.options.items) ? o.options.items.call(o.element)  : e(o.options.items, o.element).not('.ui-sortable-helper').not('.ui-sortable-placeholder'),
          o]);
          for (h.push([e.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
            options: this.options,
            item: this.currentItem
          })  : e(this.options.items, this.element).not('.ui-sortable-helper').not('.ui-sortable-placeholder'),
          this]), s = h.length - 1; s >= 0; s--) h[s][0].each(i);
          return e(r)
        },
        _removeCurrentsFromItems: function () {
          var t = this.currentItem.find(':data(' + this.widgetName + '-item)');
          this.items = e.grep(this.items, function (e) {
            for (var i = 0; t.length > i; i++) if (t[i] === e.item[0]) return !1;
            return !0
          })
        },
        _refreshItems: function (t) {
          this.items = [
          ],
          this.containers = [
            this
          ];
          var i,
          s,
          n,
          a,
          o,
          r,
          h,
          l,
          u = this.items,
          d = [
            [e.isFunction(this.options.items) ? this.options.items.call(this.element[0], t, {
              item: this.currentItem
            })  : e(this.options.items, this.element),
            this]
          ],
          c = this._connectWith();
          if (c && this.ready) for (i = c.length - 1; i >= 0; i--) for (n = e(c[i], this.document[0]), s = n.length - 1; s >= 0; s--) a = e.data(n[s], this.widgetFullName),
          a && a !== this && !a.options.disabled && (d.push([e.isFunction(a.options.items) ? a.options.items.call(a.element[0], t, {
            item: this.currentItem
          })  : e(a.options.items, a.element),
          a]), this.containers.push(a));
          for (i = d.length - 1; i >= 0; i--) for (o = d[i][1], r = d[i][0], s = 0, l = r.length; l > s; s++) h = e(r[s]),
          h.data(this.widgetName + '-item', o),
          u.push({
            item: h,
            instance: o,
            width: 0,
            height: 0,
            left: 0,
            top: 0
          })
        },
        refreshPositions: function (t) {
          this.floating = this.items.length ? 'x' === this.options.axis || this._isFloating(this.items[0].item)  : !1,
          this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
          var i,
          s,
          n,
          a;
          for (i = this.items.length - 1; i >= 0; i--) s = this.items[i],
          s.instance !== this.currentContainer && this.currentContainer && s.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? e(this.options.toleranceElement, s.item)  : s.item, t || (s.width = n.outerWidth(), s.height = n.outerHeight()), a = n.offset(), s.left = a.left, s.top = a.top);
          if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);
           else for (i = this.containers.length - 1; i >= 0; i--) a = this.containers[i].element.offset(),
          this.containers[i].containerCache.left = a.left,
          this.containers[i].containerCache.top = a.top,
          this.containers[i].containerCache.width = this.containers[i].element.outerWidth(),
          this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
          return this
        },
        _createPlaceholder: function (t) {
          t = t || this;
          var i,
          s = t.options;
          s.placeholder && s.placeholder.constructor !== String || (i = s.placeholder, s.placeholder = {
            element: function () {
              var s = t.currentItem[0].nodeName.toLowerCase(),
              n = e('<' + s + '>', t.document[0]).addClass(i || t.currentItem[0].className + ' ui-sortable-placeholder').removeClass('ui-sortable-helper');
              return 'tbody' === s ? t._createTrPlaceholder(t.currentItem.find('tr').eq(0), e('<tr>', t.document[0]).appendTo(n))  : 'tr' === s ? t._createTrPlaceholder(t.currentItem, n)  : 'img' === s && n.attr('src', t.currentItem.attr('src')),
              i || n.css('visibility', 'hidden'),
              n
            },
            update: function (e, n) {
              (!i || s.forcePlaceholderSize) && (n.height() || n.height(t.currentItem.innerHeight() - parseInt(t.currentItem.css('paddingTop') || 0, 10) - parseInt(t.currentItem.css('paddingBottom') || 0, 10)), n.width() || n.width(t.currentItem.innerWidth() - parseInt(t.currentItem.css('paddingLeft') || 0, 10) - parseInt(t.currentItem.css('paddingRight') || 0, 10)))
            }
          }),
          t.placeholder = e(s.placeholder.element.call(t.element, t.currentItem)),
          t.currentItem.after(t.placeholder),
          s.placeholder.update(t, t.placeholder)
        },
        _createTrPlaceholder: function (t, i) {
          var s = this;
          t.children().each(function () {
            e('<td>&#160;</td>', s.document[0]).attr('colspan', e(this).attr('colspan') || 1).appendTo(i)
          })
        },
        _contactContainers: function (t) {
          var i,
          s,
          n,
          a,
          o,
          r,
          h,
          l,
          u,
          d,
          c = null,
          p = null;
          for (i = this.containers.length - 1; i >= 0; i--) if (!e.contains(this.currentItem[0], this.containers[i].element[0])) if (this._intersectsWith(this.containers[i].containerCache)) {
            if (c && e.contains(this.containers[i].element[0], c.element[0])) continue;
            c = this.containers[i],
            p = i
          } else this.containers[i].containerCache.over && (this.containers[i]._trigger('out', t, this._uiHash(this)), this.containers[i].containerCache.over = 0);
          if (c) if (1 === this.containers.length) this.containers[p].containerCache.over || (this.containers[p]._trigger('over', t, this._uiHash(this)), this.containers[p].containerCache.over = 1);
           else {
            for (n = 10000, a = null, u = c.floating || this._isFloating(this.currentItem), o = u ? 'left' : 'top', r = u ? 'width' : 'height', d = u ? 'clientX' : 'clientY', s = this.items.length - 1; s >= 0; s--) e.contains(this.containers[p].element[0], this.items[s].item[0]) && this.items[s].item[0] !== this.currentItem[0] && (h = this.items[s].item.offset() [o], l = !1, t[d] - h > this.items[s][r] / 2 && (l = !0), n > Math.abs(t[d] - h) && (n = Math.abs(t[d] - h), a = this.items[s], this.direction = l ? 'up' : 'down'));
            if (!a && !this.options.dropOnEmpty) return;
            if (this.currentContainer === this.containers[p]) return this.currentContainer.containerCache.over || (this.containers[p]._trigger('over', t, this._uiHash()), this.currentContainer.containerCache.over = 1),
            void 0;
            a ? this._rearrange(t, a, null, !0)  : this._rearrange(t, null, this.containers[p].element, !0),
            this._trigger('change', t, this._uiHash()),
            this.containers[p]._trigger('change', t, this._uiHash(this)),
            this.currentContainer = this.containers[p],
            this.options.placeholder.update(this.currentContainer, this.placeholder),
            this.containers[p]._trigger('over', t, this._uiHash(this)),
            this.containers[p].containerCache.over = 1
          }
        },
        _createHelper: function (t) {
          var i = this.options,
          s = e.isFunction(i.helper) ? e(i.helper.apply(this.element[0], [
            t,
            this.currentItem
          ]))  : 'clone' === i.helper ? this.currentItem.clone()  : this.currentItem;
          return s.parents('body').length || e('parent' !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode) [0].appendChild(s[0]),
          s[0] === this.currentItem[0] && (this._storedCSS = {
            width: this.currentItem[0].style.width,
            height: this.currentItem[0].style.height,
            position: this.currentItem.css('position'),
            top: this.currentItem.css('top'),
            left: this.currentItem.css('left')
          }),
          (!s[0].style.width || i.forceHelperSize) && s.width(this.currentItem.width()),
          (!s[0].style.height || i.forceHelperSize) && s.height(this.currentItem.height()),
          s
        },
        _adjustOffsetFromHelper: function (t) {
          'string' == typeof t && (t = t.split(' ')),
          e.isArray(t) && (t = {
            left: + t[0],
            top: + t[1] || 0
          }),
          'left' in t && (this.offset.click.left = t.left + this.margins.left),
          'right' in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left),
          'top' in t && (this.offset.click.top = t.top + this.margins.top),
          'bottom' in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top)
        },
        _getParentOffset: function () {
          this.offsetParent = this.helper.offsetParent();
          var t = this.offsetParent.offset();
          return 'absolute' === this.cssPosition && this.scrollParent[0] !== this.document[0] && e.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), t.top += this.scrollParent.scrollTop()),
          (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && 'html' === this.offsetParent[0].tagName.toLowerCase() && e.ui.ie) && (t = {
            top: 0,
            left: 0
          }),
          {
            top: t.top + (parseInt(this.offsetParent.css('borderTopWidth'), 10) || 0),
            left: t.left + (parseInt(this.offsetParent.css('borderLeftWidth'), 10) || 0)
          }
        },
        _getRelativeOffset: function () {
          if ('relative' === this.cssPosition) {
            var e = this.currentItem.position();
            return {
              top: e.top - (parseInt(this.helper.css('top'), 10) || 0) + this.scrollParent.scrollTop(),
              left: e.left - (parseInt(this.helper.css('left'), 10) || 0) + this.scrollParent.scrollLeft()
            }
          }
          return {
            top: 0,
            left: 0
          }
        },
        _cacheMargins: function () {
          this.margins = {
            left: parseInt(this.currentItem.css('marginLeft'), 10) || 0,
            top: parseInt(this.currentItem.css('marginTop'), 10) || 0
          }
        },
        _cacheHelperProportions: function () {
          this.helperProportions = {
            width: this.helper.outerWidth(),
            height: this.helper.outerHeight()
          }
        },
        _setContainment: function () {
          var t,
          i,
          s,
          n = this.options;
          'parent' === n.containment && (n.containment = this.helper[0].parentNode),
          ('document' === n.containment || 'window' === n.containment) && (this.containment = [
            0 - this.offset.relative.left - this.offset.parent.left,
            0 - this.offset.relative.top - this.offset.parent.top,
            'document' === n.containment ? this.document.width()  : this.window.width() - this.helperProportions.width - this.margins.left,
            ('document' === n.containment ? this.document.width()  : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
          ]),
          /^(document|window|parent)$/.test(n.containment) || (t = e(n.containment) [0], i = e(n.containment).offset(), s = 'hidden' !== e(t).css('overflow'), this.containment = [
            i.left + (parseInt(e(t).css('borderLeftWidth'), 10) || 0) + (parseInt(e(t).css('paddingLeft'), 10) || 0) - this.margins.left,
            i.top + (parseInt(e(t).css('borderTopWidth'), 10) || 0) + (parseInt(e(t).css('paddingTop'), 10) || 0) - this.margins.top,
            i.left + (s ? Math.max(t.scrollWidth, t.offsetWidth)  : t.offsetWidth) - (parseInt(e(t).css('borderLeftWidth'), 10) || 0) - (parseInt(e(t).css('paddingRight'), 10) || 0) - this.helperProportions.width - this.margins.left,
            i.top + (s ? Math.max(t.scrollHeight, t.offsetHeight)  : t.offsetHeight) - (parseInt(e(t).css('borderTopWidth'), 10) || 0) - (parseInt(e(t).css('paddingBottom'), 10) || 0) - this.helperProportions.height - this.margins.top
          ])
        },
        _convertPositionTo: function (t, i) {
          i || (i = this.position);
          var s = 'absolute' === t ? 1 : - 1,
          n = 'absolute' !== this.cssPosition || this.scrollParent[0] !== this.document[0] && e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
          a = /(html|body)/i.test(n[0].tagName);
          return {
            top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - ('fixed' === this.cssPosition ? - this.scrollParent.scrollTop()  : a ? 0 : n.scrollTop()) * s,
            left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - ('fixed' === this.cssPosition ? - this.scrollParent.scrollLeft()  : a ? 0 : n.scrollLeft()) * s
          }
        },
        _generatePosition: function (t) {
          var i,
          s,
          n = this.options,
          a = t.pageX,
          o = t.pageY,
          r = 'absolute' !== this.cssPosition || this.scrollParent[0] !== this.document[0] && e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
          h = /(html|body)/i.test(r[0].tagName);
          return 'relative' !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()),
          this.originalPosition && (this.containment && (t.pageX - this.offset.click.left < this.containment[0] && (a = this.containment[0] + this.offset.click.left), t.pageY - this.offset.click.top < this.containment[1] && (o = this.containment[1] + this.offset.click.top), t.pageX - this.offset.click.left > this.containment[2] && (a = this.containment[2] + this.offset.click.left), t.pageY - this.offset.click.top > this.containment[3] && (o = this.containment[3] + this.offset.click.top)), n.grid && (i = this.originalPageY + Math.round((o - this.originalPageY) / n.grid[1]) * n.grid[1], o = this.containment ? i - this.offset.click.top >= this.containment[1] && i - this.offset.click.top <= this.containment[3] ? i : i - this.offset.click.top >= this.containment[1] ? i - n.grid[1] : i + n.grid[1] : i, s = this.originalPageX + Math.round((a - this.originalPageX) / n.grid[0]) * n.grid[0], a = this.containment ? s - this.offset.click.left >= this.containment[0] && s - this.offset.click.left <= this.containment[2] ? s : s - this.offset.click.left >= this.containment[0] ? s - n.grid[0] : s + n.grid[0] : s)),
          {
            top: o - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ('fixed' === this.cssPosition ? - this.scrollParent.scrollTop()  : h ? 0 : r.scrollTop()),
            left: a - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ('fixed' === this.cssPosition ? - this.scrollParent.scrollLeft()  : h ? 0 : r.scrollLeft())
          }
        },
        _rearrange: function (e, t, i, s) {
          i ? i[0].appendChild(this.placeholder[0])  : t.item[0].parentNode.insertBefore(this.placeholder[0], 'down' === this.direction ? t.item[0] : t.item[0].nextSibling),
          this.counter = this.counter ? ++this.counter : 1;
          var n = this.counter;
          this._delay(function () {
            n === this.counter && this.refreshPositions(!s)
          })
        },
        _clear: function (e, t) {
          function i(e, t, i) {
            return function (s) {
              i._trigger(e, s, t._uiHash(t))
            }
          }
          this.reverting = !1;
          var s,
          n = [
          ];
          if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) {
            for (s in this._storedCSS) ('auto' === this._storedCSS[s] || 'static' === this._storedCSS[s]) && (this._storedCSS[s] = '');
            this.currentItem.css(this._storedCSS).removeClass('ui-sortable-helper')
          } else this.currentItem.show();
          for (this.fromOutside && !t && n.push(function (e) {
            this._trigger('receive', e, this._uiHash(this.fromOutside))
          }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not('.ui-sortable-helper') [0] && this.domPosition.parent === this.currentItem.parent() [0] || t || n.push(function (e) {
            this._trigger('update', e, this._uiHash())
          }), this !== this.currentContainer && (t || (n.push(function (e) {
            this._trigger('remove', e, this._uiHash())
          }), n.push(function (e) {
            return function (t) {
              e._trigger('receive', t, this._uiHash(this))
            }
          }.call(this, this.currentContainer)), n.push(function (e) {
            return function (t) {
              e._trigger('update', t, this._uiHash(this))
            }
          }.call(this, this.currentContainer)))), s = this.containers.length - 1; s >= 0; s--) t || n.push(i('deactivate', this, this.containers[s])),
          this.containers[s].containerCache.over && (n.push(i('out', this, this.containers[s])), this.containers[s].containerCache.over = 0);
          if (this.storedCursor && (this.document.find('body').css('cursor', this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css('opacity', this._storedOpacity), this._storedZIndex && this.helper.css('zIndex', 'auto' === this._storedZIndex ? '' : this._storedZIndex), this.dragging = !1, t || this._trigger('beforeStop', e, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !t) {
            for (s = 0; n.length > s; s++) n[s].call(this, e);
            this._trigger('stop', e, this._uiHash())
          }
          return this.fromOutside = !1,
          !this.cancelHelperRemoval
        },
        _trigger: function () {
          e.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
        },
        _uiHash: function (t) {
          var i = t || this;
          return {
            helper: i.helper,
            placeholder: i.placeholder || e([]),
            position: i.position,
            originalPosition: i.originalPosition,
            offset: i.positionAbs,
            item: i.currentItem,
            sender: t ? t.element : null
          }
        }
      }),
      e.widget('ui.accordion', {
        version: '1.11.4',
        options: {
          active: 0,
          animate: {
          },
          collapsible: !1,
          event: 'click',
          header: '> li > :first-child,> :not(li):even',
          heightStyle: 'auto',
          icons: {
            activeHeader: 'ui-icon-triangle-1-s',
            header: 'ui-icon-triangle-1-e'
          },
          activate: null,
          beforeActivate: null
        },
        hideProps: {
          borderTopWidth: 'hide',
          borderBottomWidth: 'hide',
          paddingTop: 'hide',
          paddingBottom: 'hide',
          height: 'hide'
        },
        showProps: {
          borderTopWidth: 'show',
          borderBottomWidth: 'show',
          paddingTop: 'show',
          paddingBottom: 'show',
          height: 'show'
        },
        _create: function () {
          var t = this.options;
          this.prevShow = this.prevHide = e(),
          this.element.addClass('ui-accordion ui-widget ui-helper-reset').attr('role', 'tablist'),
          t.collapsible || t.active !== !1 && null != t.active || (t.active = 0),
          this._processPanels(),
          0 > t.active && (t.active += this.headers.length),
          this._refresh()
        },
        _getCreateEventData: function () {
          return {
            header: this.active,
            panel: this.active.length ? this.active.next()  : e()
          }
        },
        _createIcons: function () {
          var t = this.options.icons;
          t && (e('<span>').addClass('ui-accordion-header-icon ui-icon ' + t.header).prependTo(this.headers), this.active.children('.ui-accordion-header-icon').removeClass(t.header).addClass(t.activeHeader), this.headers.addClass('ui-accordion-icons'))
        },
        _destroyIcons: function () {
          this.headers.removeClass('ui-accordion-icons').children('.ui-accordion-header-icon').remove()
        },
        _destroy: function () {
          var e;
          this.element.removeClass('ui-accordion ui-widget ui-helper-reset').removeAttr('role'),
          this.headers.removeClass('ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top').removeAttr('role').removeAttr('aria-expanded').removeAttr('aria-selected').removeAttr('aria-controls').removeAttr('tabIndex').removeUniqueId(),
          this._destroyIcons(),
          e = this.headers.next().removeClass('ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled').css('display', '').removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby').removeUniqueId(),
          'content' !== this.options.heightStyle && e.css('height', '')
        },
        _setOption: function (e, t) {
          return 'active' === e ? (this._activate(t), void 0)  : ('event' === e && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(t)), this._super(e, t), 'collapsible' !== e || t || this.options.active !== !1 || this._activate(0), 'icons' === e && (this._destroyIcons(), t && this._createIcons()), 'disabled' === e && (this.element.toggleClass('ui-state-disabled', !!t).attr('aria-disabled', t), this.headers.add(this.headers.next()).toggleClass('ui-state-disabled', !!t)), void 0)
        },
        _keydown: function (t) {
          if (!t.altKey && !t.ctrlKey) {
            var i = e.ui.keyCode,
            s = this.headers.length,
            n = this.headers.index(t.target),
            a = !1;
            switch (t.keyCode) {
              case i.RIGHT:
              case i.DOWN:
                a = this.headers[(n + 1) % s];
                break;
              case i.LEFT:
              case i.UP:
                a = this.headers[(n - 1 + s) % s];
                break;
              case i.SPACE:
              case i.ENTER:
                this._eventHandler(t);
                break;
              case i.HOME:
                a = this.headers[0];
                break;
              case i.END:
                a = this.headers[s - 1]
            }
            a && (e(t.target).attr('tabIndex', - 1), e(a).attr('tabIndex', 0), a.focus(), t.preventDefault())
          }
        },
        _panelKeyDown: function (t) {
          t.keyCode === e.ui.keyCode.UP && t.ctrlKey && e(t.currentTarget).prev().focus()
        },
        refresh: function () {
          var t = this.options;
          this._processPanels(),
          t.active === !1 && t.collapsible === !0 || !this.headers.length ? (t.active = !1, this.active = e())  : t.active === !1 ? this._activate(0)  : this.active.length && !e.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find('.ui-state-disabled').length ? (t.active = !1, this.active = e())  : this._activate(Math.max(0, t.active - 1))  : t.active = this.headers.index(this.active),
          this._destroyIcons(),
          this._refresh()
        },
        _processPanels: function () {
          var e = this.headers,
          t = this.panels;
          this.headers = this.element.find(this.options.header).addClass('ui-accordion-header ui-state-default ui-corner-all'),
          this.panels = this.headers.next().addClass('ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom').filter(':not(.ui-accordion-content-active)').hide(),
          t && (this._off(e.not(this.headers)), this._off(t.not(this.panels)))
        },
        _refresh: function () {
          var t,
          i = this.options,
          s = i.heightStyle,
          n = this.element.parent();
          this.active = this._findActive(i.active).addClass('ui-accordion-header-active ui-state-active ui-corner-top').removeClass('ui-corner-all'),
          this.active.next().addClass('ui-accordion-content-active').show(),
          this.headers.attr('role', 'tab').each(function () {
            var t = e(this),
            i = t.uniqueId().attr('id'),
            s = t.next(),
            n = s.uniqueId().attr('id');
            t.attr('aria-controls', n),
            s.attr('aria-labelledby', i)
          }).next().attr('role', 'tabpanel'),
          this.headers.not(this.active).attr({
            'aria-selected': 'false',
            'aria-expanded': 'false',
            tabIndex: - 1
          }).next().attr({
            'aria-hidden': 'true'
          }).hide(),
          this.active.length ? this.active.attr({
            'aria-selected': 'true',
            'aria-expanded': 'true',
            tabIndex: 0
          }).next().attr({
            'aria-hidden': 'false'
          })  : this.headers.eq(0).attr('tabIndex', 0),
          this._createIcons(),
          this._setupEvents(i.event),
          'fill' === s ? (t = n.height(), this.element.siblings(':visible').each(function () {
            var i = e(this),
            s = i.css('position');
            'absolute' !== s && 'fixed' !== s && (t -= i.outerHeight(!0))
          }), this.headers.each(function () {
            t -= e(this).outerHeight(!0)
          }), this.headers.next().each(function () {
            e(this).height(Math.max(0, t - e(this).innerHeight() + e(this).height()))
          }).css('overflow', 'auto'))  : 'auto' === s && (t = 0, this.headers.next().each(function () {
            t = Math.max(t, e(this).css('height', '').height())
          }).height(t))
        },
        _activate: function (t) {
          var i = this._findActive(t) [0];
          i !== this.active[0] && (i = i || this.active[0], this._eventHandler({
            target: i,
            currentTarget: i,
            preventDefault: e.noop
          }))
        },
        _findActive: function (t) {
          return 'number' == typeof t ? this.headers.eq(t)  : e()
        },
        _setupEvents: function (t) {
          var i = {
            keydown: '_keydown'
          };
          t && e.each(t.split(' '), function (e, t) {
            i[t] = '_eventHandler'
          }),
          this._off(this.headers.add(this.headers.next())),
          this._on(this.headers, i),
          this._on(this.headers.next(), {
            keydown: '_panelKeyDown'
          }),
          this._hoverable(this.headers),
          this._focusable(this.headers)
        },
        _eventHandler: function (t) {
          var i = this.options,
          s = this.active,
          n = e(t.currentTarget),
          a = n[0] === s[0],
          o = a && i.collapsible,
          r = o ? e()  : n.next(),
          h = s.next(),
          l = {
            oldHeader: s,
            oldPanel: h,
            newHeader: o ? e()  : n,
            newPanel: r
          };
          t.preventDefault(),
          a && !i.collapsible || this._trigger('beforeActivate', t, l) === !1 || (i.active = o ? !1 : this.headers.index(n), this.active = a ? e()  : n, this._toggle(l), s.removeClass('ui-accordion-header-active ui-state-active'), i.icons && s.children('.ui-accordion-header-icon').removeClass(i.icons.activeHeader).addClass(i.icons.header), a || (n.removeClass('ui-corner-all').addClass('ui-accordion-header-active ui-state-active ui-corner-top'), i.icons && n.children('.ui-accordion-header-icon').removeClass(i.icons.header).addClass(i.icons.activeHeader), n.next().addClass('ui-accordion-content-active')))
        },
        _toggle: function (t) {
          var i = t.newPanel,
          s = this.prevShow.length ? this.prevShow : t.oldPanel;
          this.prevShow.add(this.prevHide).stop(!0, !0),
          this.prevShow = i,
          this.prevHide = s,
          this.options.animate ? this._animate(i, s, t)  : (s.hide(), i.show(), this._toggleComplete(t)),
          s.attr({
            'aria-hidden': 'true'
          }),
          s.prev().attr({
            'aria-selected': 'false',
            'aria-expanded': 'false'
          }),
          i.length && s.length ? s.prev().attr({
            tabIndex: - 1,
            'aria-expanded': 'false'
          })  : i.length && this.headers.filter(function () {
            return 0 === parseInt(e(this).attr('tabIndex'), 10)
          }).attr('tabIndex', - 1),
          i.attr('aria-hidden', 'false').prev().attr({
            'aria-selected': 'true',
            'aria-expanded': 'true',
            tabIndex: 0
          })
        },
        _animate: function (e, t, i) {
          var s,
          n,
          a,
          o = this,
          r = 0,
          h = e.css('box-sizing'),
          l = e.length && (!t.length || e.index() < t.index()),
          u = this.options.animate || {
          },
          d = l && u.down || u,
          c = function () {
            o._toggleComplete(i)
          };
          return 'number' == typeof d && (a = d),
          'string' == typeof d && (n = d),
          n = n || d.easing || u.easing,
          a = a || d.duration || u.duration,
          t.length ? e.length ? (s = e.show().outerHeight(), t.animate(this.hideProps, {
            duration: a,
            easing: n,
            step: function (e, t) {
              t.now = Math.round(e)
            }
          }), e.hide().animate(this.showProps, {
            duration: a,
            easing: n,
            complete: c,
            step: function (e, i) {
              i.now = Math.round(e),
              'height' !== i.prop ? 'content-box' === h && (r += i.now)  : 'content' !== o.options.heightStyle && (i.now = Math.round(s - t.outerHeight() - r), r = 0)
            }
          }), void 0)  : t.animate(this.hideProps, a, n, c)  : e.animate(this.showProps, a, n, c)
        },
        _toggleComplete: function (e) {
          var t = e.oldPanel;
          t.removeClass('ui-accordion-content-active').prev().removeClass('ui-corner-top').addClass('ui-corner-all'),
          t.length && (t.parent() [0].className = t.parent() [0].className),
          this._trigger('activate', null, e)
        }
      }), e.widget('ui.menu', {
        version: '1.11.4',
        defaultElement: '<ul>',
        delay: 300,
        options: {
          icons: {
            submenu: 'ui-icon-carat-1-e'
          },
          items: '> *',
          menus: 'ul',
          position: {
            my: 'left-1 top',
            at: 'right top'
          },
          role: 'menu',
          blur: null,
          focus: null,
          select: null
        },
        _create: function () {
          this.activeMenu = this.element,
          this.mouseHandled = !1,
          this.element.uniqueId().addClass('ui-menu ui-widget ui-widget-content').toggleClass('ui-menu-icons', !!this.element.find('.ui-icon').length).attr({
            role: this.options.role,
            tabIndex: 0
          }),
          this.options.disabled && this.element.addClass('ui-state-disabled').attr('aria-disabled', 'true'),
          this._on({
            'mousedown .ui-menu-item': function (e) {
              e.preventDefault()
            },
            'click .ui-menu-item': function (t) {
              var i = e(t.target);
              !this.mouseHandled && i.not('.ui-state-disabled').length && (this.select(t), t.isPropagationStopped() || (this.mouseHandled = !0), i.has('.ui-menu').length ? this.expand(t)  : !this.element.is(':focus') && e(this.document[0].activeElement).closest('.ui-menu').length && (this.element.trigger('focus', [
                !0
              ]), this.active && 1 === this.active.parents('.ui-menu').length && clearTimeout(this.timer)))
            },
            'mouseenter .ui-menu-item': function (t) {
              if (!this.previousFilter) {
                var i = e(t.currentTarget);
                i.siblings('.ui-state-active').removeClass('ui-state-active'),
                this.focus(t, i)
              }
            },
            mouseleave: 'collapseAll',
            'mouseleave .ui-menu': 'collapseAll',
            focus: function (e, t) {
              var i = this.active || this.element.find(this.options.items).eq(0);
              t || this.focus(e, i)
            },
            blur: function (t) {
              this._delay(function () {
                e.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(t)
              })
            },
            keydown: '_keydown'
          }),
          this.refresh(),
          this._on(this.document, {
            click: function (e) {
              this._closeOnDocumentClick(e) && this.collapseAll(e),
              this.mouseHandled = !1
            }
          })
        },
        _destroy: function () {
          this.element.removeAttr('aria-activedescendant').find('.ui-menu').addBack().removeClass('ui-menu ui-widget ui-widget-content ui-menu-icons ui-front').removeAttr('role').removeAttr('tabIndex').removeAttr('aria-labelledby').removeAttr('aria-expanded').removeAttr('aria-hidden').removeAttr('aria-disabled').removeUniqueId().show(),
          this.element.find('.ui-menu-item').removeClass('ui-menu-item').removeAttr('role').removeAttr('aria-disabled').removeUniqueId().removeClass('ui-state-hover').removeAttr('tabIndex').removeAttr('role').removeAttr('aria-haspopup').children().each(function () {
            var t = e(this);
            t.data('ui-menu-submenu-carat') && t.remove()
          }),
          this.element.find('.ui-menu-divider').removeClass('ui-menu-divider ui-widget-content')
        },
        _keydown: function (t) {
          var i,
          s,
          n,
          a,
          o = !0;
          switch (t.keyCode) {
            case e.ui.keyCode.PAGE_UP:
              this.previousPage(t);
              break;
            case e.ui.keyCode.PAGE_DOWN:
              this.nextPage(t);
              break;
            case e.ui.keyCode.HOME:
              this._move('first', 'first', t);
              break;
            case e.ui.keyCode.END:
              this._move('last', 'last', t);
              break;
            case e.ui.keyCode.UP:
              this.previous(t);
              break;
            case e.ui.keyCode.DOWN:
              this.next(t);
              break;
            case e.ui.keyCode.LEFT:
              this.collapse(t);
              break;
            case e.ui.keyCode.RIGHT:
              this.active && !this.active.is('.ui-state-disabled') && this.expand(t);
              break;
            case e.ui.keyCode.ENTER:
            case e.ui.keyCode.SPACE:
              this._activate(t);
              break;
            case e.ui.keyCode.ESCAPE:
              this.collapse(t);
              break;
            default:
              o = !1,
              s = this.previousFilter || '',
              n = String.fromCharCode(t.keyCode),
              a = !1,
              clearTimeout(this.filterTimer),
              n === s ? a = !0 : n = s + n,
              i = this._filterMenuItems(n),
              i = a && - 1 !== i.index(this.active.next()) ? this.active.nextAll('.ui-menu-item')  : i,
              i.length || (n = String.fromCharCode(t.keyCode), i = this._filterMenuItems(n)),
              i.length ? (this.focus(t, i), this.previousFilter = n, this.filterTimer = this._delay(function () {
                delete this.previousFilter
              }, 1000))  : delete this.previousFilter
          }
          o && t.preventDefault()
        },
        _activate: function (e) {
          this.active.is('.ui-state-disabled') || (this.active.is('[aria-haspopup=\'true\']') ? this.expand(e)  : this.select(e))
        },
        refresh: function () {
          var t,
          i,
          s = this,
          n = this.options.icons.submenu,
          a = this.element.find(this.options.menus);
          this.element.toggleClass('ui-menu-icons', !!this.element.find('.ui-icon').length),
          a.filter(':not(.ui-menu)').addClass('ui-menu ui-widget ui-widget-content ui-front').hide().attr({
            role: this.options.role,
            'aria-hidden': 'true',
            'aria-expanded': 'false'
          }).each(function () {
            var t = e(this),
            i = t.parent(),
            s = e('<span>').addClass('ui-menu-icon ui-icon ' + n).data('ui-menu-submenu-carat', !0);
            i.attr('aria-haspopup', 'true').prepend(s),
            t.attr('aria-labelledby', i.attr('id'))
          }),
          t = a.add(this.element),
          i = t.find(this.options.items),
          i.not('.ui-menu-item').each(function () {
            var t = e(this);
            s._isDivider(t) && t.addClass('ui-widget-content ui-menu-divider')
          }),
          i.not('.ui-menu-item, .ui-menu-divider').addClass('ui-menu-item').uniqueId().attr({
            tabIndex: - 1,
            role: this._itemRole()
          }),
          i.filter('.ui-state-disabled').attr('aria-disabled', 'true'),
          this.active && !e.contains(this.element[0], this.active[0]) && this.blur()
        },
        _itemRole: function () {
          return {
            menu: 'menuitem',
            listbox: 'option'
          }
          [
            this.options.role
          ]
        },
        _setOption: function (e, t) {
          'icons' === e && this.element.find('.ui-menu-icon').removeClass(this.options.icons.submenu).addClass(t.submenu),
          'disabled' === e && this.element.toggleClass('ui-state-disabled', !!t).attr('aria-disabled', t),
          this._super(e, t)
        },
        focus: function (e, t) {
          var i,
          s;
          this.blur(e, e && 'focus' === e.type),
          this._scrollIntoView(t),
          this.active = t.first(),
          s = this.active.addClass('ui-state-focus').removeClass('ui-state-active'),
          this.options.role && this.element.attr('aria-activedescendant', s.attr('id')),
          this.active.parent().closest('.ui-menu-item').addClass('ui-state-active'),
          e && 'keydown' === e.type ? this._close()  : this.timer = this._delay(function () {
            this._close()
          }, this.delay),
          i = t.children('.ui-menu'),
          i.length && e && /^mouse/.test(e.type) && this._startOpening(i),
          this.activeMenu = t.parent(),
          this._trigger('focus', e, {
            item: t
          })
        },
        _scrollIntoView: function (t) {
          var i,
          s,
          n,
          a,
          o,
          r;
          this._hasScroll() && (i = parseFloat(e.css(this.activeMenu[0], 'borderTopWidth')) || 0, s = parseFloat(e.css(this.activeMenu[0], 'paddingTop')) || 0, n = t.offset().top - this.activeMenu.offset().top - i - s, a = this.activeMenu.scrollTop(), o = this.activeMenu.height(), r = t.outerHeight(), 0 > n ? this.activeMenu.scrollTop(a + n)  : n + r > o && this.activeMenu.scrollTop(a + n - o + r))
        },
        blur: function (e, t) {
          t || clearTimeout(this.timer),
          this.active && (this.active.removeClass('ui-state-focus'), this.active = null, this._trigger('blur', e, {
            item: this.active
          }))
        },
        _startOpening: function (e) {
          clearTimeout(this.timer),
          'true' === e.attr('aria-hidden') && (this.timer = this._delay(function () {
            this._close(),
            this._open(e)
          }, this.delay))
        },
        _open: function (t) {
          var i = e.extend({
            of: this.active
          }, this.options.position);
          clearTimeout(this.timer),
          this.element.find('.ui-menu').not(t.parents('.ui-menu')).hide().attr('aria-hidden', 'true'),
          t.show().removeAttr('aria-hidden').attr('aria-expanded', 'true').position(i)
        },
        collapseAll: function (t, i) {
          clearTimeout(this.timer),
          this.timer = this._delay(function () {
            var s = i ? this.element : e(t && t.target).closest(this.element.find('.ui-menu'));
            s.length || (s = this.element),
            this._close(s),
            this.blur(t),
            this.activeMenu = s
          }, this.delay)
        },
        _close: function (e) {
          e || (e = this.active ? this.active.parent()  : this.element),
          e.find('.ui-menu').hide().attr('aria-hidden', 'true').attr('aria-expanded', 'false').end().find('.ui-state-active').not('.ui-state-focus').removeClass('ui-state-active')
        },
        _closeOnDocumentClick: function (t) {
          return !e(t.target).closest('.ui-menu').length
        },
        _isDivider: function (e) {
          return !/[^\-\u2014\u2013\s]/.test(e.text())
        },
        collapse: function (e) {
          var t = this.active && this.active.parent().closest('.ui-menu-item', this.element);
          t && t.length && (this._close(), this.focus(e, t))
        },
        expand: function (e) {
          var t = this.active && this.active.children('.ui-menu ').find(this.options.items).first();
          t && t.length && (this._open(t.parent()), this._delay(function () {
            this.focus(e, t)
          }))
        },
        next: function (e) {
          this._move('next', 'first', e)
        },
        previous: function (e) {
          this._move('prev', 'last', e)
        },
        isFirstItem: function () {
          return this.active && !this.active.prevAll('.ui-menu-item').length
        },
        isLastItem: function () {
          return this.active && !this.active.nextAll('.ui-menu-item').length
        },
        _move: function (e, t, i) {
          var s;
          this.active && (s = 'first' === e || 'last' === e ? this.active['first' === e ? 'prevAll' : 'nextAll']('.ui-menu-item').eq( - 1)  : this.active[e + 'All']('.ui-menu-item').eq(0)),
          s && s.length && this.active || (s = this.activeMenu.find(this.options.items) [t]()),
          this.focus(i, s)
        },
        nextPage: function (t) {
          var i,
          s,
          n;
          return this.active ? (this.isLastItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.nextAll('.ui-menu-item').each(function () {
            return i = e(this),
            0 > i.offset().top - s - n
          }), this.focus(t, i))  : this.focus(t, this.activeMenu.find(this.options.items) [this.active ? 'last' : 'first']())), void 0)  : (this.next(t), void 0)
        },
        previousPage: function (t) {
          var i,
          s,
          n;
          return this.active ? (this.isFirstItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.prevAll('.ui-menu-item').each(function () {
            return i = e(this),
            i.offset().top - s + n > 0
          }), this.focus(t, i))  : this.focus(t, this.activeMenu.find(this.options.items).first())), void 0)  : (this.next(t), void 0)
        },
        _hasScroll: function () {
          return this.element.outerHeight() < this.element.prop('scrollHeight')
        },
        select: function (t) {
          this.active = this.active || e(t.target).closest('.ui-menu-item');
          var i = {
            item: this.active
          };
          this.active.has('.ui-menu').length || this.collapseAll(t, !0),
          this._trigger('select', t, i)
        },
        _filterMenuItems: function (t) {
          var i = t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&'),
          s = RegExp('^' + i, 'i');
          return this.activeMenu.find(this.options.items).filter('.ui-menu-item').filter(function () {
            return s.test(e.trim(e(this).text()))
          })
        }
      }), e.widget('ui.autocomplete', {
        version: '1.11.4',
        defaultElement: '<input>',
        options: {
          appendTo: null,
          autoFocus: !1,
          delay: 300,
          minLength: 1,
          position: {
            my: 'left top',
            at: 'left bottom',
            collision: 'none'
          },
          source: null,
          change: null,
          close: null,
          focus: null,
          open: null,
          response: null,
          search: null,
          select: null
        },
        requestIndex: 0,
        pending: 0,
        _create: function () {
          var t,
          i,
          s,
          n = this.element[0].nodeName.toLowerCase(),
          a = 'textarea' === n,
          o = 'input' === n;
          this.isMultiLine = a ? !0 : o ? !1 : this.element.prop('isContentEditable'),
          this.valueMethod = this.element[a || o ? 'val' : 'text'],
          this.isNewMenu = !0,
          this.element.addClass('ui-autocomplete-input').attr('autocomplete', 'off'),
          this._on(this.element, {
            keydown: function (n) {
              if (this.element.prop('readOnly')) return t = !0,
              s = !0,
              i = !0,
              void 0;
              t = !1,
              s = !1,
              i = !1;
              var a = e.ui.keyCode;
              switch (n.keyCode) {
                case a.PAGE_UP:
                  t = !0,
                  this._move('previousPage', n);
                  break;
                case a.PAGE_DOWN:
                  t = !0,
                  this._move('nextPage', n);
                  break;
                case a.UP:
                  t = !0,
                  this._keyEvent('previous', n);
                  break;
                case a.DOWN:
                  t = !0,
                  this._keyEvent('next', n);
                  break;
                case a.ENTER:
                  this.menu.active && (t = !0, n.preventDefault(), this.menu.select(n));
                  break;
                case a.TAB:
                  this.menu.active && this.menu.select(n);
                  break;
                case a.ESCAPE:
                  this.menu.element.is(':visible') && (this.isMultiLine || this._value(this.term), this.close(n), n.preventDefault());
                  break;
                default:
                  i = !0,
                  this._searchTimeout(n)
              }
            },
            keypress: function (s) {
              if (t) return t = !1,
              (!this.isMultiLine || this.menu.element.is(':visible')) && s.preventDefault(),
              void 0;
              if (!i) {
                var n = e.ui.keyCode;
                switch (s.keyCode) {
                  case n.PAGE_UP:
                    this._move('previousPage', s);
                    break;
                  case n.PAGE_DOWN:
                    this._move('nextPage', s);
                    break;
                  case n.UP:
                    this._keyEvent('previous', s);
                    break;
                  case n.DOWN:
                    this._keyEvent('next', s)
                }
              }
            },
            input: function (e) {
              return s ? (s = !1, e.preventDefault(), void 0)  : (this._searchTimeout(e), void 0)
            },
            focus: function () {
              this.selectedItem = null,
              this.previous = this._value()
            },
            blur: function (e) {
              return this.cancelBlur ? (delete this.cancelBlur, void 0)  : (clearTimeout(this.searching), this.close(e), this._change(e), void 0)
            }
          }),
          this._initSource(),
          this.menu = e('<ul>').addClass('ui-autocomplete ui-front').appendTo(this._appendTo()).menu({
            role: null
          }).hide().menu('instance'),
          this._on(this.menu.element, {
            mousedown: function (t) {
              t.preventDefault(),
              this.cancelBlur = !0,
              this._delay(function () {
                delete this.cancelBlur
              });
              var i = this.menu.element[0];
              e(t.target).closest('.ui-menu-item').length || this._delay(function () {
                var t = this;
                this.document.one('mousedown', function (s) {
                  s.target === t.element[0] || s.target === i || e.contains(i, s.target) || t.close()
                })
              })
            },
            menufocus: function (t, i) {
              var s,
              n;
              return this.isNewMenu && (this.isNewMenu = !1, t.originalEvent && /^mouse/.test(t.originalEvent.type)) ? (this.menu.blur(), this.document.one('mousemove', function () {
                e(t.target).trigger(t.originalEvent)
              }), void 0)  : (n = i.item.data('ui-autocomplete-item'), !1 !== this._trigger('focus', t, {
                item: n
              }) && t.originalEvent && /^key/.test(t.originalEvent.type) && this._value(n.value), s = i.item.attr('aria-label') || n.value, s && e.trim(s).length && (this.liveRegion.children().hide(), e('<div>').text(s).appendTo(this.liveRegion)), void 0)
            },
            menuselect: function (e, t) {
              var i = t.item.data('ui-autocomplete-item'),
              s = this.previous;
              this.element[0] !== this.document[0].activeElement && (this.element.focus(), this.previous = s, this._delay(function () {
                this.previous = s,
                this.selectedItem = i
              })),
              !1 !== this._trigger('select', e, {
                item: i
              }) && this._value(i.value),
              this.term = this._value(),
              this.close(e),
              this.selectedItem = i
            }
          }),
          this.liveRegion = e('<span>', {
            role: 'status',
            'aria-live': 'assertive',
            'aria-relevant': 'additions'
          }).addClass('ui-helper-hidden-accessible').appendTo(this.document[0].body),
          this._on(this.window, {
            beforeunload: function () {
              this.element.removeAttr('autocomplete')
            }
          })
        }, _destroy: function () {
          clearTimeout(this.searching),
          this.element.removeClass('ui-autocomplete-input').removeAttr('autocomplete'),
          this.menu.element.remove(),
          this.liveRegion.remove()
        }, _setOption: function (e, t) {
          this._super(e, t),
          'source' === e && this._initSource(),
          'appendTo' === e && this.menu.element.appendTo(this._appendTo()),
          'disabled' === e && t && this.xhr && this.xhr.abort()
        }, _appendTo: function () {
          var t = this.options.appendTo;
          return t && (t = t.jquery || t.nodeType ? e(t)  : this.document.find(t).eq(0)),
          t && t[0] || (t = this.element.closest('.ui-front')),
          t.length || (t = this.document[0].body),
          t
        }, _initSource: function () {
          var t,
          i,
          s = this;
          e.isArray(this.options.source) ? (t = this.options.source, this.source = function (i, s) {
            s(e.ui.autocomplete.filter(t, i.term))
          })  : 'string' == typeof this.options.source ? (i = this.options.source, this.source = function (t, n) {
            s.xhr && s.xhr.abort(),
            s.xhr = e.ajax({
              url: i,
              data: t,
              dataType: 'json',
              success: function (e) {
                n(e)
              },
              error: function () {
                n([])
              }
            })
          })  : this.source = this.options.source
        }, _searchTimeout: function (e) {
          clearTimeout(this.searching),
          this.searching = this._delay(function () {
            var t = this.term === this._value(),
            i = this.menu.element.is(':visible'),
            s = e.altKey || e.ctrlKey || e.metaKey || e.shiftKey;
            (!t || t && !i && !s) && (this.selectedItem = null, this.search(null, e))
          }, this.options.delay)
        }, search: function (e, t) {
          return e = null != e ? e : this._value(),
          this.term = this._value(),
          e.length < this.options.minLength ? this.close(t)  : this._trigger('search', t) !== !1 ? this._search(e)  : void 0
        }, _search: function (e) {
          this.pending++,
          this.element.addClass('ui-autocomplete-loading'),
          this.cancelSearch = !1,
          this.source({
            term: e
          }, this._response())
        }, _response: function () {
          var t = ++this.requestIndex;
          return e.proxy(function (e) {
            t === this.requestIndex && this.__response(e),
            this.pending--,
            this.pending || this.element.removeClass('ui-autocomplete-loading')
          }, this)
        }, __response: function (e) {
          e && (e = this._normalize(e)),
          this._trigger('response', null, {
            content: e
          }),
          !this.options.disabled && e && e.length && !this.cancelSearch ? (this._suggest(e), this._trigger('open'))  : this._close()
        }, close: function (e) {
          this.cancelSearch = !0,
          this._close(e)
        }, _close: function (e) {
          this.menu.element.is(':visible') && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger('close', e))
        }, _change: function (e) {
          this.previous !== this._value() && this._trigger('change', e, {
            item: this.selectedItem
          })
        }, _normalize: function (t) {
          return t.length && t[0].label && t[0].value ? t : e.map(t, function (t) {
            return 'string' == typeof t ? {
              label: t,
              value: t
            }
             : e.extend({
            }, t, {
              label: t.label || t.value,
              value: t.value || t.label
            })
          })
        }, _suggest: function (t) {
          var i = this.menu.element.empty();
          this._renderMenu(i, t),
          this.isNewMenu = !0,
          this.menu.refresh(),
          i.show(),
          this._resizeMenu(),
          i.position(e.extend({
            of: this.element
          }, this.options.position)),
          this.options.autoFocus && this.menu.next()
        }, _resizeMenu: function () {
          var e = this.menu.element;
          e.outerWidth(Math.max(e.width('').outerWidth() + 1, this.element.outerWidth()))
        }, _renderMenu: function (t, i) {
          var s = this;
          e.each(i, function (e, i) {
            s._renderItemData(t, i)
          })
        }, _renderItemData: function (e, t) {
          return this._renderItem(e, t).data('ui-autocomplete-item', t)
        }, _renderItem: function (t, i) {
          return e('<li>').text(i.label).appendTo(t)
        }, _move: function (e, t) {
          return this.menu.element.is(':visible') ? this.menu.isFirstItem() && /^previous/.test(e) || this.menu.isLastItem() && /^next/.test(e) ? (this.isMultiLine || this._value(this.term), this.menu.blur(), void 0)  : (this.menu[e](t), void 0)  : (this.search(null, t), void 0)
        }, widget: function () {
          return this.menu.element
        }, _value: function () {
          return this.valueMethod.apply(this.element, arguments)
        }, _keyEvent: function (e, t) {
          (!this.isMultiLine || this.menu.element.is(':visible')) && (this._move(e, t), t.preventDefault())
        }
      }),
      e.extend(e.ui.autocomplete, {
        escapeRegex: function (e) {
          return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
        },
        filter: function (t, i) {
          var s = RegExp(e.ui.autocomplete.escapeRegex(i), 'i');
          return e.grep(t, function (e) {
            return s.test(e.label || e.value || e)
          })
        }
      }),
      e.widget('ui.autocomplete', e.ui.autocomplete, {
        options: {
          messages: {
            noResults: 'No search results.',
            results: function (e) {
              return e + (e > 1 ? ' results are' : ' result is') + ' available, use up and down arrow keys to navigate.'
            }
          }
        },
        __response: function (t) {
          var i;
          this._superApply(arguments),
          this.options.disabled || this.cancelSearch || (i = t && t.length ? this.options.messages.results(t.length)  : this.options.messages.noResults, this.liveRegion.children().hide(), e('<div>').text(i).appendTo(this.liveRegion))
        }
      }),
      e.ui.autocomplete;
      var c,
      p = 'ui-button ui-widget ui-state-default ui-corner-all',
      f = 'ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only',
      m = function () {
        var t = e(this);
        setTimeout(function () {
          t.find(':ui-button').button('refresh')
        }, 1)
      },
      g = function (t) {
        var i = t.name,
        s = t.form,
        n = e([]);
        return i && (i = i.replace(/'/g, '\\\''), n = s ? e(s).find('[name=\'' + i + '\'][type=radio]')  : e('[name=\'' + i + '\'][type=radio]', t.ownerDocument).filter(function () {
          return !this.form
        })),
        n
      };
      e.widget('ui.button', {
        version: '1.11.4',
        defaultElement: '<button>',
        options: {
          disabled: null,
          text: !0,
          label: null,
          icons: {
            primary: null,
            secondary: null
          }
        },
        _create: function () {
          this.element.closest('form').unbind('reset' + this.eventNamespace).bind('reset' + this.eventNamespace, m),
          'boolean' != typeof this.options.disabled ? this.options.disabled = !!this.element.prop('disabled')  : this.element.prop('disabled', this.options.disabled),
          this._determineButtonType(),
          this.hasTitle = !!this.buttonElement.attr('title');
          var t = this,
          i = this.options,
          s = 'checkbox' === this.type || 'radio' === this.type,
          n = s ? '' : 'ui-state-active';
          null === i.label && (i.label = 'input' === this.type ? this.buttonElement.val()  : this.buttonElement.html()),
          this._hoverable(this.buttonElement),
          this.buttonElement.addClass(p).attr('role', 'button').bind('mouseenter' + this.eventNamespace, function () {
            i.disabled || this === c && e(this).addClass('ui-state-active')
          }).bind('mouseleave' + this.eventNamespace, function () {
            i.disabled || e(this).removeClass(n)
          }).bind('click' + this.eventNamespace, function (e) {
            i.disabled && (e.preventDefault(), e.stopImmediatePropagation())
          }),
          this._on({
            focus: function () {
              this.buttonElement.addClass('ui-state-focus')
            },
            blur: function () {
              this.buttonElement.removeClass('ui-state-focus')
            }
          }),
          s && this.element.bind('change' + this.eventNamespace, function () {
            t.refresh()
          }),
          'checkbox' === this.type ? this.buttonElement.bind('click' + this.eventNamespace, function () {
            return i.disabled ? !1 : void 0
          })  : 'radio' === this.type ? this.buttonElement.bind('click' + this.eventNamespace, function () {
            if (i.disabled) return !1;
            e(this).addClass('ui-state-active'),
            t.buttonElement.attr('aria-pressed', 'true');
            var s = t.element[0];
            g(s).not(s).map(function () {
              return e(this).button('widget') [0]
            }).removeClass('ui-state-active').attr('aria-pressed', 'false')
          })  : (this.buttonElement.bind('mousedown' + this.eventNamespace, function () {
            return i.disabled ? !1 : (e(this).addClass('ui-state-active'), c = this, t.document.one('mouseup', function () {
              c = null
            }), void 0)
          }).bind('mouseup' + this.eventNamespace, function () {
            return i.disabled ? !1 : (e(this).removeClass('ui-state-active'), void 0)
          }).bind('keydown' + this.eventNamespace, function (t) {
            return i.disabled ? !1 : ((t.keyCode === e.ui.keyCode.SPACE || t.keyCode === e.ui.keyCode.ENTER) && e(this).addClass('ui-state-active'), void 0)
          }).bind('keyup' + this.eventNamespace + ' blur' + this.eventNamespace, function () {
            e(this).removeClass('ui-state-active')
          }), this.buttonElement.is('a') && this.buttonElement.keyup(function (t) {
            t.keyCode === e.ui.keyCode.SPACE && e(this).click()
          })),
          this._setOption('disabled', i.disabled),
          this._resetButton()
        },
        _determineButtonType: function () {
          var e,
          t,
          i;
          this.type = this.element.is('[type=checkbox]') ? 'checkbox' : this.element.is('[type=radio]') ? 'radio' : this.element.is('input') ? 'input' : 'button',
          'checkbox' === this.type || 'radio' === this.type ? (e = this.element.parents().last(), t = 'label[for=\'' + this.element.attr('id') + '\']', this.buttonElement = e.find(t), this.buttonElement.length || (e = e.length ? e.siblings()  : this.element.siblings(), this.buttonElement = e.filter(t), this.buttonElement.length || (this.buttonElement = e.find(t))), this.element.addClass('ui-helper-hidden-accessible'), i = this.element.is(':checked'), i && this.buttonElement.addClass('ui-state-active'), this.buttonElement.prop('aria-pressed', i))  : this.buttonElement = this.element
        },
        widget: function () {
          return this.buttonElement
        },
        _destroy: function () {
          this.element.removeClass('ui-helper-hidden-accessible'),
          this.buttonElement.removeClass(p + ' ui-state-active ' + f).removeAttr('role').removeAttr('aria-pressed').html(this.buttonElement.find('.ui-button-text').html()),
          this.hasTitle || this.buttonElement.removeAttr('title')
        },
        _setOption: function (e, t) {
          return this._super(e, t),
          'disabled' === e ? (this.widget().toggleClass('ui-state-disabled', !!t), this.element.prop('disabled', !!t), t && ('checkbox' === this.type || 'radio' === this.type ? this.buttonElement.removeClass('ui-state-focus')  : this.buttonElement.removeClass('ui-state-focus ui-state-active')), void 0)  : (this._resetButton(), void 0)
        },
        refresh: function () {
          var t = this.element.is('input, button') ? this.element.is(':disabled')  : this.element.hasClass('ui-button-disabled');
          t !== this.options.disabled && this._setOption('disabled', t),
          'radio' === this.type ? g(this.element[0]).each(function () {
            e(this).is(':checked') ? e(this).button('widget').addClass('ui-state-active').attr('aria-pressed', 'true')  : e(this).button('widget').removeClass('ui-state-active').attr('aria-pressed', 'false')
          })  : 'checkbox' === this.type && (this.element.is(':checked') ? this.buttonElement.addClass('ui-state-active').attr('aria-pressed', 'true')  : this.buttonElement.removeClass('ui-state-active').attr('aria-pressed', 'false'))
        },
        _resetButton: function () {
          if ('input' === this.type) return this.options.label && this.element.val(this.options.label),
          void 0;
          var t = this.buttonElement.removeClass(f),
          i = e('<span></span>', this.document[0]).addClass('ui-button-text').html(this.options.label).appendTo(t.empty()).text(),
          s = this.options.icons,
          n = s.primary && s.secondary,
          a = [
          ];
          s.primary || s.secondary ? (this.options.text && a.push('ui-button-text-icon' + (n ? 's' : s.primary ? '-primary' : '-secondary')), s.primary && t.prepend('<span class=\'ui-button-icon-primary ui-icon ' + s.primary + '\'></span>'), s.secondary && t.append('<span class=\'ui-button-icon-secondary ui-icon ' + s.secondary + '\'></span>'), this.options.text || (a.push(n ? 'ui-button-icons-only' : 'ui-button-icon-only'), this.hasTitle || t.attr('title', e.trim(i))))  : a.push('ui-button-text-only'),
          t.addClass(a.join(' '))
        }
      }),
      e.widget('ui.buttonset', {
        version: '1.11.4',
        options: {
          items: 'button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)'
        },
        _create: function () {
          this.element.addClass('ui-buttonset')
        },
        _init: function () {
          this.refresh()
        },
        _setOption: function (e, t) {
          'disabled' === e && this.buttons.button('option', e, t),
          this._super(e, t)
        },
        refresh: function () {
          var t = 'rtl' === this.element.css('direction'),
          i = this.element.find(this.options.items),
          s = i.filter(':ui-button');
          i.not(':ui-button').button(),
          s.button('refresh'),
          this.buttons = i.map(function () {
            return e(this).button('widget') [0]
          }).removeClass('ui-corner-all ui-corner-left ui-corner-right').filter(':first').addClass(t ? 'ui-corner-right' : 'ui-corner-left').end().filter(':last').addClass(t ? 'ui-corner-left' : 'ui-corner-right').end().end()
        },
        _destroy: function () {
          this.element.removeClass('ui-buttonset'),
          this.buttons.map(function () {
            return e(this).button('widget') [0]
          }).removeClass('ui-corner-left ui-corner-right').end().button('destroy')
        }
      }),
      e.ui.button,
      e.extend(e.ui, {
        datepicker: {
          version: '1.11.4'
        }
      });
      var v;
      e.extend(n.prototype, {
        markerClassName: 'hasDatepicker',
        maxRows: 4,
        _widgetDatepicker: function () {
          return this.dpDiv
        },
        setDefaults: function (e) {
          return r(this._defaults, e || {
          }),
          this
        },
        _attachDatepicker: function (t, i) {
          var s,
          n,
          a;
          s = t.nodeName.toLowerCase(),
          n = 'div' === s || 'span' === s,
          t.id || (this.uuid += 1, t.id = 'dp' + this.uuid),
          a = this._newInst(e(t), n),
          a.settings = e.extend({
          }, i || {
          }),
          'input' === s ? this._connectDatepicker(t, a)  : n && this._inlineDatepicker(t, a)
        },
        _newInst: function (t, i) {
          var s = t[0].id.replace(/([^A-Za-z0-9_\-])/g, '\\\\$1');
          return {
            id: s,
            input: t,
            selectedDay: 0,
            selectedMonth: 0,
            selectedYear: 0,
            drawMonth: 0,
            drawYear: 0,
            inline: i,
            dpDiv: i ? a(e('<div class=\'' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all\'></div>'))  : this.dpDiv
          }
        },
        _connectDatepicker: function (t, i) {
          var s = e(t);
          i.append = e([]),
          i.trigger = e([]),
          s.hasClass(this.markerClassName) || (this._attachments(s, i), s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp), this._autoSize(i), e.data(t, 'datepicker', i), i.settings.disabled && this._disableDatepicker(t))
        },
        _attachments: function (t, i) {
          var s,
          n,
          a,
          o = this._get(i, 'appendText'),
          r = this._get(i, 'isRTL');
          i.append && i.append.remove(),
          o && (i.append = e('<span class=\'' + this._appendClass + '\'>' + o + '</span>'), t[r ? 'before' : 'after'](i.append)),
          t.unbind('focus', this._showDatepicker),
          i.trigger && i.trigger.remove(),
          s = this._get(i, 'showOn'),
          ('focus' === s || 'both' === s) && t.focus(this._showDatepicker),
          ('button' === s || 'both' === s) && (n = this._get(i, 'buttonText'), a = this._get(i, 'buttonImage'), i.trigger = e(this._get(i, 'buttonImageOnly') ? e('<img/>').addClass(this._triggerClass).attr({
            src: a,
            alt: n,
            title: n
          })  : e('<button type=\'button\'></button>').addClass(this._triggerClass).html(a ? e('<img/>').attr({
            src: a,
            alt: n,
            title: n
          })  : n)), t[r ? 'before' : 'after'](i.trigger), i.trigger.click(function () {
            return e.datepicker._datepickerShowing && e.datepicker._lastInput === t[0] ? e.datepicker._hideDatepicker()  : e.datepicker._datepickerShowing && e.datepicker._lastInput !== t[0] ? (e.datepicker._hideDatepicker(), e.datepicker._showDatepicker(t[0]))  : e.datepicker._showDatepicker(t[0]),
            !1
          }))
        },
        _autoSize: function (e) {
          if (this._get(e, 'autoSize') && !e.inline) {
            var t,
            i,
            s,
            n,
            a = new Date(2009, 11, 20),
            o = this._get(e, 'dateFormat');
            o.match(/[DM]/) && (t = function (e) {
              for (i = 0, s = 0, n = 0; e.length > n; n++) e[n].length > i && (i = e[n].length, s = n);
              return s
            }, a.setMonth(t(this._get(e, o.match(/MM/) ? 'monthNames' : 'monthNamesShort'))), a.setDate(t(this._get(e, o.match(/DD/) ? 'dayNames' : 'dayNamesShort')) + 20 - a.getDay())),
            e.input.attr('size', this._formatDate(e, a).length)
          }
        },
        _inlineDatepicker: function (t, i) {
          var s = e(t);
          s.hasClass(this.markerClassName) || (s.addClass(this.markerClassName).append(i.dpDiv), e.data(t, 'datepicker', i), this._setDate(i, this._getDefaultDate(i), !0), this._updateDatepicker(i), this._updateAlternate(i), i.settings.disabled && this._disableDatepicker(t), i.dpDiv.css('display', 'block'))
        },
        _dialogDatepicker: function (t, i, s, n, a) {
          var o,
          h,
          l,
          u,
          d,
          c = this._dialogInst;
          return c || (this.uuid += 1, o = 'dp' + this.uuid, this._dialogInput = e('<input type=\'text\' id=\'' + o + '\' style=\'position: absolute; top: -100px; width: 0px;\'/>'), this._dialogInput.keydown(this._doKeyDown), e('body').append(this._dialogInput), c = this._dialogInst = this._newInst(this._dialogInput, !1), c.settings = {
          }, e.data(this._dialogInput[0], 'datepicker', c)),
          r(c.settings, n || {
          }),
          i = i && i.constructor === Date ? this._formatDate(c, i)  : i,
          this._dialogInput.val(i),
          this._pos = a ? a.length ? a : [
            a.pageX,
            a.pageY
          ] : null,
          this._pos || (h = document.documentElement.clientWidth, l = document.documentElement.clientHeight, u = document.documentElement.scrollLeft || document.body.scrollLeft, d = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [
            h / 2 - 100 + u,
            l / 2 - 150 + d
          ]),
          this._dialogInput.css('left', this._pos[0] + 20 + 'px').css('top', this._pos[1] + 'px'),
          c.settings.onSelect = s,
          this._inDialog = !0,
          this.dpDiv.addClass(this._dialogClass),
          this._showDatepicker(this._dialogInput[0]),
          e.blockUI && e.blockUI(this.dpDiv),
          e.data(this._dialogInput[0], 'datepicker', c),
          this
        },
        _destroyDatepicker: function (t) {
          var i,
          s = e(t),
          n = e.data(t, 'datepicker');
          s.hasClass(this.markerClassName) && (i = t.nodeName.toLowerCase(), e.removeData(t, 'datepicker'), 'input' === i ? (n.append.remove(), n.trigger.remove(), s.removeClass(this.markerClassName).unbind('focus', this._showDatepicker).unbind('keydown', this._doKeyDown).unbind('keypress', this._doKeyPress).unbind('keyup', this._doKeyUp))  : ('div' === i || 'span' === i) && s.removeClass(this.markerClassName).empty(), v === n && (v = null))
        },
        _enableDatepicker: function (t) {
          var i,
          s,
          n = e(t),
          a = e.data(t, 'datepicker');
          n.hasClass(this.markerClassName) && (i = t.nodeName.toLowerCase(), 'input' === i ? (t.disabled = !1, a.trigger.filter('button').each(function () {
            this.disabled = !1
          }).end().filter('img').css({
            opacity: '1.0',
            cursor: ''
          }))  : ('div' === i || 'span' === i) && (s = n.children('.' + this._inlineClass), s.children().removeClass('ui-state-disabled'), s.find('select.ui-datepicker-month, select.ui-datepicker-year').prop('disabled', !1)), this._disabledInputs = e.map(this._disabledInputs, function (e) {
            return e === t ? null : e
          }))
        },
        _disableDatepicker: function (t) {
          var i,
          s,
          n = e(t),
          a = e.data(t, 'datepicker');
          n.hasClass(this.markerClassName) && (i = t.nodeName.toLowerCase(), 'input' === i ? (t.disabled = !0, a.trigger.filter('button').each(function () {
            this.disabled = !0
          }).end().filter('img').css({
            opacity: '0.5',
            cursor: 'default'
          }))  : ('div' === i || 'span' === i) && (s = n.children('.' + this._inlineClass), s.children().addClass('ui-state-disabled'), s.find('select.ui-datepicker-month, select.ui-datepicker-year').prop('disabled', !0)), this._disabledInputs = e.map(this._disabledInputs, function (e) {
            return e === t ? null : e
          }), this._disabledInputs[this._disabledInputs.length] = t)
        },
        _isDisabledDatepicker: function (e) {
          if (!e) return !1;
          for (var t = 0; this._disabledInputs.length > t; t++) if (this._disabledInputs[t] === e) return !0;
          return !1
        },
        _getInst: function (t) {
          try {
            return e.data(t, 'datepicker')
          } catch (i) {
            throw 'Missing instance data for this datepicker'
          }
        },
        _optionDatepicker: function (t, i, s) {
          var n,
          a,
          o,
          h,
          l = this._getInst(t);
          return 2 === arguments.length && 'string' == typeof i ? 'defaults' === i ? e.extend({
          }, e.datepicker._defaults)  : l ? 'all' === i ? e.extend({
          }, l.settings)  : this._get(l, i)  : null : (n = i || {
          }, 'string' == typeof i && (n = {
          }, n[i] = s), l && (this._curInst === l && this._hideDatepicker(), a = this._getDateDatepicker(t, !0), o = this._getMinMaxDate(l, 'min'), h = this._getMinMaxDate(l, 'max'), r(l.settings, n), null !== o && void 0 !== n.dateFormat && void 0 === n.minDate && (l.settings.minDate = this._formatDate(l, o)), null !== h && void 0 !== n.dateFormat && void 0 === n.maxDate && (l.settings.maxDate = this._formatDate(l, h)), 'disabled' in n && (n.disabled ? this._disableDatepicker(t)  : this._enableDatepicker(t)), this._attachments(e(t), l), this._autoSize(l), this._setDate(l, a), this._updateAlternate(l), this._updateDatepicker(l)), void 0)
        },
        _changeDatepicker: function (e, t, i) {
          this._optionDatepicker(e, t, i)
        },
        _refreshDatepicker: function (e) {
          var t = this._getInst(e);
          t && this._updateDatepicker(t)
        },
        _setDateDatepicker: function (e, t) {
          var i = this._getInst(e);
          i && (this._setDate(i, t), this._updateDatepicker(i), this._updateAlternate(i))
        },
        _getDateDatepicker: function (e, t) {
          var i = this._getInst(e);
          return i && !i.inline && this._setDateFromField(i, t),
          i ? this._getDate(i)  : null
        },
        _doKeyDown: function (t) {
          var i,
          s,
          n,
          a = e.datepicker._getInst(t.target),
          o = !0,
          r = a.dpDiv.is('.ui-datepicker-rtl');
          if (a._keyEvent = !0, e.datepicker._datepickerShowing) switch (t.keyCode) {
            case 9:
              e.datepicker._hideDatepicker(),
              o = !1;
              break;
            case 13:
              return n = e('td.' + e.datepicker._dayOverClass + ':not(.' + e.datepicker._currentClass + ')', a.dpDiv),
              n[0] && e.datepicker._selectDay(t.target, a.selectedMonth, a.selectedYear, n[0]),
              i = e.datepicker._get(a, 'onSelect'),
              i ? (s = e.datepicker._formatDate(a), i.apply(a.input ? a.input[0] : null, [
                s,
                a
              ]))  : e.datepicker._hideDatepicker(),
              !1;
            case 27:
              e.datepicker._hideDatepicker();
              break;
            case 33:
              e.datepicker._adjustDate(t.target, t.ctrlKey ? - e.datepicker._get(a, 'stepBigMonths')  : - e.datepicker._get(a, 'stepMonths'), 'M');
              break;
            case 34:
              e.datepicker._adjustDate(t.target, t.ctrlKey ? + e.datepicker._get(a, 'stepBigMonths')  : + e.datepicker._get(a, 'stepMonths'), 'M');
              break;
            case 35:
              (t.ctrlKey || t.metaKey) && e.datepicker._clearDate(t.target),
              o = t.ctrlKey || t.metaKey;
              break;
            case 36:
              (t.ctrlKey || t.metaKey) && e.datepicker._gotoToday(t.target),
              o = t.ctrlKey || t.metaKey;
              break;
            case 37:
              (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, r ? 1 : - 1, 'D'),
              o = t.ctrlKey || t.metaKey,
              t.originalEvent.altKey && e.datepicker._adjustDate(t.target, t.ctrlKey ? - e.datepicker._get(a, 'stepBigMonths')  : - e.datepicker._get(a, 'stepMonths'), 'M');
              break;
            case 38:
              (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, - 7, 'D'),
              o = t.ctrlKey || t.metaKey;
              break;
            case 39:
              (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, r ? - 1 : 1, 'D'),
              o = t.ctrlKey || t.metaKey,
              t.originalEvent.altKey && e.datepicker._adjustDate(t.target, t.ctrlKey ? + e.datepicker._get(a, 'stepBigMonths')  : + e.datepicker._get(a, 'stepMonths'), 'M');
              break;
            case 40:
              (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, 7, 'D'),
              o = t.ctrlKey || t.metaKey;
              break;
            default:
              o = !1
          } else 36 === t.keyCode && t.ctrlKey ? e.datepicker._showDatepicker(this)  : o = !1;
          o && (t.preventDefault(), t.stopPropagation())
        },
        _doKeyPress: function (t) {
          var i,
          s,
          n = e.datepicker._getInst(t.target);
          return e.datepicker._get(n, 'constrainInput') ? (i = e.datepicker._possibleChars(e.datepicker._get(n, 'dateFormat')), s = String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode), t.ctrlKey || t.metaKey || ' ' > s || !i || i.indexOf(s) > - 1)  : void 0
        },
        _doKeyUp: function (t) {
          var i,
          s = e.datepicker._getInst(t.target);
          if (s.input.val() !== s.lastVal) try {
            i = e.datepicker.parseDate(e.datepicker._get(s, 'dateFormat'), s.input ? s.input.val()  : null, e.datepicker._getFormatConfig(s)),
            i && (e.datepicker._setDateFromField(s), e.datepicker._updateAlternate(s), e.datepicker._updateDatepicker(s))
          } catch (n) {
          }
          return !0
        },
        _showDatepicker: function (t) {
          if (t = t.target || t, 'input' !== t.nodeName.toLowerCase() && (t = e('input', t.parentNode) [0]), !e.datepicker._isDisabledDatepicker(t) && e.datepicker._lastInput !== t) {
            var i,
            n,
            a,
            o,
            h,
            l,
            u;
            i = e.datepicker._getInst(t),
            e.datepicker._curInst && e.datepicker._curInst !== i && (e.datepicker._curInst.dpDiv.stop(!0, !0), i && e.datepicker._datepickerShowing && e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),
            n = e.datepicker._get(i, 'beforeShow'),
            a = n ? n.apply(t, [
              t,
              i
            ])  : {
            },
            a !== !1 && (r(i.settings, a), i.lastVal = null, e.datepicker._lastInput = t, e.datepicker._setDateFromField(i), e.datepicker._inDialog && (t.value = ''), e.datepicker._pos || (e.datepicker._pos = e.datepicker._findPos(t), e.datepicker._pos[1] += t.offsetHeight), o = !1, e(t).parents().each(function () {
              return o |= 'fixed' === e(this).css('position'),
              !o
            }), h = {
              left: e.datepicker._pos[0],
              top: e.datepicker._pos[1]
            }, e.datepicker._pos = null, i.dpDiv.empty(), i.dpDiv.css({
              position: 'absolute',
              display: 'block',
              top: '-1000px'
            }), e.datepicker._updateDatepicker(i), h = e.datepicker._checkOffset(i, h, o), i.dpDiv.css({
              position: e.datepicker._inDialog && e.blockUI ? 'static' : o ? 'fixed' : 'absolute',
              display: 'none',
              left: h.left + 'px',
              top: h.top + 'px'
            }), i.inline || (l = e.datepicker._get(i, 'showAnim'), u = e.datepicker._get(i, 'duration'), i.dpDiv.css('z-index', s(e(t)) + 1), e.datepicker._datepickerShowing = !0, e.effects && e.effects.effect[l] ? i.dpDiv.show(l, e.datepicker._get(i, 'showOptions'), u)  : i.dpDiv[l || 'show'](l ? u : null), e.datepicker._shouldFocusInput(i) && i.input.focus(), e.datepicker._curInst = i))
          }
        },
        _updateDatepicker: function (t) {
          this.maxRows = 4,
          v = t,
          t.dpDiv.empty().append(this._generateHTML(t)),
          this._attachHandlers(t);
          var i,
          s = this._getNumberOfMonths(t),
          n = s[1],
          a = 17,
          r = t.dpDiv.find('.' + this._dayOverClass + ' a');
          r.length > 0 && o.apply(r.get(0)),
          t.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width(''),
          n > 1 && t.dpDiv.addClass('ui-datepicker-multi-' + n).css('width', a * n + 'em'),
          t.dpDiv[(1 !== s[0] || 1 !== s[1] ? 'add' : 'remove') + 'Class']('ui-datepicker-multi'),
          t.dpDiv[(this._get(t, 'isRTL') ? 'add' : 'remove') + 'Class']('ui-datepicker-rtl'),
          t === e.datepicker._curInst && e.datepicker._datepickerShowing && e.datepicker._shouldFocusInput(t) && t.input.focus(),
          t.yearshtml && (i = t.yearshtml, setTimeout(function () {
            i === t.yearshtml && t.yearshtml && t.dpDiv.find('select.ui-datepicker-year:first').replaceWith(t.yearshtml),
            i = t.yearshtml = null
          }, 0))
        },
        _shouldFocusInput: function (e) {
          return e.input && e.input.is(':visible') && !e.input.is(':disabled') && !e.input.is(':focus')
        },
        _checkOffset: function (t, i, s) {
          var n = t.dpDiv.outerWidth(),
          a = t.dpDiv.outerHeight(),
          o = t.input ? t.input.outerWidth()  : 0,
          r = t.input ? t.input.outerHeight()  : 0,
          h = document.documentElement.clientWidth + (s ? 0 : e(document).scrollLeft()),
          l = document.documentElement.clientHeight + (s ? 0 : e(document).scrollTop());
          return i.left -= this._get(t, 'isRTL') ? n - o : 0,
          i.left -= s && i.left === t.input.offset().left ? e(document).scrollLeft()  : 0,
          i.top -= s && i.top === t.input.offset().top + r ? e(document).scrollTop()  : 0,
          i.left -= Math.min(i.left, i.left + n > h && h > n ? Math.abs(i.left + n - h)  : 0),
          i.top -= Math.min(i.top, i.top + a > l && l > a ? Math.abs(a + r)  : 0),
          i
        },
        _findPos: function (t) {
          for (var i, s = this._getInst(t), n = this._get(s, 'isRTL'); t && ('hidden' === t.type || 1 !== t.nodeType || e.expr.filters.hidden(t)); ) t = t[n ? 'previousSibling' : 'nextSibling'];
          return i = e(t).offset(),
          [
            i.left,
            i.top
          ]
        },
        _hideDatepicker: function (t) {
          var i,
          s,
          n,
          a,
          o = this._curInst;
          !o || t && o !== e.data(t, 'datepicker') || this._datepickerShowing && (i = this._get(o, 'showAnim'), s = this._get(o, 'duration'), n = function () {
            e.datepicker._tidyDialog(o)
          }, e.effects && (e.effects.effect[i] || e.effects[i]) ? o.dpDiv.hide(i, e.datepicker._get(o, 'showOptions'), s, n)  : o.dpDiv['slideDown' === i ? 'slideUp' : 'fadeIn' === i ? 'fadeOut' : 'hide'](i ? s : null, n), i || n(), this._datepickerShowing = !1, a = this._get(o, 'onClose'), a && a.apply(o.input ? o.input[0] : null, [
            o.input ? o.input.val()  : '',
            o
          ]), this._lastInput = null, this._inDialog && (this._dialogInput.css({
            position: 'absolute',
            left: '0',
            top: '-100px'
          }), e.blockUI && (e.unblockUI(), e('body').append(this.dpDiv))), this._inDialog = !1)
        },
        _tidyDialog: function (e) {
          e.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar')
        },
        _checkExternalClick: function (t) {
          if (e.datepicker._curInst) {
            var i = e(t.target),
            s = e.datepicker._getInst(i[0]);
            (i[0].id !== e.datepicker._mainDivId && 0 === i.parents('#' + e.datepicker._mainDivId).length && !i.hasClass(e.datepicker.markerClassName) && !i.closest('.' + e.datepicker._triggerClass).length && e.datepicker._datepickerShowing && (!e.datepicker._inDialog || !e.blockUI) || i.hasClass(e.datepicker.markerClassName) && e.datepicker._curInst !== s) && e.datepicker._hideDatepicker()
          }
        },
        _adjustDate: function (t, i, s) {
          var n = e(t),
          a = this._getInst(n[0]);
          this._isDisabledDatepicker(n[0]) || (this._adjustInstDate(a, i + ('M' === s ? this._get(a, 'showCurrentAtPos')  : 0), s), this._updateDatepicker(a))
        },
        _gotoToday: function (t) {
          var i,
          s = e(t),
          n = this._getInst(s[0]);
          this._get(n, 'gotoCurrent') && n.currentDay ? (n.selectedDay = n.currentDay, n.drawMonth = n.selectedMonth = n.currentMonth, n.drawYear = n.selectedYear = n.currentYear)  : (i = new Date, n.selectedDay = i.getDate(), n.drawMonth = n.selectedMonth = i.getMonth(), n.drawYear = n.selectedYear = i.getFullYear()),
          this._notifyChange(n),
          this._adjustDate(s)
        },
        _selectMonthYear: function (t, i, s) {
          var n = e(t),
          a = this._getInst(n[0]);
          a['selected' + ('M' === s ? 'Month' : 'Year')] = a['draw' + ('M' === s ? 'Month' : 'Year')] = parseInt(i.options[i.selectedIndex].value, 10),
          this._notifyChange(a),
          this._adjustDate(n)
        },
        _selectDay: function (t, i, s, n) {
          var a,
          o = e(t);
          e(n).hasClass(this._unselectableClass) || this._isDisabledDatepicker(o[0]) || (a = this._getInst(o[0]), a.selectedDay = a.currentDay = e('a', n).html(), a.selectedMonth = a.currentMonth = i, a.selectedYear = a.currentYear = s, this._selectDate(t, this._formatDate(a, a.currentDay, a.currentMonth, a.currentYear)))
        },
        _clearDate: function (t) {
          var i = e(t);
          this._selectDate(i, '')
        },
        _selectDate: function (t, i) {
          var s,
          n = e(t),
          a = this._getInst(n[0]);
          i = null != i ? i : this._formatDate(a),
          a.input && a.input.val(i),
          this._updateAlternate(a),
          s = this._get(a, 'onSelect'),
          s ? s.apply(a.input ? a.input[0] : null, [
            i,
            a
          ])  : a.input && a.input.trigger('change'),
          a.inline ? this._updateDatepicker(a)  : (this._hideDatepicker(), this._lastInput = a.input[0], 'object' != typeof a.input[0] && a.input.focus(), this._lastInput = null)
        },
        _updateAlternate: function (t) {
          var i,
          s,
          n,
          a = this._get(t, 'altField');
          a && (i = this._get(t, 'altFormat') || this._get(t, 'dateFormat'), s = this._getDate(t), n = this.formatDate(i, s, this._getFormatConfig(t)), e(a).each(function () {
            e(this).val(n)
          }))
        },
        noWeekends: function (e) {
          var t = e.getDay();
          return [t > 0 && 6 > t,
          '']
        },
        iso8601Week: function (e) {
          var t,
          i = new Date(e.getTime());
          return i.setDate(i.getDate() + 4 - (i.getDay() || 7)),
          t = i.getTime(),
          i.setMonth(0),
          i.setDate(1),
          Math.floor(Math.round((t - i) / 86400000) / 7) + 1
        },
        parseDate: function (t, i, s) {
          if (null == t || null == i) throw 'Invalid arguments';
          if (i = 'object' == typeof i ? '' + i : i + '', '' === i) return null;
          var n,
          a,
          o,
          r,
          h = 0,
          l = (s ? s.shortYearCutoff : null) || this._defaults.shortYearCutoff,
          u = 'string' != typeof l ? l : (new Date).getFullYear() % 100 + parseInt(l, 10),
          d = (s ? s.dayNamesShort : null) || this._defaults.dayNamesShort,
          c = (s ? s.dayNames : null) || this._defaults.dayNames,
          p = (s ? s.monthNamesShort : null) || this._defaults.monthNamesShort,
          f = (s ? s.monthNames : null) || this._defaults.monthNames,
          m = - 1,
          g = - 1,
          v = - 1,
          y = - 1,
          b = !1,
          _ = function (e) {
            var i = t.length > n + 1 && t.charAt(n + 1) === e;
            return i && n++,
            i
          },
          x = function (e) {
            var t = _(e),
            s = '@' === e ? 14 : '!' === e ? 20 : 'y' === e && t ? 4 : 'o' === e ? 3 : 2,
            n = 'y' === e ? s : 1,
            a = RegExp('^\\d{' + n + ',' + s + '}'),
            o = i.substring(h).match(a);
            if (!o) throw 'Missing number at position ' + h;
            return h += o[0].length,
            parseInt(o[0], 10)
          },
          w = function (t, s, n) {
            var a = - 1,
            o = e.map(_(t) ? n : s, function (e, t) {
              return [[t,
              e]]
            }).sort(function (e, t) {
              return - (e[1].length - t[1].length)
            });
            if (e.each(o, function (e, t) {
              var s = t[1];
              return i.substr(h, s.length).toLowerCase() === s.toLowerCase() ? (a = t[0], h += s.length, !1)  : void 0
            }), - 1 !== a) return a + 1;
            throw 'Unknown name at position ' + h
          },
          k = function () {
            if (i.charAt(h) !== t.charAt(n)) throw 'Unexpected literal at position ' + h;
            h++
          };
          for (n = 0; t.length > n; n++) if (b) '\'' !== t.charAt(n) || _('\'') ? k()  : b = !1;
           else switch (t.charAt(n)) {
            case 'd':
              v = x('d');
              break;
            case 'D':
              w('D', d, c);
              break;
            case 'o':
              y = x('o');
              break;
            case 'm':
              g = x('m');
              break;
            case 'M':
              g = w('M', p, f);
              break;
            case 'y':
              m = x('y');
              break;
            case '@':
              r = new Date(x('@')),
              m = r.getFullYear(),
              g = r.getMonth() + 1,
              v = r.getDate();
              break;
            case '!':
              r = new Date((x('!') - this._ticksTo1970) / 10000),
              m = r.getFullYear(),
              g = r.getMonth() + 1,
              v = r.getDate();
              break;
            case '\'':
              _('\'') ? k()  : b = !0;
              break;
            default:
              k()
          }
          if (i.length > h && (o = i.substr(h), !/^\s+/.test(o))) throw 'Extra/unparsed characters found in date: ' + o;
          if ( - 1 === m ? m = (new Date).getFullYear()  : 100 > m && (m += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (u >= m ? 0 : - 100)), y > - 1) for (g = 1, v = y; ; ) {
            if (a = this._getDaysInMonth(m, g - 1), a >= v) break;
            g++,
            v -= a
        }
        if (r = this._daylightSavingAdjust(new Date(m, g - 1, v)), r.getFullYear() !== m || r.getMonth() + 1 !== g || r.getDate() !== v) throw 'Invalid date';
        return r
      },
      ATOM: 'yy-mm-dd',
      COOKIE: 'D, dd M yy',
      ISO_8601: 'yy-mm-dd',
      RFC_822: 'D, d M y',
      RFC_850: 'DD, dd-M-y',
      RFC_1036: 'D, d M y',
      RFC_1123: 'D, d M yy',
      RFC_2822: 'D, d M yy',
      RSS: 'D, d M y',
      TICKS: '!',
      TIMESTAMP: '@',
      W3C: 'yy-mm-dd',
      _ticksTo1970: 10000000 * 60 * 60 * 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)),
      formatDate: function (e, t, i) {
        if (!t) return '';
        var s,
        n = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort,
        a = (i ? i.dayNames : null) || this._defaults.dayNames,
        o = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort,
        r = (i ? i.monthNames : null) || this._defaults.monthNames,
        h = function (t) {
          var i = e.length > s + 1 && e.charAt(s + 1) === t;
          return i && s++,
          i
        },
        l = function (e, t, i) {
          var s = '' + t;
          if (h(e)) for (; i > s.length; ) s = '0' + s;
          return s
        },
        u = function (e, t, i, s) {
          return h(e) ? s[t] : i[t]
        },
        d = '',
        c = !1;
        if (t) for (s = 0; e.length > s; s++) if (c) '\'' !== e.charAt(s) || h('\'') ? d += e.charAt(s)  : c = !1;
         else switch (e.charAt(s)) {
          case 'd':
            d += l('d', t.getDate(), 2);
            break;
          case 'D':
            d += u('D', t.getDay(), n, a);
            break;
          case 'o':
            d += l('o', Math.round((new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() - new Date(t.getFullYear(), 0, 0).getTime()) / 86400000), 3);
            break;
          case 'm':
            d += l('m', t.getMonth() + 1, 2);
            break;
          case 'M':
            d += u('M', t.getMonth(), o, r);
            break;
          case 'y':
            d += h('y') ? t.getFullYear()  : (10 > t.getYear() % 100 ? '0' : '') + t.getYear() % 100;
            break;
          case '@':
            d += t.getTime();
            break;
          case '!':
            d += 10000 * t.getTime() + this._ticksTo1970;
            break;
          case '\'':
            h('\'') ? d += '\'' : c = !0;
            break;
          default:
            d += e.charAt(s)
        }
        return d
      },
      _possibleChars: function (e) {
        var t,
        i = '',
        s = !1,
        n = function (i) {
          var s = e.length > t + 1 && e.charAt(t + 1) === i;
          return s && t++,
          s
        };
        for (t = 0; e.length > t; t++) if (s) '\'' !== e.charAt(t) || n('\'') ? i += e.charAt(t)  : s = !1;
         else switch (e.charAt(t)) {
          case 'd':
          case 'm':
          case 'y':
          case '@':
            i += '0123456789';
            break;
          case 'D':
          case 'M':
            return null;
          case '\'':
            n('\'') ? i += '\'' : s = !0;
            break;
          default:
            i += e.charAt(t)
        }
        return i
      },
      _get: function (e, t) {
        return void 0 !== e.settings[t] ? e.settings[t] : this._defaults[t]
      },
      _setDateFromField: function (e, t) {
        if (e.input.val() !== e.lastVal) {
          var i = this._get(e, 'dateFormat'),
          s = e.lastVal = e.input ? e.input.val()  : null,
          n = this._getDefaultDate(e),
          a = n,
          o = this._getFormatConfig(e);
          try {
            a = this.parseDate(i, s, o) || n
          } catch (r) {
            s = t ? '' : s
          }
          e.selectedDay = a.getDate(),
          e.drawMonth = e.selectedMonth = a.getMonth(),
          e.drawYear = e.selectedYear = a.getFullYear(),
          e.currentDay = s ? a.getDate()  : 0,
          e.currentMonth = s ? a.getMonth()  : 0,
          e.currentYear = s ? a.getFullYear()  : 0,
          this._adjustInstDate(e)
        }
      },
      _getDefaultDate: function (e) {
        return this._restrictMinMax(e, this._determineDate(e, this._get(e, 'defaultDate'), new Date))
      },
      _determineDate: function (t, i, s) {
        var n = function (e) {
          var t = new Date;
          return t.setDate(t.getDate() + e),
          t
        },
        a = function (i) {
          try {
            return e.datepicker.parseDate(e.datepicker._get(t, 'dateFormat'), i, e.datepicker._getFormatConfig(t))
          } catch (s) {
          }
          for (var n = (i.toLowerCase().match(/^c/) ? e.datepicker._getDate(t)  : null) || new Date, a = n.getFullYear(), o = n.getMonth(), r = n.getDate(), h = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, l = h.exec(i); l; ) {
            switch (l[2] || 'd') {
              case 'd':
              case 'D':
                r += parseInt(l[1], 10);
                break;
              case 'w':
              case 'W':
                r += 7 * parseInt(l[1], 10);
                break;
              case 'm':
              case 'M':
                o += parseInt(l[1], 10),
                r = Math.min(r, e.datepicker._getDaysInMonth(a, o));
                break;
              case 'y':
              case 'Y':
                a += parseInt(l[1], 10),
                r = Math.min(r, e.datepicker._getDaysInMonth(a, o))
            }
            l = h.exec(i)
          }
          return new Date(a, o, r)
        },
        o = null == i || '' === i ? s : 'string' == typeof i ? a(i)  : 'number' == typeof i ? isNaN(i) ? s : n(i)  : new Date(i.getTime());
        return o = o && 'Invalid Date' == '' + o ? s : o,
        o && (o.setHours(0), o.setMinutes(0), o.setSeconds(0), o.setMilliseconds(0)),
        this._daylightSavingAdjust(o)
      },
      _daylightSavingAdjust: function (e) {
        return e ? (e.setHours(e.getHours() > 12 ? e.getHours() + 2 : 0), e)  : null
      },
      _setDate: function (e, t, i) {
        var s = !t,
        n = e.selectedMonth,
        a = e.selectedYear,
        o = this._restrictMinMax(e, this._determineDate(e, t, new Date));
        e.selectedDay = e.currentDay = o.getDate(),
        e.drawMonth = e.selectedMonth = e.currentMonth = o.getMonth(),
        e.drawYear = e.selectedYear = e.currentYear = o.getFullYear(),
        n === e.selectedMonth && a === e.selectedYear || i || this._notifyChange(e),
        this._adjustInstDate(e),
        e.input && e.input.val(s ? '' : this._formatDate(e))
      },
      _getDate: function (e) {
        var t = !e.currentYear || e.input && '' === e.input.val() ? null : this._daylightSavingAdjust(new Date(e.currentYear, e.currentMonth, e.currentDay));
        return t
      },
      _attachHandlers: function (t) {
        var i = this._get(t, 'stepMonths'),
        s = '#' + t.id.replace(/\\\\/g, '\\');
        t.dpDiv.find('[data-handler]').map(function () {
          var t = {
            prev: function () {
              e.datepicker._adjustDate(s, - i, 'M')
            },
            next: function () {
              e.datepicker._adjustDate(s, + i, 'M')
            },
            hide: function () {
              e.datepicker._hideDatepicker()
            },
            today: function () {
              e.datepicker._gotoToday(s)
            },
            selectDay: function () {
              return e.datepicker._selectDay(s, + this.getAttribute('data-month'), + this.getAttribute('data-year'), this),
              !1
            },
            selectMonth: function () {
              return e.datepicker._selectMonthYear(s, this, 'M'),
              !1
            },
            selectYear: function () {
              return e.datepicker._selectMonthYear(s, this, 'Y'),
              !1
            }
          };
          e(this).bind(this.getAttribute('data-event'), t[this.getAttribute('data-handler')])
        })
      },
      _generateHTML: function (e) {
        var t,
        i,
        s,
        n,
        a,
        o,
        r,
        h,
        l,
        u,
        d,
        c,
        p,
        f,
        m,
        g,
        v,
        y,
        b,
        _,
        x,
        w,
        k,
        T,
        D,
        S,
        M,
        C,
        N,
        A,
        P,
        I,
        H,
        z,
        F,
        E,
        O,
        j,
        W,
        L = new Date,
        R = this._daylightSavingAdjust(new Date(L.getFullYear(), L.getMonth(), L.getDate())),
        Y = this._get(e, 'isRTL'),
        B = this._get(e, 'showButtonPanel'),
        J = this._get(e, 'hideIfNoPrevNext'),
        q = this._get(e, 'navigationAsDateFormat'),
        K = this._getNumberOfMonths(e),
        V = this._get(e, 'showCurrentAtPos'),
        U = this._get(e, 'stepMonths'),
        Q = 1 !== K[0] || 1 !== K[1],
        G = this._daylightSavingAdjust(e.currentDay ? new Date(e.currentYear, e.currentMonth, e.currentDay)  : new Date(9999, 9, 9)),
        X = this._getMinMaxDate(e, 'min'),
        $ = this._getMinMaxDate(e, 'max'),
        Z = e.drawMonth - V,
        et = e.drawYear;
        if (0 > Z && (Z += 12, et--), $) for (t = this._daylightSavingAdjust(new Date($.getFullYear(), $.getMonth() - K[0] * K[1] + 1, $.getDate())), t = X && X > t ? X : t; this._daylightSavingAdjust(new Date(et, Z, 1)) > t; ) Z--,
        0 > Z && (Z = 11, et--);
        for (e.drawMonth = Z, e.drawYear = et, i = this._get(e, 'prevText'), i = q ? this.formatDate(i, this._daylightSavingAdjust(new Date(et, Z - U, 1)), this._getFormatConfig(e))  : i, s = this._canAdjustMonth(e, - 1, et, Z) ? '<a class=\'ui-datepicker-prev ui-corner-all\' data-handler=\'prev\' data-event=\'click\' title=\'' + i + '\'><span class=\'ui-icon ui-icon-circle-triangle-' + (Y ? 'e' : 'w') + '\'>' + i + '</span></a>' : J ? '' : '<a class=\'ui-datepicker-prev ui-corner-all ui-state-disabled\' title=\'' + i + '\'><span class=\'ui-icon ui-icon-circle-triangle-' + (Y ? 'e' : 'w') + '\'>' + i + '</span></a>', n = this._get(e, 'nextText'), n = q ? this.formatDate(n, this._daylightSavingAdjust(new Date(et, Z + U, 1)), this._getFormatConfig(e))  : n, a = this._canAdjustMonth(e, 1, et, Z) ? '<a class=\'ui-datepicker-next ui-corner-all\' data-handler=\'next\' data-event=\'click\' title=\'' + n + '\'><span class=\'ui-icon ui-icon-circle-triangle-' + (Y ? 'w' : 'e') + '\'>' + n + '</span></a>' : J ? '' : '<a class=\'ui-datepicker-next ui-corner-all ui-state-disabled\' title=\'' + n + '\'><span class=\'ui-icon ui-icon-circle-triangle-' + (Y ? 'w' : 'e') + '\'>' + n + '</span></a>', o = this._get(e, 'currentText'), r = this._get(e, 'gotoCurrent') && e.currentDay ? G : R, o = q ? this.formatDate(o, r, this._getFormatConfig(e))  : o, h = e.inline ? '' : '<button type=\'button\' class=\'ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all\' data-handler=\'hide\' data-event=\'click\'>' + this._get(e, 'closeText') + '</button>', l = B ? '<div class=\'ui-datepicker-buttonpane ui-widget-content\'>' + (Y ? h : '') + (this._isInRange(e, r) ? '<button type=\'button\' class=\'ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all\' data-handler=\'today\' data-event=\'click\'>' + o + '</button>' : '') + (Y ? '' : h) + '</div>' : '', u = parseInt(this._get(e, 'firstDay'), 10), u = isNaN(u) ? 0 : u, d = this._get(e, 'showWeek'), c = this._get(e, 'dayNames'), p = this._get(e, 'dayNamesMin'), f = this._get(e, 'monthNames'), m = this._get(e, 'monthNamesShort'), g = this._get(e, 'beforeShowDay'), v = this._get(e, 'showOtherMonths'), y = this._get(e, 'selectOtherMonths'), b = this._getDefaultDate(e), _ = '', w = 0; K[0] > w; w++) {
          for (k = '', this.maxRows = 4, T = 0; K[1] > T; T++) {
            if (D = this._daylightSavingAdjust(new Date(et, Z, e.selectedDay)), S = ' ui-corner-all', M = '', Q) {
              if (M += '<div class=\'ui-datepicker-group', K[1] > 1) switch (T) {
                case 0:
                  M += ' ui-datepicker-group-first',
                  S = ' ui-corner-' + (Y ? 'right' : 'left');
                  break;
                case K[1] - 1:
                  M += ' ui-datepicker-group-last',
                  S = ' ui-corner-' + (Y ? 'left' : 'right');
                  break;
                default:
                  M += ' ui-datepicker-group-middle',
                  S = ''
              }
              M += '\'>'
            }
            for (M += '<div class=\'ui-datepicker-header ui-widget-header ui-helper-clearfix' + S + '\'>' + (/all|left/.test(S) && 0 === w ? Y ? a : s : '') + (/all|right/.test(S) && 0 === w ? Y ? s : a : '') + this._generateMonthYearHeader(e, Z, et, X, $, w > 0 || T > 0, f, m) + '</div><table class=\'ui-datepicker-calendar\'><thead>' + '<tr>', C = d ? '<th class=\'ui-datepicker-week-col\'>' + this._get(e, 'weekHeader') + '</th>' : '', x = 0; 7 > x; x++) N = (x + u) % 7,
            C += '<th scope=\'col\'' + ((x + u + 6) % 7 >= 5 ? ' class=\'ui-datepicker-week-end\'' : '') + '>' + '<span title=\'' + c[N] + '\'>' + p[N] + '</span></th>';
            for (M += C + '</tr></thead><tbody>', A = this._getDaysInMonth(et, Z), et === e.selectedYear && Z === e.selectedMonth && (e.selectedDay = Math.min(e.selectedDay, A)), P = (this._getFirstDayOfMonth(et, Z) - u + 7) % 7, I = Math.ceil((P + A) / 7), H = Q ? this.maxRows > I ? this.maxRows : I : I, this.maxRows = H, z = this._daylightSavingAdjust(new Date(et, Z, 1 - P)), F = 0; H > F; F++) {
              for (M += '<tr>', E = d ? '<td class=\'ui-datepicker-week-col\'>' + this._get(e, 'calculateWeek') (z) + '</td>' : '', x = 0; 7 > x; x++) O = g ? g.apply(e.input ? e.input[0] : null, [
                z
              ])  : [
                !0,
                ''
              ],
              j = z.getMonth() !== Z,
              W = j && !y || !O[0] || X && X > z || $ && z > $,
              E += '<td class=\'' + ((x + u + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + (j ? ' ui-datepicker-other-month' : '') + (z.getTime() === D.getTime() && Z === e.selectedMonth && e._keyEvent || b.getTime() === z.getTime() && b.getTime() === D.getTime() ? ' ' + this._dayOverClass : '') + (W ? ' ' + this._unselectableClass + ' ui-state-disabled' : '') + (j && !v ? '' : ' ' + O[1] + (z.getTime() === G.getTime() ? ' ' + this._currentClass : '') + (z.getTime() === R.getTime() ? ' ui-datepicker-today' : '')) + '\'' + (j && !v || !O[2] ? '' : ' title=\'' + O[2].replace(/'/g, '&#39;') + '\'') + (W ? '' : ' data-handler=\'selectDay\' data-event=\'click\' data-month=\'' + z.getMonth() + '\' data-year=\'' + z.getFullYear() + '\'') + '>' + (j && !v ? '&#xa0;' : W ? '<span class=\'ui-state-default\'>' + z.getDate() + '</span>' : '<a class=\'ui-state-default' + (z.getTime() === R.getTime() ? ' ui-state-highlight' : '') + (z.getTime() === G.getTime() ? ' ui-state-active' : '') + (j ? ' ui-priority-secondary' : '') + '\' href=\'#\'>' + z.getDate() + '</a>') + '</td>',
              z.setDate(z.getDate() + 1),
              z = this._daylightSavingAdjust(z);
              M += E + '</tr>'
            }
            Z++,
            Z > 11 && (Z = 0, et++),
            M += '</tbody></table>' + (Q ? '</div>' + (K[0] > 0 && T === K[1] - 1 ? '<div class=\'ui-datepicker-row-break\'></div>' : '')  : ''),
            k += M
          }
          _ += k
        }
        return _ += l,
        e._keyEvent = !1,
        _
      },
      _generateMonthYearHeader: function (e, t, i, s, n, a, o, r) {
        var h,
        l,
        u,
        d,
        c,
        p,
        f,
        m,
        g = this._get(e, 'changeMonth'),
        v = this._get(e, 'changeYear'),
        y = this._get(e, 'showMonthAfterYear'),
        b = '<div class=\'ui-datepicker-title\'>',
        _ = '';
        if (a || !g) _ += '<span class=\'ui-datepicker-month\'>' + o[t] + '</span>';
         else {
          for (h = s && s.getFullYear() === i, l = n && n.getFullYear() === i, _ += '<select class=\'ui-datepicker-month\' data-handler=\'selectMonth\' data-event=\'change\'>', u = 0; 12 > u; u++) (!h || u >= s.getMonth()) && (!l || n.getMonth() >= u) && (_ += '<option value=\'' + u + '\'' + (u === t ? ' selected=\'selected\'' : '') + '>' + r[u] + '</option>');
          _ += '</select>'
        }
        if (y || (b += _ + (!a && g && v ? '' : '&#xa0;')), !e.yearshtml) if (e.yearshtml = '', a || !v) b += '<span class=\'ui-datepicker-year\'>' + i + '</span>';
         else {
          for (d = this._get(e, 'yearRange').split(':'), c = (new Date).getFullYear(), p = function (e) {
            var t = e.match(/c[+\-].*/) ? i + parseInt(e.substring(1), 10)  : e.match(/[+\-].*/) ? c + parseInt(e, 10)  : parseInt(e, 10);
            return isNaN(t) ? c : t
          }, f = p(d[0]), m = Math.max(f, p(d[1] || '')), f = s ? Math.max(f, s.getFullYear())  : f, m = n ? Math.min(m, n.getFullYear())  : m, e.yearshtml += '<select class=\'ui-datepicker-year\' data-handler=\'selectYear\' data-event=\'change\'>'; m >= f; f++) e.yearshtml += '<option value=\'' + f + '\'' + (f === i ? ' selected=\'selected\'' : '') + '>' + f + '</option>';
          e.yearshtml += '</select>',
          b += e.yearshtml,
          e.yearshtml = null
        }
        return b += this._get(e, 'yearSuffix'),
        y && (b += (!a && g && v ? '' : '&#xa0;') + _),
        b += '</div>'
      },
      _adjustInstDate: function (e, t, i) {
        var s = e.drawYear + ('Y' === i ? t : 0),
        n = e.drawMonth + ('M' === i ? t : 0),
        a = Math.min(e.selectedDay, this._getDaysInMonth(s, n)) + ('D' === i ? t : 0),
        o = this._restrictMinMax(e, this._daylightSavingAdjust(new Date(s, n, a)));
        e.selectedDay = o.getDate(),
        e.drawMonth = e.selectedMonth = o.getMonth(),
        e.drawYear = e.selectedYear = o.getFullYear(),
        ('M' === i || 'Y' === i) && this._notifyChange(e)
      },
      _restrictMinMax: function (e, t) {
        var i = this._getMinMaxDate(e, 'min'),
        s = this._getMinMaxDate(e, 'max'),
        n = i && i > t ? i : t;
        return s && n > s ? s : n
      },
      _notifyChange: function (e) {
        var t = this._get(e, 'onChangeMonthYear');
        t && t.apply(e.input ? e.input[0] : null, [
          e.selectedYear,
          e.selectedMonth + 1,
          e
        ])
      },
      _getNumberOfMonths: function (e) {
        var t = this._get(e, 'numberOfMonths');
        return null == t ? [
          1,
          1
        ] : 'number' == typeof t ? [
          1,
          t
        ] : t
      },
      _getMinMaxDate: function (e, t) {
        return this._determineDate(e, this._get(e, t + 'Date'), null)
      },
      _getDaysInMonth: function (e, t) {
        return 32 - this._daylightSavingAdjust(new Date(e, t, 32)).getDate()
      },
      _getFirstDayOfMonth: function (e, t) {
        return new Date(e, t, 1).getDay()
      },
      _canAdjustMonth: function (e, t, i, s) {
        var n = this._getNumberOfMonths(e),
        a = this._daylightSavingAdjust(new Date(i, s + (0 > t ? t : n[0] * n[1]), 1));
        return 0 > t && a.setDate(this._getDaysInMonth(a.getFullYear(), a.getMonth())),
        this._isInRange(e, a)
      },
      _isInRange: function (e, t) {
        var i,
        s,
        n = this._getMinMaxDate(e, 'min'),
        a = this._getMinMaxDate(e, 'max'),
        o = null,
        r = null,
        h = this._get(e, 'yearRange');
        return h && (i = h.split(':'), s = (new Date).getFullYear(), o = parseInt(i[0], 10), r = parseInt(i[1], 10), i[0].match(/[+\-].*/) && (o += s), i[1].match(/[+\-].*/) && (r += s)),
        (!n || t.getTime() >= n.getTime()) && (!a || t.getTime() <= a.getTime()) && (!o || t.getFullYear() >= o) && (!r || r >= t.getFullYear())
      },
      _getFormatConfig: function (e) {
        var t = this._get(e, 'shortYearCutoff');
        return t = 'string' != typeof t ? t : (new Date).getFullYear() % 100 + parseInt(t, 10),
        {
          shortYearCutoff: t,
          dayNamesShort: this._get(e, 'dayNamesShort'),
          dayNames: this._get(e, 'dayNames'),
          monthNamesShort: this._get(e, 'monthNamesShort'),
          monthNames: this._get(e, 'monthNames')
        }
      },
      _formatDate: function (e, t, i, s) {
        t || (e.currentDay = e.selectedDay, e.currentMonth = e.selectedMonth, e.currentYear = e.selectedYear);
        var n = t ? 'object' == typeof t ? t : this._daylightSavingAdjust(new Date(s, i, t))  : this._daylightSavingAdjust(new Date(e.currentYear, e.currentMonth, e.currentDay));
        return this.formatDate(this._get(e, 'dateFormat'), n, this._getFormatConfig(e))
      }
    }),
    e.fn.datepicker = function (t) {
      if (!this.length) return this;
      e.datepicker.initialized || (e(document).mousedown(e.datepicker._checkExternalClick), e.datepicker.initialized = !0),
      0 === e('#' + e.datepicker._mainDivId).length && e('body').append(e.datepicker.dpDiv);
      var i = Array.prototype.slice.call(arguments, 1);
      return 'string' != typeof t || 'isDisabled' !== t && 'getDate' !== t && 'widget' !== t ? 'option' === t && 2 === arguments.length && 'string' == typeof arguments[1] ? e.datepicker['_' + t + 'Datepicker'].apply(e.datepicker, [
        this[0]
      ].concat(i))  : this.each(function () {
        'string' == typeof t ? e.datepicker['_' + t + 'Datepicker'].apply(e.datepicker, [
          this
        ].concat(i))  : e.datepicker._attachDatepicker(this, t)
      })  : e.datepicker['_' + t + 'Datepicker'].apply(e.datepicker, [
        this[0]
      ].concat(i))
    },
    e.datepicker = new n,
    e.datepicker.initialized = !1,
    e.datepicker.uuid = (new Date).getTime(),
    e.datepicker.version = '1.11.4',
    e.datepicker,
    e.widget('ui.dialog', {
      version: '1.11.4',
      options: {
        appendTo: 'body',
        autoOpen: !0,
        buttons: [
        ],
        closeOnEscape: !0,
        closeText: 'Close',
        dialogClass: '',
        draggable: !0,
        hide: null,
        height: 'auto',
        maxHeight: null,
        maxWidth: null,
        minHeight: 150,
        minWidth: 150,
        modal: !1,
        position: {
          my: 'center',
          at: 'center',
          of: window,
          collision: 'fit',
          using: function (t) {
            var i = e(this).css(t).offset().top;
            0 > i && e(this).css('top', t.top - i)
          }
        },
        resizable: !0,
        show: null,
        title: null,
        width: 300,
        beforeClose: null,
        close: null,
        drag: null,
        dragStart: null,
        dragStop: null,
        focus: null,
        open: null,
        resize: null,
        resizeStart: null,
        resizeStop: null
      },
      sizeRelatedOptions: {
        buttons: !0,
        height: !0,
        maxHeight: !0,
        maxWidth: !0,
        minHeight: !0,
        minWidth: !0,
        width: !0
      },
      resizableRelatedOptions: {
        maxHeight: !0,
        maxWidth: !0,
        minHeight: !0,
        minWidth: !0
      },
      _create: function () {
        this.originalCss = {
          display: this.element[0].style.display,
          width: this.element[0].style.width,
          minHeight: this.element[0].style.minHeight,
          maxHeight: this.element[0].style.maxHeight,
          height: this.element[0].style.height
        },
        this.originalPosition = {
          parent: this.element.parent(),
          index: this.element.parent().children().index(this.element)
        },
        this.originalTitle = this.element.attr('title'),
        this.options.title = this.options.title || this.originalTitle,
        this._createWrapper(),
        this.element.show().removeAttr('title').addClass('ui-dialog-content ui-widget-content').appendTo(this.uiDialog),
        this._createTitlebar(),
        this._createButtonPane(),
        this.options.draggable && e.fn.draggable && this._makeDraggable(),
        this.options.resizable && e.fn.resizable && this._makeResizable(),
        this._isOpen = !1,
        this._trackFocus()
      },
      _init: function () {
        this.options.autoOpen && this.open()
      },
      _appendTo: function () {
        var t = this.options.appendTo;
        return t && (t.jquery || t.nodeType) ? e(t)  : this.document.find(t || 'body').eq(0)
      },
      _destroy: function () {
        var e,
        t = this.originalPosition;
        this._untrackInstance(),
        this._destroyOverlay(),
        this.element.removeUniqueId().removeClass('ui-dialog-content ui-widget-content').css(this.originalCss).detach(),
        this.uiDialog.stop(!0, !0).remove(),
        this.originalTitle && this.element.attr('title', this.originalTitle),
        e = t.parent.children().eq(t.index),
        e.length && e[0] !== this.element[0] ? e.before(this.element)  : t.parent.append(this.element)
      },
      widget: function () {
        return this.uiDialog
      },
      disable: e.noop,
      enable: e.noop,
      close: function (t) {
        var i,
        s = this;
        if (this._isOpen && this._trigger('beforeClose', t) !== !1) {
          if (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), !this.opener.filter(':focusable').focus().length) try {
            i = this.document[0].activeElement,
            i && 'body' !== i.nodeName.toLowerCase() && e(i).blur()
          } catch (n) {
          }
          this._hide(this.uiDialog, this.options.hide, function () {
            s._trigger('close', t)
          })
        }
      },
      isOpen: function () {
        return this._isOpen
      },
      moveToTop: function () {
        this._moveToTop()
      },
      _moveToTop: function (t, i) {
        var s = !1,
        n = this.uiDialog.siblings('.ui-front:visible').map(function () {
          return + e(this).css('z-index')
        }).get(),
        a = Math.max.apply(null, n);
        return a >= + this.uiDialog.css('z-index') && (this.uiDialog.css('z-index', a + 1), s = !0),
        s && !i && this._trigger('focus', t),
        s
      },
      open: function () {
        var t = this;
        return this._isOpen ? (this._moveToTop() && this._focusTabbable(), void 0)  : (this._isOpen = !0, this.opener = e(this.document[0].activeElement), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css('z-index', this.uiDialog.css('z-index') - 1), this._show(this.uiDialog, this.options.show, function () {
          t._focusTabbable(),
          t._trigger('focus')
        }), this._makeFocusTarget(), this._trigger('open'), void 0)
      },
      _focusTabbable: function () {
        var e = this._focusedElement;
        e || (e = this.element.find('[autofocus]')),
        e.length || (e = this.element.find(':tabbable')),
        e.length || (e = this.uiDialogButtonPane.find(':tabbable')),
        e.length || (e = this.uiDialogTitlebarClose.filter(':tabbable')),
        e.length || (e = this.uiDialog),
        e.eq(0).focus()
      },
      _keepFocus: function (t) {
        function i() {
          var t = this.document[0].activeElement,
          i = this.uiDialog[0] === t || e.contains(this.uiDialog[0], t);
          i || this._focusTabbable()
        }
        t.preventDefault(),
        i.call(this),
        this._delay(i)
      },
      _createWrapper: function () {
        this.uiDialog = e('<div>').addClass('ui-dialog ui-widget ui-widget-content ui-corner-all ui-front ' + this.options.dialogClass).hide().attr({
          tabIndex: - 1,
          role: 'dialog'
        }).appendTo(this._appendTo()),
        this._on(this.uiDialog, {
          keydown: function (t) {
            if (this.options.closeOnEscape && !t.isDefaultPrevented() && t.keyCode && t.keyCode === e.ui.keyCode.ESCAPE) return t.preventDefault(),
            this.close(t),
            void 0;
            if (t.keyCode === e.ui.keyCode.TAB && !t.isDefaultPrevented()) {
              var i = this.uiDialog.find(':tabbable'),
              s = i.filter(':first'),
              n = i.filter(':last');
              t.target !== n[0] && t.target !== this.uiDialog[0] || t.shiftKey ? t.target !== s[0] && t.target !== this.uiDialog[0] || !t.shiftKey || (this._delay(function () {
                n.focus()
              }), t.preventDefault())  : (this._delay(function () {
                s.focus()
              }), t.preventDefault())
            }
          },
          mousedown: function (e) {
            this._moveToTop(e) && this._focusTabbable()
          }
        }),
        this.element.find('[aria-describedby]').length || this.uiDialog.attr({
          'aria-describedby': this.element.uniqueId().attr('id')
        })
      },
      _createTitlebar: function () {
        var t;
        this.uiDialogTitlebar = e('<div>').addClass('ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix').prependTo(this.uiDialog),
        this._on(this.uiDialogTitlebar, {
          mousedown: function (t) {
            e(t.target).closest('.ui-dialog-titlebar-close') || this.uiDialog.focus()
          }
        }),
        this.uiDialogTitlebarClose = e('<button type=\'button\'></button>').button({
          label: this.options.closeText,
          icons: {
            primary: 'ui-icon-closethick'
          },
          text: !1
        }).addClass('ui-dialog-titlebar-close').appendTo(this.uiDialogTitlebar),
        this._on(this.uiDialogTitlebarClose, {
          click: function (e) {
            e.preventDefault(),
            this.close(e)
          }
        }),
        t = e('<span>').uniqueId().addClass('ui-dialog-title').prependTo(this.uiDialogTitlebar),
        this._title(t),
        this.uiDialog.attr({
          'aria-labelledby': t.attr('id')
        })
      },
      _title: function (e) {
        this.options.title || e.html('&#160;'),
        e.text(this.options.title)
      },
      _createButtonPane: function () {
        this.uiDialogButtonPane = e('<div>').addClass('ui-dialog-buttonpane ui-widget-content ui-helper-clearfix'),
        this.uiButtonSet = e('<div>').addClass('ui-dialog-buttonset').appendTo(this.uiDialogButtonPane),
        this._createButtons()
      },
      _createButtons: function () {
        var t = this,
        i = this.options.buttons;
        return this.uiDialogButtonPane.remove(),
        this.uiButtonSet.empty(),
        e.isEmptyObject(i) || e.isArray(i) && !i.length ? (this.uiDialog.removeClass('ui-dialog-buttons'), void 0)  : (e.each(i, function (i, s) {
          var n,
          a;
          s = e.isFunction(s) ? {
            click: s,
            text: i
          }
           : s,
          s = e.extend({
            type: 'button'
          }, s),
          n = s.click,
          s.click = function () {
            n.apply(t.element[0], arguments)
          },
          a = {
            icons: s.icons,
            text: s.showText
          },
          delete s.icons,
          delete s.showText,
          e('<button></button>', s).button(a).appendTo(t.uiButtonSet)
        }), this.uiDialog.addClass('ui-dialog-buttons'), this.uiDialogButtonPane.appendTo(this.uiDialog), void 0)
      },
      _makeDraggable: function () {
        function t(e) {
          return {
            position: e.position,
            offset: e.offset
          }
        }
        var i = this,
        s = this.options;
        this.uiDialog.draggable({
          cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
          handle: '.ui-dialog-titlebar',
          containment: 'document',
          start: function (s, n) {
            e(this).addClass('ui-dialog-dragging'),
            i._blockFrames(),
            i._trigger('dragStart', s, t(n))
          },
          drag: function (e, s) {
            i._trigger('drag', e, t(s))
          },
          stop: function (n, a) {
            var o = a.offset.left - i.document.scrollLeft(),
            r = a.offset.top - i.document.scrollTop();
            s.position = {
              my: 'left top',
              at: 'left' + (o >= 0 ? '+' : '') + o + ' ' + 'top' + (r >= 0 ? '+' : '') + r,
              of: i.window
            },
            e(this).removeClass('ui-dialog-dragging'),
            i._unblockFrames(),
            i._trigger('dragStop', n, t(a))
          }
        })
      },
      _makeResizable: function () {
        function t(e) {
          return {
            originalPosition: e.originalPosition,
            originalSize: e.originalSize,
            position: e.position,
            size: e.size
          }
        }
        var i = this,
        s = this.options,
        n = s.resizable,
        a = this.uiDialog.css('position'),
        o = 'string' == typeof n ? n : 'n,e,s,w,se,sw,ne,nw';
        this.uiDialog.resizable({
          cancel: '.ui-dialog-content',
          containment: 'document',
          alsoResize: this.element,
          maxWidth: s.maxWidth,
          maxHeight: s.maxHeight,
          minWidth: s.minWidth,
          minHeight: this._minHeight(),
          handles: o,
          start: function (s, n) {
            e(this).addClass('ui-dialog-resizing'),
            i._blockFrames(),
            i._trigger('resizeStart', s, t(n))
          },
          resize: function (e, s) {
            i._trigger('resize', e, t(s))
          },
          stop: function (n, a) {
            var o = i.uiDialog.offset(),
            r = o.left - i.document.scrollLeft(),
            h = o.top - i.document.scrollTop();
            s.height = i.uiDialog.height(),
            s.width = i.uiDialog.width(),
            s.position = {
              my: 'left top',
              at: 'left' + (r >= 0 ? '+' : '') + r + ' ' + 'top' + (h >= 0 ? '+' : '') + h,
              of: i.window
            },
            e(this).removeClass('ui-dialog-resizing'),
            i._unblockFrames(),
            i._trigger('resizeStop', n, t(a))
          }
        }).css('position', a)
      },
      _trackFocus: function () {
        this._on(this.widget(), {
          focusin: function (t) {
            this._makeFocusTarget(),
            this._focusedElement = e(t.target)
          }
        })
      },
      _makeFocusTarget: function () {
        this._untrackInstance(),
        this._trackingInstances().unshift(this)
      },
      _untrackInstance: function () {
        var t = this._trackingInstances(),
        i = e.inArray(this, t);
        - 1 !== i && t.splice(i, 1)
      },
      _trackingInstances: function () {
        var e = this.document.data('ui-dialog-instances');
        return e || (e = [
        ], this.document.data('ui-dialog-instances', e)),
        e
      },
      _minHeight: function () {
        var e = this.options;
        return 'auto' === e.height ? e.minHeight : Math.min(e.minHeight, e.height)
      },
      _position: function () {
        var e = this.uiDialog.is(':visible');
        e || this.uiDialog.show(),
        this.uiDialog.position(this.options.position),
        e || this.uiDialog.hide()
      },
      _setOptions: function (t) {
        var i = this,
        s = !1,
        n = {
        };
        e.each(t, function (e, t) {
          i._setOption(e, t),
          e in i.sizeRelatedOptions && (s = !0),
          e in i.resizableRelatedOptions && (n[e] = t)
        }),
        s && (this._size(), this._position()),
        this.uiDialog.is(':data(ui-resizable)') && this.uiDialog.resizable('option', n)
      },
      _setOption: function (e, t) {
        var i,
        s,
        n = this.uiDialog;
        'dialogClass' === e && n.removeClass(this.options.dialogClass).addClass(t),
        'disabled' !== e && (this._super(e, t), 'appendTo' === e && this.uiDialog.appendTo(this._appendTo()), 'buttons' === e && this._createButtons(), 'closeText' === e && this.uiDialogTitlebarClose.button({
          label: '' + t
        }), 'draggable' === e && (i = n.is(':data(ui-draggable)'), i && !t && n.draggable('destroy'), !i && t && this._makeDraggable()), 'position' === e && this._position(), 'resizable' === e && (s = n.is(':data(ui-resizable)'), s && !t && n.resizable('destroy'), s && 'string' == typeof t && n.resizable('option', 'handles', t), s || t === !1 || this._makeResizable()), 'title' === e && this._title(this.uiDialogTitlebar.find('.ui-dialog-title')))
      },
      _size: function () {
        var e,
        t,
        i,
        s = this.options;
        this.element.show().css({
          width: 'auto',
          minHeight: 0,
          maxHeight: 'none',
          height: 0
        }),
        s.minWidth > s.width && (s.width = s.minWidth),
        e = this.uiDialog.css({
          height: 'auto',
          width: s.width
        }).outerHeight(),
        t = Math.max(0, s.minHeight - e),
        i = 'number' == typeof s.maxHeight ? Math.max(0, s.maxHeight - e)  : 'none',
        'auto' === s.height ? this.element.css({
          minHeight: t,
          maxHeight: i,
          height: 'auto'
        })  : this.element.height(Math.max(0, s.height - e)),
        this.uiDialog.is(':data(ui-resizable)') && this.uiDialog.resizable('option', 'minHeight', this._minHeight())
      },
      _blockFrames: function () {
        this.iframeBlocks = this.document.find('iframe').map(function () {
          var t = e(this);
          return e('<div>').css({
            position: 'absolute',
            width: t.outerWidth(),
            height: t.outerHeight()
          }).appendTo(t.parent()).offset(t.offset()) [0]
        })
      },
      _unblockFrames: function () {
        this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
      },
      _allowInteraction: function (t) {
        return e(t.target).closest('.ui-dialog').length ? !0 : !!e(t.target).closest('.ui-datepicker').length
      },
      _createOverlay: function () {
        if (this.options.modal) {
          var t = !0;
          this._delay(function () {
            t = !1
          }),
          this.document.data('ui-dialog-overlays') || this._on(this.document, {
            focusin: function (e) {
              t || this._allowInteraction(e) || (e.preventDefault(), this._trackingInstances() [0]._focusTabbable())
            }
          }),
          this.overlay = e('<div>').addClass('ui-widget-overlay ui-front').appendTo(this._appendTo()),
          this._on(this.overlay, {
            mousedown: '_keepFocus'
          }),
          this.document.data('ui-dialog-overlays', (this.document.data('ui-dialog-overlays') || 0) + 1)
        }
      },
      _destroyOverlay: function () {
        if (this.options.modal && this.overlay) {
          var e = this.document.data('ui-dialog-overlays') - 1;
          e ? this.document.data('ui-dialog-overlays', e)  : this.document.unbind('focusin').removeData('ui-dialog-overlays'),
          this.overlay.remove(),
          this.overlay = null
        }
      }
    }),
    e.widget('ui.progressbar', {
      version: '1.11.4',
      options: {
        max: 100,
        value: 0,
        change: null,
        complete: null
      },
      min: 0,
      _create: function () {
        this.oldValue = this.options.value = this._constrainedValue(),
        this.element.addClass('ui-progressbar ui-widget ui-widget-content ui-corner-all').attr({
          role: 'progressbar',
          'aria-valuemin': this.min
        }),
        this.valueDiv = e('<div class=\'ui-progressbar-value ui-widget-header ui-corner-left\'></div>').appendTo(this.element),
        this._refreshValue()
      },
      _destroy: function () {
        this.element.removeClass('ui-progressbar ui-widget ui-widget-content ui-corner-all').removeAttr('role').removeAttr('aria-valuemin').removeAttr('aria-valuemax').removeAttr('aria-valuenow'),
        this.valueDiv.remove()
      },
      value: function (e) {
        return void 0 === e ? this.options.value : (this.options.value = this._constrainedValue(e), this._refreshValue(), void 0)
      },
      _constrainedValue: function (e) {
        return void 0 === e && (e = this.options.value),
        this.indeterminate = e === !1,
        'number' != typeof e && (e = 0),
        this.indeterminate ? !1 : Math.min(this.options.max, Math.max(this.min, e))
      },
      _setOptions: function (e) {
        var t = e.value;
        delete e.value,
        this._super(e),
        this.options.value = this._constrainedValue(t),
        this._refreshValue()
      },
      _setOption: function (e, t) {
        'max' === e && (t = Math.max(this.min, t)),
        'disabled' === e && this.element.toggleClass('ui-state-disabled', !!t).attr('aria-disabled', t),
        this._super(e, t)
      },
      _percentage: function () {
        return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min)
      },
      _refreshValue: function () {
        var t = this.options.value,
        i = this._percentage();
        this.valueDiv.toggle(this.indeterminate || t > this.min).toggleClass('ui-corner-right', t === this.options.max).width(i.toFixed(0) + '%'),
        this.element.toggleClass('ui-progressbar-indeterminate', this.indeterminate),
        this.indeterminate ? (this.element.removeAttr('aria-valuenow'), this.overlayDiv || (this.overlayDiv = e('<div class=\'ui-progressbar-overlay\'></div>').appendTo(this.valueDiv)))  : (this.element.attr({
          'aria-valuemax': this.options.max,
          'aria-valuenow': t
        }), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null)),
        this.oldValue !== t && (this.oldValue = t, this._trigger('change')),
        t === this.options.max && this._trigger('complete')
      }
    }),
    e.widget('ui.selectmenu', {
      version: '1.11.4',
      defaultElement: '<select>',
      options: {
        appendTo: null,
        disabled: null,
        icons: {
          button: 'ui-icon-triangle-1-s'
        },
        position: {
          my: 'left top',
          at: 'left bottom',
          collision: 'none'
        },
        width: null,
        change: null,
        close: null,
        focus: null,
        open: null,
        select: null
      },
      _create: function () {
        var e = this.element.uniqueId().attr('id');
        this.ids = {
          element: e,
          button: e + '-button',
          menu: e + '-menu'
        },
        this._drawButton(),
        this._drawMenu(),
        this.options.disabled && this.disable()
      },
      _drawButton: function () {
        var t = this;
        this.label = e('label[for=\'' + this.ids.element + '\']').attr('for', this.ids.button),
        this._on(this.label, {
          click: function (e) {
            this.button.focus(),
            e.preventDefault()
          }
        }),
        this.element.hide(),
        this.button = e('<span>', {
          'class': 'ui-selectmenu-button ui-widget ui-state-default ui-corner-all',
          tabindex: this.options.disabled ? - 1 : 0,
          id: this.ids.button,
          role: 'combobox',
          'aria-expanded': 'false',
          'aria-autocomplete': 'list',
          'aria-owns': this.ids.menu,
          'aria-haspopup': 'true'
        }).insertAfter(this.element),
        e('<span>', {
          'class': 'ui-icon ' + this.options.icons.button
        }).prependTo(this.button),
        this.buttonText = e('<span>', {
          'class': 'ui-selectmenu-text'
        }).appendTo(this.button),
        this._setText(this.buttonText, this.element.find('option:selected').text()),
        this._resizeButton(),
        this._on(this.button, this._buttonEvents),
        this.button.one('focusin', function () {
          t.menuItems || t._refreshMenu()
        }),
        this._hoverable(this.button),
        this._focusable(this.button)
      },
      _drawMenu: function () {
        var t = this;
        this.menu = e('<ul>', {
          'aria-hidden': 'true',
          'aria-labelledby': this.ids.button,
          id: this.ids.menu
        }),
        this.menuWrap = e('<div>', {
          'class': 'ui-selectmenu-menu ui-front'
        }).append(this.menu).appendTo(this._appendTo()),
        this.menuInstance = this.menu.menu({
          role: 'listbox',
          select: function (e, i) {
            e.preventDefault(),
            t._setSelection(),
            t._select(i.item.data('ui-selectmenu-item'), e)
          },
          focus: function (e, i) {
            var s = i.item.data('ui-selectmenu-item');
            null != t.focusIndex && s.index !== t.focusIndex && (t._trigger('focus', e, {
              item: s
            }), t.isOpen || t._select(s, e)),
            t.focusIndex = s.index,
            t.button.attr('aria-activedescendant', t.menuItems.eq(s.index).attr('id'))
          }
        }).menu('instance'),
        this.menu.addClass('ui-corner-bottom').removeClass('ui-corner-all'),
        this.menuInstance._off(this.menu, 'mouseleave'),
        this.menuInstance._closeOnDocumentClick = function () {
          return !1
        },
        this.menuInstance._isDivider = function () {
          return !1
        }
      },
      refresh: function () {
        this._refreshMenu(),
        this._setText(this.buttonText, this._getSelectedItem().text()),
        this.options.width || this._resizeButton()
      },
      _refreshMenu: function () {
        this.menu.empty();
        var e,
        t = this.element.find('option');
        t.length && (this._parseOptions(t), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find('li').not('.ui-selectmenu-optgroup'), e = this._getSelectedItem(), this.menuInstance.focus(null, e), this._setAria(e.data('ui-selectmenu-item')), this._setOption('disabled', this.element.prop('disabled')))
      },
      open: function (e) {
        this.options.disabled || (this.menuItems ? (this.menu.find('.ui-state-focus').removeClass('ui-state-focus'), this.menuInstance.focus(null, this._getSelectedItem()))  : this._refreshMenu(), this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger('open', e))
      },
      _position: function () {
        this.menuWrap.position(e.extend({
          of: this.button
        }, this.options.position))
      },
      close: function (e) {
        this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger('close', e))
      },
      widget: function () {
        return this.button
      },
      menuWidget: function () {
        return this.menu
      },
      _renderMenu: function (t, i) {
        var s = this,
        n = '';
        e.each(i, function (i, a) {
          a.optgroup !== n && (e('<li>', {
            'class': 'ui-selectmenu-optgroup ui-menu-divider' + (a.element.parent('optgroup').prop('disabled') ? ' ui-state-disabled' : ''),
            text: a.optgroup
          }).appendTo(t), n = a.optgroup),
          s._renderItemData(t, a)
        })
      },
      _renderItemData: function (e, t) {
        return this._renderItem(e, t).data('ui-selectmenu-item', t)
      },
      _renderItem: function (t, i) {
        var s = e('<li>');
        return i.disabled && s.addClass('ui-state-disabled'),
        this._setText(s, i.label),
        s.appendTo(t)
      },
      _setText: function (e, t) {
        t ? e.text(t)  : e.html('&#160;')
      },
      _move: function (e, t) {
        var i,
        s,
        n = '.ui-menu-item';
        this.isOpen ? i = this.menuItems.eq(this.focusIndex)  : (i = this.menuItems.eq(this.element[0].selectedIndex), n += ':not(.ui-state-disabled)'),
        s = 'first' === e || 'last' === e ? i['first' === e ? 'prevAll' : 'nextAll'](n).eq( - 1)  : i[e + 'All'](n).eq(0),
        s.length && this.menuInstance.focus(t, s)
      },
      _getSelectedItem: function () {
        return this.menuItems.eq(this.element[0].selectedIndex)
      },
      _toggle: function (e) {
        this[this.isOpen ? 'close' : 'open'](e)
      },
      _setSelection: function () {
        var e;
        this.range && (window.getSelection ? (e = window.getSelection(), e.removeAllRanges(), e.addRange(this.range))  : this.range.select(), this.button.focus())
      },
      _documentClick: {
        mousedown: function (t) {
          this.isOpen && (e(t.target).closest('.ui-selectmenu-menu, #' + this.ids.button).length || this.close(t))
        }
      },
      _buttonEvents: {
        mousedown: function () {
          var e;
          window.getSelection ? (e = window.getSelection(), e.rangeCount && (this.range = e.getRangeAt(0)))  : this.range = document.selection.createRange()
        },
        click: function (e) {
          this._setSelection(),
          this._toggle(e)
        },
        keydown: function (t) {
          var i = !0;
          switch (t.keyCode) {
            case e.ui.keyCode.TAB:
            case e.ui.keyCode.ESCAPE:
              this.close(t),
              i = !1;
              break;
            case e.ui.keyCode.ENTER:
              this.isOpen && this._selectFocusedItem(t);
              break;
            case e.ui.keyCode.UP:
              t.altKey ? this._toggle(t)  : this._move('prev', t);
              break;
            case e.ui.keyCode.DOWN:
              t.altKey ? this._toggle(t)  : this._move('next', t);
              break;
            case e.ui.keyCode.SPACE:
              this.isOpen ? this._selectFocusedItem(t)  : this._toggle(t);
              break;
            case e.ui.keyCode.LEFT:
              this._move('prev', t);
              break;
            case e.ui.keyCode.RIGHT:
              this._move('next', t);
              break;
            case e.ui.keyCode.HOME:
            case e.ui.keyCode.PAGE_UP:
              this._move('first', t);
              break;
            case e.ui.keyCode.END:
            case e.ui.keyCode.PAGE_DOWN:
              this._move('last', t);
              break;
            default:
              this.menu.trigger(t),
              i = !1
          }
          i && t.preventDefault()
        }
      },
      _selectFocusedItem: function (e) {
        var t = this.menuItems.eq(this.focusIndex);
        t.hasClass('ui-state-disabled') || this._select(t.data('ui-selectmenu-item'), e)
      },
      _select: function (e, t) {
        var i = this.element[0].selectedIndex;
        this.element[0].selectedIndex = e.index,
        this._setText(this.buttonText, e.label),
        this._setAria(e),
        this._trigger('select', t, {
          item: e
        }),
        e.index !== i && this._trigger('change', t, {
          item: e
        }),
        this.close(t)
      },
      _setAria: function (e) {
        var t = this.menuItems.eq(e.index).attr('id');
        this.button.attr({
          'aria-labelledby': t,
          'aria-activedescendant': t
        }),
        this.menu.attr('aria-activedescendant', t)
      },
      _setOption: function (e, t) {
        'icons' === e && this.button.find('span.ui-icon').removeClass(this.options.icons.button).addClass(t.button),
        this._super(e, t),
        'appendTo' === e && this.menuWrap.appendTo(this._appendTo()),
        'disabled' === e && (this.menuInstance.option('disabled', t), this.button.toggleClass('ui-state-disabled', t).attr('aria-disabled', t), this.element.prop('disabled', t), t ? (this.button.attr('tabindex', - 1), this.close())  : this.button.attr('tabindex', 0)),
        'width' === e && this._resizeButton()
      },
      _appendTo: function () {
        var t = this.options.appendTo;
        return t && (t = t.jquery || t.nodeType ? e(t)  : this.document.find(t).eq(0)),
        t && t[0] || (t = this.element.closest('.ui-front')),
        t.length || (t = this.document[0].body),
        t
      },
      _toggleAttr: function () {
        this.button.toggleClass('ui-corner-top', this.isOpen).toggleClass('ui-corner-all', !this.isOpen).attr('aria-expanded', this.isOpen),
        this.menuWrap.toggleClass('ui-selectmenu-open', this.isOpen),
        this.menu.attr('aria-hidden', !this.isOpen)
      },
      _resizeButton: function () {
        var e = this.options.width;
        e || (e = this.element.show().outerWidth(), this.element.hide()),
        this.button.outerWidth(e)
      },
      _resizeMenu: function () {
        this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width('').outerWidth() + 1))
      },
      _getCreateOptions: function () {
        return {
          disabled: this.element.prop('disabled')
        }
      },
      _parseOptions: function (t) {
        var i = [
        ];
        t.each(function (t, s) {
          var n = e(s),
          a = n.parent('optgroup');
          i.push({
            element: n,
            index: t,
            value: n.val(),
            label: n.text(),
            optgroup: a.attr('label') || '',
            disabled: a.prop('disabled') || n.prop('disabled')
          })
        }),
        this.items = i
      },
      _destroy: function () {
        this.menuWrap.remove(),
        this.button.remove(),
        this.element.show(),
        this.element.removeUniqueId(),
        this.label.attr('for', this.ids.element)
      }
    }), e.widget('ui.slider', e.ui.mouse, {
      version: '1.11.4',
      widgetEventPrefix: 'slide',
      options: {
        animate: !1,
        distance: 0,
        max: 100,
        min: 0,
        orientation: 'horizontal',
        range: !1,
        step: 1,
        value: 0,
        values: null,
        change: null,
        slide: null,
        start: null,
        stop: null
      },
      numPages: 5,
      _create: function () {
        this._keySliding = !1,
        this._mouseSliding = !1,
        this._animateOff = !0,
        this._handleIndex = null,
        this._detectOrientation(),
        this._mouseInit(),
        this._calculateNewMax(),
        this.element.addClass('ui-slider ui-slider-' + this.orientation + ' ui-widget' + ' ui-widget-content' + ' ui-corner-all'),
        this._refresh(),
        this._setOption('disabled', this.options.disabled),
        this._animateOff = !1
      },
      _refresh: function () {
        this._createRange(),
        this._createHandles(),
        this._setupEvents(),
        this._refreshValue()
      },
      _createHandles: function () {
        var t,
        i,
        s = this.options,
        n = this.element.find('.ui-slider-handle').addClass('ui-state-default ui-corner-all'),
        a = '<span class=\'ui-slider-handle ui-state-default ui-corner-all\' tabindex=\'0\'></span>',
        o = [
        ];
        for (i = s.values && s.values.length || 1, n.length > i && (n.slice(i).remove(), n = n.slice(0, i)), t = n.length; i > t; t++) o.push(a);
        this.handles = n.add(e(o.join('')).appendTo(this.element)),
        this.handle = this.handles.eq(0),
        this.handles.each(function (t) {
          e(this).data('ui-slider-handle-index', t)
        })
      },
      _createRange: function () {
        var t = this.options,
        i = '';
        t.range ? (t.range === !0 && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [
          t.values[0],
          t.values[0]
        ] : e.isArray(t.values) && (t.values = t.values.slice(0))  : t.values = [
          this._valueMin(),
          this._valueMin()
        ]), this.range && this.range.length ? this.range.removeClass('ui-slider-range-min ui-slider-range-max').css({
          left: '',
          bottom: ''
        })  : (this.range = e('<div></div>').appendTo(this.element), i = 'ui-slider-range ui-widget-header ui-corner-all'), this.range.addClass(i + ('min' === t.range || 'max' === t.range ? ' ui-slider-range-' + t.range : '')))  : (this.range && this.range.remove(), this.range = null)
      },
      _setupEvents: function () {
        this._off(this.handles),
        this._on(this.handles, this._handleEvents),
        this._hoverable(this.handles),
        this._focusable(this.handles)
      },
      _destroy: function () {
        this.handles.remove(),
        this.range && this.range.remove(),
        this.element.removeClass('ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all'),
        this._mouseDestroy()
      },
      _mouseCapture: function (t) {
        var i,
        s,
        n,
        a,
        o,
        r,
        h,
        l,
        u = this,
        d = this.options;
        return d.disabled ? !1 : (this.elementSize = {
          width: this.element.outerWidth(),
          height: this.element.outerHeight()
        }, this.elementOffset = this.element.offset(), i = {
          x: t.pageX,
          y: t.pageY
        }, s = this._normValueFromMouse(i), n = this._valueMax() - this._valueMin() + 1, this.handles.each(function (t) {
          var i = Math.abs(s - u.values(t));
          (n > i || n === i && (t === u._lastChangedValue || u.values(t) === d.min)) && (n = i, a = e(this), o = t)
        }), r = this._start(t, o), r === !1 ? !1 : (this._mouseSliding = !0, this._handleIndex = o, a.addClass('ui-state-active').focus(), h = a.offset(), l = !e(t.target).parents().addBack().is('.ui-slider-handle'), this._clickOffset = l ? {
          left: 0,
          top: 0
        }
         : {
          left: t.pageX - h.left - a.width() / 2,
          top: t.pageY - h.top - a.height() / 2 - (parseInt(a.css('borderTopWidth'), 10) || 0) - (parseInt(a.css('borderBottomWidth'), 10) || 0) + (parseInt(a.css('marginTop'), 10) || 0)
        }, this.handles.hasClass('ui-state-hover') || this._slide(t, o, s), this._animateOff = !0, !0))
      },
      _mouseStart: function () {
        return !0
      },
      _mouseDrag: function (e) {
        var t = {
          x: e.pageX,
          y: e.pageY
        },
        i = this._normValueFromMouse(t);
        return this._slide(e, this._handleIndex, i),
        !1
      },
      _mouseStop: function (e) {
        return this.handles.removeClass('ui-state-active'),
        this._mouseSliding = !1,
        this._stop(e, this._handleIndex),
        this._change(e, this._handleIndex),
        this._handleIndex = null,
        this._clickOffset = null,
        this._animateOff = !1,
        !1
      },
      _detectOrientation: function () {
        this.orientation = 'vertical' === this.options.orientation ? 'vertical' : 'horizontal'
      },
      _normValueFromMouse: function (e) {
        var t,
        i,
        s,
        n,
        a;
        return 'horizontal' === this.orientation ? (t = this.elementSize.width, i = e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0))  : (t = this.elementSize.height, i = e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)),
        s = i / t,
        s > 1 && (s = 1),
        0 > s && (s = 0),
        'vertical' === this.orientation && (s = 1 - s),
        n = this._valueMax() - this._valueMin(),
        a = this._valueMin() + s * n,
        this._trimAlignValue(a)
      },
      _start: function (e, t) {
        var i = {
          handle: this.handles[t],
          value: this.value()
        };
        return this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()),
        this._trigger('start', e, i)
      },
      _slide: function (e, t, i) {
        var s,
        n,
        a;
        this.options.values && this.options.values.length ? (s = this.values(t ? 0 : 1), 2 === this.options.values.length && this.options.range === !0 && (0 === t && i > s || 1 === t && s > i) && (i = s), i !== this.values(t) && (n = this.values(), n[t] = i, a = this._trigger('slide', e, {
          handle: this.handles[t],
          value: i,
          values: n
        }), s = this.values(t ? 0 : 1), a !== !1 && this.values(t, i)))  : i !== this.value() && (a = this._trigger('slide', e, {
          handle: this.handles[t],
          value: i
        }), a !== !1 && this.value(i))
      },
      _stop: function (e, t) {
        var i = {
          handle: this.handles[t],
          value: this.value()
        };
        this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()),
        this._trigger('stop', e, i)
      },
      _change: function (e, t) {
        if (!this._keySliding && !this._mouseSliding) {
          var i = {
            handle: this.handles[t],
            value: this.value()
          };
          this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()),
          this._lastChangedValue = t,
          this._trigger('change', e, i)
        }
      },
      value: function (e) {
        return arguments.length ? (this.options.value = this._trimAlignValue(e), this._refreshValue(), this._change(null, 0), void 0)  : this._value()
      },
      values: function (t, i) {
        var s,
        n,
        a;
        if (arguments.length > 1) return this.options.values[t] = this._trimAlignValue(i),
        this._refreshValue(),
        this._change(null, t),
        void 0;
        if (!arguments.length) return this._values();
        if (!e.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(t)  : this.value();
        for (s = this.options.values, n = arguments[0], a = 0; s.length > a; a += 1) s[a] = this._trimAlignValue(n[a]),
        this._change(null, a);
        this._refreshValue()
      },
      _setOption: function (t, i) {
        var s,
        n = 0;
        switch ('range' === t && this.options.range === !0 && ('min' === i ? (this.options.value = this._values(0), this.options.values = null)  : 'max' === i && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), e.isArray(this.options.values) && (n = this.options.values.length), 'disabled' === t && this.element.toggleClass('ui-state-disabled', !!i), this._super(t, i), t) {
          case 'orientation':
            this._detectOrientation(),
            this.element.removeClass('ui-slider-horizontal ui-slider-vertical').addClass('ui-slider-' + this.orientation),
            this._refreshValue(),
            this.handles.css('horizontal' === i ? 'bottom' : 'left', '');
            break;
          case 'value':
            this._animateOff = !0,
            this._refreshValue(),
            this._change(null, 0),
            this._animateOff = !1;
            break;
          case 'values':
            for (this._animateOff = !0, this._refreshValue(), s = 0; n > s; s += 1) this._change(null, s);
            this._animateOff = !1;
            break;
          case 'step':
          case 'min':
          case 'max':
            this._animateOff = !0,
            this._calculateNewMax(),
            this._refreshValue(),
            this._animateOff = !1;
            break;
          case 'range':
            this._animateOff = !0,
            this._refresh(),
            this._animateOff = !1
        }
      },
      _value: function () {
        var e = this.options.value;
        return e = this._trimAlignValue(e)
      },
      _values: function (e) {
        var t,
        i,
        s;
        if (arguments.length) return t = this.options.values[e],
        t = this._trimAlignValue(t);
        if (this.options.values && this.options.values.length) {
          for (i = this.options.values.slice(), s = 0; i.length > s; s += 1) i[s] = this._trimAlignValue(i[s]);
          return i
        }
        return []
      },
      _trimAlignValue: function (e) {
        if (this._valueMin() >= e) return this._valueMin();
        if (e >= this._valueMax()) return this._valueMax();
        var t = this.options.step > 0 ? this.options.step : 1,
        i = (e - this._valueMin()) % t,
        s = e - i;
        return 2 * Math.abs(i) >= t && (s += i > 0 ? t : - t),
        parseFloat(s.toFixed(5))
      },
      _calculateNewMax: function () {
        var e = this.options.max,
        t = this._valueMin(),
        i = this.options.step,
        s = Math.floor( + (e - t).toFixed(this._precision()) / i) * i;
        e = s + t,
        this.max = parseFloat(e.toFixed(this._precision()))
      },
      _precision: function () {
        var e = this._precisionOf(this.options.step);
        return null !== this.options.min && (e = Math.max(e, this._precisionOf(this.options.min))),
        e
      },
      _precisionOf: function (e) {
        var t = '' + e,
        i = t.indexOf('.');
        return - 1 === i ? 0 : t.length - i - 1
      },
      _valueMin: function () {
        return this.options.min
      },
      _valueMax: function () {
        return this.max
      },
      _refreshValue: function () {
        var t,
        i,
        s,
        n,
        a,
        o = this.options.range,
        r = this.options,
        h = this,
        l = this._animateOff ? !1 : r.animate,
        u = {
        };
        this.options.values && this.options.values.length ? this.handles.each(function (s) {
          i = 100 * ((h.values(s) - h._valueMin()) / (h._valueMax() - h._valueMin())),
          u['horizontal' === h.orientation ? 'left' : 'bottom'] = i + '%',
          e(this).stop(1, 1) [l ? 'animate' : 'css'](u, r.animate),
          h.options.range === !0 && ('horizontal' === h.orientation ? (0 === s && h.range.stop(1, 1) [l ? 'animate' : 'css']({
            left: i + '%'
          }, r.animate), 1 === s && h.range[l ? 'animate' : 'css']({
            width: i - t + '%'
          }, {
            queue: !1,
            duration: r.animate
          }))  : (0 === s && h.range.stop(1, 1) [l ? 'animate' : 'css']({
            bottom: i + '%'
          }, r.animate), 1 === s && h.range[l ? 'animate' : 'css']({
            height: i - t + '%'
          }, {
            queue: !1,
            duration: r.animate
          }))),
          t = i
        })  : (s = this.value(), n = this._valueMin(), a = this._valueMax(), i = a !== n ? 100 * ((s - n) / (a - n))  : 0, u['horizontal' === this.orientation ? 'left' : 'bottom'] = i + '%', this.handle.stop(1, 1) [l ? 'animate' : 'css'](u, r.animate), 'min' === o && 'horizontal' === this.orientation && this.range.stop(1, 1) [l ? 'animate' : 'css']({
          width: i + '%'
        }, r.animate), 'max' === o && 'horizontal' === this.orientation && this.range[l ? 'animate' : 'css']({
          width: 100 - i + '%'
        }, {
          queue: !1,
          duration: r.animate
        }), 'min' === o && 'vertical' === this.orientation && this.range.stop(1, 1) [l ? 'animate' : 'css']({
          height: i + '%'
        }, r.animate), 'max' === o && 'vertical' === this.orientation && this.range[l ? 'animate' : 'css']({
          height: 100 - i + '%'
        }, {
          queue: !1,
          duration: r.animate
        }))
      },
      _handleEvents: {
        keydown: function (t) {
          var i,
          s,
          n,
          a,
          o = e(t.target).data('ui-slider-handle-index');
          switch (t.keyCode) {
            case e.ui.keyCode.HOME:
            case e.ui.keyCode.END:
            case e.ui.keyCode.PAGE_UP:
            case e.ui.keyCode.PAGE_DOWN:
            case e.ui.keyCode.UP:
            case e.ui.keyCode.RIGHT:
            case e.ui.keyCode.DOWN:
            case e.ui.keyCode.LEFT:
              if (t.preventDefault(), !this._keySliding && (this._keySliding = !0, e(t.target).addClass('ui-state-active'), i = this._start(t, o), i === !1)) return
          }
          switch (a = this.options.step, s = n = this.options.values && this.options.values.length ? this.values(o)  : this.value(), t.keyCode) {
            case e.ui.keyCode.HOME:
              n = this._valueMin();
              break;
            case e.ui.keyCode.END:
              n = this._valueMax();
              break;
            case e.ui.keyCode.PAGE_UP:
              n = this._trimAlignValue(s + (this._valueMax() - this._valueMin()) / this.numPages);
              break;
            case e.ui.keyCode.PAGE_DOWN:
              n = this._trimAlignValue(s - (this._valueMax() - this._valueMin()) / this.numPages);
              break;
            case e.ui.keyCode.UP:
            case e.ui.keyCode.RIGHT:
              if (s === this._valueMax()) return;
              n = this._trimAlignValue(s + a);
              break;
            case e.ui.keyCode.DOWN:
            case e.ui.keyCode.LEFT:
              if (s === this._valueMin()) return;
              n = this._trimAlignValue(s - a)
          }
          this._slide(t, o, n)
      },
      keyup: function (t) {
        var i = e(t.target).data('ui-slider-handle-index');
        this._keySliding && (this._keySliding = !1, this._stop(t, i), this._change(t, i), e(t.target).removeClass('ui-state-active'))
    }
  }
}),
e.widget('ui.spinner', {
  version: '1.11.4',
  defaultElement: '<input>',
  widgetEventPrefix: 'spin',
  options: {
    culture: null,
    icons: {
      down: 'ui-icon-triangle-1-s',
      up: 'ui-icon-triangle-1-n'
    },
    incremental: !0,
    max: null,
    min: null,
    numberFormat: null,
    page: 10,
    step: 1,
    change: null,
    spin: null,
    start: null,
    stop: null
  },
  _create: function () {
    this._setOption('max', this.options.max),
    this._setOption('min', this.options.min),
    this._setOption('step', this.options.step),
    '' !== this.value() && this._value(this.element.val(), !0),
    this._draw(),
    this._on(this._events),
    this._refresh(),
    this._on(this.window, {
      beforeunload: function () {
        this.element.removeAttr('autocomplete')
      }
    })
  },
  _getCreateOptions: function () {
    var t = {
    },
    i = this.element;
    return e.each(['min',
    'max',
    'step'], function (e, s) {
      var n = i.attr(s);
      void 0 !== n && n.length && (t[s] = n)
    }),
    t
  },
  _events: {
    keydown: function (e) {
      this._start(e) && this._keydown(e) && e.preventDefault()
    },
    keyup: '_stop',
    focus: function () {
      this.previous = this.element.val()
    },
    blur: function (e) {
      return this.cancelBlur ? (delete this.cancelBlur, void 0)  : (this._stop(), this._refresh(), this.previous !== this.element.val() && this._trigger('change', e), void 0)
    },
    mousewheel: function (e, t) {
      if (t) {
        if (!this.spinning && !this._start(e)) return !1;
        this._spin((t > 0 ? 1 : - 1) * this.options.step, e),
        clearTimeout(this.mousewheelTimer),
        this.mousewheelTimer = this._delay(function () {
          this.spinning && this._stop(e)
        }, 100),
        e.preventDefault()
      }
    },
    'mousedown .ui-spinner-button': function (t) {
      function i() {
        var e = this.element[0] === this.document[0].activeElement;
        e || (this.element.focus(), this.previous = s, this._delay(function () {
          this.previous = s
        }))
      }
      var s;
      s = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(),
      t.preventDefault(),
      i.call(this),
      this.cancelBlur = !0,
      this._delay(function () {
        delete this.cancelBlur,
        i.call(this)
      }),
      this._start(t) !== !1 && this._repeat(null, e(t.currentTarget).hasClass('ui-spinner-up') ? 1 : - 1, t)
    },
    'mouseup .ui-spinner-button': '_stop',
    'mouseenter .ui-spinner-button': function (t) {
      return e(t.currentTarget).hasClass('ui-state-active') ? this._start(t) === !1 ? !1 : (this._repeat(null, e(t.currentTarget).hasClass('ui-spinner-up') ? 1 : - 1, t), void 0)  : void 0
    },
    'mouseleave .ui-spinner-button': '_stop'
  },
  _draw: function () {
    var e = this.uiSpinner = this.element.addClass('ui-spinner-input').attr('autocomplete', 'off').wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());
    this.element.attr('role', 'spinbutton'),
    this.buttons = e.find('.ui-spinner-button').attr('tabIndex', - 1).button().removeClass('ui-corner-all'),
    this.buttons.height() > Math.ceil(0.5 * e.height()) && e.height() > 0 && e.height(e.height()),
    this.options.disabled && this.disable()
  },
  _keydown: function (t) {
    var i = this.options,
    s = e.ui.keyCode;
    switch (t.keyCode) {
      case s.UP:
        return this._repeat(null, 1, t),
        !0;
      case s.DOWN:
        return this._repeat(null, - 1, t),
        !0;
      case s.PAGE_UP:
        return this._repeat(null, i.page, t),
        !0;
      case s.PAGE_DOWN:
        return this._repeat(null, - i.page, t),
        !0
    }
    return !1
  },
  _uiSpinnerHtml: function () {
    return '<span class=\'ui-spinner ui-widget ui-widget-content ui-corner-all\'></span>'
  },
  _buttonHtml: function () {
    return '<a class=\'ui-spinner-button ui-spinner-up ui-corner-tr\'><span class=\'ui-icon ' + this.options.icons.up + '\'>&#9650;</span>' + '</a>' + '<a class=\'ui-spinner-button ui-spinner-down ui-corner-br\'>' + '<span class=\'ui-icon ' + this.options.icons.down + '\'>&#9660;</span>' + '</a>'
  },
  _start: function (e) {
    return this.spinning || this._trigger('start', e) !== !1 ? (this.counter || (this.counter = 1), this.spinning = !0, !0)  : !1
  },
  _repeat: function (e, t, i) {
    e = e || 500,
    clearTimeout(this.timer),
    this.timer = this._delay(function () {
      this._repeat(40, t, i)
    }, e),
    this._spin(t * this.options.step, i)
  },
  _spin: function (e, t) {
    var i = this.value() || 0;
    this.counter || (this.counter = 1),
    i = this._adjustValue(i + e * this._increment(this.counter)),
    this.spinning && this._trigger('spin', t, {
      value: i
    }) === !1 || (this._value(i), this.counter++)
  },
  _increment: function (t) {
    var i = this.options.incremental;
    return i ? e.isFunction(i) ? i(t)  : Math.floor(t * t * t / 50000 - t * t / 500 + 17 * t / 200 + 1)  : 1
  },
  _precision: function () {
    var e = this._precisionOf(this.options.step);
    return null !== this.options.min && (e = Math.max(e, this._precisionOf(this.options.min))),
    e
  },
  _precisionOf: function (e) {
    var t = '' + e,
    i = t.indexOf('.');
    return - 1 === i ? 0 : t.length - i - 1
  },
  _adjustValue: function (e) {
    var t,
    i,
    s = this.options;
    return t = null !== s.min ? s.min : 0,
    i = e - t,
    i = Math.round(i / s.step) * s.step,
    e = t + i,
    e = parseFloat(e.toFixed(this._precision())),
    null !== s.max && e > s.max ? s.max : null !== s.min && s.min > e ? s.min : e
  },
  _stop: function (e) {
    this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger('stop', e))
  },
  _setOption: function (e, t) {
    if ('culture' === e || 'numberFormat' === e) {
      var i = this._parse(this.element.val());
      return this.options[e] = t,
      this.element.val(this._format(i)),
      void 0
    }('max' === e || 'min' === e || 'step' === e) && 'string' == typeof t && (t = this._parse(t)),
    'icons' === e && (this.buttons.first().find('.ui-icon').removeClass(this.options.icons.up).addClass(t.up), this.buttons.last().find('.ui-icon').removeClass(this.options.icons.down).addClass(t.down)),
    this._super(e, t),
    'disabled' === e && (this.widget().toggleClass('ui-state-disabled', !!t), this.element.prop('disabled', !!t), this.buttons.button(t ? 'disable' : 'enable'))
  },
  _setOptions: h(function (e) {
    this._super(e)
  }),
  _parse: function (e) {
    return 'string' == typeof e && '' !== e && (e = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(e, 10, this.options.culture)  : + e),
    '' === e || isNaN(e) ? null : e
  },
  _format: function (e) {
    return '' === e ? '' : window.Globalize && this.options.numberFormat ? Globalize.format(e, this.options.numberFormat, this.options.culture)  : e
  },
  _refresh: function () {
    this.element.attr({
      'aria-valuemin': this.options.min,
      'aria-valuemax': this.options.max,
      'aria-valuenow': this._parse(this.element.val())
    })
  },
  isValid: function () {
    var e = this.value();
    return null === e ? !1 : e === this._adjustValue(e)
  },
  _value: function (e, t) {
    var i;
    '' !== e && (i = this._parse(e), null !== i && (t || (i = this._adjustValue(i)), e = this._format(i))),
    this.element.val(e),
    this._refresh()
  },
  _destroy: function () {
    this.element.removeClass('ui-spinner-input').prop('disabled', !1).removeAttr('autocomplete').removeAttr('role').removeAttr('aria-valuemin').removeAttr('aria-valuemax').removeAttr('aria-valuenow'),
    this.uiSpinner.replaceWith(this.element)
  },
  stepUp: h(function (e) {
    this._stepUp(e)
  }),
  _stepUp: function (e) {
    this._start() && (this._spin((e || 1) * this.options.step), this._stop())
  },
  stepDown: h(function (e) {
    this._stepDown(e)
  }),
  _stepDown: function (e) {
    this._start() && (this._spin((e || 1) * - this.options.step), this._stop())
  },
  pageUp: h(function (e) {
    this._stepUp((e || 1) * this.options.page)
  }),
  pageDown: h(function (e) {
    this._stepDown((e || 1) * this.options.page)
  }),
  value: function (e) {
    return arguments.length ? (h(this._value).call(this, e), void 0)  : this._parse(this.element.val())
  },
  widget: function () {
    return this.uiSpinner
  }
}), e.widget('ui.tabs', {
  version: '1.11.4',
  delay: 300,
  options: {
    active: null,
    collapsible: !1,
    event: 'click',
    heightStyle: 'content',
    hide: null,
    show: null,
    activate: null,
    beforeActivate: null,
    beforeLoad: null,
    load: null
  },
  _isLocal: function () {
    var e = /#.*$/;
    return function (t) {
      var i,
      s;
      t = t.cloneNode(!1),
      i = t.href.replace(e, ''),
      s = location.href.replace(e, '');
      try {
        i = decodeURIComponent(i)
      } catch (n) {
      }
      try {
        s = decodeURIComponent(s)
      } catch (n) {
      }
      return t.hash.length > 1 && i === s
    }
  }(),
  _create: function () {
    var t = this,
    i = this.options;
    this.running = !1,
    this.element.addClass('ui-tabs ui-widget ui-widget-content ui-corner-all').toggleClass('ui-tabs-collapsible', i.collapsible),
    this._processTabs(),
    i.active = this._initialActive(),
    e.isArray(i.disabled) && (i.disabled = e.unique(i.disabled.concat(e.map(this.tabs.filter('.ui-state-disabled'), function (e) {
      return t.tabs.index(e)
    }))).sort()),
    this.active = this.options.active !== !1 && this.anchors.length ? this._findActive(i.active)  : e(),
    this._refresh(),
    this.active.length && this.load(i.active)
  },
  _initialActive: function () {
    var t = this.options.active,
    i = this.options.collapsible,
    s = location.hash.substring(1);
    return null === t && (s && this.tabs.each(function (i, n) {
      return e(n).attr('aria-controls') === s ? (t = i, !1)  : void 0
    }), null === t && (t = this.tabs.index(this.tabs.filter('.ui-tabs-active'))), (null === t || - 1 === t) && (t = this.tabs.length ? 0 : !1)),
    t !== !1 && (t = this.tabs.index(this.tabs.eq(t)), - 1 === t && (t = i ? !1 : 0)),
    !i && t === !1 && this.anchors.length && (t = 0),
    t
  },
  _getCreateEventData: function () {
    return {
      tab: this.active,
      panel: this.active.length ? this._getPanelForTab(this.active)  : e()
    }
  },
  _tabKeydown: function (t) {
    var i = e(this.document[0].activeElement).closest('li'),
    s = this.tabs.index(i),
    n = !0;
    if (!this._handlePageNav(t)) {
      switch (t.keyCode) {
        case e.ui.keyCode.RIGHT:
        case e.ui.keyCode.DOWN:
          s++;
          break;
        case e.ui.keyCode.UP:
        case e.ui.keyCode.LEFT:
          n = !1,
          s--;
          break;
        case e.ui.keyCode.END:
          s = this.anchors.length - 1;
          break;
        case e.ui.keyCode.HOME:
          s = 0;
          break;
        case e.ui.keyCode.SPACE:
          return t.preventDefault(),
          clearTimeout(this.activating),
          this._activate(s),
          void 0;
        case e.ui.keyCode.ENTER:
          return t.preventDefault(),
          clearTimeout(this.activating),
          this._activate(s === this.options.active ? !1 : s),
          void 0;
        default:
          return
      }
      t.preventDefault(),
      clearTimeout(this.activating),
      s = this._focusNextTab(s, n),
      t.ctrlKey || t.metaKey || (i.attr('aria-selected', 'false'), this.tabs.eq(s).attr('aria-selected', 'true'), this.activating = this._delay(function () {
        this.option('active', s)
      }, this.delay))
    }
  },
  _panelKeydown: function (t) {
    this._handlePageNav(t) || t.ctrlKey && t.keyCode === e.ui.keyCode.UP && (t.preventDefault(), this.active.focus())
  },
  _handlePageNav: function (t) {
    return t.altKey && t.keyCode === e.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0)  : t.altKey && t.keyCode === e.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0)  : void 0
  },
  _findNextTab: function (t, i) {
    function s() {
      return t > n && (t = 0),
      0 > t && (t = n),
      t
    }
    for (var n = this.tabs.length - 1; - 1 !== e.inArray(s(), this.options.disabled); ) t = i ? t + 1 : t - 1;
    return t
  },
  _focusNextTab: function (e, t) {
    return e = this._findNextTab(e, t),
    this.tabs.eq(e).focus(),
    e
  },
  _setOption: function (e, t) {
    return 'active' === e ? (this._activate(t), void 0)  : 'disabled' === e ? (this._setupDisabled(t), void 0)  : (this._super(e, t), 'collapsible' === e && (this.element.toggleClass('ui-tabs-collapsible', t), t || this.options.active !== !1 || this._activate(0)), 'event' === e && this._setupEvents(t), 'heightStyle' === e && this._setupHeightStyle(t), void 0)
  },
  _sanitizeSelector: function (e) {
    return e ? e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, '\\$&')  : ''
  },
  refresh: function () {
    var t = this.options,
    i = this.tablist.children(':has(a[href])');
    t.disabled = e.map(i.filter('.ui-state-disabled'), function (e) {
      return i.index(e)
    }),
    this._processTabs(),
    t.active !== !1 && this.anchors.length ? this.active.length && !e.contains(this.tablist[0], this.active[0]) ? this.tabs.length === t.disabled.length ? (t.active = !1, this.active = e())  : this._activate(this._findNextTab(Math.max(0, t.active - 1), !1))  : t.active = this.tabs.index(this.active)  : (t.active = !1, this.active = e()),
    this._refresh()
  },
  _refresh: function () {
    this._setupDisabled(this.options.disabled),
    this._setupEvents(this.options.event),
    this._setupHeightStyle(this.options.heightStyle),
    this.tabs.not(this.active).attr({
      'aria-selected': 'false',
      'aria-expanded': 'false',
      tabIndex: - 1
    }),
    this.panels.not(this._getPanelForTab(this.active)).hide().attr({
      'aria-hidden': 'true'
    }),
    this.active.length ? (this.active.addClass('ui-tabs-active ui-state-active').attr({
      'aria-selected': 'true',
      'aria-expanded': 'true',
      tabIndex: 0
    }), this._getPanelForTab(this.active).show().attr({
      'aria-hidden': 'false'
    }))  : this.tabs.eq(0).attr('tabIndex', 0)
  },
  _processTabs: function () {
    var t = this,
    i = this.tabs,
    s = this.anchors,
    n = this.panels;
    this.tablist = this._getList().addClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all').attr('role', 'tablist').delegate('> li', 'mousedown' + this.eventNamespace, function (t) {
      e(this).is('.ui-state-disabled') && t.preventDefault()
    }).delegate('.ui-tabs-anchor', 'focus' + this.eventNamespace, function () {
      e(this).closest('li').is('.ui-state-disabled') && this.blur()
    }),
    this.tabs = this.tablist.find('> li:has(a[href])').addClass('ui-state-default ui-corner-top').attr({
      role: 'tab',
      tabIndex: - 1
    }),
    this.anchors = this.tabs.map(function () {
      return e('a', this) [0]
    }).addClass('ui-tabs-anchor').attr({
      role: 'presentation',
      tabIndex: - 1
    }),
    this.panels = e(),
    this.anchors.each(function (i, s) {
      var n,
      a,
      o,
      r = e(s).uniqueId().attr('id'),
      h = e(s).closest('li'),
      l = h.attr('aria-controls');
      t._isLocal(s) ? (n = s.hash, o = n.substring(1), a = t.element.find(t._sanitizeSelector(n)))  : (o = h.attr('aria-controls') || e({
      }).uniqueId() [0].id, n = '#' + o, a = t.element.find(n), a.length || (a = t._createPanel(o), a.insertAfter(t.panels[i - 1] || t.tablist)), a.attr('aria-live', 'polite')),
      a.length && (t.panels = t.panels.add(a)),
      l && h.data('ui-tabs-aria-controls', l),
      h.attr({
        'aria-controls': o,
        'aria-labelledby': r
      }),
      a.attr('aria-labelledby', r)
    }),
    this.panels.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom').attr('role', 'tabpanel'),
    i && (this._off(i.not(this.tabs)), this._off(s.not(this.anchors)), this._off(n.not(this.panels)))
  },
  _getList: function () {
    return this.tablist || this.element.find('ol,ul').eq(0)
  },
  _createPanel: function (t) {
    return e('<div>').attr('id', t).addClass('ui-tabs-panel ui-widget-content ui-corner-bottom').data('ui-tabs-destroy', !0)
  },
  _setupDisabled: function (t) {
    e.isArray(t) && (t.length ? t.length === this.anchors.length && (t = !0)  : t = !1);
    for (var i, s = 0; i = this.tabs[s]; s++) t === !0 || - 1 !== e.inArray(s, t) ? e(i).addClass('ui-state-disabled').attr('aria-disabled', 'true')  : e(i).removeClass('ui-state-disabled').removeAttr('aria-disabled');
    this.options.disabled = t
  },
  _setupEvents: function (t) {
    var i = {
    };
    t && e.each(t.split(' '), function (e, t) {
      i[t] = '_eventHandler'
    }),
    this._off(this.anchors.add(this.tabs).add(this.panels)),
    this._on(!0, this.anchors, {
      click: function (e) {
        e.preventDefault()
      }
    }),
    this._on(this.anchors, i),
    this._on(this.tabs, {
      keydown: '_tabKeydown'
    }),
    this._on(this.panels, {
      keydown: '_panelKeydown'
    }),
    this._focusable(this.tabs),
    this._hoverable(this.tabs)
  },
  _setupHeightStyle: function (t) {
    var i,
    s = this.element.parent();
    'fill' === t ? (i = s.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(':visible').each(function () {
      var t = e(this),
      s = t.css('position');
      'absolute' !== s && 'fixed' !== s && (i -= t.outerHeight(!0))
    }), this.element.children().not(this.panels).each(function () {
      i -= e(this).outerHeight(!0)
    }), this.panels.each(function () {
      e(this).height(Math.max(0, i - e(this).innerHeight() + e(this).height()))
    }).css('overflow', 'auto'))  : 'auto' === t && (i = 0, this.panels.each(function () {
      i = Math.max(i, e(this).height('').height())
    }).height(i))
  },
  _eventHandler: function (t) {
    var i = this.options,
    s = this.active,
    n = e(t.currentTarget),
    a = n.closest('li'),
    o = a[0] === s[0],
    r = o && i.collapsible,
    h = r ? e()  : this._getPanelForTab(a),
    l = s.length ? this._getPanelForTab(s)  : e(),
    u = {
      oldTab: s,
      oldPanel: l,
      newTab: r ? e()  : a,
      newPanel: h
    };
    t.preventDefault(),
    a.hasClass('ui-state-disabled') || a.hasClass('ui-tabs-loading') || this.running || o && !i.collapsible || this._trigger('beforeActivate', t, u) === !1 || (i.active = r ? !1 : this.tabs.index(a), this.active = o ? e()  : a, this.xhr && this.xhr.abort(), l.length || h.length || e.error('jQuery UI Tabs: Mismatching fragment identifier.'), h.length && this.load(this.tabs.index(a), t), this._toggle(t, u))
  },
  _toggle: function (t, i) {
    function s() {
      a.running = !1,
      a._trigger('activate', t, i)
    }
    function n() {
      i.newTab.closest('li').addClass('ui-tabs-active ui-state-active'),
      o.length && a.options.show ? a._show(o, a.options.show, s)  : (o.show(), s())
    }
    var a = this,
    o = i.newPanel,
    r = i.oldPanel;
    this.running = !0,
    r.length && this.options.hide ? this._hide(r, this.options.hide, function () {
      i.oldTab.closest('li').removeClass('ui-tabs-active ui-state-active'),
      n()
    })  : (i.oldTab.closest('li').removeClass('ui-tabs-active ui-state-active'), r.hide(), n()),
    r.attr('aria-hidden', 'true'),
    i.oldTab.attr({
      'aria-selected': 'false',
      'aria-expanded': 'false'
    }),
    o.length && r.length ? i.oldTab.attr('tabIndex', - 1)  : o.length && this.tabs.filter(function () {
      return 0 === e(this).attr('tabIndex')
    }).attr('tabIndex', - 1),
    o.attr('aria-hidden', 'false'),
    i.newTab.attr({
      'aria-selected': 'true',
      'aria-expanded': 'true',
      tabIndex: 0
    })
  },
  _activate: function (t) {
    var i,
    s = this._findActive(t);
    s[0] !== this.active[0] && (s.length || (s = this.active), i = s.find('.ui-tabs-anchor') [0], this._eventHandler({
      target: i,
      currentTarget: i,
      preventDefault: e.noop
    }))
  },
  _findActive: function (t) {
    return t === !1 ? e()  : this.tabs.eq(t)
  },
  _getIndex: function (e) {
    return 'string' == typeof e && (e = this.anchors.index(this.anchors.filter('[href$=\'' + e + '\']'))),
    e
  },
  _destroy: function () {
    this.xhr && this.xhr.abort(),
    this.element.removeClass('ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible'),
    this.tablist.removeClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all').removeAttr('role'),
    this.anchors.removeClass('ui-tabs-anchor').removeAttr('role').removeAttr('tabIndex').removeUniqueId(),
    this.tablist.unbind(this.eventNamespace),
    this.tabs.add(this.panels).each(function () {
      e.data(this, 'ui-tabs-destroy') ? e(this).remove()  : e(this).removeClass('ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel').removeAttr('tabIndex').removeAttr('aria-live').removeAttr('aria-busy').removeAttr('aria-selected').removeAttr('aria-labelledby').removeAttr('aria-hidden').removeAttr('aria-expanded').removeAttr('role')
    }),
    this.tabs.each(function () {
      var t = e(this),
      i = t.data('ui-tabs-aria-controls');
      i ? t.attr('aria-controls', i).removeData('ui-tabs-aria-controls')  : t.removeAttr('aria-controls')
    }),
    this.panels.show(),
    'content' !== this.options.heightStyle && this.panels.css('height', '')
  },
  enable: function (t) {
    var i = this.options.disabled;
    i !== !1 && (void 0 === t ? i = !1 : (t = this._getIndex(t), i = e.isArray(i) ? e.map(i, function (e) {
      return e !== t ? e : null
    })  : e.map(this.tabs, function (e, i) {
      return i !== t ? i : null
    })), this._setupDisabled(i))
  },
  disable: function (t) {
    var i = this.options.disabled;
    if (i !== !0) {
      if (void 0 === t) i = !0;
       else {
        if (t = this._getIndex(t), - 1 !== e.inArray(t, i)) return;
        i = e.isArray(i) ? e.merge([t], i).sort()  : [
          t
        ]
      }
      this._setupDisabled(i)
    }
  },
  load: function (t, i) {
    t = this._getIndex(t);
    var s = this,
    n = this.tabs.eq(t),
    a = n.find('.ui-tabs-anchor'),
    o = this._getPanelForTab(n),
    r = {
      tab: n,
      panel: o
    },
    h = function (e, t) {
      'abort' === t && s.panels.stop(!1, !0),
      n.removeClass('ui-tabs-loading'),
      o.removeAttr('aria-busy'),
      e === s.xhr && delete s.xhr
    };
    this._isLocal(a[0]) || (this.xhr = e.ajax(this._ajaxSettings(a, i, r)), this.xhr && 'canceled' !== this.xhr.statusText && (n.addClass('ui-tabs-loading'), o.attr('aria-busy', 'true'), this.xhr.done(function (e, t, n) {
      setTimeout(function () {
        o.html(e),
        s._trigger('load', i, r),
        h(n, t)
      }, 1)
    }).fail(function (e, t) {
      setTimeout(function () {
        h(e, t)
      }, 1)
    })))
  },
  _ajaxSettings: function (t, i, s) {
    var n = this;
    return {
      url: t.attr('href'),
      beforeSend: function (t, a) {
        return n._trigger('beforeLoad', i, e.extend({
          jqXHR: t,
          ajaxSettings: a
        }, s))
      }
    }
  },
  _getPanelForTab: function (t) {
    var i = e(t).attr('aria-controls');
    return this.element.find(this._sanitizeSelector('#' + i))
  }
}), e.widget('ui.tooltip', {
  version: '1.11.4',
  options: {
    content: function () {
      var t = e(this).attr('title') || '';
      return e('<a>').text(t).html()
    },
    hide: !0,
    items: '[title]:not([disabled])',
    position: {
      my: 'left top+15',
      at: 'left bottom',
      collision: 'flipfit flip'
    },
    show: !0,
    tooltipClass: null,
    track: !1,
    close: null,
    open: null
  },
  _addDescribedBy: function (t, i) {
    var s = (t.attr('aria-describedby') || '').split(/\s+/);
    s.push(i),
    t.data('ui-tooltip-id', i).attr('aria-describedby', e.trim(s.join(' ')))
  },
  _removeDescribedBy: function (t) {
    var i = t.data('ui-tooltip-id'),
    s = (t.attr('aria-describedby') || '').split(/\s+/),
    n = e.inArray(i, s);
    - 1 !== n && s.splice(n, 1),
    t.removeData('ui-tooltip-id'),
    s = e.trim(s.join(' ')),
    s ? t.attr('aria-describedby', s)  : t.removeAttr('aria-describedby')
  },
  _create: function () {
    this._on({
      mouseover: 'open',
      focusin: 'open'
    }),
    this.tooltips = {
    },
    this.parents = {
    },
    this.options.disabled && this._disable(),
    this.liveRegion = e('<div>').attr({
      role: 'log',
      'aria-live': 'assertive',
      'aria-relevant': 'additions'
    }).addClass('ui-helper-hidden-accessible').appendTo(this.document[0].body)
  },
  _setOption: function (t, i) {
    var s = this;
    return 'disabled' === t ? (this[i ? '_disable' : '_enable'](), this.options[t] = i, void 0)  : (this._super(t, i), 'content' === t && e.each(this.tooltips, function (e, t) {
      s._updateContent(t.element)
    }), void 0)
  },
  _disable: function () {
    var t = this;
    e.each(this.tooltips, function (i, s) {
      var n = e.Event('blur');
      n.target = n.currentTarget = s.element[0],
      t.close(n, !0)
    }),
    this.element.find(this.options.items).addBack().each(function () {
      var t = e(this);
      t.is('[title]') && t.data('ui-tooltip-title', t.attr('title')).removeAttr('title')
    })
  },
  _enable: function () {
    this.element.find(this.options.items).addBack().each(function () {
      var t = e(this);
      t.data('ui-tooltip-title') && t.attr('title', t.data('ui-tooltip-title'))
    })
  },
  open: function (t) {
    var i = this,
    s = e(t ? t.target : this.element).closest(this.options.items);
    s.length && !s.data('ui-tooltip-id') && (s.attr('title') && s.data('ui-tooltip-title', s.attr('title')), s.data('ui-tooltip-open', !0), t && 'mouseover' === t.type && s.parents().each(function () {
      var t,
      s = e(this);
      s.data('ui-tooltip-open') && (t = e.Event('blur'), t.target = t.currentTarget = this, i.close(t, !0)),
      s.attr('title') && (s.uniqueId(), i.parents[this.id] = {
        element: this,
        title: s.attr('title')
      }, s.attr('title', ''))
    }), this._registerCloseHandlers(t, s), this._updateContent(s, t))
  },
  _updateContent: function (e, t) {
    var i,
    s = this.options.content,
    n = this,
    a = t ? t.type : null;
    return 'string' == typeof s ? this._open(t, e, s)  : (i = s.call(e[0], function (i) {
      n._delay(function () {
        e.data('ui-tooltip-open') && (t && (t.type = a), this._open(t, e, i))
      })
    }), i && this._open(t, e, i), void 0)
  },
  _open: function (t, i, s) {
    function n(e) {
      l.of = e,
      o.is(':hidden') || o.position(l)
    }
    var a,
    o,
    r,
    h,
    l = e.extend({
    }, this.options.position);
    if (s) {
      if (a = this._find(i)) return a.tooltip.find('.ui-tooltip-content').html(s),
      void 0;
      i.is('[title]') && (t && 'mouseover' === t.type ? i.attr('title', '')  : i.removeAttr('title')),
      a = this._tooltip(i),
      o = a.tooltip,
      this._addDescribedBy(i, o.attr('id')),
      o.find('.ui-tooltip-content').html(s),
      this.liveRegion.children().hide(),
      s.clone ? (h = s.clone(), h.removeAttr('id').find('[id]').removeAttr('id'))  : h = s,
      e('<div>').html(h).appendTo(this.liveRegion),
      this.options.track && t && /^mouse/.test(t.type) ? (this._on(this.document, {
        mousemove: n
      }), n(t))  : o.position(e.extend({
        of: i
      }, this.options.position)),
      o.hide(),
      this._show(o, this.options.show),
      this.options.show && this.options.show.delay && (r = this.delayedShow = setInterval(function () {
        o.is(':visible') && (n(l.of), clearInterval(r))
      }, e.fx.interval)),
      this._trigger('open', t, {
        tooltip: o
      })
    }
  },
  _registerCloseHandlers: function (t, i) {
    var s = {
      keyup: function (t) {
        if (t.keyCode === e.ui.keyCode.ESCAPE) {
          var s = e.Event(t);
          s.currentTarget = i[0],
          this.close(s, !0)
        }
      }
    };
    i[0] !== this.element[0] && (s.remove = function () {
      this._removeTooltip(this._find(i).tooltip)
    }),
    t && 'mouseover' !== t.type || (s.mouseleave = 'close'),
    t && 'focusin' !== t.type || (s.focusout = 'close'),
    this._on(!0, i, s)
  },
  close: function (t) {
    var i,
    s = this,
    n = e(t ? t.currentTarget : this.element),
    a = this._find(n);
    return a ? (i = a.tooltip, a.closing || (clearInterval(this.delayedShow), n.data('ui-tooltip-title') && !n.attr('title') && n.attr('title', n.data('ui-tooltip-title')), this._removeDescribedBy(n), a.hiding = !0, i.stop(!0), this._hide(i, this.options.hide, function () {
      s._removeTooltip(e(this))
    }), n.removeData('ui-tooltip-open'), this._off(n, 'mouseleave focusout keyup'), n[0] !== this.element[0] && this._off(n, 'remove'), this._off(this.document, 'mousemove'), t && 'mouseleave' === t.type && e.each(this.parents, function (t, i) {
      e(i.element).attr('title', i.title),
      delete s.parents[t]
    }), a.closing = !0, this._trigger('close', t, {
      tooltip: i
    }), a.hiding || (a.closing = !1)), void 0)  : (n.removeData('ui-tooltip-open'), void 0)
  },
  _tooltip: function (t) {
    var i = e('<div>').attr('role', 'tooltip').addClass('ui-tooltip ui-widget ui-corner-all ui-widget-content ' + (this.options.tooltipClass || '')),
    s = i.uniqueId().attr('id');
    return e('<div>').addClass('ui-tooltip-content').appendTo(i),
    i.appendTo(this.document[0].body),
    this.tooltips[s] = {
      element: t,
      tooltip: i
    }
  },
  _find: function (e) {
    var t = e.data('ui-tooltip-id');
    return t ? this.tooltips[t] : null
  },
  _removeTooltip: function (e) {
    e.remove(),
    delete this.tooltips[e.attr('id')]
  },
  _destroy: function () {
    var t = this;
    e.each(this.tooltips, function (i, s) {
      var n = e.Event('blur'),
      a = s.element;
      n.target = n.currentTarget = a[0],
      t.close(n, !0),
      e('#' + i).remove(),
      a.data('ui-tooltip-title') && (a.attr('title') || a.attr('title', a.data('ui-tooltip-title')), a.removeData('ui-tooltip-title'))
    }),
    this.liveRegion.remove()
  }
}); var y = 'ui-effects-', b = e; e.effects = {
  effect: {
  }
}, function (e, t) {
  function i(e, t, i) {
    var s = d[t.type] || {
    };
    return null == e ? i || !t.def ? null : t.def : (e = s.floor ? ~~e : parseFloat(e), isNaN(e) ? t.def : s.mod ? (e + s.mod) % s.mod : 0 > e ? 0 : e > s.max ? s.max : e)
  }
  function s(i) {
    var s = l(),
    n = s._rgba = [
    ];
    return i = i.toLowerCase(),
    f(h, function (e, a) {
      var o,
      r = a.re.exec(i),
      h = r && a.parse(r),
      l = a.space || 'rgba';
      return h ? (o = s[l](h), s[u[l].cache] = o[u[l].cache], n = s._rgba = o._rgba, !1)  : t
    }),
    n.length ? ('0,0,0,0' === n.join() && e.extend(n, a.transparent), s)  : a[i]
  }
  function n(e, t, i) {
    return i = (i + 1) % 1,
    1 > 6 * i ? e + 6 * (t - e) * i : 1 > 2 * i ? t : 2 > 3 * i ? e + 6 * (t - e) * (2 / 3 - i)  : e
  }
  var a,
  o = 'backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor',
  r = /^([\-+])=\s*(\d+\.?\d*)/,
  h = [
    {
      re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
      parse: function (e) {
        return [e[1],
        e[2],
        e[3],
        e[4]]
      }
    },
    {
      re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
      parse: function (e) {
        return [2.55 * e[1],
        2.55 * e[2],
        2.55 * e[3],
        e[4]]
      }
    },
    {
      re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
      parse: function (e) {
        return [parseInt(e[1], 16),
        parseInt(e[2], 16),
        parseInt(e[3], 16)]
      }
    },
    {
      re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
      parse: function (e) {
        return [parseInt(e[1] + e[1], 16),
        parseInt(e[2] + e[2], 16),
        parseInt(e[3] + e[3], 16)]
      }
    },
    {
      re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
      space: 'hsla',
      parse: function (e) {
        return [e[1],
        e[2] / 100,
        e[3] / 100,
        e[4]]
      }
    }
  ],
  l = e.Color = function (t, i, s, n) {
    return new e.Color.fn.parse(t, i, s, n)
  },
  u = {
    rgba: {
      props: {
        red: {
          idx: 0,
          type: 'byte'
        },
        green: {
          idx: 1,
          type: 'byte'
        },
        blue: {
          idx: 2,
          type: 'byte'
        }
      }
    },
    hsla: {
      props: {
        hue: {
          idx: 0,
          type: 'degrees'
        },
        saturation: {
          idx: 1,
          type: 'percent'
        },
        lightness: {
          idx: 2,
          type: 'percent'
        }
      }
    }
  },
  d = {
    'byte': {
      floor: !0,
      max: 255
    },
    percent: {
      max: 1
    },
    degrees: {
      mod: 360,
      floor: !0
    }
  },
  c = l.support = {
  },
  p = e('<p>') [0],
  f = e.each;
  p.style.cssText = 'background-color:rgba(1,1,1,.5)',
  c.rgba = p.style.backgroundColor.indexOf('rgba') > - 1,
  f(u, function (e, t) {
    t.cache = '_' + e,
    t.props.alpha = {
      idx: 3,
      type: 'percent',
      def: 1
    }
  }),
  l.fn = e.extend(l.prototype, {
    parse: function (n, o, r, h) {
      if (n === t) return this._rgba = [
        null,
        null,
        null,
        null
      ],
      this;
      (n.jquery || n.nodeType) && (n = e(n).css(o), o = t);
      var d = this,
      c = e.type(n),
      p = this._rgba = [
      ];
      return o !== t && (n = [
        n,
        o,
        r,
        h
      ], c = 'array'),
      'string' === c ? this.parse(s(n) || a._default)  : 'array' === c ? (f(u.rgba.props, function (e, t) {
        p[t.idx] = i(n[t.idx], t)
      }), this)  : 'object' === c ? (n instanceof l ? f(u, function (e, t) {
        n[t.cache] && (d[t.cache] = n[t.cache].slice())
      })  : f(u, function (t, s) {
        var a = s.cache;
        f(s.props, function (e, t) {
          if (!d[a] && s.to) {
            if ('alpha' === e || null == n[e]) return;
            d[a] = s.to(d._rgba)
          }
          d[a][t.idx] = i(n[e], t, !0)
        }),
        d[a] && 0 > e.inArray(null, d[a].slice(0, 3)) && (d[a][3] = 1, s.from && (d._rgba = s.from(d[a])))
      }), this)  : t
    },
    is: function (e) {
      var i = l(e),
      s = !0,
      n = this;
      return f(u, function (e, a) {
        var o,
        r = i[a.cache];
        return r && (o = n[a.cache] || a.to && a.to(n._rgba) || [], f(a.props, function (e, i) {
          return null != r[i.idx] ? s = r[i.idx] === o[i.idx] : t
        })),
        s
      }),
      s
    },
    _space: function () {
      var e = [
      ],
      t = this;
      return f(u, function (i, s) {
        t[s.cache] && e.push(i)
      }),
      e.pop()
    },
    transition: function (e, t) {
      var s = l(e),
      n = s._space(),
      a = u[n],
      o = 0 === this.alpha() ? l('transparent')  : this,
      r = o[a.cache] || a.to(o._rgba),
      h = r.slice();
      return s = s[a.cache],
      f(a.props, function (e, n) {
        var a = n.idx,
        o = r[a],
        l = s[a],
        u = d[n.type] || {
        };
        null !== l && (null === o ? h[a] = l : (u.mod && (l - o > u.mod / 2 ? o += u.mod : o - l > u.mod / 2 && (o -= u.mod)), h[a] = i((l - o) * t + o, n)))
      }),
      this[n](h)
    },
    blend: function (t) {
      if (1 === this._rgba[3]) return this;
      var i = this._rgba.slice(),
      s = i.pop(),
      n = l(t)._rgba;
      return l(e.map(i, function (e, t) {
        return (1 - s) * n[t] + s * e
      }))
    },
    toRgbaString: function () {
      var t = 'rgba(',
      i = e.map(this._rgba, function (e, t) {
        return null == e ? t > 2 ? 1 : 0 : e
      });
      return 1 === i[3] && (i.pop(), t = 'rgb('),
      t + i.join() + ')'
    },
    toHslaString: function () {
      var t = 'hsla(',
      i = e.map(this.hsla(), function (e, t) {
        return null == e && (e = t > 2 ? 1 : 0),
        t && 3 > t && (e = Math.round(100 * e) + '%'),
        e
      });
      return 1 === i[3] && (i.pop(), t = 'hsl('),
      t + i.join() + ')'
    },
    toHexString: function (t) {
      var i = this._rgba.slice(),
      s = i.pop();
      return t && i.push(~~(255 * s)),
      '#' + e.map(i, function (e) {
        return e = (e || 0).toString(16),
        1 === e.length ? '0' + e : e
      }).join('')
    },
    toString: function () {
      return 0 === this._rgba[3] ? 'transparent' : this.toRgbaString()
    }
  }),
  l.fn.parse.prototype = l.fn,
  u.hsla.to = function (e) {
    if (null == e[0] || null == e[1] || null == e[2]) return [null,
    null,
    null,
    e[3]];
    var t,
    i,
    s = e[0] / 255,
    n = e[1] / 255,
    a = e[2] / 255,
    o = e[3],
    r = Math.max(s, n, a),
    h = Math.min(s, n, a),
    l = r - h,
    u = r + h,
    d = 0.5 * u;
    return t = h === r ? 0 : s === r ? 60 * (n - a) / l + 360 : n === r ? 60 * (a - s) / l + 120 : 60 * (s - n) / l + 240,
    i = 0 === l ? 0 : 0.5 >= d ? l / u : l / (2 - u),
    [
      Math.round(t) % 360,
      i,
      d,
      null == o ? 1 : o
    ]
  },
  u.hsla.from = function (e) {
    if (null == e[0] || null == e[1] || null == e[2]) return [null,
    null,
    null,
    e[3]];
    var t = e[0] / 360,
    i = e[1],
    s = e[2],
    a = e[3],
    o = 0.5 >= s ? s * (1 + i)  : s + i - s * i,
    r = 2 * s - o;
    return [Math.round(255 * n(r, o, t + 1 / 3)),
    Math.round(255 * n(r, o, t)),
    Math.round(255 * n(r, o, t - 1 / 3)),
    a]
  },
  f(u, function (s, n) {
    var a = n.props,
    o = n.cache,
    h = n.to,
    u = n.from;
    l.fn[s] = function (s) {
      if (h && !this[o] && (this[o] = h(this._rgba)), s === t) return this[o].slice();
      var n,
      r = e.type(s),
      d = 'array' === r || 'object' === r ? s : arguments,
      c = this[o].slice();
      return f(a, function (e, t) {
        var s = d['object' === r ? e : t.idx];
        null == s && (s = c[t.idx]),
        c[t.idx] = i(s, t)
      }),
      u ? (n = l(u(c)), n[o] = c, n)  : l(c)
    },
    f(a, function (t, i) {
      l.fn[t] || (l.fn[t] = function (n) {
        var a,
        o = e.type(n),
        h = 'alpha' === t ? this._hsla ? 'hsla' : 'rgba' : s,
        l = this[h](),
        u = l[i.idx];
        return 'undefined' === o ? u : ('function' === o && (n = n.call(this, u), o = e.type(n)), null == n && i.empty ? this : ('string' === o && (a = r.exec(n), a && (n = u + parseFloat(a[2]) * ('+' === a[1] ? 1 : - 1))), l[i.idx] = n, this[h](l)))
      })
    })
  }),
  l.hook = function (t) {
    var i = t.split(' ');
    f(i, function (t, i) {
      e.cssHooks[i] = {
        set: function (t, n) {
          var a,
          o,
          r = '';
          if ('transparent' !== n && ('string' !== e.type(n) || (a = s(n)))) {
            if (n = l(a || n), !c.rgba && 1 !== n._rgba[3]) {
              for (o = 'backgroundColor' === i ? t.parentNode : t; ('' === r || 'transparent' === r) && o && o.style; ) try {
                r = e.css(o, 'backgroundColor'),
                o = o.parentNode
              } catch (h) {
              }
              n = n.blend(r && 'transparent' !== r ? r : '_default')
            }
            n = n.toRgbaString()
          }
          try {
            t.style[i] = n
          } catch (h) {
          }
        }
      },
      e.fx.step[i] = function (t) {
        t.colorInit || (t.start = l(t.elem, i), t.end = l(t.end), t.colorInit = !0),
        e.cssHooks[i].set(t.elem, t.start.transition(t.end, t.pos))
      }
    })
  },
  l.hook(o),
  e.cssHooks.borderColor = {
    expand: function (e) {
      var t = {
      };
      return f(['Top',
      'Right',
      'Bottom',
      'Left'], function (i, s) {
        t['border' + s + 'Color'] = e
      }),
      t
    }
  },
  a = e.Color.names = {
    aqua: '#00ffff',
    black: '#000000',
    blue: '#0000ff',
    fuchsia: '#ff00ff',
    gray: '#808080',
    green: '#008000',
    lime: '#00ff00',
    maroon: '#800000',
    navy: '#000080',
    olive: '#808000',
    purple: '#800080',
    red: '#ff0000',
    silver: '#c0c0c0',
    teal: '#008080',
    white: '#ffffff',
    yellow: '#ffff00',
    transparent: [
      null,
      null,
      null,
      0
    ],
    _default: '#ffffff'
  }
}(b), function () {
  function t(t) {
    var i,
    s,
    n = t.ownerDocument.defaultView ? t.ownerDocument.defaultView.getComputedStyle(t, null)  : t.currentStyle,
    a = {
    };
    if (n && n.length && n[0] && n[n[0]]) for (s = n.length; s--; ) i = n[s],
    'string' == typeof n[i] && (a[e.camelCase(i)] = n[i]);
     else for (i in n) 'string' == typeof n[i] && (a[i] = n[i]);
    return a
  }
  function i(t, i) {
    var s,
    a,
    o = {
    };
    for (s in i) a = i[s],
    t[s] !== a && (n[s] || (e.fx.step[s] || !isNaN(parseFloat(a))) && (o[s] = a));
    return o
  }
  var s = [
    'add',
    'remove',
    'toggle'
  ],
  n = {
    border: 1,
    borderBottom: 1,
    borderColor: 1,
    borderLeft: 1,
    borderRight: 1,
    borderTop: 1,
    borderWidth: 1,
    margin: 1,
    padding: 1
  };
  e.each(['borderLeftStyle',
  'borderRightStyle',
  'borderBottomStyle',
  'borderTopStyle'], function (t, i) {
    e.fx.step[i] = function (e) {
      ('none' !== e.end && !e.setAttr || 1 === e.pos && !e.setAttr) && (b.style(e.elem, i, e.end), e.setAttr = !0)
    }
  }),
  e.fn.addBack || (e.fn.addBack = function (e) {
    return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
  }),
  e.effects.animateClass = function (n, a, o, r) {
    var h = e.speed(a, o, r);
    return this.queue(function () {
      var a,
      o = e(this),
      r = o.attr('class') || '',
      l = h.children ? o.find('*').addBack()  : o;
      l = l.map(function () {
        var i = e(this);
        return {
          el: i,
          start: t(this)
        }
      }),
      a = function () {
        e.each(s, function (e, t) {
          n[t] && o[t + 'Class'](n[t])
        })
      },
      a(),
      l = l.map(function () {
        return this.end = t(this.el[0]),
        this.diff = i(this.start, this.end),
        this
      }),
      o.attr('class', r),
      l = l.map(function () {
        var t = this,
        i = e.Deferred(),
        s = e.extend({
        }, h, {
          queue: !1,
          complete: function () {
            i.resolve(t)
          }
        });
        return this.el.animate(this.diff, s),
        i.promise()
      }),
      e.when.apply(e, l.get()).done(function () {
        a(),
        e.each(arguments, function () {
          var t = this.el;
          e.each(this.diff, function (e) {
            t.css(e, '')
          })
        }),
        h.complete.call(o[0])
      })
    })
  },
  e.fn.extend({
    addClass: function (t) {
      return function (i, s, n, a) {
        return s ? e.effects.animateClass.call(this, {
          add: i
        }, s, n, a)  : t.apply(this, arguments)
      }
    }(e.fn.addClass),
    removeClass: function (t) {
      return function (i, s, n, a) {
        return arguments.length > 1 ? e.effects.animateClass.call(this, {
          remove: i
        }, s, n, a)  : t.apply(this, arguments)
      }
    }(e.fn.removeClass),
    toggleClass: function (t) {
      return function (i, s, n, a, o) {
        return 'boolean' == typeof s || void 0 === s ? n ? e.effects.animateClass.call(this, s ? {
          add: i
        }
         : {
          remove: i
        }, n, a, o)  : t.apply(this, arguments)  : e.effects.animateClass.call(this, {
          toggle: i
        }, s, n, a)
      }
    }(e.fn.toggleClass),
    switchClass: function (t, i, s, n, a) {
      return e.effects.animateClass.call(this, {
        add: i,
        remove: t
      }, s, n, a)
    }
  })
}(), function () {
  function t(t, i, s, n) {
    return e.isPlainObject(t) && (i = t, t = t.effect),
    t = {
      effect: t
    },
    null == i && (i = {
    }),
    e.isFunction(i) && (n = i, s = null, i = {
    }),
    ('number' == typeof i || e.fx.speeds[i]) && (n = s, s = i, i = {
    }),
    e.isFunction(s) && (n = s, s = null),
    i && e.extend(t, i),
    s = s || i.duration,
    t.duration = e.fx.off ? 0 : 'number' == typeof s ? s : s in e.fx.speeds ? e.fx.speeds[s] : e.fx.speeds._default,
    t.complete = n || i.complete,
    t
  }
  function i(t) {
    return !t || 'number' == typeof t || e.fx.speeds[t] ? !0 : 'string' != typeof t || e.effects.effect[t] ? e.isFunction(t) ? !0 : 'object' != typeof t || t.effect ? !1 : !0 : !0
  }
  e.extend(e.effects, {
    version: '1.11.4',
    save: function (e, t) {
      for (var i = 0; t.length > i; i++) null !== t[i] && e.data(y + t[i], e[0].style[t[i]])
    },
    restore: function (e, t) {
      var i,
      s;
      for (s = 0; t.length > s; s++) null !== t[s] && (i = e.data(y + t[s]), void 0 === i && (i = ''), e.css(t[s], i))
    },
    setMode: function (e, t) {
      return 'toggle' === t && (t = e.is(':hidden') ? 'show' : 'hide'),
      t
    },
    getBaseline: function (e, t) {
      var i,
      s;
      switch (e[0]) {
        case 'top':
          i = 0;
          break;
        case 'middle':
          i = 0.5;
          break;
        case 'bottom':
          i = 1;
          break;
        default:
          i = e[0] / t.height
      }
      switch (e[1]) {
        case 'left':
          s = 0;
          break;
        case 'center':
          s = 0.5;
          break;
        case 'right':
          s = 1;
          break;
        default:
          s = e[1] / t.width
      }
      return {
        x: s,
        y: i
    }
},
createWrapper: function (t) {
  if (t.parent().is('.ui-effects-wrapper')) return t.parent();
  var i = {
    width: t.outerWidth(!0),
    height: t.outerHeight(!0),
    'float': t.css('float')
  },
  s = e('<div></div>').addClass('ui-effects-wrapper').css({
    fontSize: '100%',
    background: 'transparent',
    border: 'none',
    margin: 0,
    padding: 0
  }),
  n = {
    width: t.width(),
    height: t.height()
  },
  a = document.activeElement;
  try {
    a.id
  } catch (o) {
    a = document.body
  }
  return t.wrap(s),
  (t[0] === a || e.contains(t[0], a)) && e(a).focus(),
  s = t.parent(),
  'static' === t.css('position') ? (s.css({
    position: 'relative'
  }), t.css({
    position: 'relative'
  }))  : (e.extend(i, {
    position: t.css('position'),
    zIndex: t.css('z-index')
  }), e.each(['top',
  'left',
  'bottom',
  'right'], function (e, s) {
    i[s] = t.css(s),
    isNaN(parseInt(i[s], 10)) && (i[s] = 'auto')
  }), t.css({
    position: 'relative',
    top: 0,
    left: 0,
    right: 'auto',
    bottom: 'auto'
  })),
  t.css(n),
  s.css(i).show()
},
removeWrapper: function (t) {
var i = document.activeElement;
return t.parent().is('.ui-effects-wrapper') && (t.parent().replaceWith(t), (t[0] === i || e.contains(t[0], i)) && e(i).focus()),
t
},
setTransition: function (t, i, s, n) {
return n = n || {
},
e.each(i, function (e, i) {
var a = t.cssUnit(i);
a[0] > 0 && (n[i] = a[0] * s + a[1])
}),
n
}
}),
e.fn.extend({
effect: function () {
function i(t) {
function i() {
e.isFunction(a) && a.call(n[0]),
e.isFunction(t) && t()
}
var n = e(this),
a = s.complete,
r = s.mode;
(n.is(':hidden') ? 'hide' === r : 'show' === r) ? (n[r](), i())  : o.call(n[0], s, i)
}
var s = t.apply(this, arguments),
n = s.mode,
a = s.queue,
o = e.effects.effect[s.effect];
return e.fx.off || !o ? n ? this[n](s.duration, s.complete)  : this.each(function () {
s.complete && s.complete.call(this)
})  : a === !1 ? this.each(i)  : this.queue(a || 'fx', i)
},
show: function (e) {
return function (s) {
if (i(s)) return e.apply(this, arguments);
var n = t.apply(this, arguments);
return n.mode = 'show',
this.effect.call(this, n)
}
}(e.fn.show),
hide: function (e) {
return function (s) {
if (i(s)) return e.apply(this, arguments);
var n = t.apply(this, arguments);
return n.mode = 'hide',
this.effect.call(this, n)
}
}(e.fn.hide),
toggle: function (e) {
return function (s) {
if (i(s) || 'boolean' == typeof s) return e.apply(this, arguments);
var n = t.apply(this, arguments);
return n.mode = 'toggle',
this.effect.call(this, n)
}
}(e.fn.toggle),
cssUnit: function (t) {
var i = this.css(t),
s = [
];
return e.each(['em',
'px',
'%',
'pt'], function (e, t) {
i.indexOf(t) > 0 && (s = [
parseFloat(i),
t
])
}),
s
}
})
}(), function () {
var t = {
};
e.each(['Quad',
'Cubic',
'Quart',
'Quint',
'Expo'], function (e, i) {
t[i] = function (t) {
return Math.pow(t, e + 2)
}
}),
e.extend(t, {
Sine: function (e) {
return 1 - Math.cos(e * Math.PI / 2)
},
Circ: function (e) {
return 1 - Math.sqrt(1 - e * e)
},
Elastic: function (e) {
return 0 === e || 1 === e ? e : - Math.pow(2, 8 * (e - 1)) * Math.sin((80 * (e - 1) - 7.5) * Math.PI / 15)
},
Back: function (e) {
return e * e * (3 * e - 2)
},
Bounce: function (e) {
for (var t, i = 4; ((t = Math.pow(2, --i)) - 1) / 11 > e; );
return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * t - 2) / 22 - e, 2)
}
}),
e.each(t, function (t, i) {
e.easing['easeIn' + t] = i,
e.easing['easeOut' + t] = function (e) {
return 1 - i(1 - e)
},
e.easing['easeInOut' + t] = function (e) {
return 0.5 > e ? i(2 * e) / 2 : 1 - i( - 2 * e + 2) / 2
}
})
}(), e.effects, e.effects.effect.blind = function (t, i) {
var s,
n,
a,
o = e(this),
r = /up|down|vertical/,
h = /up|left|vertical|horizontal/,
l = [
'position',
'top',
'bottom',
'left',
'right',
'height',
'width'
],
u = e.effects.setMode(o, t.mode || 'hide'),
d = t.direction || 'up',
c = r.test(d),
p = c ? 'height' : 'width',
f = c ? 'top' : 'left',
m = h.test(d),
g = {
},
v = 'show' === u;
o.parent().is('.ui-effects-wrapper') ? e.effects.save(o.parent(), l)  : e.effects.save(o, l),
o.show(),
s = e.effects.createWrapper(o).css({
overflow: 'hidden'
}),
n = s[p](),
a = parseFloat(s.css(f)) || 0,
g[p] = v ? n : 0,
m || (o.css(c ? 'bottom' : 'right', 0).css(c ? 'top' : 'left', 'auto').css({
position: 'absolute'
}), g[f] = v ? a : n + a),
v && (s.css(p, 0), m || s.css(f, a + n)),
s.animate(g, {
duration: t.duration,
easing: t.easing,
queue: !1,
complete: function () {
'hide' === u && o.hide(),
e.effects.restore(o, l),
e.effects.removeWrapper(o),
i()
}
})
}, e.effects.effect.bounce = function (t, i) {
var s,
n,
a,
o = e(this),
r = [
'position',
'top',
'bottom',
'left',
'right',
'height',
'width'
],
h = e.effects.setMode(o, t.mode || 'effect'),
l = 'hide' === h,
u = 'show' === h,
d = t.direction || 'up',
c = t.distance,
p = t.times || 5,
f = 2 * p + (u || l ? 1 : 0),
m = t.duration / f,
g = t.easing,
v = 'up' === d || 'down' === d ? 'top' : 'left',
y = 'up' === d || 'left' === d,
b = o.queue(),
_ = b.length;
for ((u || l) && r.push('opacity'), e.effects.save(o, r), o.show(), e.effects.createWrapper(o), c || (c = o['top' === v ? 'outerHeight' : 'outerWidth']() / 3), u && (a = {
opacity: 1
}, a[v] = 0, o.css('opacity', 0).css(v, y ? 2 * - c : 2 * c).animate(a, m, g)), l && (c /= Math.pow(2, p - 1)), a = {
}, a[v] = 0, s = 0; p > s; s++) n = {
},
n[v] = (y ? '-=' : '+=') + c,
o.animate(n, m, g).animate(a, m, g),
c = l ? 2 * c : c / 2;
l && (n = {
opacity: 0
}, n[v] = (y ? '-=' : '+=') + c, o.animate(n, m, g)),
o.queue(function () {
l && o.hide(),
e.effects.restore(o, r),
e.effects.removeWrapper(o),
i()
}),
_ > 1 && b.splice.apply(b, [
1,
0
].concat(b.splice(_, f + 1))),
o.dequeue()
}, e.effects.effect.clip = function (t, i) {
var s,
n,
a,
o = e(this),
r = [
'position',
'top',
'bottom',
'left',
'right',
'height',
'width'
],
h = e.effects.setMode(o, t.mode || 'hide'),
l = 'show' === h,
u = t.direction || 'vertical',
d = 'vertical' === u,
c = d ? 'height' : 'width',
p = d ? 'top' : 'left',
f = {
};
e.effects.save(o, r),
o.show(),
s = e.effects.createWrapper(o).css({
overflow: 'hidden'
}),
n = 'IMG' === o[0].tagName ? s : o,
a = n[c](),
l && (n.css(c, 0), n.css(p, a / 2)),
f[c] = l ? a : 0,
f[p] = l ? 0 : a / 2,
n.animate(f, {
queue: !1,
duration: t.duration,
easing: t.easing,
complete: function () {
l || o.hide(),
e.effects.restore(o, r),
e.effects.removeWrapper(o),
i()
}
})
}, e.effects.effect.drop = function (t, i) {
var s,
n = e(this),
a = [
'position',
'top',
'bottom',
'left',
'right',
'opacity',
'height',
'width'
],
o = e.effects.setMode(n, t.mode || 'hide'),
r = 'show' === o,
h = t.direction || 'left',
l = 'up' === h || 'down' === h ? 'top' : 'left',
u = 'up' === h || 'left' === h ? 'pos' : 'neg',
d = {
opacity: r ? 1 : 0
};
e.effects.save(n, a),
n.show(),
e.effects.createWrapper(n),
s = t.distance || n['top' === l ? 'outerHeight' : 'outerWidth'](!0) / 2,
r && n.css('opacity', 0).css(l, 'pos' === u ? - s : s),
d[l] = (r ? 'pos' === u ? '+=' : '-=' : 'pos' === u ? '-=' : '+=') + s,
n.animate(d, {
queue: !1,
duration: t.duration,
easing: t.easing,
complete: function () {
'hide' === o && n.hide(),
e.effects.restore(n, a),
e.effects.removeWrapper(n),
i()
}
})
}, e.effects.effect.explode = function (t, i) {
function s() {
b.push(this),
b.length === d * c && n()
}
function n() {
p.css({
visibility: 'visible'
}),
e(b).remove(),
m || p.hide(),
i()
}
var a,
o,
r,
h,
l,
u,
d = t.pieces ? Math.round(Math.sqrt(t.pieces))  : 3,
c = d,
p = e(this),
f = e.effects.setMode(p, t.mode || 'hide'),
m = 'show' === f,
g = p.show().css('visibility', 'hidden').offset(),
v = Math.ceil(p.outerWidth() / c),
y = Math.ceil(p.outerHeight() / d),
b = [
];
for (a = 0; d > a; a++) for (h = g.top + a * y, u = a - (d - 1) / 2, o = 0; c > o; o++) r = g.left + o * v,
l = o - (c - 1) / 2,
p.clone().appendTo('body').wrap('<div></div>').css({
position: 'absolute',
visibility: 'visible',
left: - o * v,
top: - a * y
}).parent().addClass('ui-effects-explode').css({
position: 'absolute',
overflow: 'hidden',
width: v,
height: y,
left: r + (m ? l * v : 0),
top: h + (m ? u * y : 0),
opacity: m ? 0 : 1
}).animate({
left: r + (m ? 0 : l * v),
top: h + (m ? 0 : u * y),
opacity: m ? 1 : 0
}, t.duration || 500, t.easing, s)
}, e.effects.effect.fade = function (t, i) {
var s = e(this),
n = e.effects.setMode(s, t.mode || 'toggle');
s.animate({
opacity: n
}, {
queue: !1,
duration: t.duration,
easing: t.easing,
complete: i
})
}, e.effects.effect.fold = function (t, i) {
var s,
n,
a = e(this),
o = [
'position',
'top',
'bottom',
'left',
'right',
'height',
'width'
],
r = e.effects.setMode(a, t.mode || 'hide'),
h = 'show' === r,
l = 'hide' === r,
u = t.size || 15,
d = /([0-9]+)%/.exec(u),
c = !!t.horizFirst,
p = h !== c,
f = p ? [
'width',
'height'
] : [
'height',
'width'
],
m = t.duration / 2,
g = {
},
v = {
};
e.effects.save(a, o),
a.show(),
s = e.effects.createWrapper(a).css({
overflow: 'hidden'
}),
n = p ? [
s.width(),
s.height()
] : [
s.height(),
s.width()
],
d && (u = parseInt(d[1], 10) / 100 * n[l ? 0 : 1]),
h && s.css(c ? {
height: 0,
width: u
}
 : {
height: u,
width: 0
}),
g[f[0]] = h ? n[0] : u,
v[f[1]] = h ? n[1] : 0,
s.animate(g, m, t.easing).animate(v, m, t.easing, function () {
l && a.hide(),
e.effects.restore(a, o),
e.effects.removeWrapper(a),
i()
})
}, e.effects.effect.highlight = function (t, i) {
var s = e(this),
n = [
'backgroundImage',
'backgroundColor',
'opacity'
],
a = e.effects.setMode(s, t.mode || 'show'),
o = {
backgroundColor: s.css('backgroundColor')
};
'hide' === a && (o.opacity = 0),
e.effects.save(s, n),
s.show().css({
backgroundImage: 'none',
backgroundColor: t.color || '#ffff99'
}).animate(o, {
queue: !1,
duration: t.duration,
easing: t.easing,
complete: function () {
'hide' === a && s.hide(),
e.effects.restore(s, n),
i()
}
})
}, e.effects.effect.size = function (t, i) {
var s,
n,
a,
o = e(this),
r = [
'position',
'top',
'bottom',
'left',
'right',
'width',
'height',
'overflow',
'opacity'
],
h = [
'position',
'top',
'bottom',
'left',
'right',
'overflow',
'opacity'
],
l = [
'width',
'height',
'overflow'
],
u = [
'fontSize'
],
d = [
'borderTopWidth',
'borderBottomWidth',
'paddingTop',
'paddingBottom'
],
c = [
'borderLeftWidth',
'borderRightWidth',
'paddingLeft',
'paddingRight'
],
p = e.effects.setMode(o, t.mode || 'effect'),
f = t.restore || 'effect' !== p,
m = t.scale || 'both',
g = t.origin || ['middle',
'center'],
v = o.css('position'),
y = f ? r : h,
b = {
height: 0,
width: 0,
outerHeight: 0,
outerWidth: 0
};
'show' === p && o.show(),
s = {
height: o.height(),
width: o.width(),
outerHeight: o.outerHeight(),
outerWidth: o.outerWidth()
},
'toggle' === t.mode && 'show' === p ? (o.from = t.to || b, o.to = t.from || s)  : (o.from = t.from || ('show' === p ? b : s), o.to = t.to || ('hide' === p ? b : s)),
a = {
from: {
y: o.from.height / s.height,
x: o.from.width / s.width
},
to: {
y: o.to.height / s.height,
x: o.to.width / s.width
}
},
('box' === m || 'both' === m) && (a.from.y !== a.to.y && (y = y.concat(d), o.from = e.effects.setTransition(o, d, a.from.y, o.from), o.to = e.effects.setTransition(o, d, a.to.y, o.to)), a.from.x !== a.to.x && (y = y.concat(c), o.from = e.effects.setTransition(o, c, a.from.x, o.from), o.to = e.effects.setTransition(o, c, a.to.x, o.to))),
('content' === m || 'both' === m) && a.from.y !== a.to.y && (y = y.concat(u).concat(l), o.from = e.effects.setTransition(o, u, a.from.y, o.from), o.to = e.effects.setTransition(o, u, a.to.y, o.to)),
e.effects.save(o, y),
o.show(),
e.effects.createWrapper(o),
o.css('overflow', 'hidden').css(o.from),
g && (n = e.effects.getBaseline(g, s), o.from.top = (s.outerHeight - o.outerHeight()) * n.y, o.from.left = (s.outerWidth - o.outerWidth()) * n.x, o.to.top = (s.outerHeight - o.to.outerHeight) * n.y, o.to.left = (s.outerWidth - o.to.outerWidth) * n.x),
o.css(o.from),
('content' === m || 'both' === m) && (d = d.concat(['marginTop',
'marginBottom']).concat(u), c = c.concat(['marginLeft',
'marginRight']), l = r.concat(d).concat(c), o.find('*[width]').each(function () {
var i = e(this),
s = {
height: i.height(),
width: i.width(),
outerHeight: i.outerHeight(),
outerWidth: i.outerWidth()
};
f && e.effects.save(i, l),
i.from = {
height: s.height * a.from.y,
width: s.width * a.from.x,
outerHeight: s.outerHeight * a.from.y,
outerWidth: s.outerWidth * a.from.x
},
i.to = {
height: s.height * a.to.y,
width: s.width * a.to.x,
outerHeight: s.height * a.to.y,
outerWidth: s.width * a.to.x
},
a.from.y !== a.to.y && (i.from = e.effects.setTransition(i, d, a.from.y, i.from), i.to = e.effects.setTransition(i, d, a.to.y, i.to)),
a.from.x !== a.to.x && (i.from = e.effects.setTransition(i, c, a.from.x, i.from), i.to = e.effects.setTransition(i, c, a.to.x, i.to)),
i.css(i.from),
i.animate(i.to, t.duration, t.easing, function () {
f && e.effects.restore(i, l)
})
})),
o.animate(o.to, {
queue: !1,
duration: t.duration,
easing: t.easing,
complete: function () {
0 === o.to.opacity && o.css('opacity', o.from.opacity),
'hide' === p && o.hide(),
e.effects.restore(o, y),
f || ('static' === v ? o.css({
position: 'relative',
top: o.to.top,
left: o.to.left
})  : e.each(['top',
'left'], function (e, t) {
o.css(t, function (t, i) {
var s = parseInt(i, 10),
n = e ? o.to.left : o.to.top;
return 'auto' === i ? n + 'px' : s + n + 'px'
})
})),
e.effects.removeWrapper(o),
i()
}
})
}, e.effects.effect.scale = function (t, i) {
var s = e(this),
n = e.extend(!0, {
}, t),
a = e.effects.setMode(s, t.mode || 'effect'),
o = parseInt(t.percent, 10) || (0 === parseInt(t.percent, 10) ? 0 : 'hide' === a ? 0 : 100),
r = t.direction || 'both',
h = t.origin,
l = {
height: s.height(),
width: s.width(),
outerHeight: s.outerHeight(),
outerWidth: s.outerWidth()
},
u = {
y: 'horizontal' !== r ? o / 100 : 1,
x: 'vertical' !== r ? o / 100 : 1
};
n.effect = 'size',
n.queue = !1,
n.complete = i,
'effect' !== a && (n.origin = h || ['middle',
'center'], n.restore = !0),
n.from = t.from || ('show' === a ? {
height: 0,
width: 0,
outerHeight: 0,
outerWidth: 0
}
 : l),
n.to = {
height: l.height * u.y,
width: l.width * u.x,
outerHeight: l.outerHeight * u.y,
outerWidth: l.outerWidth * u.x
},
n.fade && ('show' === a && (n.from.opacity = 0, n.to.opacity = 1), 'hide' === a && (n.from.opacity = 1, n.to.opacity = 0)),
s.effect(n)
}, e.effects.effect.puff = function (t, i) {
var s = e(this),
n = e.effects.setMode(s, t.mode || 'hide'),
a = 'hide' === n,
o = parseInt(t.percent, 10) || 150,
r = o / 100,
h = {
height: s.height(),
width: s.width(),
outerHeight: s.outerHeight(),
outerWidth: s.outerWidth()
};
e.extend(t, {
effect: 'scale',
queue: !1,
fade: !0,
mode: n,
complete: i,
percent: a ? o : 100,
from: a ? h : {
height: h.height * r,
width: h.width * r,
outerHeight: h.outerHeight * r,
outerWidth: h.outerWidth * r
}
}),
s.effect(t)
}, e.effects.effect.pulsate = function (t, i) {
var s,
n = e(this),
a = e.effects.setMode(n, t.mode || 'show'),
o = 'show' === a,
r = 'hide' === a,
h = o || 'hide' === a,
l = 2 * (t.times || 5) + (h ? 1 : 0),
u = t.duration / l,
d = 0,
c = n.queue(),
p = c.length;
for ((o || !n.is(':visible')) && (n.css('opacity', 0).show(), d = 1), s = 1; l > s; s++) n.animate({
opacity: d
}, u, t.easing),
d = 1 - d;
n.animate({
opacity: d
}, u, t.easing),
n.queue(function () {
r && n.hide(),
i()
}),
p > 1 && c.splice.apply(c, [
1,
0
].concat(c.splice(p, l + 1))),
n.dequeue()
}, e.effects.effect.shake = function (t, i) {
var s,
n = e(this),
a = [
'position',
'top',
'bottom',
'left',
'right',
'height',
'width'
],
o = e.effects.setMode(n, t.mode || 'effect'),
r = t.direction || 'left',
h = t.distance || 20,
l = t.times || 3,
u = 2 * l + 1,
d = Math.round(t.duration / u),
c = 'up' === r || 'down' === r ? 'top' : 'left',
p = 'up' === r || 'left' === r,
f = {
},
m = {
},
g = {
},
v = n.queue(),
y = v.length;
for (e.effects.save(n, a), n.show(), e.effects.createWrapper(n), f[c] = (p ? '-=' : '+=') + h, m[c] = (p ? '+=' : '-=') + 2 * h, g[c] = (p ? '-=' : '+=') + 2 * h, n.animate(f, d, t.easing), s = 1; l > s; s++) n.animate(m, d, t.easing).animate(g, d, t.easing);
n.animate(m, d, t.easing).animate(f, d / 2, t.easing).queue(function () {
'hide' === o && n.hide(),
e.effects.restore(n, a),
e.effects.removeWrapper(n),
i()
}),
y > 1 && v.splice.apply(v, [
1,
0
].concat(v.splice(y, u + 1))),
n.dequeue()
}, e.effects.effect.slide = function (t, i) {
var s,
n = e(this),
a = [
'position',
'top',
'bottom',
'left',
'right',
'width',
'height'
],
o = e.effects.setMode(n, t.mode || 'show'),
r = 'show' === o,
h = t.direction || 'left',
l = 'up' === h || 'down' === h ? 'top' : 'left',
u = 'up' === h || 'left' === h,
d = {
};
e.effects.save(n, a),
n.show(),
s = t.distance || n['top' === l ? 'outerHeight' : 'outerWidth'](!0),
e.effects.createWrapper(n).css({
overflow: 'hidden'
}),
r && n.css(l, u ? isNaN(s) ? '-' + s : - s : s),
d[l] = (r ? u ? '+=' : '-=' : u ? '-=' : '+=') + s,
n.animate(d, {
queue: !1,
duration: t.duration,
easing: t.easing,
complete: function () {
'hide' === o && n.hide(),
e.effects.restore(n, a),
e.effects.removeWrapper(n),
i()
}
})
}, e.effects.effect.transfer = function (t, i) {
var s = e(this),
n = e(t.to),
a = 'fixed' === n.css('position'),
o = e('body'),
r = a ? o.scrollTop()  : 0,
h = a ? o.scrollLeft()  : 0,
l = n.offset(),
u = {
top: l.top - r,
left: l.left - h,
height: n.innerHeight(),
width: n.innerWidth()
},
d = s.offset(),
c = e('<div class=\'ui-effects-transfer\'></div>').appendTo(document.body).addClass(t.className).css({
top: d.top - r,
left: d.left - h,
height: s.innerHeight(),
width: s.innerWidth(),
position: a ? 'fixed' : 'absolute'
}).animate(u, t.duration, t.easing, function () {
c.remove(),
i()
})
}
});
/*!
 * jQuery UI Touch Punch 0.2.3
 *
 * Copyright 2011–2014, Dave Furfero
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * Depends:
 *  jquery.ui.widget.js
 *  jquery.ui.mouse.js
 */
!function (a) {
function f(a, b) {
if (!(a.originalEvent.touches.length > 1)) {
a.preventDefault();
var c = a.originalEvent.changedTouches[0],
d = document.createEvent('MouseEvents');
d.initMouseEvent(b, !0, !0, window, 1, c.screenX, c.screenY, c.clientX, c.clientY, !1, !1, !1, !1, 0, null),
a.target.dispatchEvent(d)
}
}
if (a.support.touch = 'ontouchend' in document, a.support.touch) {
var e,
b = a.ui.mouse.prototype,
c = b._mouseInit,
d = b._mouseDestroy;
b._touchStart = function (a) {
var b = this;
!e && b._mouseCapture(a.originalEvent.changedTouches[0]) && (e = !0, b._touchMoved = !1, f(a, 'mouseover'), f(a, 'mousemove'), f(a, 'mousedown'))
},
b._touchMove = function (a) {
e && (this._touchMoved = !0, f(a, 'mousemove'))
},
b._touchEnd = function (a) {
e && (f(a, 'mouseup'), f(a, 'mouseout'), this._touchMoved || f(a, 'click'), e = !1)
},
b._mouseInit = function () {
var b = this;
b.element.bind({
touchstart: a.proxy(b, '_touchStart'),
touchmove: a.proxy(b, '_touchMove'),
touchend: a.proxy(b, '_touchEnd')
}),
c.call(b)
},
b._mouseDestroy = function () {
var b = this;
b.element.unbind({
touchstart: a.proxy(b, '_touchStart'),
touchmove: a.proxy(b, '_touchMove'),
touchend: a.proxy(b, '_touchEnd')
}),
d.call(b)
}
}
}(jQuery);
; (function () {
function n(n, t) {
if (n !== t) {
var r = null === n,
e = n === w,
u = n === n,
o = null === t,
i = t === w,
f = t === t;
if (n > t && !o || !u || r && !i && f || e && f) return 1;
if (n < t && !r || !f || o && !e && u || i && u) return - 1
}
return 0
}
function t(n, t, r) {
for (var e = n.length, u = r ? e : - 1; r ? u-- : ++u < e; ) if (t(n[u], u, n)) return u;
return - 1
}
function r(n, t, r) {
if (t !== t) return p(n, r);
r -= 1;
for (var e = n.length; ++r < e; ) if (n[r] === t) return r;
return - 1
}
function e(n) {
return typeof n == 'function' || false
}
function u(n) {
return null == n ? '' : n + ''
}
function o(n, t) {
for (var r = - 1, e = n.length; ++r < e && - 1 < t.indexOf(n.charAt(r)); );
return r
}
function i(n, t) {
for (var r = n.length; r-- && - 1 < t.indexOf(n.charAt(r)); );
return r
}
function f(t, r) {
return n(t.a, r.a) || t.b - r.b
}
function a(n) {
return Nn[n]
}
function c(n) {
return Tn[n]
}
function l(n, t, r) {
return t ? n = Bn[n] : r && (n = Dn[n]),
'\\' + n
}
function s(n) {
return '\\' + Dn[n]
}
function p(n, t, r) {
var e = n.length;
for (t += r ? 0 : - 1; r ? t-- : ++t < e; ) {
var u = n[t];
if (u !== u) return t
}
return - 1
}
function h(n) {
return !!n && typeof n == 'object'
}
function _(n) {
return 160 >= n && 9 <= n && 13 >= n || 32 == n || 160 == n || 5760 == n || 6158 == n || 8192 <= n && (8202 >= n || 8232 == n || 8233 == n || 8239 == n || 8287 == n || 12288 == n || 65279 == n);
}
function v(n, t) {
for (var r = - 1, e = n.length, u = - 1, o = [
]; ++r < e; ) n[r] === t && (n[r] = z, o[++u] = r);
return o
}
function g(n) {
for (var t = - 1, r = n.length; ++t < r && _(n.charCodeAt(t)); );
return t
}
function y(n) {
for (var t = n.length; t-- && _(n.charCodeAt(t)); );
return t
}
function d(n) {
return Ln[n]
}
function m(_) {
function Nn(n) {
if (h(n) && !(Oo(n) || n instanceof zn)) {
if (n instanceof Ln) return n;
if (nu.call(n, '__chain__') && nu.call(n, '__wrapped__')) return Mr(n)
}
return new Ln(n)
}
function Tn() {
}
function Ln(n, t, r) {
this.__wrapped__ = n,
this.__actions__ = r || [],
this.__chain__ = !!t
}
function zn(n) {
this.__wrapped__ = n,
this.__actions__ = [
],
this.__dir__ = 1,
this.__filtered__ = false,
this.__iteratees__ = [
],
this.__takeCount__ = Ru,
this.__views__ = [
]
}
function Bn() {
this.__data__ = {
}
}
function Dn(n) {
var t = n ? n.length : 0;
for (this.data = {
hash: gu(null),
set: new lu
}; t--; ) this.push(n[t])
}
function Mn(n, t) {
var r = n.data;
return (typeof t == 'string' || ge(t) ? r.set.has(t)  : r.hash[t]) ? 0 : - 1
}
function qn(n, t) {
var r = - 1,
e = n.length;
for (t || (t = Be(e)); ++r < e; ) t[r] = n[r];
return t
}
function Pn(n, t) {
for (var r = - 1, e = n.length; ++r < e && false !== t(n[r], r, n); );
return n
}
function Kn(n, t) {
for (var r = - 1, e = n.length; ++r < e; ) if (!t(n[r], r, n)) return false;
return true
}
function Vn(n, t) {
for (var r = - 1, e = n.length, u = - 1, o = [
]; ++r < e; ) {
var i = n[r];
t(i, r, n) && (o[++u] = i)
}
return o
}
function Gn(n, t) {
for (var r = - 1, e = n.length, u = Be(e); ++r < e; ) u[r] = t(n[r], r, n);
return u
}
function Jn(n, t) {
for (var r = - 1, e = t.length, u = n.length; ++r < e; ) n[u + r] = t[r];
return n
}
function Xn(n, t, r, e) {
var u = - 1,
o = n.length;
for (e && o && (r = n[++u]); ++u < o; ) r = t(r, n[u], u, n);
return r
}
function Hn(n, t) {
for (var r = - 1, e = n.length; ++r < e; ) if (t(n[r], r, n)) return true;
return false
}
function Qn(n, t, r, e) {
return n !== w && nu.call(e, r) ? n : t
}
function nt(n, t, r) {
for (var e = - 1, u = zo(t), o = u.length; ++e < o; ) {
var i = u[e],
f = n[i],
a = r(f, t[i], i, n, t);
(a === a ? a === f : f !== f) && (f !== w || i in n) || (n[i] = a)
}
return n
}
function tt(n, t) {
return null == t ? n : et(t, zo(t), n)
}
function rt(n, t) {
for (var r = - 1, e = null == n, u = !e && Er(n), o = u ? n.length : 0, i = t.length, f = Be(i); ++r < i; ) {
var a = t[r];
f[r] = u ? Cr(a, o) ? n[a] : w : e ? w : n[a]
}
return f
}
function et(n, t, r) {
r || (r = {
});
for (var e = - 1, u = t.length; ++e < u; ) {
var o = t[e];
r[o] = n[o]
}
return r
}
function ut(n, t, r) {
var e = typeof n;
return 'function' == e ? t === w ? n : Bt(n, t, r)  : null == n ? Fe : 'object' == e ? bt(n)  : t === w ? ze(n)  : xt(n, t)
}
function ot(n, t, r, e, u, o, i) {
var f;
if (r && (f = u ? r(n, e, u)  : r(n)), f !== w) return f;
if (!ge(n)) return n;
if (e = Oo(n)) {
if (f = kr(n), !t) return qn(n, f)
} else {
var a = ru.call(n),
c = a == K;
if (a != Z && a != B && (!c || u)) return Fn[a] ? Rr(n, a, t)  : u ? n : {
};
if (f = Ir(c ? {
}
 : n), !t) return tt(f, n)
}
for (o || (o = [
]), i || (i = [
]), u = o.length; u--; ) if (o[u] == n) return i[u];
return o.push(n),
i.push(f),
(e ? Pn : _t) (n, function (e, u) {
f[u] = ot(e, t, r, u, n, o, i)
}),
f
}
function it(n, t, r) {
if (typeof n != 'function') throw new Ge(L);
return su(function () {
n.apply(w, r)
}, t)
}
function ft(n, t) {
var e = n ? n.length : 0,
u = [
];
if (!e) return u;
var o = - 1,
i = xr(),
f = i === r,
a = f && t.length >= F && gu && lu ? new Dn(t)  : null,
c = t.length;
a && (i = Mn, f = false, t = a);
n: for (; ++o < e; ) if (a = n[o], f && a === a) {
for (var l = c; l--; ) if (t[l] === a) continue n;
u.push(a)
} else 0 > i(t, a, 0) && u.push(a);
return u
}
function at(n, t) {
var r = true;
return Su(n, function (n, e, u) {
return r = !!t(n, e, u)
}),
r
}
function ct(n, t, r, e) {
var u = e,
o = u;
return Su(n, function (n, i, f) {
i = + t(n, i, f),
(r(i, u) || i === e && i === o) && (u = i, o = n)
}),
o
}
function lt(n, t) {
var r = [
];
return Su(n, function (n, e, u) {
t(n, e, u) && r.push(n)
}),
r
}
function st(n, t, r, e) {
var u;
return r(n, function (n, r, o) {
return t(n, r, o) ? (u = e ? r : n, false)  : void 0
}),
u
}
function pt(n, t, r, e) {
e || (e = [
]);
for (var u = - 1, o = n.length; ++u < o; ) {
var i = n[u];
h(i) && Er(i) && (r || Oo(i) || pe(i)) ? t ? pt(i, t, r, e)  : Jn(e, i)  : r || (e[e.length] = i)
}
return e
}
function ht(n, t) {
Nu(n, t, Re)
}
function _t(n, t) {
return Nu(n, t, zo)
}
function vt(n, t) {
return Tu(n, t, zo)
}
function gt(n, t) {
for (var r = - 1, e = t.length, u = - 1, o = [
]; ++r < e; ) {
var i = t[r];
ve(n[i]) && (o[++u] = i)
}
return o
}
function yt(n, t, r) {
if (null != n) {
r !== w && r in Br(n) && (t = [
r
]),
r = 0;
for (var e = t.length; null != n && r < e; ) n = n[t[r++]];
return r && r == e ? n : w
}
}
function dt(n, t, r, e, u, o) {
if (n === t) n = true;
 else if (null == n || null == t || !ge(n) && !h(t)) n = n !== n && t !== t;
 else n: {
var i = dt,
f = Oo(n),
a = Oo(t),
c = D,
l = D;
f || (c = ru.call(n), c == B ? c = Z : c != Z && (f = xe(n))),
a || (l = ru.call(t), l == B ? l = Z : l != Z && xe(t));
var s = c == Z,
a = l == Z,
l = c == l;
if (!l || f || s) {
if (!e && (c = s && nu.call(n, '__wrapped__'), a = a && nu.call(t, '__wrapped__'), c || a)) {
n = i(c ? n.value()  : n, a ? t.value()  : t, r, e, u, o);
break n
}
if (l) {
for (u || (u = [
]), o || (o = [
]), c = u.length; c--; ) if (u[c] == n) {
  n = o[c] == t;
  break n
}
u.push(n),
o.push(t),
n = (f ? yr : mr) (n, t, i, r, e, u, o),
u.pop(),
o.pop()
} else n = false
} else n = dr(n, t, c)
}
return n
}
function mt(n, t, r) {
var e = t.length,
u = e,
o = !r;
if (null == n) return !u;
for (n = Br(n); e--; ) {
var i = t[e];
if (o && i[2] ? i[1] !== n[i[0]] : !(i[0] in n)) return false
}
for (; ++e < u; ) {
var i = t[e],
f = i[0],
a = n[f],
c = i[1];
if (o && i[2]) {
if (a === w && !(f in n)) return false
} else if (i = r ? r(a, c, f)  : w, i === w ? !dt(c, a, r, true)  : !i) return false
}
return true
}
function wt(n, t) {
var r = - 1,
e = Er(n) ? Be(n.length)  : [
];
return Su(n, function (n, u, o) {
e[++r] = t(n, u, o)
}),
e
}
function bt(n) {
var t = Ar(n);
if (1 == t.length && t[0][2]) {
var r = t[0][0],
e = t[0][1];
return function (n) {
return null == n ? false : n[r] === e && (e !== w || r in Br(n))
}
}
return function (n) {
return mt(n, t)
}
}
function xt(n, t) {
var r = Oo(n),
e = Wr(n) && t === t && !ge(t),
u = n + '';
return n = Dr(n),
function (o) {
if (null == o) return false;
var i = u;
if (o = Br(o), !(!r && e || i in o)) {
if (o = 1 == n.length ? o : yt(o, Et(n, 0, - 1)), null == o) return false;
i = Zr(n),
o = Br(o)
}
return o[i] === t ? t !== w || i in o : dt(t, o[i], w, true)
}
}
function At(n, t, r, e, u) {
if (!ge(n)) return n;
var o = Er(t) && (Oo(t) || xe(t)),
i = o ? w : zo(t);
return Pn(i || t, function (f, a) {
if (i && (a = f, f = t[a]), h(f)) {
e || (e = [
]),
u || (u = [
]);
n: {
for (var c = a, l = e, s = u, p = l.length, _ = t[c]; p--; ) if (l[p] == _) {
  n[c] = s[p];
  break n
}
var p = n[c],
v = r ? r(p, _, c, n, t)  : w,
g = v === w;
g && (v = _, Er(_) && (Oo(_) || xe(_)) ? v = Oo(p) ? p : Er(p) ? qn(p)  : [
] : me(_) || pe(_) ? v = pe(p) ? ke(p)  : me(p) ? p : {
}
 : g = false),
l.push(_),
s.push(v),
g ? n[c] = At(v, _, r, l, s)  : (v === v ? v !== p : p === p) && (n[c] = v)
}
} else c = n[a],
l = r ? r(c, f, a, n, t)  : w,
(s = l === w) && (l = f),
l === w && (!o || a in n) || !s && (l === l ? l === c : c !== c) || (n[a] = l);
}),
n
}
function jt(n) {
return function (t) {
return null == t ? w : t[n]
}
}
function kt(n) {
var t = n + '';
return n = Dr(n),
function (r) {
return yt(r, n, t)
}
}
function It(n, t) {
for (var r = n ? t.length : 0; r--; ) {
var e = t[r];
if (e != u && Cr(e)) {
var u = e;
pu.call(n, e, 1)
}
}
}
function Rt(n, t) {
return n + yu(ku() * (t - n + 1))
}
function Ot(n, t, r, e, u) {
return u(n, function (n, u, o) {
r = e ? (e = false, n)  : t(r, n, u, o)
}),
r
}
function Et(n, t, r) {
var e = - 1,
u = n.length;
for (t = null == t ? 0 : + t || 0, 0 > t && (t = - t > u ? 0 : u + t), r = r === w || r > u ? u : + r || 0, 0 > r && (r += u), u = t > r ? 0 : r - t >>> 0, t >>>= 0, r = Be(u); ++e < u; ) r[e] = n[e + t];
return r
}
function Ct(n, t) {
var r;
return Su(n, function (n, e, u) {
return r = t(n, e, u),
!r
}),
!!r
}
function Ut(n, t) {
var r = n.length;
for (n.sort(t); r--; ) n[r] = n[r].c;
return n
}
function Wt(t, r, e) {
var u = wr(),
o = - 1;
return r = Gn(r, function (n) {
return u(n)
}),
t = wt(t, function (n) {
return {
a: Gn(r, function (t) {
return t(n)
}),
b: ++o,
c: n
}
}),
Ut(t, function (t, r) {
var u;
n: {
for (var o = - 1, i = t.a, f = r.a, a = i.length, c = e.length; ++o < a; ) if (u = n(i[o], f[o])) {
if (o >= c) break n;
o = e[o],
u *= 'asc' === o || true === o ? 1 : - 1;
break n
}
u = t.b - r.b
}
return u
})
}
function $t(n, t) {
var r = 0;
return Su(n, function (n, e, u) {
r += + t(n, e, u) || 0
}),
r
}
function St(n, t) {
var e = - 1,
u = xr(),
o = n.length,
i = u === r,
f = i && o >= F,
a = f && gu && lu ? new Dn(void 0)  : null,
c = [
];
a ? (u = Mn, i = false)  : (f = false, a = t ? [
] : c);
n: for (; ++e < o; ) {
var l = n[e],
s = t ? t(l, e, n)  : l;
if (i && l === l) {
for (var p = a.length; p--; ) if (a[p] === s) continue n;
t && a.push(s),
c.push(l)
} else 0 > u(a, s, 0) && ((t || f) && a.push(s), c.push(l))
}
return c
}
function Ft(n, t) {
for (var r = - 1, e = t.length, u = Be(e); ++r < e; ) u[r] = n[t[r]];
return u
}
function Nt(n, t, r, e) {
for (var u = n.length, o = e ? u : - 1; (e ? o-- : ++o < u) && t(n[o], o, n); );
return r ? Et(n, e ? 0 : o, e ? o + 1 : u)  : Et(n, e ? o + 1 : 0, e ? u : o)
}
function Tt(n, t) {
var r = n;
r instanceof zn && (r = r.value());
for (var e = - 1, u = t.length; ++e < u; ) var o = t[e],
r = o.func.apply(o.thisArg, Jn([r], o.args));
return r
}
function Lt(n, t, r) {
var e = 0,
u = n ? n.length : e;
if (typeof t == 'number' && t === t && u <= Eu) {
for (; e < u; ) {
var o = e + u >>> 1,
i = n[o];
(r ? i <= t : i < t) && null !== i ? e = o + 1 : u = o
}
return u
}
return zt(n, t, Fe, r)
}
function zt(n, t, r, e) {
t = r(t);
for (var u = 0, o = n ? n.length : 0, i = t !== t, f = null === t, a = t === w; u < o; ) {
var c = yu((u + o) / 2),
l = r(n[c]),
s = l !== w,
p = l === l;
(i ? p || e : f ? p && s && (e || null != l)  : a ? p && (e || s)  : null == l ? 0 : e ? l <= t : l < t) ? u = c + 1 : o = c
}
return xu(o, Ou)
}
function Bt(n, t, r) {
if (typeof n != 'function') return Fe;
if (t === w) return n;
switch (r) {
case 1:
return function (r) {
return n.call(t, r)
};
case 3:
return function (r, e, u) {
return n.call(t, r, e, u)
};
case 4:
return function (r, e, u, o) {
return n.call(t, r, e, u, o)
};
case 5:
return function (r, e, u, o, i) {
return n.call(t, r, e, u, o, i)
}
}
return function () {
return n.apply(t, arguments)
}
}
function Dt(n) {
var t = new ou(n.byteLength);
return new hu(t).set(new hu(n)),
t
}
function Mt(n, t, r) {
for (var e = r.length, u = - 1, o = bu(n.length - e, 0), i = - 1, f = t.length, a = Be(f + o); ++i < f; ) a[i] = t[i];
for (; ++u < e; ) a[r[u]] = n[u];
for (; o--; ) a[i++] = n[u++];
return a
}
function qt(n, t, r) {
for (var e = - 1, u = r.length, o = - 1, i = bu(n.length - u, 0), f = - 1, a = t.length, c = Be(i + a); ++o < i; ) c[o] = n[o];
for (i = o; ++f < a; ) c[i + f] = t[f];
for (; ++e < u; ) c[i + r[e]] = n[o++];
return c
}
function Pt(n, t) {
return function (r, e, u) {
var o = t ? t()  : {
};
if (e = wr(e, u, 3), Oo(r)) {
u = - 1;
for (var i = r.length; ++u < i; ) {
var f = r[u];
n(o, f, e(f, u, r), r)
}
} else Su(r, function (t, r, u) {
n(o, t, e(t, r, u), u)
});
return o
}
}
function Kt(n) {
return le(function (t, r) {
var e = - 1,
u = null == t ? 0 : r.length,
o = 2 < u ? r[u - 2] : w,
i = 2 < u ? r[2] : w,
f = 1 < u ? r[u - 1] : w;
for (typeof o == 'function' ? (o = Bt(o, f, 5), u -= 2)  : (o = typeof f == 'function' ? f : w, u -= o ? 1 : 0), i && Ur(r[0], r[1], i) && (o = 3 > u ? w : o, u = 1); ++e < u; ) (i = r[e]) && n(t, i, o);
return t
})
}
function Vt(n, t) {
return function (r, e) {
var u = r ? Bu(r)  : 0;
if (!Sr(u)) return n(r, e);
for (var o = t ? u : - 1, i = Br(r); (t ? o-- : ++o < u) && false !== e(i[o], o, i); );
return r
}
}
function Zt(n) {
return function (t, r, e) {
var u = Br(t);
e = e(t);
for (var o = e.length, i = n ? o : - 1; n ? i-- : ++i < o; ) {
var f = e[i];
if (false === r(u[f], f, u)) break
}
return t
}
}
function Yt(n, t) {
function r() {
return (this && this !== Zn && this instanceof r ? e : n).apply(t, arguments)
}
var e = Jt(n);
return r
}
function Gt(n) {
return function (t) {
var r = - 1;
t = $e(Ce(t));
for (var e = t.length, u = ''; ++r < e; ) u = n(u, t[r], r);
return u
}
}
function Jt(n) {
return function () {
var t = arguments;
switch (t.length) {
case 0:
return new n;
case 1:
return new n(t[0]);
case 2:
return new n(t[0], t[1]);
case 3:
return new n(t[0], t[1], t[2]);
case 4:
return new n(t[0], t[1], t[2], t[3]);
case 5:
return new n(t[0], t[1], t[2], t[3], t[4]);
case 6:
return new n(t[0], t[1], t[2], t[3], t[4], t[5]);
case 7:
return new n(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
}
var r = $u(n.prototype),
t = n.apply(r, t);
return ge(t) ? t : r
}
}
function Xt(n) {
function t(r, e, u) {
return u && Ur(r, e, u) && (e = w),
r = gr(r, n, w, w, w, w, w, e),
r.placeholder = t.placeholder,
r
}
return t
}
function Ht(n, t) {
return le(function (r) {
var e = r[0];
return null == e ? e : (r.push(t), n.apply(w, r))
})
}
function Qt(n, t) {
return function (r, e, u) {
if (u && Ur(r, e, u) && (e = w), e = wr(e, u, 3), 1 == e.length) {
u = r = Oo(r) ? r : zr(r);
for (var o = e, i = - 1, f = u.length, a = t, c = a; ++i < f; ) {
var l = u[i],
s = + o(l);
n(s, a) && (a = s, c = l)
}
if (u = c, !r.length || u !== t) return u
}
return ct(r, e, n, t)
}
}
function nr(n, r) {
return function (e, u, o) {
return u = wr(u, o, 3),
Oo(e) ? (u = t(e, u, r), - 1 < u ? e[u] : w)  : st(e, u, n)
}
}
function tr(n) {
return function (r, e, u) {
return r && r.length ? (e = wr(e, u, 3), t(r, e, n))  : - 1
}
}
function rr(n) {
return function (t, r, e) {
return r = wr(r, e, 3),
st(t, r, n, true)
}
}
function er(n) {
return function () {
for (var t, r = arguments.length, e = n ? r : - 1, u = 0, o = Be(r); n ? e-- : ++e < r; ) {
var i = o[u++] = arguments[e];
if (typeof i != 'function') throw new Ge(L);
!t && Ln.prototype.thru && 'wrapper' == br(i) && (t = new Ln([], true))
}
for (e = t ? - 1 : r; ++e < r; ) {
var i = o[e],
u = br(i),
f = 'wrapper' == u ? zu(i)  : w;
t = f && $r(f[0]) && f[1] == (E | k | R | C) && !f[4].length && 1 == f[9] ? t[br(f[0])].apply(t, f[3])  : 1 == i.length && $r(i) ? t[u]()  : t.thru(i)
}
return function () {
var n = arguments,
e = n[0];
if (t && 1 == n.length && Oo(e) && e.length >= F) return t.plant(e).value();
for (var u = 0, n = r ? o[u].apply(this, n)  : e; ++u < r; ) n = o[u].call(this, n);
return n
}
}
}
function ur(n, t) {
return function (r, e, u) {
return typeof e == 'function' && u === w && Oo(r) ? n(r, e)  : t(r, Bt(e, u, 3))
}
}
function or(n) {
return function (t, r, e) {
return (typeof r != 'function' || e !== w) && (r = Bt(r, e, 3)),
n(t, r, Re)
}
}
function ir(n) {
return function (t, r, e) {
return (typeof r != 'function' || e !== w) && (r = Bt(r, e, 3)),
n(t, r)
}
}
function fr(n) {
return function (t, r, e) {
var u = {
};
return r = wr(r, e, 3),
_t(t, function (t, e, o) {
o = r(t, e, o),
e = n ? o : e,
t = n ? t : o,
u[e] = t
}),
u
}
}
function ar(n) {
return function (t, r, e) {
return t = u(t),
(n ? t : '') + pr(t, r, e) + (n ? '' : t)
}
}
function cr(n) {
var t = le(function (r, e) {
var u = v(e, t.placeholder);
return gr(r, n, w, e, u)
});
return t
}
function lr(n, t) {
return function (r, e, u, o) {
var i = 3 > arguments.length;
return typeof e == 'function' && o === w && Oo(r) ? n(r, e, u, i)  : Ot(r, wr(e, o, 4), u, i, t)
}
}
function sr(n, t, r, e, u, o, i, f, a, c) {
function l() {
for (var m = arguments.length, b = m, j = Be(m); b--; ) j[b] = arguments[b];
if (e && (j = Mt(j, e, u)), o && (j = qt(j, o, i)), _ || y) {
var b = l.placeholder,
k = v(j, b),
m = m - k.length;
if (m < c) {
var I = f ? qn(f)  : w,
m = bu(c - m, 0),
E = _ ? k : w,
k = _ ? w : k,
C = _ ? j : w,
j = _ ? w : j;
return t |= _ ? R : O,
t &= ~(_ ? O : R),
g || (t &= ~(x | A)),
j = [
n,
t,
r,
C,
E,
j,
k,
I,
a,
m
],
I = sr.apply(w, j),
$r(n) && Du(I, j),
I.placeholder = b,
I
}
}
if (b = p ? r : this, I = h ? b[n] : n, f) for (m = j.length, E = xu(f.length, m), k = qn(j); E--; ) C = f[E],
j[E] = Cr(C, m) ? k[C] : w;
return s && a < j.length && (j.length = a),
this && this !== Zn && this instanceof l && (I = d || Jt(n)),
I.apply(b, j)
}
var s = t & E,
p = t & x,
h = t & A,
_ = t & k,
g = t & j,
y = t & I,
d = h ? w : Jt(n);
return l
}
function pr(n, t, r) {
return n = n.length,
t = + t,
n < t && mu(t) ? (t -= n, r = null == r ? ' ' : r + '', Ue(r, vu(t / r.length)).slice(0, t))  : ''
}
function hr(n, t, r, e) {
function u() {
for (var t = - 1, f = arguments.length, a = - 1, c = e.length, l = Be(c + f); ++a < c; ) l[a] = e[a];
for (; f--; ) l[a++] = arguments[++t];
return (this && this !== Zn && this instanceof u ? i : n).apply(o ? r : this, l)
}
var o = t & x,
i = Jt(n);
return u
}
function _r(n) {
var t = Pe[n];
return function (n, r) {
return (r = r === w ? 0 : + r || 0) ? (r = au(10, r), t(n * r) / r)  : t(n)
}
}
function vr(n) {
return function (t, r, e, u) {
var o = wr(e);
return null == e && o === ut ? Lt(t, r, n)  : zt(t, r, o(e, u, 1), n)
}
}
function gr(n, t, r, e, u, o, i, f) {
var a = t & A;
if (!a && typeof n != 'function') throw new Ge(L);
var c = e ? e.length : 0;
if (c || (t &= ~(R | O), e = u = w), c -= u ? u.length : 0, t & O) {
var l = e,
s = u;
e = u = w
}
var p = a ? w : zu(n);
return r = [
n,
t,
r,
e,
u,
l,
s,
o,
i,
f
],
p && (e = r[1], t = p[1], f = e | t, u = t == E && e == k || t == E && e == C && r[7].length <= p[8] || t == (E | C) && e == k, (f < E || u) && (t & x && (r[2] = p[2], f |= e & x ? 0 : j), (e = p[3]) && (u = r[3], r[3] = u ? Mt(u, e, p[4])  : qn(e), r[4] = u ? v(r[3], z)  : qn(p[4])), (e = p[5]) && (u = r[5], r[5] = u ? qt(u, e, p[6])  : qn(e), r[6] = u ? v(r[5], z)  : qn(p[6])), (e = p[7]) && (r[7] = qn(e)), t & E && (r[8] = null == r[8] ? p[8] : xu(r[8], p[8])), null == r[9] && (r[9] = p[9]), r[0] = p[0], r[1] = f), t = r[1], f = r[9]),
r[9] = null == f ? a ? 0 : n.length : bu(f - c, 0) || 0,
(p ? Lu : Du) (t == x ? Yt(r[0], r[2])  : t != R && t != (x | R) || r[4].length ? sr.apply(w, r)  : hr.apply(w, r), r);
}
function yr(n, t, r, e, u, o, i) {
var f = - 1,
a = n.length,
c = t.length;
if (a != c && (!u || c <= a)) return false;
for (; ++f < a; ) {
var l = n[f],
c = t[f],
s = e ? e(u ? c : l, u ? l : c, f)  : w;
if (s !== w) {
if (s) continue;
return false
}
if (u) {
if (!Hn(t, function (n) {
return l === n || r(l, n, e, u, o, i)
})) return false
} else if (l !== c && !r(l, c, e, u, o, i)) return false
}
return true
}
function dr(n, t, r) {
switch (r) {
case M:
case q:
return + n == + t;
case P:
return n.name == t.name && n.message == t.message;
case V:
return n != + n ? t != + t : n == + t;
case Y:
case G:
return n == t + ''
}
return false
}
function mr(n, t, r, e, u, o, i) {
var f = zo(n),
a = f.length,
c = zo(t).length;
if (a != c && !u) return false;
for (c = a; c--; ) {
var l = f[c];
if (!(u ? l in t : nu.call(t, l))) return false
}
for (var s = u; ++c < a; ) {
var l = f[c],
p = n[l],
h = t[l],
_ = e ? e(u ? h : p, u ? p : h, l)  : w;
if (_ === w ? !r(p, h, e, u, o, i)  : !_) return false;
s || (s = 'constructor' == l)
}
return s || (r = n.constructor, e = t.constructor, !(r != e && 'constructor' in n && 'constructor' in t) || typeof r == 'function' && r instanceof r && typeof e == 'function' && e instanceof e) ? true : false
}
function wr(n, t, r) {
var e = Nn.callback || Se,
e = e === Se ? ut : e;
return r ? e(n, t, r)  : e
}
function br(n) {
for (var t = n.name + '', r = Wu[t], e = r ? r.length : 0; e--; ) {
var u = r[e],
o = u.func;
if (null == o || o == n) return u.name
}
return t
}
function xr(n, t, e) {
var u = Nn.indexOf || Vr,
u = u === Vr ? r : u;
return n ? u(n, t, e)  : u
}
function Ar(n) {
n = Oe(n);
for (var t = n.length; t--; ) {
var r = n[t][1];
n[t][2] = r === r && !ge(r)
}
return n
}
function jr(n, t) {
var r = null == n ? w : n[t];
return ye(r) ? r : w
}
function kr(n) {
var t = n.length,
r = new n.constructor(t);
return t && 'string' == typeof n[0] && nu.call(n, 'index') && (r.index = n.index, r.input = n.input),
r
}
function Ir(n) {
return n = n.constructor,
typeof n == 'function' && n instanceof n || (n = Ve),
new n
}
function Rr(n, t, r) {
var e = n.constructor;
switch (t) {
case J:
return Dt(n);
case M:
case q:
return new e( + n);
case X:
case H:
case Q:
case nn:
case tn:
case rn:
case en:
case un:
case on:
return t = n.buffer,
new e(r ? Dt(t)  : t, n.byteOffset, n.length);
case V:
case G:
return new e(n);
case Y:
var u = new e(n.source, kn.exec(n));
u.lastIndex = n.lastIndex
}
return u
}
function Or(n, t, r) {
return null == n || Wr(t, n) || (t = Dr(t), n = 1 == t.length ? n : yt(n, Et(t, 0, - 1)), t = Zr(t)),
t = null == n ? n : n[t],
null == t ? w : t.apply(n, r)
}
function Er(n) {
return null != n && Sr(Bu(n));
}
function Cr(n, t) {
return n = typeof n == 'number' || On.test(n) ? + n : - 1,
t = null == t ? Cu : t,
- 1 < n && 0 == n % 1 && n < t
}
function Ur(n, t, r) {
if (!ge(r)) return false;
var e = typeof t;
return ('number' == e ? Er(r) && Cr(t, r.length)  : 'string' == e && t in r) ? (t = r[t], n === n ? n === t : t !== t)  : false
}
function Wr(n, t) {
var r = typeof n;
return 'string' == r && dn.test(n) || 'number' == r ? true : Oo(n) ? false : !yn.test(n) || null != t && n in Br(t)
}
function $r(n) {
var t = br(n),
r = Nn[t];
return typeof r == 'function' && t in zn.prototype ? n === r ? true : (t = zu(r), !!t && n === t[0])  : false
}
function Sr(n) {
return typeof n == 'number' && - 1 < n && 0 == n % 1 && n <= Cu;
}
function Fr(n, t) {
return n === w ? t : Eo(n, t, Fr)
}
function Nr(n, t) {
n = Br(n);
for (var r = - 1, e = t.length, u = {
}; ++r < e; ) {
var o = t[r];
o in n && (u[o] = n[o])
}
return u
}
function Tr(n, t) {
var r = {
};
return ht(n, function (n, e, u) {
t(n, e, u) && (r[e] = n)
}),
r
}
function Lr(n) {
for (var t = Re(n), r = t.length, e = r && n.length, u = !!e && Sr(e) && (Oo(n) || pe(n)), o = - 1, i = [
]; ++o < r; ) {
var f = t[o];
(u && Cr(f, e) || nu.call(n, f)) && i.push(f)
}
return i
}
function zr(n) {
return null == n ? [
] : Er(n) ? ge(n) ? n : Ve(n)  : Ee(n)
}
function Br(n) {
return ge(n) ? n : Ve(n)
}
function Dr(n) {
if (Oo(n)) return n;
var t = [
];
return u(n).replace(mn, function (n, r, e, u) {
t.push(e ? u.replace(An, '$1')  : r || n)
}),
t
}
function Mr(n) {
return n instanceof zn ? n.clone()  : new Ln(n.__wrapped__, n.__chain__, qn(n.__actions__))
}
function qr(n, t, r) {
return n && n.length ? ((r ? Ur(n, t, r)  : null == t) && (t = 1), Et(n, 0 > t ? 0 : t))  : [
]
}
function Pr(n, t, r) {
var e = n ? n.length : 0;
return e ? ((r ? Ur(n, t, r)  : null == t) && (t = 1), t = e - ( + t || 0), Et(n, 0, 0 > t ? 0 : t))  : [
]
}
function Kr(n) {
return n ? n[0] : w
}
function Vr(n, t, e) {
var u = n ? n.length : 0;
if (!u) return - 1;
if (typeof e == 'number') e = 0 > e ? bu(u + e, 0)  : e;
 else if (e) return e = Lt(n, t),
e < u && (t === t ? t === n[e] : n[e] !== n[e]) ? e : - 1;
return r(n, t, e || 0)
}
function Zr(n) {
var t = n ? n.length : 0;
return t ? n[t - 1] : w
}
function Yr(n) {
return qr(n, 1)
}
function Gr(n, t, e, u) {
if (!n || !n.length) return [];
null != t && typeof t != 'boolean' && (u = e, e = Ur(n, t, u) ? w : t, t = false);
var o = wr();
if ((null != e || o !== ut) && (e = o(e, u, 3)), t && xr() === r) {
t = e;
var i;
e = - 1,
u = n.length;
for (var o = - 1, f = [
]; ++e < u; ) {
var a = n[e],
c = t ? t(a, e, n)  : a;
e && i === c || (i = c, f[++o] = a)
}
n = f
} else n = St(n, e);
return n
}
function Jr(n) {
if (!n || !n.length) return [];
var t = - 1,
r = 0;
n = Vn(n, function (n) {
return Er(n) ? (r = bu(n.length, r), true)  : void 0
});
for (var e = Be(r); ++t < r; ) e[t] = Gn(n, jt(t));
return e
}
function Xr(n, t, r) {
return n && n.length ? (n = Jr(n), null == t ? n : (t = Bt(t, r, 4), Gn(n, function (n) {
return Xn(n, t, w, true)
})))  : [
]
}
function Hr(n, t) {
var r = - 1,
e = n ? n.length : 0,
u = {
};
for (!e || t || Oo(n[0]) || (t = [
]); ++r < e; ) {
var o = n[r];
t ? u[o] = t[r] : o && (u[o[0]] = o[1])
}
return u
}
function Qr(n) {
return n = Nn(n),
n.__chain__ = true,
n
}
function ne(n, t, r) {
return t.call(r, n)
}
function te(n, t, r) {
var e = Oo(n) ? Kn : at;
return r && Ur(n, t, r) && (t = w),
(typeof t != 'function' || r !== w) && (t = wr(t, r, 3)),
e(n, t)
}
function re(n, t, r) {
var e = Oo(n) ? Vn : lt;
return t = wr(t, r, 3),
e(n, t)
}
function ee(n, t, r, e) {
var u = n ? Bu(n)  : 0;
return Sr(u) || (n = Ee(n), u = n.length),
r = typeof r != 'number' || e && Ur(t, r, e) ? 0 : 0 > r ? bu(u + r, 0)  : r || 0,
typeof n == 'string' || !Oo(n) && be(n) ? r <= u && - 1 < n.indexOf(t, r)  : !!u && - 1 < xr(n, t, r)
}
function ue(n, t, r) {
var e = Oo(n) ? Gn : wt;
return t = wr(t, r, 3),
e(n, t)
}
function oe(n, t, r) {
if (r ? Ur(n, t, r)  : null == t) {
n = zr(n);
var e = n.length;
return 0 < e ? n[Rt(0, e - 1)] : w
}
r = - 1,
n = je(n);
var e = n.length,
u = e - 1;
for (t = xu(0 > t ? 0 : + t || 0, e); ++r < t; ) {
var e = Rt(r, u),
o = n[e];
n[e] = n[r],
n[r] = o
}
return n.length = t,
n
}
function ie(n, t, r) {
var e = Oo(n) ? Hn : Ct;
return r && Ur(n, t, r) && (t = w),
(typeof t != 'function' || r !== w) && (t = wr(t, r, 3)),
e(n, t)
}
function fe(n, t) {
var r;
if (typeof t != 'function') {
if (typeof n != 'function') throw new Ge(L);
var e = n;
n = t,
t = e
}
return function () {
return 0 < --n && (r = t.apply(this, arguments)),
1 >= n && (t = w),
r
}
}
function ae(n, t, r) {
function e(t, r) {
r && iu(r),
a = p = h = w,
t && (_ = ho(), c = n.apply(s, f), p || a || (f = s = w))
}
function u() {
var n = t - (ho() - l);
0 >= n || n > t ? e(h, a)  : p = su(u, n)
}
function o() {
e(g, p);
}
function i() {
if (f = arguments, l = ho(), s = this, h = g && (p || !y), false === v) var r = y && !p;
 else {
a || y || (_ = l);
var e = v - (l - _),
i = 0 >= e || e > v;
i ? (a && (a = iu(a)), _ = l, c = n.apply(s, f))  : a || (a = su(o, e))
}
return i && p ? p = iu(p)  : p || t === v || (p = su(u, t)),
r && (i = true, c = n.apply(s, f)),
!i || p || a || (f = s = w),
c
}
var f,
a,
c,
l,
s,
p,
h,
_ = 0,
v = false,
g = true;
if (typeof n != 'function') throw new Ge(L);
if (t = 0 > t ? 0 : + t || 0, true === r) var y = true,
g = false;
 else ge(r) && (y = !!r.leading, v = 'maxWait' in r && bu( + r.maxWait || 0, t), g = 'trailing' in r ? !!r.trailing : g);
return i.cancel = function () {
p && iu(p),
a && iu(a),
_ = 0,
a = p = h = w
},
i
}
function ce(n, t) {
function r() {
var e = arguments,
u = t ? t.apply(this, e)  : e[0],
o = r.cache;
return o.has(u) ? o.get(u)  : (e = n.apply(this, e), r.cache = o.set(u, e), e)
}
if (typeof n != 'function' || t && typeof t != 'function') throw new Ge(L);
return r.cache = new ce.Cache,
r
}
function le(n, t) {
if (typeof n != 'function') throw new Ge(L);
return t = bu(t === w ? n.length - 1 : + t || 0, 0),
function () {
for (var r = arguments, e = - 1, u = bu(r.length - t, 0), o = Be(u); ++e < u; ) o[e] = r[t + e];
switch (t) {
case 0:
return n.call(this, o);
case 1:
return n.call(this, r[0], o);
case 2:
return n.call(this, r[0], r[1], o)
}
for (u = Be(t + 1), e = - 1; ++e < t; ) u[e] = r[e];
return u[t] = o,
n.apply(this, u)
}
}
function se(n, t) {
return n > t
}
function pe(n) {
return h(n) && Er(n) && nu.call(n, 'callee') && !cu.call(n, 'callee')
}
function he(n, t, r, e) {
return e = (r = typeof r == 'function' ? Bt(r, e, 3)  : w) ? r(n, t)  : w,
e === w ? dt(n, t, r)  : !!e
}
function _e(n) {
return h(n) && typeof n.message == 'string' && ru.call(n) == P
}
function ve(n) {
return ge(n) && ru.call(n) == K
}
function ge(n) {
var t = typeof n;
return !!n && ('object' == t || 'function' == t)
}
function ye(n) {
return null == n ? false : ve(n) ? uu.test(Qe.call(n))  : h(n) && Rn.test(n)
}
function de(n) {
return typeof n == 'number' || h(n) && ru.call(n) == V
}
function me(n) {
var t;
if (!h(n) || ru.call(n) != Z || pe(n) || !(nu.call(n, 'constructor') || (t = n.constructor, typeof t != 'function' || t instanceof t))) return false;
var r;
return ht(n, function (n, t) {
r = t
}),
r === w || nu.call(n, r)
}
function we(n) {
return ge(n) && ru.call(n) == Y
}
function be(n) {
return typeof n == 'string' || h(n) && ru.call(n) == G
}
function xe(n) {
return h(n) && Sr(n.length) && !!Sn[ru.call(n)]
}
function Ae(n, t) {
return n < t
}
function je(n) {
var t = n ? Bu(n)  : 0;
return Sr(t) ? t ? qn(n)  : [
] : Ee(n)
}
function ke(n) {
return et(n, Re(n))
}
function Ie(n) {
return gt(n, Re(n))
}
function Re(n) {
if (null == n) return [];
ge(n) || (n = Ve(n));
for (var t = n.length, t = t && Sr(t) && (Oo(n) || pe(n)) && t || 0, r = n.constructor, e = - 1, r = typeof r == 'function' && r.prototype === n, u = Be(t), o = 0 < t; ++e < t; ) u[e] = e + '';
for (var i in n) o && Cr(i, t) || 'constructor' == i && (r || !nu.call(n, i)) || u.push(i);
return u
}
function Oe(n) {
n = Br(n);
for (var t = - 1, r = zo(n), e = r.length, u = Be(e); ++t < e; ) {
var o = r[t];
u[t] = [
o,
n[o]
]
}
return u
}
function Ee(n) {
return Ft(n, zo(n))
}
function Ce(n) {
return (n = u(n)) && n.replace(En, a).replace(xn, '')
}
function Ue(n, t) {
var r = '';
if (n = u(n), t = + t, 1 > t || !n || !mu(t)) return r;
do t % 2 && (r += n),
t = yu(t / 2),
n += n;
while (t);
return r
}
function We(n, t, r) {
var e = n;
return (n = u(n)) ? (r ? Ur(e, t, r)  : null == t) ? n.slice(g(n), y(n) + 1)  : (t += '', n.slice(o(n, t), i(n, t) + 1))  : n
}
function $e(n, t, r) {
return r && Ur(n, t, r) && (t = w),
n = u(n),
n.match(t || Wn) || []
}
function Se(n, t, r) {
return r && Ur(n, t, r) && (t = w),
h(n) ? Ne(n)  : ut(n, t)
}
function Fe(n) {
return n
}
function Ne(n) {
return bt(ot(n, true))
}
function Te(n, t, r) {
if (null == r) {
var e = ge(t),
u = e ? zo(t)  : w;
((u = u && u.length ? gt(t, u)  : w) ? u.length : e) || (u = false, r = t, t = n, n = this)
}
u || (u = gt(t, zo(t)));
var o = true,
e = - 1,
i = ve(n),
f = u.length;
false === r ? o = false : ge(r) && 'chain' in r && (o = r.chain);
for (; ++e < f; ) {
r = u[e];
var a = t[r];
n[r] = a,
i && (n.prototype[r] = function (t) {
return function () {
var r = this.__chain__;
if (o || r) {
var e = n(this.__wrapped__);
return (e.__actions__ = qn(this.__actions__)).push({
  func: t,
  args: arguments,
  thisArg: n
}),
e.__chain__ = r,
e
}
return t.apply(n, Jn([this.value()], arguments));
}
}(a))
}
return n
}
function Le() {
}
function ze(n) {
return Wr(n) ? jt(n)  : kt(n)
}
_ = _ ? Yn.defaults(Zn.Object(), _, Yn.pick(Zn, $n))  : Zn;
var Be = _.Array,
De = _.Date,
Me = _.Error,
qe = _.Function,
Pe = _.Math,
Ke = _.Number,
Ve = _.Object,
Ze = _.RegExp,
Ye = _.String,
Ge = _.TypeError,
Je = Be.prototype,
Xe = Ve.prototype,
He = Ye.prototype,
Qe = qe.prototype.toString,
nu = Xe.hasOwnProperty,
tu = 0,
ru = Xe.toString,
eu = Zn._,
uu = Ze('^' + Qe.call(nu).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'),
ou = _.ArrayBuffer,
iu = _.clearTimeout,
fu = _.parseFloat,
au = Pe.pow,
cu = Xe.propertyIsEnumerable,
lu = jr(_, 'Set'),
su = _.setTimeout,
pu = Je.splice,
hu = _.Uint8Array,
_u = jr(_, 'WeakMap'),
vu = Pe.ceil,
gu = jr(Ve, 'create'),
yu = Pe.floor,
du = jr(Be, 'isArray'),
mu = _.isFinite,
wu = jr(Ve, 'keys'),
bu = Pe.max,
xu = Pe.min,
Au = jr(De, 'now'),
ju = _.parseInt,
ku = Pe.random,
Iu = Ke.NEGATIVE_INFINITY,
Ru = Ke.POSITIVE_INFINITY,
Ou = 4294967294,
Eu = 2147483647,
Cu = 9007199254740991,
Uu = _u && new _u,
Wu = {
};
Nn.support = {
},
Nn.templateSettings = {
escape: _n,
evaluate: vn,
interpolate: gn,
variable: '',
imports: {
_: Nn
}
};
var $u = function () {
function n() {
}
return function (t) {
if (ge(t)) {
n.prototype = t;
var r = new n;
n.prototype = w
}
return r || {
}
}
}(),
Su = Vt(_t),
Fu = Vt(vt, true),
Nu = Zt(),
Tu = Zt(true),
Lu = Uu ? function (n, t) {
return Uu.set(n, t),
n
}
 : Fe,
zu = Uu ? function (n) {
return Uu.get(n)
}
 : Le,
Bu = jt('length'),
Du = function () {
var n = 0,
t = 0;
return function (r, e) {
var u = ho(),
o = S - (u - t);
if (t = u, 0 < o) {
if (++n >= $) return r
} else n = 0;
return Lu(r, e)
}
}(),
Mu = le(function (n, t) {
return h(n) && Er(n) ? ft(n, pt(t, false, true))  : [
]
}),
qu = tr(),
Pu = tr(true),
Ku = le(function (n) {
for (var t = n.length, e = t, u = Be(l), o = xr(), i = o === r, f = [
]; e--; ) {
var a = n[e] = Er(a = n[e]) ? a : [
];
u[e] = i && 120 <= a.length && gu && lu ? new Dn(e && a)  : null
}
var i = n[0],
c = - 1,
l = i ? i.length : 0,
s = u[0];
n: for (; ++c < l; ) if (a = i[c], 0 > (s ? Mn(s, a)  : o(f, a, 0))) {
for (e = t; --e; ) {
var p = u[e];
if (0 > (p ? Mn(p, a)  : o(n[e], a, 0))) continue n
}
s && s.push(a),
f.push(a)
}
return f
}),
Vu = le(function (t, r) {
r = pt(r);
var e = rt(t, r);
return It(t, r.sort(n)),
e
}),
Zu = vr(),
Yu = vr(true),
Gu = le(function (n) {
return St(pt(n, false, true));
}),
Ju = le(function (n, t) {
return Er(n) ? ft(n, t)  : [
]
}),
Xu = le(Jr),
Hu = le(function (n) {
var t = n.length,
r = 2 < t ? n[t - 2] : w,
e = 1 < t ? n[t - 1] : w;
return 2 < t && typeof r == 'function' ? t -= 2 : (r = 1 < t && typeof e == 'function' ? (--t, e)  : w, e = w),
n.length = t,
Xr(n, r, e)
}),
Qu = le(function (n) {
return n = pt(n),
this.thru(function (t) {
t = Oo(t) ? t : [
Br(t)
];
for (var r = n, e = - 1, u = t.length, o = - 1, i = r.length, f = Be(u + i); ++e < u; ) f[e] = t[e];
for (; ++o < i; ) f[e++] = r[o];
return f
})
}),
no = le(function (n, t) {
return rt(n, pt(t))
}),
to = Pt(function (n, t, r) {
nu.call(n, r) ? ++n[r] : n[r] = 1
}),
ro = nr(Su),
eo = nr(Fu, true),
uo = ur(Pn, Su),
oo = ur(function (n, t) {
for (var r = n.length; r-- && false !== t(n[r], r, n); );
return n
}, Fu),
io = Pt(function (n, t, r) {
nu.call(n, r) ? n[r].push(t)  : n[r] = [
t
]
}),
fo = Pt(function (n, t, r) {
n[r] = t
}),
ao = le(function (n, t, r) {
var e = - 1,
u = typeof t == 'function',
o = Wr(t),
i = Er(n) ? Be(n.length)  : [
];
return Su(n, function (n) {
var f = u ? t : o && null != n ? n[t] : w;
i[++e] = f ? f.apply(n, r)  : Or(n, t, r)
}),
i
}),
co = Pt(function (n, t, r) {
n[r ? 0 : 1].push(t)
}, function () {
return [[],
[
]]
}),
lo = lr(Xn, Su),
so = lr(function (n, t, r, e) {
var u = n.length;
for (e && u && (r = n[--u]); u--; ) r = t(r, n[u], u, n);
return r
}, Fu),
po = le(function (n, t) {
if (null == n) return [];
var r = t[2];
return r && Ur(t[0], t[1], r) && (t.length = 1),
Wt(n, pt(t), [
])
}),
ho = Au || function () {
return (new De).getTime()
},
_o = le(function (n, t, r) {
var e = x;
if (r.length) var u = v(r, _o.placeholder),
e = e | R;
return gr(n, e, t, r, u)
}),
vo = le(function (n, t) {
t = t.length ? pt(t)  : Ie(n);
for (var r = - 1, e = t.length; ++r < e; ) {
var u = t[r];
n[u] = gr(n[u], x, n)
}
return n
}),
go = le(function (n, t, r) {
var e = x | A;
if (r.length) var u = v(r, go.placeholder),
e = e | R;
return gr(t, e, n, r, u)
}),
yo = Xt(k),
mo = Xt(I),
wo = le(function (n, t) {
return it(n, 1, t)
}),
bo = le(function (n, t, r) {
return it(n, t, r)
}),
xo = er(),
Ao = er(true),
jo = le(function (n, t) {
if (t = pt(t), typeof n != 'function' || !Kn(t, e)) throw new Ge(L);
var r = t.length;
return le(function (e) {
for (var u = xu(e.length, r); u--; ) e[u] = t[u](e[u]);
return n.apply(this, e)
})
}),
ko = cr(R),
Io = cr(O),
Ro = le(function (n, t) {
return gr(n, C, w, w, w, pt(t))
}),
Oo = du || function (n) {
return h(n) && Sr(n.length) && ru.call(n) == D
},
Eo = Kt(At),
Co = Kt(function (n, t, r) {
return r ? nt(n, t, r)  : tt(n, t)
}),
Uo = Ht(Co, function (n, t) {
return n === w ? t : n
}),
Wo = Ht(Eo, Fr),
$o = rr(_t),
So = rr(vt),
Fo = or(Nu),
No = or(Tu),
To = ir(_t),
Lo = ir(vt),
zo = wu ? function (n) {
var t = null == n ? w : n.constructor;
return typeof t == 'function' && t.prototype === n || typeof n != 'function' && Er(n) ? Lr(n)  : ge(n) ? wu(n)  : [
]
}
 : Lr,
Bo = fr(true),
Do = fr(),
Mo = le(function (n, t) {
if (null == n) return {
};
if ('function' != typeof t[0]) return t = Gn(pt(t), Ye),
Nr(n, ft(Re(n), t));
var r = Bt(t[0], t[1], 3);
return Tr(n, function (n, t, e) {
return !r(n, t, e)
})
}),
qo = le(function (n, t) {
return null == n ? {
}
 : 'function' == typeof t[0] ? Tr(n, Bt(t[0], t[1], 3))  : Nr(n, pt(t))
}),
Po = Gt(function (n, t, r) {
return t = t.toLowerCase(),
n + (r ? t.charAt(0).toUpperCase() + t.slice(1)  : t);
}),
Ko = Gt(function (n, t, r) {
return n + (r ? '-' : '') + t.toLowerCase()
}),
Vo = ar(),
Zo = ar(true),
Yo = Gt(function (n, t, r) {
return n + (r ? '_' : '') + t.toLowerCase()
}),
Go = Gt(function (n, t, r) {
return n + (r ? ' ' : '') + (t.charAt(0).toUpperCase() + t.slice(1))
}),
Jo = le(function (n, t) {
try {
return n.apply(w, t)
} catch (r) {
return _e(r) ? r : new Me(r)
}
}),
Xo = le(function (n, t) {
return function (r) {
return Or(r, n, t)
}
}),
Ho = le(function (n, t) {
return function (r) {
return Or(n, r, t)
}
}),
Qo = _r('ceil'),
ni = _r('floor'),
ti = Qt(se, Iu),
ri = Qt(Ae, Ru),
ei = _r('round');
return Nn.prototype = Tn.prototype,
Ln.prototype = $u(Tn.prototype),
Ln.prototype.constructor = Ln,
zn.prototype = $u(Tn.prototype),
zn.prototype.constructor = zn,
Bn.prototype['delete'] = function (n) {
return this.has(n) && delete this.__data__[n]
},
Bn.prototype.get = function (n) {
return '__proto__' == n ? w : this.__data__[n]
},
Bn.prototype.has = function (n) {
return '__proto__' != n && nu.call(this.__data__, n)
},
Bn.prototype.set = function (n, t) {
return '__proto__' != n && (this.__data__[n] = t),
this
},
Dn.prototype.push = function (n) {
var t = this.data;
typeof n == 'string' || ge(n) ? t.set.add(n)  : t.hash[n] = true;
},
ce.Cache = Bn,
Nn.after = function (n, t) {
if (typeof t != 'function') {
if (typeof n != 'function') throw new Ge(L);
var r = n;
n = t,
t = r
}
return n = mu(n = + n) ? n : 0,
function () {
return 1 > --n ? t.apply(this, arguments)  : void 0
}
},
Nn.ary = function (n, t, r) {
return r && Ur(n, t, r) && (t = w),
t = n && null == t ? n.length : bu( + t || 0, 0),
gr(n, E, w, w, w, w, t)
},
Nn.assign = Co,
Nn.at = no,
Nn.before = fe,
Nn.bind = _o,
Nn.bindAll = vo,
Nn.bindKey = go,
Nn.callback = Se,
Nn.chain = Qr,
Nn.chunk = function (n, t, r) {
t = (r ? Ur(n, t, r)  : null == t) ? 1 : bu(yu(t) || 1, 1),
r = 0;
for (var e = n ? n.length : 0, u = - 1, o = Be(vu(e / t)); r < e; ) o[++u] = Et(n, r, r += t);
return o
},
Nn.compact = function (n) {
for (var t = - 1, r = n ? n.length : 0, e = - 1, u = [
]; ++t < r; ) {
var o = n[t];
o && (u[++e] = o)
}
return u
},
Nn.constant = function (n) {
return function () {
return n
}
},
Nn.countBy = to,
Nn.create = function (n, t, r) {
var e = $u(n);
return r && Ur(n, t, r) && (t = w),
t ? tt(e, t)  : e
},
Nn.curry = yo,
Nn.curryRight = mo,
Nn.debounce = ae,
Nn.defaults = Uo,
Nn.defaultsDeep = Wo,
Nn.defer = wo,
Nn.delay = bo,
Nn.difference = Mu,
Nn.drop = qr,
Nn.dropRight = Pr,
Nn.dropRightWhile = function (n, t, r) {
return n && n.length ? Nt(n, wr(t, r, 3), true, true)  : [
]
},
Nn.dropWhile = function (n, t, r) {
return n && n.length ? Nt(n, wr(t, r, 3), true)  : [
]
},
Nn.fill = function (n, t, r, e) {
var u = n ? n.length : 0;
if (!u) return [];
for (r && typeof r != 'number' && Ur(n, t, r) && (r = 0, e = u), u = n.length, r = null == r ? 0 : + r || 0, 0 > r && (r = - r > u ? 0 : u + r), e = e === w || e > u ? u : + e || 0, 0 > e && (e += u), u = r > e ? 0 : e >>> 0, r >>>= 0; r < u; ) n[r++] = t;
return n
},
Nn.filter = re,
Nn.flatten = function (n, t, r) {
var e = n ? n.length : 0;
return r && Ur(n, t, r) && (t = false),
e ? pt(n, t)  : [
]
},
Nn.flattenDeep = function (n) {
return n && n.length ? pt(n, true)  : [
]
},
Nn.flow = xo,
Nn.flowRight = Ao,
Nn.forEach = uo,
Nn.forEachRight = oo,
Nn.forIn = Fo,
Nn.forInRight = No,
Nn.forOwn = To,
Nn.forOwnRight = Lo,
Nn.functions = Ie,
Nn.groupBy = io,
Nn.indexBy = fo,
Nn.initial = function (n) {
return Pr(n, 1)
},
Nn.intersection = Ku,
Nn.invert = function (n, t, r) {
r && Ur(n, t, r) && (t = w),
r = - 1;
for (var e = zo(n), u = e.length, o = {
}; ++r < u; ) {
var i = e[r],
f = n[i];
t ? nu.call(o, f) ? o[f].push(i)  : o[f] = [
i
] : o[f] = i
}
return o
},
Nn.invoke = ao,
Nn.keys = zo,
Nn.keysIn = Re,
Nn.map = ue,
Nn.mapKeys = Bo,
Nn.mapValues = Do,
Nn.matches = Ne,
Nn.matchesProperty = function (n, t) {
return xt(n, ot(t, true))
},
Nn.memoize = ce,
Nn.merge = Eo,
Nn.method = Xo,
Nn.methodOf = Ho,
Nn.mixin = Te,
Nn.modArgs = jo,
Nn.negate = function (n) {
if (typeof n != 'function') throw new Ge(L);
return function () {
return !n.apply(this, arguments)
}
},
Nn.omit = Mo,
Nn.once = function (n) {
return fe(2, n)
},
Nn.pairs = Oe,
Nn.partial = ko,
Nn.partialRight = Io,
Nn.partition = co,
Nn.pick = qo,
Nn.pluck = function (n, t) {
return ue(n, ze(t))
},
Nn.property = ze,
Nn.propertyOf = function (n) {
return function (t) {
return yt(n, Dr(t), t + '')
}
},
Nn.pull = function () {
var n = arguments,
t = n[0];
if (!t || !t.length) return t;
for (var r = 0, e = xr(), u = n.length; ++r < u; ) for (var o = 0, i = n[r]; - 1 < (o = e(t, i, o)); ) pu.call(t, o, 1);
return t
},
Nn.pullAt = Vu,
Nn.range = function (n, t, r) {
r && Ur(n, t, r) && (t = r = w),
n = + n || 0,
r = null == r ? 1 : + r || 0,
null == t ? (t = n, n = 0)  : t = + t || 0;
var e = - 1;
t = bu(vu((t - n) / (r || 1)), 0);
for (var u = Be(t); ++e < t; ) u[e] = n,
n += r;
return u
},
Nn.rearg = Ro,
Nn.reject = function (n, t, r) {
var e = Oo(n) ? Vn : lt;
return t = wr(t, r, 3),
e(n, function (n, r, e) {
return !t(n, r, e)
})
},
Nn.remove = function (n, t, r) {
var e = [
];
if (!n || !n.length) return e;
var u = - 1,
o = [
],
i = n.length;
for (t = wr(t, r, 3); ++u < i; ) r = n[u],
t(r, u, n) && (e.push(r), o.push(u));
return It(n, o),
e
},
Nn.rest = Yr,
Nn.restParam = le,
Nn.set = function (n, t, r) {
if (null == n) return n;
var e = t + '';
t = null != n[e] || Wr(t, n) ? [
e
] : Dr(t);
for (var e = - 1, u = t.length, o = u - 1, i = n; null != i && ++e < u; ) {
var f = t[e];
ge(i) && (e == o ? i[f] = r : null == i[f] && (i[f] = Cr(t[e + 1]) ? [
] : {
})),
i = i[f]
}
return n
},
Nn.shuffle = function (n) {
return oe(n, Ru)
},
Nn.slice = function (n, t, r) {
var e = n ? n.length : 0;
return e ? (r && typeof r != 'number' && Ur(n, t, r) && (t = 0, r = e), Et(n, t, r))  : [
]
},
Nn.sortBy = function (n, t, r) {
if (null == n) return [];
r && Ur(n, t, r) && (t = w);
var e = - 1;
return t = wr(t, r, 3),
n = wt(n, function (n, r, u) {
return {
a: t(n, r, u),
b: ++e,
c: n
}
}),
Ut(n, f)
},
Nn.sortByAll = po,
Nn.sortByOrder = function (n, t, r, e) {
return null == n ? [
] : (e && Ur(t, r, e) && (r = w), Oo(t) || (t = null == t ? [
] : [
t
]), Oo(r) || (r = null == r ? [
] : [
r
]), Wt(n, t, r))
},
Nn.spread = function (n) {
if (typeof n != 'function') throw new Ge(L);
return function (t) {
return n.apply(this, t)
}
},
Nn.take = function (n, t, r) {
return n && n.length ? ((r ? Ur(n, t, r)  : null == t) && (t = 1), Et(n, 0, 0 > t ? 0 : t))  : [
]
},
Nn.takeRight = function (n, t, r) {
var e = n ? n.length : 0;
return e ? ((r ? Ur(n, t, r)  : null == t) && (t = 1), t = e - ( + t || 0), Et(n, 0 > t ? 0 : t))  : [
]
},
Nn.takeRightWhile = function (n, t, r) {
return n && n.length ? Nt(n, wr(t, r, 3), false, true)  : [
]
},
Nn.takeWhile = function (n, t, r) {
return n && n.length ? Nt(n, wr(t, r, 3))  : [
]
},
Nn.tap = function (n, t, r) {
return t.call(r, n),
n
},
Nn.throttle = function (n, t, r) {
var e = true,
u = true;
if (typeof n != 'function') throw new Ge(L);
return false === r ? e = false : ge(r) && (e = 'leading' in r ? !!r.leading : e, u = 'trailing' in r ? !!r.trailing : u),
ae(n, t, {
leading: e,
maxWait: + t,
trailing: u
})
},
Nn.thru = ne,
Nn.times = function (n, t, r) {
if (n = yu(n), 1 > n || !mu(n)) return [];
var e = - 1,
u = Be(xu(n, 4294967295));
for (t = Bt(t, r, 1); ++e < n; ) 4294967295 > e ? u[e] = t(e)  : t(e);
return u
},
Nn.toArray = je,
Nn.toPlainObject = ke,
Nn.transform = function (n, t, r, e) {
var u = Oo(n) || xe(n);
return t = wr(t, e, 4),
null == r && (u || ge(n) ? (e = n.constructor, r = u ? Oo(n) ? new e : [
] : $u(ve(e) ? e.prototype : w))  : r = {
}),
(u ? Pn : _t) (n, function (n, e, u) {
return t(r, n, e, u)
}),
r
},
Nn.union = Gu,
Nn.uniq = Gr,
Nn.unzip = Jr,
Nn.unzipWith = Xr,
Nn.values = Ee,
Nn.valuesIn = function (n) {
return Ft(n, Re(n))
},
Nn.where = function (n, t) {
return re(n, bt(t))
},
Nn.without = Ju,
Nn.wrap = function (n, t) {
return t = null == t ? Fe : t,
gr(t, R, w, [
n
], [
])
},
Nn.xor = function () {
for (var n = - 1, t = arguments.length; ++n < t; ) {
var r = arguments[n];
if (Er(r)) var e = e ? Jn(ft(e, r), ft(r, e))  : r
}
return e ? St(e)  : [
]
},
Nn.zip = Xu,
Nn.zipObject = Hr,
Nn.zipWith = Hu,
Nn.backflow = Ao,
Nn.collect = ue,
Nn.compose = Ao,
Nn.each = uo,
Nn.eachRight = oo,
Nn.extend = Co,
Nn.iteratee = Se,
Nn.methods = Ie,
Nn.object = Hr,
Nn.select = re,
Nn.tail = Yr,
Nn.unique = Gr,
Te(Nn, Nn),
Nn.add = function (n, t) {
return ( + n || 0) + ( + t || 0)
},
Nn.attempt = Jo,
Nn.camelCase = Po,
Nn.capitalize = function (n) {
return (n = u(n)) && n.charAt(0).toUpperCase() + n.slice(1)
},
Nn.ceil = Qo,
Nn.clone = function (n, t, r, e) {
return t && typeof t != 'boolean' && Ur(n, t, r) ? t = false : typeof t == 'function' && (e = r, r = t, t = false),
typeof r == 'function' ? ot(n, t, Bt(r, e, 3))  : ot(n, t)
},
Nn.cloneDeep = function (n, t, r) {
return typeof t == 'function' ? ot(n, true, Bt(t, r, 3))  : ot(n, true)
},
Nn.deburr = Ce,
Nn.endsWith = function (n, t, r) {
n = u(n),
t += '';
var e = n.length;
return r = r === w ? e : xu(0 > r ? 0 : + r || 0, e),
r -= t.length,
0 <= r && n.indexOf(t, r) == r
},
Nn.escape = function (n) {
return (n = u(n)) && hn.test(n) ? n.replace(sn, c)  : n
},
Nn.escapeRegExp = function (n) {
return (n = u(n)) && bn.test(n) ? n.replace(wn, l)  : n || '(?:)'
},
Nn.every = te,
Nn.find = ro,
Nn.findIndex = qu,
Nn.findKey = $o,
Nn.findLast = eo,
Nn.findLastIndex = Pu,
Nn.findLastKey = So,
Nn.findWhere = function (n, t) {
return ro(n, bt(t))
},
Nn.first = Kr,
Nn.floor = ni,
Nn.get = function (n, t, r) {
return n = null == n ? w : yt(n, Dr(t), t + ''),
n === w ? r : n
},
Nn.gt = se,
Nn.gte = function (n, t) {
return n >= t
},
Nn.has = function (n, t) {
if (null == n) return false;
var r = nu.call(n, t);
if (!r && !Wr(t)) {
if (t = Dr(t), n = 1 == t.length ? n : yt(n, Et(t, 0, - 1)), null == n) return false;
t = Zr(t),
r = nu.call(n, t)
}
return r || Sr(n.length) && Cr(t, n.length) && (Oo(n) || pe(n))
},
Nn.identity = Fe,
Nn.includes = ee,
Nn.indexOf = Vr,
Nn.inRange = function (n, t, r) {
return t = + t || 0,
r === w ? (r = t, t = 0)  : r = + r || 0,
n >= xu(t, r) && n < bu(t, r)
},
Nn.isArguments = pe,
Nn.isArray = Oo,
Nn.isBoolean = function (n) {
return true === n || false === n || h(n) && ru.call(n) == M
},
Nn.isDate = function (n) {
return h(n) && ru.call(n) == q
},
Nn.isElement = function (n) {
return !!n && 1 === n.nodeType && h(n) && !me(n)
},
Nn.isEmpty = function (n) {
return null == n ? true : Er(n) && (Oo(n) || be(n) || pe(n) || h(n) && ve(n.splice)) ? !n.length : !zo(n).length
},
Nn.isEqual = he,
Nn.isError = _e,
Nn.isFinite = function (n) {
return typeof n == 'number' && mu(n)
},
Nn.isFunction = ve,
Nn.isMatch = function (n, t, r, e) {
return r = typeof r == 'function' ? Bt(r, e, 3)  : w,
mt(n, Ar(t), r)
},
Nn.isNaN = function (n) {
return de(n) && n != + n
},
Nn.isNative = ye,
Nn.isNull = function (n) {
return null === n
},
Nn.isNumber = de,
Nn.isObject = ge,
Nn.isPlainObject = me,
Nn.isRegExp = we,
Nn.isString = be,
Nn.isTypedArray = xe,
Nn.isUndefined = function (n) {
return n === w
},
Nn.kebabCase = Ko,
Nn.last = Zr,
Nn.lastIndexOf = function (n, t, r) {
var e = n ? n.length : 0;
if (!e) return - 1;
var u = e;
if (typeof r == 'number') u = (0 > r ? bu(e + r, 0)  : xu(r || 0, e - 1)) + 1;
 else if (r) return u = Lt(n, t, true) - 1,
n = n[u],
(t === t ? t === n : n !== n) ? u : - 1;
if (t !== t) return p(n, u, true);
for (; u--; ) if (n[u] === t) return u;
return - 1
},
Nn.lt = Ae,
Nn.lte = function (n, t) {
return n <= t
},
Nn.max = ti,
Nn.min = ri,
Nn.noConflict = function () {
return Zn._ = eu,
this
},
Nn.noop = Le,
Nn.now = ho,
Nn.pad = function (n, t, r) {
n = u(n),
t = + t;
var e = n.length;
return e < t && mu(t) ? (e = (t - e) / 2, t = yu(e), e = vu(e), r = pr('', e, r), r.slice(0, t) + n + r)  : n
},
Nn.padLeft = Vo,
Nn.padRight = Zo,
Nn.parseInt = function (n, t, r) {
return (r ? Ur(n, t, r)  : null == t) ? t = 0 : t && (t = + t),
n = We(n),
ju(n, t || (In.test(n) ? 16 : 10))
},
Nn.random = function (n, t, r) {
r && Ur(n, t, r) && (t = r = w);
var e = null == n,
u = null == t;
return null == r && (u && typeof n == 'boolean' ? (r = n, n = 1)  : typeof t == 'boolean' && (r = t, u = true)),
e && u && (t = 1, u = false),
n = + n || 0,
u ? (t = n, n = 0)  : t = + t || 0,
r || n % 1 || t % 1 ? (r = ku(), xu(n + r * (t - n + fu('1e-' + ((r + '').length - 1))), t))  : Rt(n, t)
},
Nn.reduce = lo,
Nn.reduceRight = so,
Nn.repeat = Ue,
Nn.result = function (n, t, r) {
var e = null == n ? w : n[t];
return e === w && (null == n || Wr(t, n) || (t = Dr(t), n = 1 == t.length ? n : yt(n, Et(t, 0, - 1)), e = null == n ? w : n[Zr(t)]), e = e === w ? r : e),
ve(e) ? e.call(n)  : e
},
Nn.round = ei,
Nn.runInContext = m,
Nn.size = function (n) {
var t = n ? Bu(n)  : 0;
return Sr(t) ? t : zo(n).length
},
Nn.snakeCase = Yo,
Nn.some = ie,
Nn.sortedIndex = Zu,
Nn.sortedLastIndex = Yu,
Nn.startCase = Go,
Nn.startsWith = function (n, t, r) {
return n = u(n),
r = null == r ? 0 : xu(0 > r ? 0 : + r || 0, n.length),
n.lastIndexOf(t, r) == r
},
Nn.sum = function (n, t, r) {
if (r && Ur(n, t, r) && (t = w), t = wr(t, r, 3), 1 == t.length) {
n = Oo(n) ? n : zr(n),
r = n.length;
for (var e = 0; r--; ) e += + t(n[r]) || 0;
n = e
} else n = $t(n, t);
return n
},
Nn.template = function (n, t, r) {
var e = Nn.templateSettings;
r && Ur(n, t, r) && (t = r = w),
n = u(n),
t = nt(tt({
}, r || t), e, Qn),
r = nt(tt({
}, t.imports), e.imports, Qn);
var o,
i,
f = zo(r),
a = Ft(r, f),
c = 0;
r = t.interpolate || Cn;
var l = '__p+=\'';
r = Ze((t.escape || Cn).source + '|' + r.source + '|' + (r === gn ? jn : Cn).source + '|' + (t.evaluate || Cn).source + '|$', 'g');
var p = 'sourceURL' in t ? '//# sourceURL=' + t.sourceURL + '\n' : '';
if (n.replace(r, function (t, r, e, u, f, a) {
return e || (e = u),
l += n.slice(c, a).replace(Un, s),
r && (o = true, l += '\'+__e(' + r + ')+\''),
f && (i = true, l += '\';' + f + ';\n__p+=\''),
e && (l += '\'+((__t=(' + e + '))==null?\'\':__t)+\''),
c = a + t.length,
t
}), l += '\';', (t = t.variable) || (l = 'with(obj){' + l + '}'), l = (i ? l.replace(fn, '')  : l).replace(an, '$1').replace(cn, '$1;'), l = 'function(' + (t || 'obj') + '){' + (t ? '' : 'obj||(obj={});') + 'var __t,__p=\'\'' + (o ? ',__e=_.escape' : '') + (i ? ',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,\'\')}' : ';') + l + 'return __p}', t = Jo(function () {
return qe(f, p + 'return ' + l).apply(w, a)
}), t.source = l, _e(t)) throw t;
return t
},
Nn.trim = We,
Nn.trimLeft = function (n, t, r) {
var e = n;
return (n = u(n)) ? n.slice((r ? Ur(e, t, r)  : null == t) ? g(n)  : o(n, t + ''))  : n
},
Nn.trimRight = function (n, t, r) {
var e = n;
return (n = u(n)) ? (r ? Ur(e, t, r)  : null == t) ? n.slice(0, y(n) + 1)  : n.slice(0, i(n, t + '') + 1)  : n;
},
Nn.trunc = function (n, t, r) {
r && Ur(n, t, r) && (t = w);
var e = U;
if (r = W, null != t) if (ge(t)) {
var o = 'separator' in t ? t.separator : o,
e = 'length' in t ? + t.length || 0 : e;
r = 'omission' in t ? u(t.omission)  : r
} else e = + t || 0;
if (n = u(n), e >= n.length) return n;
if (e -= r.length, 1 > e) return r;
if (t = n.slice(0, e), null == o) return t + r;
if (we(o)) {
if (n.slice(e).search(o)) {
var i,
f = n.slice(0, e);
for (o.global || (o = Ze(o.source, (kn.exec(o) || '') + 'g')), o.lastIndex = 0; n = o.exec(f); ) i = n.index;
t = t.slice(0, null == i ? e : i)
}
} else n.indexOf(o, e) != e && (o = t.lastIndexOf(o), - 1 < o && (t = t.slice(0, o)));
return t + r
},
Nn.unescape = function (n) {
return (n = u(n)) && pn.test(n) ? n.replace(ln, d)  : n
},
Nn.uniqueId = function (n) {
var t = ++tu;
return u(n) + t
},
Nn.words = $e,
Nn.all = te,
Nn.any = ie,
Nn.contains = ee,
Nn.eq = he,
Nn.detect = ro,
Nn.foldl = lo,
Nn.foldr = so,
Nn.head = Kr,
Nn.include = ee,
Nn.inject = lo,
Te(Nn, function () {
var n = {
};
return _t(Nn, function (t, r) {
Nn.prototype[r] || (n[r] = t)
}),
n
}(), false),
Nn.sample = oe,
Nn.prototype.sample = function (n) {
return this.__chain__ || null != n ? this.thru(function (t) {
return oe(t, n)
})  : oe(this.value());
},
Nn.VERSION = b,
Pn('bind bindKey curry curryRight partial partialRight'.split(' '), function (n) {
Nn[n].placeholder = Nn
}),
Pn(['drop',
'take'], function (n, t) {
zn.prototype[n] = function (r) {
var e = this.__filtered__;
if (e && !t) return new zn(this);
r = null == r ? 1 : bu(yu(r) || 0, 0);
var u = this.clone();
return e ? u.__takeCount__ = xu(u.__takeCount__, r)  : u.__views__.push({
size: r,
type: n + (0 > u.__dir__ ? 'Right' : '')
}),
u
},
zn.prototype[n + 'Right'] = function (t) {
return this.reverse() [n](t).reverse()
}
}),
Pn(['filter',
'map',
'takeWhile'], function (n, t) {
var r = t + 1,
e = r != T;
zn.prototype[n] = function (n, t) {
var u = this.clone();
return u.__iteratees__.push({
iteratee: wr(n, t, 1),
type: r
}),
u.__filtered__ = u.__filtered__ || e,
u
}
}),
Pn(['first',
'last'], function (n, t) {
var r = 'take' + (t ? 'Right' : '');
zn.prototype[n] = function () {
return this[r](1).value() [0]
}
}),
Pn(['initial',
'rest'], function (n, t) {
var r = 'drop' + (t ? '' : 'Right');
zn.prototype[n] = function () {
return this.__filtered__ ? new zn(this)  : this[r](1)
}
}),
Pn(['pluck',
'where'], function (n, t) {
var r = t ? 'filter' : 'map',
e = t ? bt : ze;
zn.prototype[n] = function (n) {
return this[r](e(n))
}
}),
zn.prototype.compact = function () {
return this.filter(Fe)
},
zn.prototype.reject = function (n, t) {
return n = wr(n, t, 1),
this.filter(function (t) {
return !n(t)
})
},
zn.prototype.slice = function (n, t) {
n = null == n ? 0 : + n || 0;
var r = this;
return r.__filtered__ && (0 < n || 0 > t) ? new zn(r)  : (0 > n ? r = r.takeRight( - n)  : n && (r = r.drop(n)), t !== w && (t = + t || 0, r = 0 > t ? r.dropRight( - t)  : r.take(t - n)), r)
},
zn.prototype.takeRightWhile = function (n, t) {
return this.reverse().takeWhile(n, t).reverse()
},
zn.prototype.toArray = function () {
return this.take(Ru);
},
_t(zn.prototype, function (n, t) {
var r = /^(?:filter|map|reject)|While$/.test(t),
e = /^(?:first|last)$/.test(t),
u = Nn[e ? 'take' + ('last' == t ? 'Right' : '')  : t];
u && (Nn.prototype[t] = function () {
function t(n) {
return e && i ? u(n, 1) [0] : u.apply(w, Jn([n], o))
}
var o = e ? [
1
] : arguments,
i = this.__chain__,
f = this.__wrapped__,
a = !!this.__actions__.length,
c = f instanceof zn,
l = o[0],
s = c || Oo(f);
return s && r && typeof l == 'function' && 1 != l.length && (c = s = false),
l = {
func: ne,
args: [
t
],
thisArg: w
},
a = c && !a,
e && !i ? a ? (f = f.clone(), f.__actions__.push(l), n.call(f))  : u.call(w, this.value()) [0] : !e && s ? (f = a ? f : new zn(this), f = n.apply(f, o), f.__actions__.push(l), new Ln(f, i))  : this.thru(t)
})
}),
Pn('join pop push replace shift sort splice split unshift'.split(' '), function (n) {
var t = (/^(?:replace|split)$/.test(n) ? He : Je) [n],
r = /^(?:push|sort|unshift)$/.test(n) ? 'tap' : 'thru',
e = /^(?:join|pop|replace|shift)$/.test(n);
Nn.prototype[n] = function () {
var n = arguments;
return e && !this.__chain__ ? t.apply(this.value(), n)  : this[r](function (r) {
return t.apply(r, n)
})
}
}),
_t(zn.prototype, function (n, t) {
var r = Nn[t];
if (r) {
var e = r.name + '';
(Wu[e] || (Wu[e] = [
])).push({
name: t,
func: r
})
}
}),
Wu[sr(w, A).name] = [
{
name: 'wrapper',
func: w
}
],
zn.prototype.clone = function () {
var n = new zn(this.__wrapped__);
return n.__actions__ = qn(this.__actions__),
n.__dir__ = this.__dir__,
n.__filtered__ = this.__filtered__,
n.__iteratees__ = qn(this.__iteratees__),
n.__takeCount__ = this.__takeCount__,
n.__views__ = qn(this.__views__),
n
},
zn.prototype.reverse = function () {
if (this.__filtered__) {
var n = new zn(this);
n.__dir__ = - 1,
n.__filtered__ = true
} else n = this.clone(),
n.__dir__ *= - 1;
return n
},
zn.prototype.value = function () {
var n,
t = this.__wrapped__.value(),
r = this.__dir__,
e = Oo(t),
u = 0 > r,
o = e ? t.length : 0;
n = o;
for (var i = this.__views__, f = 0, a = - 1, c = i.length; ++a < c; ) {
var l = i[a],
s = l.size;
switch (l.type) {
case 'drop':
f += s;
break;
case 'dropRight':
n -= s;
break;
case 'take':
n = xu(n, f + s);
break;
case 'takeRight':
f = bu(f, n - s)
}
}
if (n = {
start: f,
end: n
}, i = n.start, f = n.end, n = f - i, u = u ? f : i - 1, i = this.__iteratees__, f = i.length, a = 0, c = xu(n, this.__takeCount__), !e || o < F || o == n && c == n) return Tt(t, this.__actions__);
e = [
];
n: for (; n-- && a < c; ) {
for (u += r, o = - 1, l = t[u]; ++o < f; ) {
var p = i[o],
s = p.type,
p = p.iteratee(l);
if (s == T) l = p;
 else if (!p) {
if (s == N) continue n;
break n
}
}
e[a++] = l
}
return e
},
Nn.prototype.chain = function () {
return Qr(this)
},
Nn.prototype.commit = function () {
return new Ln(this.value(), this.__chain__)
},
Nn.prototype.concat = Qu,
Nn.prototype.plant = function (n) {
for (var t, r = this; r instanceof Tn; ) {
var e = Mr(r);
t ? u.__wrapped__ = e : t = e;
var u = e,
r = r.__wrapped__
}
return u.__wrapped__ = n,
t
},
Nn.prototype.reverse = function () {
function n(n) {
return n.reverse()
}
var t = this.__wrapped__;
return t instanceof zn ? (this.__actions__.length && (t = new zn(this)), t = t.reverse(), t.__actions__.push({
func: ne,
args: [
n
],
thisArg: w
}), new Ln(t, this.__chain__))  : this.thru(n)
},
Nn.prototype.toString = function () {
return this.value() + ''
},
Nn.prototype.run = Nn.prototype.toJSON = Nn.prototype.valueOf = Nn.prototype.value = function () {
return Tt(this.__wrapped__, this.__actions__)
},
Nn.prototype.collect = Nn.prototype.map,
Nn.prototype.head = Nn.prototype.first,
Nn.prototype.select = Nn.prototype.filter,
Nn.prototype.tail = Nn.prototype.rest,
Nn
}
var w,
b = '3.10.1',
x = 1,
A = 2,
j = 4,
k = 8,
I = 16,
R = 32,
O = 64,
E = 128,
C = 256,
U = 30,
W = '...',
$ = 150,
S = 16,
F = 200,
N = 1,
T = 2,
L = 'Expected a function',
z = '__lodash_placeholder__',
B = '[object Arguments]',
D = '[object Array]',
M = '[object Boolean]',
q = '[object Date]',
P = '[object Error]',
K = '[object Function]',
V = '[object Number]',
Z = '[object Object]',
Y = '[object RegExp]',
G = '[object String]',
J = '[object ArrayBuffer]',
X = '[object Float32Array]',
H = '[object Float64Array]',
Q = '[object Int8Array]',
nn = '[object Int16Array]',
tn = '[object Int32Array]',
rn = '[object Uint8Array]',
en = '[object Uint8ClampedArray]',
un = '[object Uint16Array]',
on = '[object Uint32Array]',
fn = /\b__p\+='';/g,
an = /\b(__p\+=)''\+/g,
cn = /(__e\(.*?\)|\b__t\))\+'';/g,
ln = /&(?:amp|lt|gt|quot|#39|#96);/g,
sn = /[&<>"'`]/g,
pn = RegExp(ln.source),
hn = RegExp(sn.source),
_n = /<%-([\s\S]+?)%>/g,
vn = /<%([\s\S]+?)%>/g,
gn = /<%=([\s\S]+?)%>/g,
yn = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
dn = /^\w*$/,
mn = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,
wn = /^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,
bn = RegExp(wn.source),
xn = /[\u0300-\u036f\ufe20-\ufe23]/g,
An = /\\(\\)?/g,
jn = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,
kn = /\w*$/,
In = /^0[xX]/,
Rn = /^\[object .+?Constructor\]$/,
On = /^\d+$/,
En = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,
Cn = /($^)/,
Un = /['\n\r\u2028\u2029\\]/g,
Wn = RegExp('[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+', 'g'),
$n = 'Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap'.split(' '),
Sn = {
};
Sn[X] = Sn[H] = Sn[Q] = Sn[nn] = Sn[tn] = Sn[rn] = Sn[en] = Sn[un] = Sn[on] = true,
Sn[B] = Sn[D] = Sn[J] = Sn[M] = Sn[q] = Sn[P] = Sn[K] = Sn['[object Map]'] = Sn[V] = Sn[Z] = Sn[Y] = Sn['[object Set]'] = Sn[G] = Sn['[object WeakMap]'] = false;
var Fn = {
};
Fn[B] = Fn[D] = Fn[J] = Fn[M] = Fn[q] = Fn[X] = Fn[H] = Fn[Q] = Fn[nn] = Fn[tn] = Fn[V] = Fn[Z] = Fn[Y] = Fn[G] = Fn[rn] = Fn[en] = Fn[un] = Fn[on] = true,
Fn[P] = Fn[K] = Fn['[object Map]'] = Fn['[object Set]'] = Fn['[object WeakMap]'] = false;
var Nn = {
'À': 'A',
'Á': 'A',
'Â': 'A',
'Ã': 'A',
'Ä': 'A',
'Å': 'A',
'à': 'a',
'á': 'a',
'â': 'a',
'ã': 'a',
'ä': 'a',
'å': 'a',
'Ç': 'C',
'ç': 'c',
'Ð': 'D',
'ð': 'd',
'È': 'E',
'É': 'E',
'Ê': 'E',
'Ë': 'E',
'è': 'e',
'é': 'e',
'ê': 'e',
'ë': 'e',
'Ì': 'I',
'Í': 'I',
'Î': 'I',
'Ï': 'I',
'ì': 'i',
'í': 'i',
'î': 'i',
'ï': 'i',
'Ñ': 'N',
'ñ': 'n',
'Ò': 'O',
'Ó': 'O',
'Ô': 'O',
'Õ': 'O',
'Ö': 'O',
'Ø': 'O',
'ò': 'o',
'ó': 'o',
'ô': 'o',
'õ': 'o',
'ö': 'o',
'ø': 'o',
'Ù': 'U',
'Ú': 'U',
'Û': 'U',
'Ü': 'U',
'ù': 'u',
'ú': 'u',
'û': 'u',
'ü': 'u',
'Ý': 'Y',
'ý': 'y',
'ÿ': 'y',
'Æ': 'Ae',
'æ': 'ae',
'Þ': 'Th',
'þ': 'th',
'ß': 'ss'
},
Tn = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
'\'': '&#39;',
'`': '&#96;'
},
Ln = {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
'&quot;': '"',
'&#39;': '\'',
'&#96;': '`'
},
zn = {
'function': true,
object: true
},
Bn = {
0: 'x30',
1: 'x31',
2: 'x32',
3: 'x33',
4: 'x34',
5: 'x35',
6: 'x36',
7: 'x37',
8: 'x38',
9: 'x39',
A: 'x41',
B: 'x42',
C: 'x43',
D: 'x44',
E: 'x45',
F: 'x46',
a: 'x61',
b: 'x62',
c: 'x63',
d: 'x64',
e: 'x65',
f: 'x66',
n: 'x6e',
r: 'x72',
t: 'x74',
u: 'x75',
v: 'x76',
x: 'x78'
},
Dn = {
'\\': '\\',
'\'': '\'',
'\n': 'n',
'\r': 'r',
'
': 'u2028',
'
': 'u2029'
},
Mn = zn[typeof exports] && exports && !exports.nodeType && exports,
qn = zn[typeof module] && module && !module.nodeType && module,
Pn = zn[typeof self] && self && self.Object && self,
Kn = zn[typeof window] && window && window.Object && window,
Vn = qn && qn.exports === Mn && Mn,
Zn = Mn && qn && typeof global == 'object' && global && global.Object && global || Kn !== (this && this.window) && Kn || Pn || this,
Yn = m();
typeof define == 'function' && typeof define.amd == 'object' && define.amd ? (Zn._ = Yn, define(function () {
return Yn
}))  : Mn && qn ? Vn ? (qn.exports = Yn)._ = Yn : Mn._ = Yn : Zn._ = Yn
}).call(this);
//! moment.js
//! version : 2.10.6
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
!function (a, b) {
'object' == typeof exports && 'undefined' != typeof module ? module.exports = b()  : 'function' == typeof define && define.amd ? define(b)  : a.moment = b()
}(this, function () {
'use strict';
function a() {
return Hc.apply(null, arguments)
}
function b(a) {
Hc = a
}
function c(a) {
return '[object Array]' === Object.prototype.toString.call(a)
}
function d(a) {
return a instanceof Date || '[object Date]' === Object.prototype.toString.call(a)
}
function e(a, b) {
var c,
d = [
];
for (c = 0; c < a.length; ++c) d.push(b(a[c], c));
return d
}
function f(a, b) {
return Object.prototype.hasOwnProperty.call(a, b)
}
function g(a, b) {
for (var c in b) f(b, c) && (a[c] = b[c]);
return f(b, 'toString') && (a.toString = b.toString),
f(b, 'valueOf') && (a.valueOf = b.valueOf),
a
}
function h(a, b, c, d) {
return Ca(a, b, c, d, !0).utc()
}
function i() {
return {
empty: !1,
unusedTokens: [
],
unusedInput: [
],
overflow: - 2,
charsLeftOver: 0,
nullInput: !1,
invalidMonth: null,
invalidFormat: !1,
userInvalidated: !1,
iso: !1
}
}
function j(a) {
return null == a._pf && (a._pf = i()),
a._pf
}
function k(a) {
if (null == a._isValid) {
var b = j(a);
a._isValid = !(isNaN(a._d.getTime()) || !(b.overflow < 0) || b.empty || b.invalidMonth || b.invalidWeekday || b.nullInput || b.invalidFormat || b.userInvalidated),
a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour)
}
return a._isValid
}
function l(a) {
var b = h(NaN);
return null != a ? g(j(b), a)  : j(b).userInvalidated = !0,
b
}
function m(a, b) {
var c,
d,
e;
if ('undefined' != typeof b._isAMomentObject && (a._isAMomentObject = b._isAMomentObject), 'undefined' != typeof b._i && (a._i = b._i), 'undefined' != typeof b._f && (a._f = b._f), 'undefined' != typeof b._l && (a._l = b._l), 'undefined' != typeof b._strict && (a._strict = b._strict), 'undefined' != typeof b._tzm && (a._tzm = b._tzm), 'undefined' != typeof b._isUTC && (a._isUTC = b._isUTC), 'undefined' != typeof b._offset && (a._offset = b._offset), 'undefined' != typeof b._pf && (a._pf = j(b)), 'undefined' != typeof b._locale && (a._locale = b._locale), Jc.length > 0) for (c in Jc) d = Jc[c],
e = b[d],
'undefined' != typeof e && (a[d] = e);
return a
}
function n(b) {
m(this, b),
this._d = new Date(null != b._d ? b._d.getTime()  : NaN),
Kc === !1 && (Kc = !0, a.updateOffset(this), Kc = !1)
}
function o(a) {
return a instanceof n || null != a && null != a._isAMomentObject
}
function p(a) {
return 0 > a ? Math.ceil(a)  : Math.floor(a)
}
function q(a) {
var b = + a,
c = 0;
return 0 !== b && isFinite(b) && (c = p(b)),
c
}
function r(a, b, c) {
var d,
e = Math.min(a.length, b.length),
f = Math.abs(a.length - b.length),
g = 0;
for (d = 0; e > d; d++) (c && a[d] !== b[d] || !c && q(a[d]) !== q(b[d])) && g++;
return g + f
}
function s() {
}
function t(a) {
return a ? a.toLowerCase().replace('_', '-')  : a
}
function u(a) {
for (var b, c, d, e, f = 0; f < a.length; ) {
for (e = t(a[f]).split('-'), b = e.length, c = t(a[f + 1]), c = c ? c.split('-')  : null; b > 0; ) {
if (d = v(e.slice(0, b).join('-'))) return d;
if (c && c.length >= b && r(e, c, !0) >= b - 1) break;
b--
}
f++
}
return null
}
function v(a) {
var b = null;
if (!Lc[a] && 'undefined' != typeof module && module && module.exports) try {
b = Ic._abbr,
require('./locale/' + a),
w(b)
} catch (c) {
}
return Lc[a]
}
function w(a, b) {
var c;
return a && (c = 'undefined' == typeof b ? y(a)  : x(a, b), c && (Ic = c)),
Ic._abbr
}
function x(a, b) {
return null !== b ? (b.abbr = a, Lc[a] = Lc[a] || new s, Lc[a].set(b), w(a), Lc[a])  : (delete Lc[a], null)
}
function y(a) {
var b;
if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Ic;
if (!c(a)) {
if (b = v(a)) return b;
a = [
a
]
}
return u(a)
}
function z(a, b) {
var c = a.toLowerCase();
Mc[c] = Mc[c + 's'] = Mc[b] = a
}
function A(a) {
return 'string' == typeof a ? Mc[a] || Mc[a.toLowerCase()] : void 0
}
function B(a) {
var b,
c,
d = {
};
for (c in a) f(a, c) && (b = A(c), b && (d[b] = a[c]));
return d
}
function C(b, c) {
return function (d) {
return null != d ? (E(this, b, d), a.updateOffset(this, c), this)  : D(this, b)
}
}
function D(a, b) {
return a._d['get' + (a._isUTC ? 'UTC' : '') + b]()
}
function E(a, b, c) {
return a._d['set' + (a._isUTC ? 'UTC' : '') + b](c)
}
function F(a, b) {
var c;
if ('object' == typeof a) for (c in a) this.set(c, a[c]);
 else if (a = A(a), 'function' == typeof this[a]) return this[a](b);
return this
}
function G(a, b, c) {
var d = '' + Math.abs(a),
e = b - d.length,
f = a >= 0;
return (f ? c ? '+' : '' : '-') + Math.pow(10, Math.max(0, e)).toString().substr(1) + d
}
function H(a, b, c, d) {
var e = d;
'string' == typeof d && (e = function () {
return this[d]()
}),
a && (Qc[a] = e),
b && (Qc[b[0]] = function () {
return G(e.apply(this, arguments), b[1], b[2])
}),
c && (Qc[c] = function () {
return this.localeData().ordinal(e.apply(this, arguments), a)
})
}
function I(a) {
return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, '')  : a.replace(/\\/g, '')
}
function J(a) {
var b,
c,
d = a.match(Nc);
for (b = 0, c = d.length; c > b; b++) Qc[d[b]] ? d[b] = Qc[d[b]] : d[b] = I(d[b]);
return function (e) {
var f = '';
for (b = 0; c > b; b++) f += d[b] instanceof Function ? d[b].call(e, a)  : d[b];
return f
}
}
function K(a, b) {
return a.isValid() ? (b = L(b, a.localeData()), Pc[b] = Pc[b] || J(b), Pc[b](a))  : a.localeData().invalidDate()
}
function L(a, b) {
function c(a) {
return b.longDateFormat(a) || a
}
var d = 5;
for (Oc.lastIndex = 0; d >= 0 && Oc.test(a); ) a = a.replace(Oc, c),
Oc.lastIndex = 0,
d -= 1;
return a
}
function M(a) {
return 'function' == typeof a && '[object Function]' === Object.prototype.toString.call(a)
}
function N(a, b, c) {
dd[a] = M(b) ? b : function (a) {
return a && c ? c : b
}
}
function O(a, b) {
return f(dd, a) ? dd[a](b._strict, b._locale)  : new RegExp(P(a))
}
function P(a) {
return a.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (a, b, c, d, e) {
return b || c || d || e
}).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
}
function Q(a, b) {
var c,
d = b;
for ('string' == typeof a && (a = [
a
]), 'number' == typeof b && (d = function (a, c) {
c[b] = q(a)
}), c = 0; c < a.length; c++) ed[a[c]] = d
}
function R(a, b) {
Q(a, function (a, c, d, e) {
d._w = d._w || {
},
b(a, d._w, d, e)
})
}
function S(a, b, c) {
null != b && f(ed, a) && ed[a](b, c._a, c, a)
}
function T(a, b) {
return new Date(Date.UTC(a, b + 1, 0)).getUTCDate()
}
function U(a) {
return this._months[a.month()]
}
function V(a) {
return this._monthsShort[a.month()]
}
function W(a, b, c) {
var d,
e,
f;
for (this._monthsParse || (this._monthsParse = [
], this._longMonthsParse = [
], this._shortMonthsParse = [
]), d = 0; 12 > d; d++) {
if (e = h([2000,
d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp('^' + this.months(e, '').replace('.', '') + '$', 'i'), this._shortMonthsParse[d] = new RegExp('^' + this.monthsShort(e, '').replace('.', '') + '$', 'i')), c || this._monthsParse[d] || (f = '^' + this.months(e, '') + '|^' + this.monthsShort(e, ''), this._monthsParse[d] = new RegExp(f.replace('.', ''), 'i')), c && 'MMMM' === b && this._longMonthsParse[d].test(a)) return d;
if (c && 'MMM' === b && this._shortMonthsParse[d].test(a)) return d;
if (!c && this._monthsParse[d].test(a)) return d
}
}
function X(a, b) {
var c;
return 'string' == typeof b && (b = a.localeData().monthsParse(b), 'number' != typeof b) ? a : (c = Math.min(a.date(), T(a.year(), b)), a._d['set' + (a._isUTC ? 'UTC' : '') + 'Month'](b, c), a)
}
function Y(b) {
return null != b ? (X(this, b), a.updateOffset(this, !0), this)  : D(this, 'Month')
}
function Z() {
return T(this.year(), this.month())
}
function $(a) {
var b,
c = a._a;
return c && - 2 === j(a).overflow && (b = c[gd] < 0 || c[gd] > 11 ? gd : c[hd] < 1 || c[hd] > T(c[fd], c[gd]) ? hd : c[id] < 0 || c[id] > 24 || 24 === c[id] && (0 !== c[jd] || 0 !== c[kd] || 0 !== c[ld]) ? id : c[jd] < 0 || c[jd] > 59 ? jd : c[kd] < 0 || c[kd] > 59 ? kd : c[ld] < 0 || c[ld] > 999 ? ld : - 1, j(a)._overflowDayOfYear && (fd > b || b > hd) && (b = hd), j(a).overflow = b),
a
}
function _(b) {
a.suppressDeprecationWarnings === !1 && 'undefined' != typeof console && console.warn && console.warn('Deprecation warning: ' + b)
}
function aa(a, b) {
var c = !0;
return g(function () {
return c && (_(a + '\n' + (new Error).stack), c = !1),
b.apply(this, arguments)
}, b)
}
function ba(a, b) {
od[a] || (_(b), od[a] = !0)
}
function ca(a) {
var b,
c,
d = a._i,
e = pd.exec(d);
if (e) {
for (j(a).iso = !0, b = 0, c = qd.length; c > b; b++) if (qd[b][1].exec(d)) {
a._f = qd[b][0];
break
}
for (b = 0, c = rd.length; c > b; b++) if (rd[b][1].exec(d)) {
a._f += (e[6] || ' ') + rd[b][0];
break
}
d.match(ad) && (a._f += 'Z'),
va(a)
} else a._isValid = !1
}
function da(b) {
var c = sd.exec(b._i);
return null !== c ? void (b._d = new Date( + c[1]))  : (ca(b), void (b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b))))
}
function ea(a, b, c, d, e, f, g) {
var h = new Date(a, b, c, d, e, f, g);
return 1970 > a && h.setFullYear(a),
h
}
function fa(a) {
var b = new Date(Date.UTC.apply(null, arguments));
return 1970 > a && b.setUTCFullYear(a),
b
}
function ga(a) {
return ha(a) ? 366 : 365
}
function ha(a) {
return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0
}
function ia() {
return ha(this.year())
}
function ja(a, b, c) {
var d,
e = c - b,
f = c - a.day();
return f > e && (f -= 7),
e - 7 > f && (f += 7),
d = Da(a).add(f, 'd'),
{
week: Math.ceil(d.dayOfYear() / 7),
year: d.year()
}
}
function ka(a) {
return ja(a, this._week.dow, this._week.doy).week
}
function la() {
return this._week.dow
}
function ma() {
return this._week.doy
}
function na(a) {
var b = this.localeData().week(this);
return null == a ? b : this.add(7 * (a - b), 'd')
}
function oa(a) {
var b = ja(this, 1, 4).week;
return null == a ? b : this.add(7 * (a - b), 'd')
}
function pa(a, b, c, d, e) {
var f,
g = 6 + e - d,
h = fa(a, 0, 1 + g),
i = h.getUTCDay();
return e > i && (i += 7),
c = null != c ? 1 * c : e,
f = 1 + g + 7 * (b - 1) - i + c,
{
year: f > 0 ? a : a - 1,
dayOfYear: f > 0 ? f : ga(a - 1) + f
}
}
function qa(a) {
var b = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 86400000) + 1;
return null == a ? b : this.add(a - b, 'd')
}
function ra(a, b, c) {
return null != a ? a : null != b ? b : c
}
function sa(a) {
var b = new Date;
return a._useUTC ? [
b.getUTCFullYear(),
b.getUTCMonth(),
b.getUTCDate()
] : [
b.getFullYear(),
b.getMonth(),
b.getDate()
]
}
function ta(a) {
var b,
c,
d,
e,
f = [
];
if (!a._d) {
for (d = sa(a), a._w && null == a._a[hd] && null == a._a[gd] && ua(a), a._dayOfYear && (e = ra(a._a[fd], d[fd]), a._dayOfYear > ga(e) && (j(a)._overflowDayOfYear = !0), c = fa(e, 0, a._dayOfYear), a._a[gd] = c.getUTCMonth(), a._a[hd] = c.getUTCDate()), b = 0; 3 > b && null == a._a[b]; ++b) a._a[b] = f[b] = d[b];
for (; 7 > b; b++) a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b];
24 === a._a[id] && 0 === a._a[jd] && 0 === a._a[kd] && 0 === a._a[ld] && (a._nextDay = !0, a._a[id] = 0),
a._d = (a._useUTC ? fa : ea).apply(null, f),
null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm),
a._nextDay && (a._a[id] = 24)
}
}
function ua(a) {
var b,
c,
d,
e,
f,
g,
h;
b = a._w,
null != b.GG || null != b.W || null != b.E ? (f = 1, g = 4, c = ra(b.GG, a._a[fd], ja(Da(), 1, 4).year), d = ra(b.W, 1), e = ra(b.E, 1))  : (f = a._locale._week.dow, g = a._locale._week.doy, c = ra(b.gg, a._a[fd], ja(Da(), f, g).year), d = ra(b.w, 1), null != b.d ? (e = b.d, f > e && ++d)  : e = null != b.e ? b.e + f : f),
h = pa(c, d, e, g, f),
a._a[fd] = h.year,
a._dayOfYear = h.dayOfYear
}
function va(b) {
if (b._f === a.ISO_8601) return void ca(b);
b._a = [
],
j(b).empty = !0;
var c,
d,
e,
f,
g,
h = '' + b._i,
i = h.length,
k = 0;
for (e = L(b._f, b._locale).match(Nc) || [], c = 0; c < e.length; c++) f = e[c],
d = (h.match(O(f, b)) || []) [0],
d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && j(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), k += d.length),
Qc[f] ? (d ? j(b).empty = !1 : j(b).unusedTokens.push(f), S(f, d, b))  : b._strict && !d && j(b).unusedTokens.push(f);
j(b).charsLeftOver = i - k,
h.length > 0 && j(b).unusedInput.push(h),
j(b).bigHour === !0 && b._a[id] <= 12 && b._a[id] > 0 && (j(b).bigHour = void 0),
b._a[id] = wa(b._locale, b._a[id], b._meridiem),
ta(b),
$(b)
}
function wa(a, b, c) {
var d;
return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c)  : null != a.isPM ? (d = a.isPM(c), d && 12 > b && (b += 12), d || 12 !== b || (b = 0), b)  : b
}
function xa(a) {
var b,
c,
d,
e,
f;
if (0 === a._f.length) return j(a).invalidFormat = !0,
void (a._d = new Date(NaN));
for (e = 0; e < a._f.length; e++) f = 0,
b = m({
}, a),
null != a._useUTC && (b._useUTC = a._useUTC),
b._f = a._f[e],
va(b),
k(b) && (f += j(b).charsLeftOver, f += 10 * j(b).unusedTokens.length, j(b).score = f, (null == d || d > f) && (d = f, c = b));
g(a, c || b)
}
function ya(a) {
if (!a._d) {
var b = B(a._i);
a._a = [
b.year,
b.month,
b.day || b.date,
b.hour,
b.minute,
b.second,
b.millisecond
],
ta(a)
}
}
function za(a) {
var b = new n($(Aa(a)));
return b._nextDay && (b.add(1, 'd'), b._nextDay = void 0),
b
}
function Aa(a) {
var b = a._i,
e = a._f;
return a._locale = a._locale || y(a._l),
null === b || void 0 === e && '' === b ? l({
nullInput: !0
})  : ('string' == typeof b && (a._i = b = a._locale.preparse(b)), o(b) ? new n($(b))  : (c(e) ? xa(a)  : e ? va(a)  : d(b) ? a._d = b : Ba(a), a))
}
function Ba(b) {
var f = b._i;
void 0 === f ? b._d = new Date : d(f) ? b._d = new Date( + f)  : 'string' == typeof f ? da(b)  : c(f) ? (b._a = e(f.slice(0), function (a) {
return parseInt(a, 10)
}), ta(b))  : 'object' == typeof f ? ya(b)  : 'number' == typeof f ? b._d = new Date(f)  : a.createFromInputFallback(b)
}
function Ca(a, b, c, d, e) {
var f = {
};
return 'boolean' == typeof c && (d = c, c = void 0),
f._isAMomentObject = !0,
f._useUTC = f._isUTC = e,
f._l = c,
f._i = a,
f._f = b,
f._strict = d,
za(f)
}
function Da(a, b, c, d) {
return Ca(a, b, c, d, !1)
}
function Ea(a, b) {
var d,
e;
if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) return Da();
for (d = b[0], e = 1; e < b.length; ++e) (!b[e].isValid() || b[e][a](d)) && (d = b[e]);
return d
}
function Fa() {
var a = [
].slice.call(arguments, 0);
return Ea('isBefore', a)
}
function Ga() {
var a = [
].slice.call(arguments, 0);
return Ea('isAfter', a)
}
function Ha(a) {
var b = B(a),
c = b.year || 0,
d = b.quarter || 0,
e = b.month || 0,
f = b.week || 0,
g = b.day || 0,
h = b.hour || 0,
i = b.minute || 0,
j = b.second || 0,
k = b.millisecond || 0;
this._milliseconds = + k + 1000 * j + 60000 * i + 3600000 * h,
this._days = + g + 7 * f,
this._months = + e + 3 * d + 12 * c,
this._data = {
},
this._locale = y(),
this._bubble()
}
function Ia(a) {
return a instanceof Ha
}
function Ja(a, b) {
H(a, 0, 0, function () {
var a = this.utcOffset(),
c = '+';
return 0 > a && (a = - a, c = '-'),
c + G(~~(a / 60), 2) + b + G(~~a % 60, 2)
})
}
function Ka(a) {
var b = (a || '').match(ad) || [],
c = b[b.length - 1] || [],
d = (c + '').match(xd) || ['-',
0,
0],
e = + (60 * d[1]) + q(d[2]);
return '+' === d[0] ? e : - e
}
function La(b, c) {
var e,
f;
return c._isUTC ? (e = c.clone(), f = (o(b) || d(b) ? + b : + Da(b)) - + e, e._d.setTime( + e._d + f), a.updateOffset(e, !1), e)  : Da(b).local()
}
function Ma(a) {
return 15 * - Math.round(a._d.getTimezoneOffset() / 15)
}
function Na(b, c) {
var d,
e = this._offset || 0;
return null != b ? ('string' == typeof b && (b = Ka(b)), Math.abs(b) < 16 && (b = 60 * b), !this._isUTC && c && (d = Ma(this)), this._offset = b, this._isUTC = !0, null != d && this.add(d, 'm'), e !== b && (!c || this._changeInProgress ? bb(this, Ya(b - e, 'm'), 1, !1)  : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this)  : this._isUTC ? e : Ma(this)
}
function Oa(a, b) {
return null != a ? ('string' != typeof a && (a = - a), this.utcOffset(a, b), this)  : - this.utcOffset()
}
function Pa(a) {
return this.utcOffset(0, a)
}
function Qa(a) {
return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Ma(this), 'm')),
this
}
function Ra() {
return this._tzm ? this.utcOffset(this._tzm)  : 'string' == typeof this._i && this.utcOffset(Ka(this._i)),
this
}
function Sa(a) {
return a = a ? Da(a).utcOffset()  : 0,
(this.utcOffset() - a) % 60 === 0
}
function Ta() {
return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
}
function Ua() {
if ('undefined' != typeof this._isDSTShifted) return this._isDSTShifted;
var a = {
};
if (m(a, this), a = Aa(a), a._a) {
var b = a._isUTC ? h(a._a)  : Da(a._a);
this._isDSTShifted = this.isValid() && r(a._a, b.toArray()) > 0
} else this._isDSTShifted = !1;
return this._isDSTShifted
}
function Va() {
return !this._isUTC
}
function Wa() {
return this._isUTC
}
function Xa() {
return this._isUTC && 0 === this._offset
}
function Ya(a, b) {
var c,
d,
e,
g = a,
h = null;
return Ia(a) ? g = {
ms: a._milliseconds,
d: a._days,
M: a._months
}
 : 'number' == typeof a ? (g = {
}, b ? g[b] = a : g.milliseconds = a)  : (h = yd.exec(a)) ? (c = '-' === h[1] ? - 1 : 1, g = {
y: 0,
d: q(h[hd]) * c,
h: q(h[id]) * c,
m: q(h[jd]) * c,
s: q(h[kd]) * c,
ms: q(h[ld]) * c
})  : (h = zd.exec(a)) ? (c = '-' === h[1] ? - 1 : 1, g = {
y: Za(h[2], c),
M: Za(h[3], c),
d: Za(h[4], c),
h: Za(h[5], c),
m: Za(h[6], c),
s: Za(h[7], c),
w: Za(h[8], c)
})  : null == g ? g = {
}
 : 'object' == typeof g && ('from' in g || 'to' in g) && (e = _a(Da(g.from), Da(g.to)), g = {
}, g.ms = e.milliseconds, g.M = e.months),
d = new Ha(g),
Ia(a) && f(a, '_locale') && (d._locale = a._locale),
d
}
function Za(a, b) {
var c = a && parseFloat(a.replace(',', '.'));
return (isNaN(c) ? 0 : c) * b
}
function $a(a, b) {
var c = {
milliseconds: 0,
months: 0
};
return c.months = b.month() - a.month() + 12 * (b.year() - a.year()),
a.clone().add(c.months, 'M').isAfter(b) && --c.months,
c.milliseconds = + b - + a.clone().add(c.months, 'M'),
c
}
function _a(a, b) {
var c;
return b = La(b, a),
a.isBefore(b) ? c = $a(a, b)  : (c = $a(b, a), c.milliseconds = - c.milliseconds, c.months = - c.months),
c
}
function ab(a, b) {
return function (c, d) {
var e,
f;
return null === d || isNaN( + d) || (ba(b, 'moment().' + b + '(period, number) is deprecated. Please use moment().' + b + '(number, period).'), f = c, c = d, d = f),
c = 'string' == typeof c ? + c : c,
e = Ya(c, d),
bb(this, e, a),
this
}
}
function bb(b, c, d, e) {
var f = c._milliseconds,
g = c._days,
h = c._months;
e = null == e ? !0 : e,
f && b._d.setTime( + b._d + f * d),
g && E(b, 'Date', D(b, 'Date') + g * d),
h && X(b, D(b, 'Month') + h * d),
e && a.updateOffset(b, g || h)
}
function cb(a, b) {
var c = a || Da(),
d = La(c, this).startOf('day'),
e = this.diff(d, 'days', !0),
f = - 6 > e ? 'sameElse' : - 1 > e ? 'lastWeek' : 0 > e ? 'lastDay' : 1 > e ? 'sameDay' : 2 > e ? 'nextDay' : 7 > e ? 'nextWeek' : 'sameElse';
return this.format(b && b[f] || this.localeData().calendar(f, this, Da(c)))
}
function db() {
return new n(this)
}
function eb(a, b) {
var c;
return b = A('undefined' != typeof b ? b : 'millisecond'),
'millisecond' === b ? (a = o(a) ? a : Da(a), + this > + a)  : (c = o(a) ? + a : + Da(a), c < + this.clone().startOf(b))
}
function fb(a, b) {
var c;
return b = A('undefined' != typeof b ? b : 'millisecond'),
'millisecond' === b ? (a = o(a) ? a : Da(a), + a > + this)  : (c = o(a) ? + a : + Da(a), + this.clone().endOf(b) < c)
}
function gb(a, b, c) {
return this.isAfter(a, c) && this.isBefore(b, c)
}
function hb(a, b) {
var c;
return b = A(b || 'millisecond'),
'millisecond' === b ? (a = o(a) ? a : Da(a), + this === + a)  : (c = + Da(a), + this.clone().startOf(b) <= c && c <= + this.clone().endOf(b))
}
function ib(a, b, c) {
var d,
e,
f = La(a, this),
g = 60000 * (f.utcOffset() - this.utcOffset());
return b = A(b),
'year' === b || 'month' === b || 'quarter' === b ? (e = jb(this, f), 'quarter' === b ? e /= 3 : 'year' === b && (e /= 12))  : (d = this - f, e = 'second' === b ? d / 1000 : 'minute' === b ? d / 60000 : 'hour' === b ? d / 3600000 : 'day' === b ? (d - g) / 86400000 : 'week' === b ? (d - g) / 604800000 : d),
c ? e : p(e)
}
function jb(a, b) {
var c,
d,
e = 12 * (b.year() - a.year()) + (b.month() - a.month()),
f = a.clone().add(e, 'months');
return 0 > b - f ? (c = a.clone().add(e - 1, 'months'), d = (b - f) / (f - c))  : (c = a.clone().add(e + 1, 'months'), d = (b - f) / (c - f)),
- (e + d)
}
function kb() {
return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')
}
function lb() {
var a = this.clone().utc();
return 0 < a.year() && a.year() <= 9999 ? 'function' == typeof Date.prototype.toISOString ? this.toDate().toISOString()  : K(a, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]')  : K(a, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]')
}
function mb(b) {
var c = K(this, b || a.defaultFormat);
return this.localeData().postformat(c)
}
function nb(a, b) {
return this.isValid() ? Ya({
to: this,
from: a
}).locale(this.locale()).humanize(!b)  : this.localeData().invalidDate()
}
function ob(a) {
return this.from(Da(), a)
}
function pb(a, b) {
return this.isValid() ? Ya({
from: this,
to: a
}).locale(this.locale()).humanize(!b)  : this.localeData().invalidDate()
}
function qb(a) {
return this.to(Da(), a)
}
function rb(a) {
var b;
return void 0 === a ? this._locale._abbr : (b = y(a), null != b && (this._locale = b), this)
}
function sb() {
return this._locale
}
function tb(a) {
switch (a = A(a)) {
case 'year':
this.month(0);
case 'quarter':
case 'month':
this.date(1);
case 'week':
case 'isoWeek':
case 'day':
this.hours(0);
case 'hour':
this.minutes(0);
case 'minute':
this.seconds(0);
case 'second':
this.milliseconds(0)
}
return 'week' === a && this.weekday(0),
'isoWeek' === a && this.isoWeekday(1),
'quarter' === a && this.month(3 * Math.floor(this.month() / 3)),
this
}
function ub(a) {
return a = A(a),
void 0 === a || 'millisecond' === a ? this : this.startOf(a).add(1, 'isoWeek' === a ? 'week' : a).subtract(1, 'ms')
}
function vb() {
return + this._d - 60000 * (this._offset || 0)
}
function wb() {
return Math.floor( + this / 1000)
}
function xb() {
return this._offset ? new Date( + this)  : this._d
}
function yb() {
var a = this;
return [a.year(),
a.month(),
a.date(),
a.hour(),
a.minute(),
a.second(),
a.millisecond()]
}
function zb() {
var a = this;
return {
years: a.year(),
months: a.month(),
date: a.date(),
hours: a.hours(),
minutes: a.minutes(),
seconds: a.seconds(),
milliseconds: a.milliseconds()
}
}
function Ab() {
return k(this)
}
function Bb() {
return g({
}, j(this))
}
function Cb() {
return j(this).overflow
}
function Db(a, b) {
H(0, [
a,
a.length
], 0, b)
}
function Eb(a, b, c) {
return ja(Da([a,
11,
31 + b - c]), b, c).week
}
function Fb(a) {
var b = ja(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
return null == a ? b : this.add(a - b, 'y')
}
function Gb(a) {
var b = ja(this, 1, 4).year;
return null == a ? b : this.add(a - b, 'y')
}
function Hb() {
return Eb(this.year(), 1, 4)
}
function Ib() {
var a = this.localeData()._week;
return Eb(this.year(), a.dow, a.doy)
}
function Jb(a) {
return null == a ? Math.ceil((this.month() + 1) / 3)  : this.month(3 * (a - 1) + this.month() % 3)
}
function Kb(a, b) {
return 'string' != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), 'number' == typeof a ? a : null)  : parseInt(a, 10)
}
function Lb(a) {
return this._weekdays[a.day()]
}
function Mb(a) {
return this._weekdaysShort[a.day()]
}
function Nb(a) {
return this._weekdaysMin[a.day()]
}
function Ob(a) {
var b,
c,
d;
for (this._weekdaysParse = this._weekdaysParse || [], b = 0; 7 > b; b++) if (this._weekdaysParse[b] || (c = Da([2000,
1]).day(b), d = '^' + this.weekdays(c, '') + '|^' + this.weekdaysShort(c, '') + '|^' + this.weekdaysMin(c, ''), this._weekdaysParse[b] = new RegExp(d.replace('.', ''), 'i')), this._weekdaysParse[b].test(a)) return b
}
function Pb(a) {
var b = this._isUTC ? this._d.getUTCDay()  : this._d.getDay();
return null != a ? (a = Kb(a, this.localeData()), this.add(a - b, 'd'))  : b
}
function Qb(a) {
var b = (this.day() + 7 - this.localeData()._week.dow) % 7;
return null == a ? b : this.add(a - b, 'd')
}
function Rb(a) {
return null == a ? this.day() || 7 : this.day(this.day() % 7 ? a : a - 7)
}
function Sb(a, b) {
H(a, 0, 0, function () {
return this.localeData().meridiem(this.hours(), this.minutes(), b)
})
}
function Tb(a, b) {
return b._meridiemParse
}
function Ub(a) {
return 'p' === (a + '').toLowerCase().charAt(0)
}
function Vb(a, b, c) {
return a > 11 ? c ? 'pm' : 'PM' : c ? 'am' : 'AM'
}
function Wb(a, b) {
b[ld] = q(1000 * ('0.' + a))
}
function Xb() {
return this._isUTC ? 'UTC' : ''
}
function Yb() {
return this._isUTC ? 'Coordinated Universal Time' : ''
}
function Zb(a) {
return Da(1000 * a)
}
function $b() {
return Da.apply(null, arguments).parseZone()
}
function _b(a, b, c) {
var d = this._calendar[a];
return 'function' == typeof d ? d.call(b, c)  : d
}
function ac(a) {
var b = this._longDateFormat[a],
c = this._longDateFormat[a.toUpperCase()];
return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function (a) {
return a.slice(1)
}), this._longDateFormat[a])
}
function bc() {
return this._invalidDate
}
function cc(a) {
return this._ordinal.replace('%d', a)
}
function dc(a) {
return a
}
function ec(a, b, c, d) {
var e = this._relativeTime[c];
return 'function' == typeof e ? e(a, b, c, d)  : e.replace(/%d/i, a)
}
function fc(a, b) {
var c = this._relativeTime[a > 0 ? 'future' : 'past'];
return 'function' == typeof c ? c(b)  : c.replace(/%s/i, b)
}
function gc(a) {
var b,
c;
for (c in a) b = a[c],
'function' == typeof b ? this[c] = b : this['_' + c] = b;
this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source)
}
function hc(a, b, c, d) {
var e = y(),
f = h().set(d, b);
return e[c](f, a)
}
function ic(a, b, c, d, e) {
if ('number' == typeof a && (b = a, a = void 0), a = a || '', null != b) return hc(a, b, c, e);
var f,
g = [
];
for (f = 0; d > f; f++) g[f] = hc(a, f, c, e);
return g
}
function jc(a, b) {
return ic(a, b, 'months', 12, 'month')
}
function kc(a, b) {
return ic(a, b, 'monthsShort', 12, 'month')
}
function lc(a, b) {
return ic(a, b, 'weekdays', 7, 'day')
}
function mc(a, b) {
return ic(a, b, 'weekdaysShort', 7, 'day')
}
function nc(a, b) {
return ic(a, b, 'weekdaysMin', 7, 'day')
}
function oc() {
var a = this._data;
return this._milliseconds = Wd(this._milliseconds),
this._days = Wd(this._days),
this._months = Wd(this._months),
a.milliseconds = Wd(a.milliseconds),
a.seconds = Wd(a.seconds),
a.minutes = Wd(a.minutes),
a.hours = Wd(a.hours),
a.months = Wd(a.months),
a.years = Wd(a.years),
this
}
function pc(a, b, c, d) {
var e = Ya(b, c);
return a._milliseconds += d * e._milliseconds,
a._days += d * e._days,
a._months += d * e._months,
a._bubble()
}
function qc(a, b) {
return pc(this, a, b, 1)
}
function rc(a, b) {
return pc(this, a, b, - 1)
}
function sc(a) {
return 0 > a ? Math.floor(a)  : Math.ceil(a)
}
function tc() {
var a,
b,
c,
d,
e,
f = this._milliseconds,
g = this._days,
h = this._months,
i = this._data;
return f >= 0 && g >= 0 && h >= 0 || 0 >= f && 0 >= g && 0 >= h || (f += 86400000 * sc(vc(h) + g), g = 0, h = 0),
i.milliseconds = f % 1000,
a = p(f / 1000),
i.seconds = a % 60,
b = p(a / 60),
i.minutes = b % 60,
c = p(b / 60),
i.hours = c % 24,
g += p(c / 24),
e = p(uc(g)),
h += e,
g -= sc(vc(e)),
d = p(h / 12),
h %= 12,
i.days = g,
i.months = h,
i.years = d,
this
}
function uc(a) {
return 4800 * a / 146097
}
function vc(a) {
return 146097 * a / 4800
}
function wc(a) {
var b,
c,
d = this._milliseconds;
if (a = A(a), 'month' === a || 'year' === a) return b = this._days + d / 86400000,
c = this._months + uc(b),
'month' === a ? c : c / 12;
switch (b = this._days + Math.round(vc(this._months)), a) {
case 'week':
return b / 7 + d / 604800000;
case 'day':
return b + d / 86400000;
case 'hour':
return 24 * b + d / 3600000;
case 'minute':
return 1440 * b + d / 60000;
case 'second':
return 86400 * b + d / 1000;
case 'millisecond':
return Math.floor(86400000 * b) + d;
default:
throw new Error('Unknown unit ' + a)
}
}
function xc() {
return this._milliseconds + 86400000 * this._days + this._months % 12 * 2592000000 + 31536000000 * q(this._months / 12)
}
function yc(a) {
return function () {
return this.as(a)
}
}
function zc(a) {
return a = A(a),
this[a + 's']()
}
function Ac(a) {
return function () {
return this._data[a]
}
}
function Bc() {
return p(this.days() / 7)
}
function Cc(a, b, c, d, e) {
return e.relativeTime(b || 1, !!c, a, d)
}
function Dc(a, b, c) {
var d = Ya(a).abs(),
e = ke(d.as('s')),
f = ke(d.as('m')),
g = ke(d.as('h')),
h = ke(d.as('d')),
i = ke(d.as('M')),
j = ke(d.as('y')),
k = e < le.s && ['s',
e] || 1 === f && ['m'] || f < le.m && ['mm',
f] || 1 === g && ['h'] || g < le.h && ['hh',
g] || 1 === h && ['d'] || h < le.d && ['dd',
h] || 1 === i && ['M'] || i < le.M && ['MM',
i] || 1 === j && ['y'] || ['yy',
j];
return k[2] = b,
k[3] = + a > 0,
k[4] = c,
Cc.apply(null, k)
}
function Ec(a, b) {
return void 0 === le[a] ? !1 : void 0 === b ? le[a] : (le[a] = b, !0)
}
function Fc(a) {
var b = this.localeData(),
c = Dc(this, !a, b);
return a && (c = b.pastFuture( + this, c)),
b.postformat(c)
}
function Gc() {
var a,
b,
c,
d = me(this._milliseconds) / 1000,
e = me(this._days),
f = me(this._months);
a = p(d / 60),
b = p(a / 60),
d %= 60,
a %= 60,
c = p(f / 12),
f %= 12;
var g = c,
h = f,
i = e,
j = b,
k = a,
l = d,
m = this.asSeconds();
return m ? (0 > m ? '-' : '') + 'P' + (g ? g + 'Y' : '') + (h ? h + 'M' : '') + (i ? i + 'D' : '') + (j || k || l ? 'T' : '') + (j ? j + 'H' : '') + (k ? k + 'M' : '') + (l ? l + 'S' : '')  : 'P0D'
}
var Hc,
Ic,
Jc = a.momentProperties = [
],
Kc = !1,
Lc = {
},
Mc = {
},
Nc = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
Oc = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
Pc = {
},
Qc = {
},
Rc = /\d/,
Sc = /\d\d/,
Tc = /\d{3}/,
Uc = /\d{4}/,
Vc = /[+-]?\d{6}/,
Wc = /\d\d?/,
Xc = /\d{1,3}/,
Yc = /\d{1,4}/,
Zc = /[+-]?\d{1,6}/,
$c = /\d+/,
_c = /[+-]?\d+/,
ad = /Z|[+-]\d\d:?\d\d/gi,
bd = /[+-]?\d+(\.\d{1,3})?/,
cd = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
dd = {
},
ed = {
},
fd = 0,
gd = 1,
hd = 2,
id = 3,
jd = 4,
kd = 5,
ld = 6;
H('M', [
'MM',
2
], 'Mo', function () {
return this.month() + 1
}),
H('MMM', 0, 0, function (a) {
return this.localeData().monthsShort(this, a)
}),
H('MMMM', 0, 0, function (a) {
return this.localeData().months(this, a)
}),
z('month', 'M'),
N('M', Wc),
N('MM', Wc, Sc),
N('MMM', cd),
N('MMMM', cd),
Q(['M',
'MM'], function (a, b) {
b[gd] = q(a) - 1
}),
Q(['MMM',
'MMMM'], function (a, b, c, d) {
var e = c._locale.monthsParse(a, d, c._strict);
null != e ? b[gd] = e : j(c).invalidMonth = a
});
var md = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
nd = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
od = {
};
a.suppressDeprecationWarnings = !1;
var pd = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
qd = [
['YYYYYY-MM-DD',
/[+-]\d{6}-\d{2}-\d{2}/],
[
'YYYY-MM-DD',
/\d{4}-\d{2}-\d{2}/
],
[
'GGGG-[W]WW-E',
/\d{4}-W\d{2}-\d/
],
[
'GGGG-[W]WW',
/\d{4}-W\d{2}/
],
[
'YYYY-DDD',
/\d{4}-\d{3}/
]
],
rd = [
['HH:mm:ss.SSSS',
/(T| )\d\d:\d\d:\d\d\.\d+/],
[
'HH:mm:ss',
/(T| )\d\d:\d\d:\d\d/
],
[
'HH:mm',
/(T| )\d\d:\d\d/
],
[
'HH',
/(T| )\d\d/
]
],
sd = /^\/?Date\((\-?\d+)/i;
a.createFromInputFallback = aa('moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.', function (a) {
a._d = new Date(a._i + (a._useUTC ? ' UTC' : ''))
}),
H(0, [
'YY',
2
], 0, function () {
return this.year() % 100
}),
H(0, [
'YYYY',
4
], 0, 'year'),
H(0, [
'YYYYY',
5
], 0, 'year'),
H(0, [
'YYYYYY',
6,
!0
], 0, 'year'),
z('year', 'y'),
N('Y', _c),
N('YY', Wc, Sc),
N('YYYY', Yc, Uc),
N('YYYYY', Zc, Vc),
N('YYYYYY', Zc, Vc),
Q(['YYYYY',
'YYYYYY'], fd),
Q('YYYY', function (b, c) {
c[fd] = 2 === b.length ? a.parseTwoDigitYear(b)  : q(b)
}),
Q('YY', function (b, c) {
c[fd] = a.parseTwoDigitYear(b)
}),
a.parseTwoDigitYear = function (a) {
return q(a) + (q(a) > 68 ? 1900 : 2000)
};
var td = C('FullYear', !1);
H('w', [
'ww',
2
], 'wo', 'week'),
H('W', [
'WW',
2
], 'Wo', 'isoWeek'),
z('week', 'w'),
z('isoWeek', 'W'),
N('w', Wc),
N('ww', Wc, Sc),
N('W', Wc),
N('WW', Wc, Sc),
R(['w',
'ww',
'W',
'WW'], function (a, b, c, d) {
b[d.substr(0, 1)] = q(a)
});
var ud = {
dow: 0,
doy: 6
};
H('DDD', [
'DDDD',
3
], 'DDDo', 'dayOfYear'),
z('dayOfYear', 'DDD'),
N('DDD', Xc),
N('DDDD', Tc),
Q(['DDD',
'DDDD'], function (a, b, c) {
c._dayOfYear = q(a)
}),
a.ISO_8601 = function () {
};
var vd = aa('moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', function () {
var a = Da.apply(null, arguments);
return this > a ? this : a
}),
wd = aa('moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', function () {
var a = Da.apply(null, arguments);
return a > this ? this : a
});
Ja('Z', ':'),
Ja('ZZ', ''),
N('Z', ad),
N('ZZ', ad),
Q(['Z',
'ZZ'], function (a, b, c) {
c._useUTC = !0,
c._tzm = Ka(a)
});
var xd = /([\+\-]|\d\d)/gi;
a.updateOffset = function () {
};
var yd = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
zd = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;
Ya.fn = Ha.prototype;
var Ad = ab(1, 'add'),
Bd = ab( - 1, 'subtract');
a.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
var Cd = aa('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (a) {
return void 0 === a ? this.localeData()  : this.locale(a)
});
H(0, [
'gg',
2
], 0, function () {
return this.weekYear() % 100
}),
H(0, [
'GG',
2
], 0, function () {
return this.isoWeekYear() % 100
}),
Db('gggg', 'weekYear'),
Db('ggggg', 'weekYear'),
Db('GGGG', 'isoWeekYear'),
Db('GGGGG', 'isoWeekYear'),
z('weekYear', 'gg'),
z('isoWeekYear', 'GG'),
N('G', _c),
N('g', _c),
N('GG', Wc, Sc),
N('gg', Wc, Sc),
N('GGGG', Yc, Uc),
N('gggg', Yc, Uc),
N('GGGGG', Zc, Vc),
N('ggggg', Zc, Vc),
R(['gggg',
'ggggg',
'GGGG',
'GGGGG'], function (a, b, c, d) {
b[d.substr(0, 2)] = q(a)
}),
R(['gg',
'GG'], function (b, c, d, e) {
c[e] = a.parseTwoDigitYear(b)
}),
H('Q', 0, 0, 'quarter'),
z('quarter', 'Q'),
N('Q', Rc),
Q('Q', function (a, b) {
b[gd] = 3 * (q(a) - 1)
}),
H('D', [
'DD',
2
], 'Do', 'date'),
z('date', 'D'),
N('D', Wc),
N('DD', Wc, Sc),
N('Do', function (a, b) {
return a ? b._ordinalParse : b._ordinalParseLenient
}),
Q(['D',
'DD'], hd),
Q('Do', function (a, b) {
b[hd] = q(a.match(Wc) [0], 10)
});
var Dd = C('Date', !0);
H('d', 0, 'do', 'day'),
H('dd', 0, 0, function (a) {
return this.localeData().weekdaysMin(this, a)
}),
H('ddd', 0, 0, function (a) {
return this.localeData().weekdaysShort(this, a)
}),
H('dddd', 0, 0, function (a) {
return this.localeData().weekdays(this, a)
}),
H('e', 0, 0, 'weekday'),
H('E', 0, 0, 'isoWeekday'),
z('day', 'd'),
z('weekday', 'e'),
z('isoWeekday', 'E'),
N('d', Wc),
N('e', Wc),
N('E', Wc),
N('dd', cd),
N('ddd', cd),
N('dddd', cd),
R(['dd',
'ddd',
'dddd'], function (a, b, c) {
var d = c._locale.weekdaysParse(a);
null != d ? b.d = d : j(c).invalidWeekday = a
}),
R(['d',
'e',
'E'], function (a, b, c, d) {
b[d] = q(a)
});
var Ed = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
Fd = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
Gd = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
H('H', [
'HH',
2
], 0, 'hour'),
H('h', [
'hh',
2
], 0, function () {
return this.hours() % 12 || 12
}),
Sb('a', !0),
Sb('A', !1),
z('hour', 'h'),
N('a', Tb),
N('A', Tb),
N('H', Wc),
N('h', Wc),
N('HH', Wc, Sc),
N('hh', Wc, Sc),
Q(['H',
'HH'], id),
Q(['a',
'A'], function (a, b, c) {
c._isPm = c._locale.isPM(a),
c._meridiem = a
}),
Q(['h',
'hh'], function (a, b, c) {
b[id] = q(a),
j(c).bigHour = !0
});
var Hd = /[ap]\.?m?\.?/i,
Id = C('Hours', !0);
H('m', [
'mm',
2
], 0, 'minute'),
z('minute', 'm'),
N('m', Wc),
N('mm', Wc, Sc),
Q(['m',
'mm'], jd);
var Jd = C('Minutes', !1);
H('s', [
'ss',
2
], 0, 'second'),
z('second', 's'),
N('s', Wc),
N('ss', Wc, Sc),
Q(['s',
'ss'], kd);
var Kd = C('Seconds', !1);
H('S', 0, 0, function () {
return ~~(this.millisecond() / 100)
}),
H(0, [
'SS',
2
], 0, function () {
return ~~(this.millisecond() / 10)
}),
H(0, [
'SSS',
3
], 0, 'millisecond'),
H(0, [
'SSSS',
4
], 0, function () {
return 10 * this.millisecond()
}),
H(0, [
'SSSSS',
5
], 0, function () {
return 100 * this.millisecond()
}),
H(0, [
'SSSSSS',
6
], 0, function () {
return 1000 * this.millisecond()
}),
H(0, [
'SSSSSSS',
7
], 0, function () {
return 10000 * this.millisecond()
}),
H(0, [
'SSSSSSSS',
8
], 0, function () {
return 100000 * this.millisecond()
}),
H(0, [
'SSSSSSSSS',
9
], 0, function () {
return 1000000 * this.millisecond()
}),
z('millisecond', 'ms'),
N('S', Xc, Rc),
N('SS', Xc, Sc),
N('SSS', Xc, Tc);
var Ld;
for (Ld = 'SSSS'; Ld.length <= 9; Ld += 'S') N(Ld, $c);
for (Ld = 'S'; Ld.length <= 9; Ld += 'S') Q(Ld, Wb);
var Md = C('Milliseconds', !1);
H('z', 0, 0, 'zoneAbbr'),
H('zz', 0, 0, 'zoneName');
var Nd = n.prototype;
Nd.add = Ad,
Nd.calendar = cb,
Nd.clone = db,
Nd.diff = ib,
Nd.endOf = ub,
Nd.format = mb,
Nd.from = nb,
Nd.fromNow = ob,
Nd.to = pb,
Nd.toNow = qb,
Nd.get = F,
Nd.invalidAt = Cb,
Nd.isAfter = eb,
Nd.isBefore = fb,
Nd.isBetween = gb,
Nd.isSame = hb,
Nd.isValid = Ab,
Nd.lang = Cd,
Nd.locale = rb,
Nd.localeData = sb,
Nd.max = wd,
Nd.min = vd,
Nd.parsingFlags = Bb,
Nd.set = F,
Nd.startOf = tb,
Nd.subtract = Bd,
Nd.toArray = yb,
Nd.toObject = zb,
Nd.toDate = xb,
Nd.toISOString = lb,
Nd.toJSON = lb,
Nd.toString = kb,
Nd.unix = wb,
Nd.valueOf = vb,
Nd.year = td,
Nd.isLeapYear = ia,
Nd.weekYear = Fb,
Nd.isoWeekYear = Gb,
Nd.quarter = Nd.quarters = Jb,
Nd.month = Y,
Nd.daysInMonth = Z,
Nd.week = Nd.weeks = na,
Nd.isoWeek = Nd.isoWeeks = oa,
Nd.weeksInYear = Ib,
Nd.isoWeeksInYear = Hb,
Nd.date = Dd,
Nd.day = Nd.days = Pb,
Nd.weekday = Qb,
Nd.isoWeekday = Rb,
Nd.dayOfYear = qa,
Nd.hour = Nd.hours = Id,
Nd.minute = Nd.minutes = Jd,
Nd.second = Nd.seconds = Kd,
Nd.millisecond = Nd.milliseconds = Md,
Nd.utcOffset = Na,
Nd.utc = Pa,
Nd.local = Qa,
Nd.parseZone = Ra,
Nd.hasAlignedHourOffset = Sa,
Nd.isDST = Ta,
Nd.isDSTShifted = Ua,
Nd.isLocal = Va,
Nd.isUtcOffset = Wa,
Nd.isUtc = Xa,
Nd.isUTC = Xa,
Nd.zoneAbbr = Xb,
Nd.zoneName = Yb,
Nd.dates = aa('dates accessor is deprecated. Use date instead.', Dd),
Nd.months = aa('months accessor is deprecated. Use month instead', Y),
Nd.years = aa('years accessor is deprecated. Use year instead', td),
Nd.zone = aa('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', Oa);
var Od = Nd,
Pd = {
sameDay: '[Today at] LT',
nextDay: '[Tomorrow at] LT',
nextWeek: 'dddd [at] LT',
lastDay: '[Yesterday at] LT',
lastWeek: '[Last] dddd [at] LT',
sameElse: 'L'
},
Qd = {
LTS: 'h:mm:ss A',
LT: 'h:mm A',
L: 'MM/DD/YYYY',
LL: 'MMMM D, YYYY',
LLL: 'MMMM D, YYYY h:mm A',
LLLL: 'dddd, MMMM D, YYYY h:mm A'
},
Rd = 'Invalid date',
Sd = '%d',
Td = /\d{1,2}/,
Ud = {
future: 'in %s',
past: '%s ago',
s: 'a few seconds',
m: 'a minute',
mm: '%d minutes',
h: 'an hour',
hh: '%d hours',
d: 'a day',
dd: '%d days',
M: 'a month',
MM: '%d months',
y: 'a year',
yy: '%d years'
},
Vd = s.prototype;
Vd._calendar = Pd,
Vd.calendar = _b,
Vd._longDateFormat = Qd,
Vd.longDateFormat = ac,
Vd._invalidDate = Rd,
Vd.invalidDate = bc,
Vd._ordinal = Sd,
Vd.ordinal = cc,
Vd._ordinalParse = Td,
Vd.preparse = dc,
Vd.postformat = dc,
Vd._relativeTime = Ud,
Vd.relativeTime = ec,
Vd.pastFuture = fc,
Vd.set = gc,
Vd.months = U,
Vd._months = md,
Vd.monthsShort = V,
Vd._monthsShort = nd,
Vd.monthsParse = W,
Vd.week = ka,
Vd._week = ud,
Vd.firstDayOfYear = ma,
Vd.firstDayOfWeek = la,
Vd.weekdays = Lb,
Vd._weekdays = Ed,
Vd.weekdaysMin = Nb,
Vd._weekdaysMin = Gd,
Vd.weekdaysShort = Mb,
Vd._weekdaysShort = Fd,
Vd.weekdaysParse = Ob,
Vd.isPM = Ub,
Vd._meridiemParse = Hd,
Vd.meridiem = Vb,
w('en', {
ordinalParse: /\d{1,2}(th|st|nd|rd)/,
ordinal: function (a) {
var b = a % 10,
c = 1 === q(a % 100 / 10) ? 'th' : 1 === b ? 'st' : 2 === b ? 'nd' : 3 === b ? 'rd' : 'th';
return a + c
}
}),
a.lang = aa('moment.lang is deprecated. Use moment.locale instead.', w),
a.langData = aa('moment.langData is deprecated. Use moment.localeData instead.', y);
var Wd = Math.abs,
Xd = yc('ms'),
Yd = yc('s'),
Zd = yc('m'),
$d = yc('h'),
_d = yc('d'),
ae = yc('w'),
be = yc('M'),
ce = yc('y'),
de = Ac('milliseconds'),
ee = Ac('seconds'),
fe = Ac('minutes'),
ge = Ac('hours'),
he = Ac('days'),
ie = Ac('months'),
je = Ac('years'),
ke = Math.round,
le = {
s: 45,
m: 45,
h: 22,
d: 26,
M: 11
},
me = Math.abs,
ne = Ha.prototype;
ne.abs = oc,
ne.add = qc,
ne.subtract = rc,
ne.as = wc,
ne.asMilliseconds = Xd,
ne.asSeconds = Yd,
ne.asMinutes = Zd,
ne.asHours = $d,
ne.asDays = _d,
ne.asWeeks = ae,
ne.asMonths = be,
ne.asYears = ce,
ne.valueOf = xc,
ne._bubble = tc,
ne.get = zc,
ne.milliseconds = de,
ne.seconds = ee,
ne.minutes = fe,
ne.hours = ge,
ne.days = he,
ne.weeks = Bc,
ne.months = ie,
ne.years = je,
ne.humanize = Fc,
ne.toISOString = Gc,
ne.toString = Gc,
ne.toJSON = Gc,
ne.locale = rb,
ne.localeData = sb,
ne.toIsoString = aa('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', Gc),
ne.lang = Cd,
H('X', 0, 0, 'unix'),
H('x', 0, 0, 'valueOf'),
N('x', _c),
N('X', bd),
Q('X', function (a, b, c) {
c._d = new Date(1000 * parseFloat(a, 10))
}),
Q('x', function (a, b, c) {
c._d = new Date(q(a))
}),
a.version = '2.10.6',
b(Da),
a.fn = Od,
a.min = Fa,
a.max = Ga,
a.utc = h,
a.unix = Zb,
a.months = jc,
a.isDate = d,
a.locale = w,
a.invalid = l,
a.duration = Ya,
a.isMoment = o,
a.weekdays = lc,
a.parseZone = $b,
a.localeData = y,
a.isDuration = Ia,
a.monthsShort = kc,
a.weekdaysMin = nc,
a.defineLocale = x,
a.weekdaysShort = mc,
a.normalizeUnits = A,
a.relativeTimeThreshold = Ec;
var oe = a;
return oe
});
//! moment-timezone.js
//! version : 0.4.1
//! author : Tim Wood
//! license : MIT
//! github.com/moment/moment-timezone
!function (a, b) {
'use strict';
'function' == typeof define && define.amd ? define(['moment'], b)  : 'object' == typeof exports ? module.exports = b(require('moment'))  : b(a.moment)
}(this, function (a) {
'use strict';
function b(a) {
return a > 96 ? a - 87 : a > 64 ? a - 29 : a - 48
}
function c(a) {
var c,
d = 0,
e = a.split('.'),
f = e[0],
g = e[1] || '',
h = 1,
i = 0,
j = 1;
for (45 === a.charCodeAt(0) && (d = 1, j = - 1), d; d < f.length; d++) c = b(f.charCodeAt(d)),
i = 60 * i + c;
for (d = 0; d < g.length; d++) h /= 60,
c = b(g.charCodeAt(d)),
i += c * h;
return i * j
}
function d(a) {
for (var b = 0; b < a.length; b++) a[b] = c(a[b])
}
function e(a, b) {
for (var c = 0; b > c; c++) a[c] = Math.round((a[c - 1] || 0) + 60000 * a[c]);
a[b - 1] = 1 / 0
}
function f(a, b) {
var c,
d = [
];
for (c = 0; c < b.length; c++) d[c] = a[b[c]];
return d
}
function g(a) {
var b = a.split('|'),
c = b[2].split(' '),
g = b[3].split(''),
h = b[4].split(' ');
return d(c),
d(g),
d(h),
e(h, g.length),
{
name: b[0],
abbrs: f(b[1].split(' '), g),
offsets: f(c, g),
untils: h
}
}
function h(a) {
a && this._set(g(a))
}
function i(a) {
return (a || '').toLowerCase().replace(/\//g, '_')
}
function j(a) {
var b,
c,
d;
for ('string' == typeof a && (a = [
a
]), b = 0; b < a.length; b++) c = a[b].split('|') [0],
d = i(c),
v[d] = a[b],
x[d] = c
}
function k(a, b) {
a = i(a);
var c,
d = v[a];
return d instanceof h ? d : 'string' == typeof d ? (d = new h(d), v[a] = d, d)  : w[a] && b !== k && (c = k(w[a], k)) ? (d = v[a] = new h, d._set(c), d.name = x[a], d)  : null
}
function l() {
var a,
b = [
];
for (a in x) x.hasOwnProperty(a) && (v[a] || v[w[a]]) && x[a] && b.push(x[a]);
return b.sort()
}
function m(a) {
var b,
c,
d,
e;
for ('string' == typeof a && (a = [
a
]), b = 0; b < a.length; b++) c = a[b].split('|'),
d = i(c[0]),
e = i(c[1]),
w[d] = e,
x[d] = c[0],
w[e] = d,
x[e] = c[1]
}
function n(a) {
j(a.zones),
m(a.links),
r.dataVersion = a.version
}
function o(a) {
return o.didShowError || (o.didShowError = !0, q('moment.tz.zoneExists(\'' + a + '\') has been deprecated in favor of !moment.tz.zone(\'' + a + '\')')),
!!k(a)
}
function p(a) {
return !(!a._a || void 0 !== a._tzm)
}
function q(a) {
'undefined' != typeof console && 'function' == typeof console.error && console.error(a)
}
function r(b) {
var c = Array.prototype.slice.call(arguments, 0, - 1),
d = arguments[arguments.length - 1],
e = k(d),
f = a.utc.apply(null, c);
return e && !a.isMoment(b) && p(f) && f.add(e.parse(f), 'minutes'),
f.tz(d),
f
}
function s(a) {
return function () {
return this._z ? this._z.abbr(this)  : a.call(this)
}
}
function t(a) {
return function () {
return this._z = null,
a.apply(this, arguments)
}
}
if (void 0 !== a.tz) return q('Moment Timezone ' + a.tz.version + ' was already loaded ' + (a.tz.dataVersion ? 'with data from ' : 'without any data') + a.tz.dataVersion),
a;
var u = '0.4.1',
v = {
},
w = {
},
x = {
},
y = a.version.split('.'),
z = + y[0],
A = + y[1];
(2 > z || 2 === z && 6 > A) && q('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + a.version + '. See momentjs.com'),
h.prototype = {
_set: function (a) {
this.name = a.name,
this.abbrs = a.abbrs,
this.untils = a.untils,
this.offsets = a.offsets
},
_index: function (a) {
var b,
c = + a,
d = this.untils;
for (b = 0; b < d.length; b++) if (c < d[b]) return b
},
parse: function (a) {
var b,
c,
d,
e,
f = + a,
g = this.offsets,
h = this.untils,
i = h.length - 1;
for (e = 0; i > e; e++) if (b = g[e], c = g[e + 1], d = g[e ? e - 1 : e], c > b && r.moveAmbiguousForward ? b = c : b > d && r.moveInvalidForward && (b = d), f < h[e] - 60000 * b) return g[e];
return g[i]
},
abbr: function (a) {
return this.abbrs[this._index(a)]
},
offset: function (a) {
return this.offsets[this._index(a)]
}
},
r.version = u,
r.dataVersion = '',
r._zones = v,
r._links = w,
r._names = x,
r.add = j,
r.link = m,
r.load = n,
r.zone = k,
r.zoneExists = o,
r.names = l,
r.Zone = h,
r.unpack = g,
r.unpackBase60 = c,
r.needsOffset = p,
r.moveInvalidForward = !0,
r.moveAmbiguousForward = !1;
var B = a.fn;
a.tz = r,
a.defaultZone = null,
a.updateOffset = function (b, c) {
var d,
e = a.defaultZone;
void 0 === b._z && (e && p(b) && !b._isUTC && (b._d = a.utc(b._a)._d, b.utc().add(e.parse(b), 'minutes')), b._z = e),
b._z && (d = b._z.offset(b), Math.abs(d) < 16 && (d /= 60), void 0 !== b.utcOffset ? b.utcOffset( - d, c)  : b.zone(d, c))
},
B.tz = function (b) {
return b ? (this._z = k(b), this._z ? a.updateOffset(this)  : q('Moment Timezone has no data for ' + b + '. See http://momentjs.com/timezone/docs/#/data-loading/.'), this)  : this._z ? this._z.name : void 0
},
B.zoneName = s(B.zoneName),
B.zoneAbbr = s(B.zoneAbbr),
B.utc = t(B.utc),
a.tz.setDefault = function (b) {
return (2 > z || 2 === z && 9 > A) && q('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + a.version + '.'),
a.defaultZone = b ? k(b)  : null,
a
};
var C = a.momentProperties;
return '[object Array]' === Object.prototype.toString.call(C) ? (C.push('_z'), C.push('_a'))  : C && (C._z = null),
n({
version: '2015g',
zones: [
'Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q',
'Africa/Accra|LMT GMT GHST|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE',
'Africa/Addis_Ababa|LMT EAT BEAT BEAUT|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ',
'Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0',
'Africa/Bangui|LMT WAT|-d.A -10|01|-22y0d.A',
'Africa/Bissau|LMT WAT GMT|12.k 10 0|012|-2ldWV.E 2xonV.E',
'Africa/Blantyre|LMT CAT|-2a.k -20|01|-2GJea.k',
'Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0',
'Africa/Casablanca|LMT WET WEST CET|u.k 0 -10 -10|0121212121212121213121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0',
'Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18o0 3I00 17c0 1fA0 1a00 1io0 1a00 1y7p0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Africa/El_Aaiun|LMT WAT WET WEST|Q.M 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0',
'Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0',
'Africa/Juba|LMT CAT CAST EAT|-2a.8 -20 -30 -30|01212121212121212121212121212121213|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0',
'Africa/Monrovia|MMT LRT GMT|H.8 I.u 0|012|-23Lzg.Q 29s01.m',
'Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0',
'Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00',
'Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00',
'Africa/Windhoek|SWAT SAST SAST CAT WAT WAST|-1u -20 -30 -20 -10 -20|012134545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2GJdu 1Ajdu 1cL0 1SqL0 9NA0 11D0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0',
'America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Anchorage|CAT CAWT CAPT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Anguilla|LMT AST|46.4 40|01|-2kNvR.U',
'America/Araguaina|LMT BRT BRST|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0',
'America/Argentina/Buenos_Aires|CMT ART ARST ART ARST|4g.M 40 30 30 20|0121212121212121212121212121212121212121213434343434343234343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 g0p0 10M0 j3c0 uL0 1qN0 WL0',
'America/Argentina/Catamarca|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343454343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 ako0 7B0 8zb0 uL0',
'America/Argentina/Cordoba|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343454343234343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 j3c0 uL0 1qN0 WL0',
'America/Argentina/Jujuy|CMT ART ARST ART ARST WART WARST|4g.M 40 30 30 20 40 30|01212121212121212121212121212121212121212134343456543432343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 g0p0 10M0 j3c0 uL0',
'America/Argentina/La_Rioja|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|01212121212121212121212121212121212121212134343434534343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 g0p0 10M0 ako0 7B0 8zb0 uL0',
'America/Argentina/Mendoza|CMT ART ARST ART ARST WART WARST|4g.M 40 30 30 20 40 30|0121212121212121212121212121212121212121213434345656543235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 g0p0 10M0 agM0 Op0 7TX0 uL0',
'America/Argentina/Rio_Gallegos|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343434343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 g0p0 10M0 ako0 7B0 8zb0 uL0',
'America/Argentina/Salta|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|01212121212121212121212121212121212121212134343434543432343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 j3c0 uL0',
'America/Argentina/San_Juan|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|01212121212121212121212121212121212121212134343434534343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 g0p0 10M0 ak00 m10 8lb0 uL0',
'America/Argentina/San_Luis|CMT ART ARST ART ARST WART WARST|4g.M 40 30 30 20 40 30|01212121212121212121212121212121212121212134343456536353465653|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 kin0 10M0 ak00 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0',
'America/Argentina/Tucuman|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|012121212121212121212121212121212121212121343434345434323534343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 g0p0 10M0 ako0 4N0 8BX0 uL0 1qN0 WL0',
'America/Argentina/Ushuaia|CMT ART ARST ART ARST WART|4g.M 40 30 30 20 40|0121212121212121212121212121212121212121213434343434343235343|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 g0p0 10M0 ajA0 8p0 8zb0 uL0',
'America/Aruba|LMT ANT AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d',
'America/Asuncion|AMT PYT PYT PYST|3O.E 40 30 30|012131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0',
'America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0',
'America/Bahia|LMT BRT BRST|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0',
'America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0',
'America/Belem|LMT BRT BRST|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0',
'America/Belize|LMT CST CHDT CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0',
'America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0',
'America/Boa_Vista|LMT AMT AMST|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0',
'America/Bogota|BMT COT COST|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0',
'America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Cambridge_Bay|zzz MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Campo_Grande|LMT AMT AMST|3C.s 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0',
'America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0',
'America/Caracas|CMT VET VET|4r.E 4u 40|0121|-2kV7w.k 28KM2.k 1IwOu',
'America/Cayenne|LMT GFT GFT|3t.k 40 30|012|-2mrwu.E 2gWou.E',
'America/Cayman|KMT EST EDT|57.b 50 40|0121212121212121212121212121212121212121212121|-2l1uQ.N 4duNQ.N 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0',
'America/Creston|MST PST|70 80|010|-29DR0 43B0',
'America/Cuiaba|LMT AMT AMST|3I.k 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0',
'America/Danmarkshavn|LMT WGT WGST GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0',
'America/Dawson|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0',
'America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|01234252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 Jy10 SL0 dnB0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|01212121212121341212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 LFB0 1cL0 3Cp0 1cL0 66N0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Eirunepe|LMT ACT ACST AMT|4D.s 50 40 40|0121212121212121212121212121212131|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0',
'America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0',
'America/Ensenada|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOP0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0',
'America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Fortaleza|LMT BRT BRST|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0',
'America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Godthab|LMT WGT WGST|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Grand_Turk|KMT EST EDT AST|57.b 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212123|-2l1uQ.N 2HHBQ.N 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0',
'America/Guayaquil|QMT ECT|5e 50|01|-1yVSK',
'America/Guyana|LMT GBGT GYT GYT GYT|3Q.E 3J 3J 30 40|01234|-2dvU7.k 24JzQ.k mlc0 Bxbf',
'America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0',
'America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0',
'America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Inuvik|zzz PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Iqaluit|zzz EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Jamaica|KMT EST EDT|57.b 50 40|0121212121212121212121|-2l1uQ.N 2uM1Q.N 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0',
'America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 Bb0 10N0 2bB0 8in0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/La_Paz|CMT BOST BOT|4w.A 3w.A 40|012|-1x37r.o 13b0',
'America/Lima|LMT PET PEST|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0',
'America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp0 1Vb0 3dB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Maceio|LMT BRT BRST|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0',
'America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0',
'America/Manaus|LMT AMT AMST|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0',
'America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0',
'America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Metlakatla|PST PWT PPT PDT|80 70 70 70|0120303030303030303030303030303030|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0',
'America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Miquelon|LMT AST PMST PMDT|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Montevideo|MMT UYT UYHST UYST UYT UYHST|3I.I 3u 30 20 30 2u|012121212121212121212121213434343434345454543453434343434343434343434343434343434343434|-20UIf.g 8jzJ.g 1cLu 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1qMu WLu 1qMu 11zu 1o0u 11zu NAu 11bu 2iMu zWu Dq10 19X0 pd0 jz0 cm10 19X0 1fB0 1on0 11d0 1oL0 1nB0 1fzu 1aou 1fzu 1aou 1fzu 3nAu Jb0 3MN0 1SLu 4jzu 2PB0 Lb0 3Dd0 1pb0 ixd0 An0 1MN0 An0 1wp0 On0 1wp0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0',
'America/Montreal|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Noronha|LMT FNT FNST|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0',
'America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Panama|CMT EST|5j.A 50|01|-2uduE.o',
'America/Pangnirtung|zzz AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Paramaribo|LMT PMT PMT NEGT SRT SRT|3E.E 3E.Q 3E.A 3u 3u 30|012345|-2nDUj.k Wqo0.c qanX.I 1dmLN.o lzc0',
'America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0',
'America/Port-au-Prince|PPMT EST EDT|4N 50 40|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Porto_Acre|LMT ACT ACST AMT|4v.c 50 40 40|01212121212121212121212121212131|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0',
'America/Porto_Velho|LMT AMT AMST|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0',
'America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0',
'America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Rankin_Inlet|zzz CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Recife|LMT BRT BRST|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0',
'America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0',
'America/Resolute|zzz CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Santa_Isabel|LMT MST PST PDT PWT PPT|7D.s 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOP0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0',
'America/Santarem|LMT AMT AMST BRT|3C.M 40 30 30|0121212121212121212121212121213|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0',
'America/Santiago|SMT CLT CLT CLST CLST CLT|4G.K 50 40 40 30 30|01020313131313121242124242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424245|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 1wn0',
'America/Santo_Domingo|SDMT EST EDT EHDT AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00',
'America/Sao_Paulo|LMT BRT BRST|36.s 30 20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1C10 Lz0 1C10 Lz0 1C10 Lz0 1C10 On0 1zd0 Rb0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0',
'America/Scoresbysund|LMT CGT CGST EGST EGT|1r.Q 20 10 0 10|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0',
'America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0',
'America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Whitehorse|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'America/Yellowknife|zzz MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'Antarctica/Casey|zzz AWST CAST|0 -80 -b0|012121|-2q00 1DjS0 T90 40P0 KL0',
'Antarctica/Davis|zzz DAVT DAVT|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0',
'Antarctica/DumontDUrville|zzz PMT DDUT|0 -a0 -a0|0102|-U0o0 cfq0 bFm0',
'Antarctica/Macquarie|AEST AEDT zzz MIST|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0',
'Antarctica/Mawson|zzz MAWT MAWT|0 -60 -50|012|-CEo0 2fyk0',
'Antarctica/McMurdo|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00',
'Antarctica/Palmer|zzz ARST ART ART ARST CLT CLST CLT|0 30 40 30 20 40 30 30|012121212123435656565656565656565656565656565656565656565656565656565656565656567|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 1wn0',
'Antarctica/Rothera|zzz ROTT|0 30|01|gOo0',
'Antarctica/Syowa|zzz SYOT|0 -30|01|-vs00',
'Antarctica/Troll|zzz UTC CEST|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Antarctica/Vostok|zzz VOST|0 -60|01|-tjA0',
'Arctic/Longyearbyen|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Asia/Aden|LMT AST|-36.Q -30|01|-TvD6.Q',
'Asia/Almaty|LMT ALMT ALMT ALMST|-57.M -50 -60 -70|0123232323232323232323232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3Cl0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0',
'Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0',
'Asia/Anadyr|LMT ANAT ANAT ANAST ANAST ANAST ANAT|-bN.U -c0 -d0 -e0 -d0 -c0 -b0|01232414141414141414141561414141414141414141414141414141414141561|-1PcbN.U eUnN.U 23CL0 1db0 1cN0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0',
'Asia/Aqtau|LMT FORT FORT SHET SHET SHEST AQTT AQTST AQTST AQTT|-3l.4 -40 -50 -50 -60 -60 -50 -60 -50 -40|012345353535353535353536767676898989898989898989896|-1Pc3l.4 eUnl.4 1jcL0 JDc0 1cL0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2UK0 Fz0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cN0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 RW0',
'Asia/Aqtobe|LMT AKTT AKTT AKTST AKTT AQTT AQTST|-3M.E -40 -50 -60 -60 -50 -60|01234323232323232323232565656565656565656565656565|-1Pc3M.E eUnM.E 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2UK0 Fz0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0',
'Asia/Ashgabat|LMT ASHT ASHT ASHST ASHST TMT TMT|-3R.w -40 -50 -60 -50 -40 -50|012323232323232323232324156|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 ba0 xC0',
'Asia/Baghdad|BMT AST ADT|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0',
'Asia/Bahrain|LMT GST AST|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8',
'Asia/Baku|LMT BAKT BAKT BAKST BAKST AZST AZT AZT AZST|-3j.o -30 -40 -50 -40 -40 -30 -40 -50|0123232323232323232323245657878787878787878787878787878787878787878787878787878787878787878787878787878787878787|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 10K0 c30 1cJ0 1cL0 8wu0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Asia/Bangkok|BMT ICT|-6G.4 -70|01|-218SG.4',
'Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0',
'Asia/Bishkek|LMT FRUT FRUT FRUST FRUST KGT KGST KGT|-4W.o -50 -60 -70 -60 -50 -60 -60|01232323232323232323232456565656565656565656565656567|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 11c0 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 T8u',
'Asia/Brunei|LMT BNT BNT|-7D.E -7u -80|012|-1KITD.E gDc9.E',
'Asia/Calcutta|HMT BURT IST IST|-5R.k -6u -5u -6u|01232|-18LFR.k 1unn.k HB0 7zX0',
'Asia/Chita|LMT YAKT YAKT YAKST YAKST YAKT IRKT|-7x.Q -80 -90 -a0 -90 -a0 -80|012323232323232323232324123232323232323232323232323232323232323256|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Choibalsan|LMT ULAT ULAT CHOST CHOT CHOT CHOST|-7C -70 -80 -a0 -90 -80 -90|0123434343434343434343434343434343434343434343456565656565656565656565656565656565656565656565|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0',
'Asia/Chongqing|CST CDT|-80 -90|01010101010101010|-1c1I0 LX0 16p0 1jz0 1Myp0 Rb0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0',
'Asia/Colombo|MMT IST IHST IST LKT LKT|-5j.w -5u -60 -6u -6u -60|01231451|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu',
'Asia/Dacca|HMT BURT IST DACT BDT BDST|-5R.k -6u -5u -60 -60 -70|01213454|-18LFR.k 1unn.k HB0 m6n0 LqMu 1x6n0 1i00',
'Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0',
'Asia/Dili|LMT TLT JST TLT WITA|-8m.k -80 -90 -90 -80|012343|-2le8m.k 1dnXm.k 8HA0 1ew00 Xld0',
'Asia/Dubai|LMT GST|-3F.c -40|01|-21JfF.c',
'Asia/Dushanbe|LMT DUST DUST DUSST DUSST TJT|-4z.c -50 -60 -70 -60 -50|0123232323232323232323245|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 14N0',
'Asia/Gaza|EET EET EEST IST IDT|-20 -30 -30 -20 -30|010101010102020202020202020202023434343434343434343434343430202020202020202020202020202020202020202020202020202020202020202020202020202020202020|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0',
'Asia/Hebron|EET EET EEST IST IDT|-20 -30 -30 -20 -30|01010101010202020202020202020202343434343434343434343434343020202020202020202020202020202020202020202020202020202020202020202020202020202020202020|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 1210 1nz0 14N0 1nz0 1210 1nz0 1210 1nz0 1210 1nz0',
'Asia/Ho_Chi_Minh|LMT PLMT ICT IDT JST|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0',
'Asia/Hong_Kong|LMT HKT HKST JST|-7A.G -80 -90 -90|0121312121212121212121212121212121212121212121212121212121212121212121|-2CFHA.G 1sEP6.G 1cL0 ylu 93X0 1qQu 1tX0 Rd0 1In0 NB0 1cL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1kL0 14N0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0',
'Asia/Hovd|LMT HOVT HOVT HOVST|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0',
'Asia/Irkutsk|IMT IRKT IRKT IRKST IRKST IRKT|-6V.5 -70 -80 -90 -80 -90|012323232323232323232324123232323232323232323232323232323232323252|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Istanbul|IMT EET EEST TRST TRT|-1U.U -20 -30 -40 -30|012121212121212121212121212121212121212121212121212121234343434342121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSp0 CL0 mN0 1Vz0 1gN0 1pz0 5Rd0 1fz0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1jB0 18L0 1ip0 17z0 qdd0 xX0 3S10 Tz0 dA10 11z0 1o10 11z0 1qN0 11z0 1ze0 11B0 WM0 1qO0 WI0 1nX0 1rB0 10L0 11B0 1in0 17d0 1in0 2pX0 19E0 1fU0 16Q0 1iI0 16Q0 1iI0 1Vd0 pb0 3Kp0 14o0 1df0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Asia/Jakarta|BMT JAVT WIB JST WIB WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu',
'Asia/Jayapura|LMT WIT ACST|-9m.M -90 -9u|0121|-1uu9m.M sMMm.M L4nu',
'Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212132121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0',
'Asia/Kabul|AFT AFT|-40 -4u|01|-10Qs0',
'Asia/Kamchatka|LMT PETT PETT PETST PETST|-ay.A -b0 -c0 -d0 -c0|01232323232323232323232412323232323232323232323232323232323232412|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0',
'Asia/Karachi|LMT IST IST KART PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy01 1cL0 dK0X 11b0 1610 1jX0',
'Asia/Kashgar|LMT XJT|-5O.k -60|01|-1GgtO.k',
'Asia/Kathmandu|LMT IST NPT|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g',
'Asia/Khandyga|LMT YAKT YAKT YAKST YAKST VLAT VLAST VLAT YAKT|-92.d -80 -90 -a0 -90 -a0 -b0 -b0 -a0|01232323232323232323232412323232323232323232323232565656565656565782|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0',
'Asia/Krasnoyarsk|LMT KRAT KRAT KRAST KRAST KRAT|-6b.q -60 -70 -80 -70 -80|012323232323232323232324123232323232323232323232323232323232323252|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Kuala_Lumpur|SMT MALT MALST MALT MALT JST MYT|-6T.p -70 -7k -7k -7u -90 -80|01234546|-2Bg6T.p 17anT.p 7hXE dM00 17bO 8Fyu 1so1u',
'Asia/Kuching|LMT BORT BORT BORTST JST MYT|-7l.k -7u -80 -8k -90 -80|01232323232323232425|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0 1so10',
'Asia/Macao|LMT MOT MOST CST|-7y.k -80 -90 -80|0121212121212121212121212121212121212121213|-2le7y.k 1XO34.k 1wn0 Rd0 1wn0 R9u 1wqu U10 1tz0 TVu 1tz0 17gu 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cOu 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cL0 KEp0',
'Asia/Magadan|LMT MAGT MAGT MAGST MAGST MAGT|-a3.c -a0 -b0 -c0 -b0 -c0|012323232323232323232324123232323232323232323232323232323232323251|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Makassar|LMT MMT WITA JST|-7V.A -7V.A -80 -90|01232|-21JjV.A vfc0 myLV.A 8ML0',
'Asia/Manila|PHT PHST JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0',
'Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Asia/Novokuznetsk|LMT KRAT KRAT KRAST KRAST NOVST NOVT NOVT|-5M.M -60 -70 -80 -70 -70 -60 -70|012323232323232323232324123232323232323232323232323232323232325672|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0 8Hz0',
'Asia/Novosibirsk|LMT NOVT NOVT NOVST NOVST|-5v.E -60 -70 -80 -70|0123232323232323232323241232341414141414141414141414141414141414121|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Omsk|LMT OMST OMST OMSST OMSST OMST|-4R.u -50 -60 -70 -60 -70|012323232323232323232324123232323232323232323232323232323232323252|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Oral|LMT URAT URAT URAST URAT URAST ORAT ORAST ORAT|-3p.o -40 -50 -60 -60 -50 -40 -50 -50|012343232323232323251516767676767676767676767676768|-1Pc3p.o eUnp.o 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 2UK0 Fz0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 RW0',
'Asia/Pontianak|LMT PMT WIB JST WIB WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu',
'Asia/Pyongyang|LMT KST JCST JST KST|-8n -8u -90 -90 -90|012341|-2um8n 97XR 12FXu jdA0 2Onc0',
'Asia/Qyzylorda|LMT KIZT KIZT KIZST KIZT QYZT QYZT QYZST|-4l.Q -40 -50 -60 -60 -50 -60 -70|012343232323232323232325676767676767676767676767676|-1Pc4l.Q eUol.Q 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2UK0 dC0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0',
'Asia/Rangoon|RMT BURT JST MMT|-6o.E -6u -90 -6u|0123|-21Jio.E SmnS.E 7j9u',
'Asia/Sakhalin|LMT JCST JST SAKT SAKST SAKST SAKT|-9u.M -90 -90 -b0 -c0 -b0 -a0|0123434343434343434343435634343434343565656565656565656565656565636|-2AGVu.M 1iaMu.M je00 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o10 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Samarkand|LMT SAMT SAMT SAMST TAST UZST UZT|-4r.R -40 -50 -60 -60 -60 -50|01234323232323232323232356|-1Pc4r.R eUor.R 23CL0 1db0 1cM0 1dc0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 11x0 bf0',
'Asia/Seoul|LMT KST JCST JST KST KDT KDT|-8r.Q -8u -90 -90 -90 -9u -a0|01234151515151515146464|-2um8r.Q 97XV.Q 12FXu jjA0 kKo0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0',
'Asia/Singapore|SMT MALT MALST MALT MALT JST SGT SGT|-6T.p -70 -7k -7k -7u -90 -7u -80|012345467|-2Bg6T.p 17anT.p 7hXE dM00 17bO 8Fyu Mspu DTA0',
'Asia/Srednekolymsk|LMT MAGT MAGT MAGST MAGST MAGT SRET|-ae.Q -a0 -b0 -c0 -b0 -c0 -b0|012323232323232323232324123232323232323232323232323232323232323256|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Taipei|JWST JST CST CDT|-80 -90 -80 -90|01232323232323232323232323232323232323232|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0',
'Asia/Tashkent|LMT TAST TAST TASST TASST UZST UZT|-4B.b -50 -60 -70 -60 -60 -50|01232323232323232323232456|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 11y0 bf0',
'Asia/Tbilisi|TBMT TBIT TBIT TBIST TBIST GEST GET GET GEST|-2X.b -30 -40 -50 -40 -40 -30 -40 -50|0123232323232323232323245656565787878787878787878567|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 3y0 19f0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cM0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0',
'Asia/Tehran|LMT TMT IRST IRST IRDT IRDT|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0',
'Asia/Thimbu|LMT IST BTT|-5W.A -5u -60|012|-Su5W.A 1BGMs.A',
'Asia/Tokyo|JCST JST JDT|-90 -90 -a0|0121212121|-1iw90 pKq0 QL0 1lB0 13X0 1zB0 NX0 1zB0 NX0',
'Asia/Ulaanbaatar|LMT ULAT ULAT ULAST|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1fx0 1cP0 1cJ0 1cP0 1cJ0 1cP0 1cJ0',
'Asia/Ust-Nera|LMT YAKT YAKT MAGST MAGT MAGST MAGT MAGT VLAT VLAT|-9w.S -80 -90 -c0 -b0 -b0 -a0 -c0 -b0 -a0|0123434343434343434343456434343434343434343434343434343434343434789|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0',
'Asia/Vladivostok|LMT VLAT VLAT VLAST VLAST VLAT|-8L.v -90 -a0 -b0 -a0 -b0|012323232323232323232324123232323232323232323232323232323232323252|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Yakutsk|LMT YAKT YAKT YAKST YAKST YAKT|-8C.W -80 -90 -a0 -90 -a0|012323232323232323232324123232323232323232323232323232323232323252|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Yekaterinburg|LMT PMT SVET SVET SVEST SVEST YEKT YEKST YEKT|-42.x -3J.5 -40 -50 -60 -50 -50 -60 -60|0123434343434343434343435267676767676767676767676767676767676767686|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Asia/Yerevan|LMT YERT YERT YERST YERST AMST AMT AMT AMST|-2W -30 -40 -50 -40 -40 -30 -40 -50|0123232323232323232323245656565657878787878787878787878787878787|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1am0 2r0 1cJ0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fb0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0',
'Atlantic/Azores|HMT AZOT AZOST AZOMT AZOT AZOST WET|1S.w 20 10 0 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545456545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldW5.s aPX5.s Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'Atlantic/Canary|LMT CANT WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Atlantic/Cape_Verde|LMT CVT CVST CVT|1y.4 20 10 10|01213|-2xomp.U 1qOMp.U 7zX0 1djf0',
'Atlantic/Faeroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Atlantic/Madeira|FMT MADT MADST MADMT WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldWQ.o aPWQ.o Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Atlantic/Reykjavik|LMT IST ISST GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0',
'Atlantic/South_Georgia|GST|20|0|',
'Atlantic/Stanley|SMT FKT FKST FKT FKST|3P.o 40 30 30 20|0121212121212134343212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 U10 1qM0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10',
'Australia/ACT|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0',
'Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0',
'Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0',
'Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0',
'Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0',
'Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0',
'Australia/Eucla|ACWST ACWDT|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0',
'Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0',
'Australia/LHI|AEST LHST LHDT LHDT|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu',
'Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0',
'Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0',
'Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0',
'CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'Chile/EasterIsland|EMT EAST EASST EAST EASST EAST|7h.s 70 60 60 50 50|012121212121212121212121212123434343434343434343434343434343434343434343434343434343434343434345|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 1wn0',
'EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'EST|EST|50|0|',
'EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'Eire|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g5X0 14p0 1wn0 17d0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Etc/GMT+0|GMT|0|0|',
'Etc/GMT+1|GMT+1|10|0|',
'Etc/GMT+10|GMT+10|a0|0|',
'Etc/GMT+11|GMT+11|b0|0|',
'Etc/GMT+12|GMT+12|c0|0|',
'Etc/GMT+2|GMT+2|20|0|',
'Etc/GMT+3|GMT+3|30|0|',
'Etc/GMT+4|GMT+4|40|0|',
'Etc/GMT+5|GMT+5|50|0|',
'Etc/GMT+6|GMT+6|60|0|',
'Etc/GMT+7|GMT+7|70|0|',
'Etc/GMT+8|GMT+8|80|0|',
'Etc/GMT+9|GMT+9|90|0|',
'Etc/GMT-1|GMT-1|-10|0|',
'Etc/GMT-10|GMT-10|-a0|0|',
'Etc/GMT-11|GMT-11|-b0|0|',
'Etc/GMT-12|GMT-12|-c0|0|',
'Etc/GMT-13|GMT-13|-d0|0|',
'Etc/GMT-14|GMT-14|-e0|0|',
'Etc/GMT-2|GMT-2|-20|0|',
'Etc/GMT-3|GMT-3|-30|0|',
'Etc/GMT-4|GMT-4|-40|0|',
'Etc/GMT-5|GMT-5|-50|0|',
'Etc/GMT-6|GMT-6|-60|0|',
'Etc/GMT-7|GMT-7|-70|0|',
'Etc/GMT-8|GMT-8|-80|0|',
'Etc/GMT-9|GMT-9|-90|0|',
'Etc/UCT|UCT|0|0|',
'Etc/UTC|UTC|0|0|',
'Europe/Amsterdam|AMT NST NEST NET CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Belfast|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Bratislava|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 16M0 1lc0 1tA0 17A0 11c0 1io0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Busingen|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|0123232323232323232345454676767676767676767623232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1ty0 2bD0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Kaliningrad|CET CEST CET CEST MSK MSD EEST EET FET|-10 -20 -20 -30 -30 -40 -30 -20 -30|0101010101010232454545454545454545454676767676767676767676767676767676767676787|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 Am0 Lb0 1en0 op0 1pNz0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1cJ0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ldXn.f aPWn.f Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|01010101010101010101010121212121234343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-28dd0 11A0 1go0 19A0 1co0 1dA0 b1A0 18o0 3I00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 iyo0 Rc0 18o0 1hc0 1io0 1a00 14o0 5aL0 MM0 1vc0 17A0 1i00 1bc0 1eo0 17d0 1in0 17A0 6hA0 10N0 XIL0 1a10 1in0 17d0 19X0 1cN0 1fz0 1a10 1fX0 1cp0 1cO0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2as10 M00 1cM0 1cM0 14o0 1o00 WM0 1qM0 17c0 1cM0 M3A0 5M20 WM0 1fA0 1cM0 1cM0 1cM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 Lz0 1C10 Lz0 1EN0 Lz0 1C10 Lz0 1zd0 Oo0 1C00 On0 1cp0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Minsk|MMT EET MSK CEST CET MSD EEST FET|-1O -20 -30 -20 -10 -40 -30 -30|012343432525252525252525252616161616161616161616161616161616161616172|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cK0 1cM0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hy0',
'Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Moscow|MMT MMT MST MDST MSD MSK MSM EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c20 imv.j 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rU0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2as10 M00 1cM0 1cM0 14o0 1o00 WM0 1qM0 17c0 1cM0 M3A0 5M20 WM0 1fA0 1cM0 16K0 1iO0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 Lz0 1C10 Lz0 1EN0 Lz0 1C10 Lz0 1zd0 Oo0 1C00 On0 1C10 Lz0 1zd0 On0 1C10 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Samara|LMT SAMT SAMT KUYT KUYST MSD MSK EEST KUYT SAMST SAMST|-3k.k -30 -40 -40 -50 -40 -30 -30 -30 -50 -40|012343434343434343435656782929292929292929292929292929292929292a12|-22WNk.k qHak.k bcn0 1Qqo0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cN0 8o0 14j0 1cL0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qN0 WM0',
'Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0',
'Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1a00 1cM0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646464647373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Volgograd|LMT TSAT STAT STAT VOLT VOLST VOLST VOLT MSD MSK MSK|-2V.E -30 -30 -40 -40 -50 -40 -30 -40 -30 -40|0123454545454545454546767489898989898989898989898989898989898989a9|-21IqV.E cLXV.E cEM0 1gqn0 Lco0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 2pz0 1cJ0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0',
'Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'Europe/Zaporozhye|CUT EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'HST|HST|a0|0|',
'Indian/Chagos|LMT IOT IOT|-4N.E -50 -60|012|-2xosN.E 3AGLN.E',
'Indian/Christmas|CXT|-70|0|',
'Indian/Cocos|CCT|-6u|0|',
'Indian/Kerguelen|zzz TFT|0 -50|01|-MG00',
'Indian/Mahe|LMT SCT|-3F.M -40|01|-2yO3F.M',
'Indian/Maldives|MMT MVT|-4S -50|01|-olgS',
'Indian/Mauritius|LMT MUT MUST|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0',
'Indian/Reunion|LMT RET|-3F.Q -40|01|-2mDDF.Q',
'Kwajalein|MHT KWAT MHT|-b0 c0 -c0|012|-AX0 W9X0',
'MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00',
'MST|MST|70|0|',
'MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'NZ-CHAT|CHAST CHAST CHADT|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00',
'PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0',
'Pacific/Apia|LMT WSST SST SDT WSDT WSST|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00',
'Pacific/Bougainville|PGT JST BST|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0',
'Pacific/Chuuk|CHUT|-a0|0|',
'Pacific/Efate|LMT VUT VUST|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0',
'Pacific/Enderbury|PHOT PHOT PHOT|c0 b0 -d0|012|nIc0 B8n0',
'Pacific/Fakaofo|TKT TKT|b0 -d0|01|1Gfn0',
'Pacific/Fiji|LMT FJT FJST|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1SM0 uM0',
'Pacific/Funafuti|TVT|-c0|0|',
'Pacific/Galapagos|LMT ECT GALT|5W.o 50 60|012|-1yVS1.A 2dTz1.A',
'Pacific/Gambier|LMT GAMT|8X.M 90|01|-2jof0.c',
'Pacific/Guadalcanal|LMT SBT|-aD.M -b0|01|-2joyD.M',
'Pacific/Guam|GST ChST|-a0 -a0|01|1fpq0',
'Pacific/Honolulu|HST HDT HST|au 9u a0|010102|-1thLu 8x0 lef0 8Pz0 46p0',
'Pacific/Kiritimati|LINT LINT LINT|aE a0 -e0|012|nIaE B8nk',
'Pacific/Kosrae|KOST KOST|-b0 -c0|010|-AX0 1bdz0',
'Pacific/Majuro|MHT MHT|-b0 -c0|01|-AX0',
'Pacific/Marquesas|LMT MART|9i 9u|01|-2joeG',
'Pacific/Midway|LMT NST BST SST|bm.M b0 b0 b0|0123|-2nDMB.c 2gVzB.c EyM0',
'Pacific/Nauru|LMT NRT JST NRT|-b7.E -bu -90 -c0|01213|-1Xdn7.E PvzB.E 5RCu 1ouJu',
'Pacific/Niue|NUT NUT NUT|bk bu b0|012|-KfME 17y0a',
'Pacific/Norfolk|NMT NFT NFST NFT|-bc -bu -cu -b0|01213|-Kgbc W01G On0 1COp0',
'Pacific/Noumea|LMT NCT NCST|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0',
'Pacific/Palau|PWT|-90|0|',
'Pacific/Pitcairn|PNT PST|8u 80|01|18Vku',
'Pacific/Pohnpei|PONT|-b0|0|',
'Pacific/Port_Moresby|PGT|-a0|0|',
'Pacific/Rarotonga|CKT CKHST CKT|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu',
'Pacific/Tahiti|LMT TAHT|9W.g a0|01|-2joe1.I',
'Pacific/Tarawa|GILT|-c0|0|',
'Pacific/Tongatapu|TOT TOT TOST|-ck -d0 -e0|01212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0',
'Pacific/Wake|WAKT|-c0|0|',
'Pacific/Wallis|WFT|-c0|0|',
'WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00'
],
links: [
'Africa/Abidjan|Africa/Bamako',
'Africa/Abidjan|Africa/Banjul',
'Africa/Abidjan|Africa/Conakry',
'Africa/Abidjan|Africa/Dakar',
'Africa/Abidjan|Africa/Freetown',
'Africa/Abidjan|Africa/Lome',
'Africa/Abidjan|Africa/Nouakchott',
'Africa/Abidjan|Africa/Ouagadougou',
'Africa/Abidjan|Africa/Sao_Tome',
'Africa/Abidjan|Africa/Timbuktu',
'Africa/Abidjan|Atlantic/St_Helena',
'Africa/Addis_Ababa|Africa/Asmara',
'Africa/Addis_Ababa|Africa/Asmera',
'Africa/Addis_Ababa|Africa/Dar_es_Salaam',
'Africa/Addis_Ababa|Africa/Djibouti',
'Africa/Addis_Ababa|Africa/Kampala',
'Africa/Addis_Ababa|Africa/Mogadishu',
'Africa/Addis_Ababa|Africa/Nairobi',
'Africa/Addis_Ababa|Indian/Antananarivo',
'Africa/Addis_Ababa|Indian/Comoro',
'Africa/Addis_Ababa|Indian/Mayotte',
'Africa/Bangui|Africa/Brazzaville',
'Africa/Bangui|Africa/Douala',
'Africa/Bangui|Africa/Kinshasa',
'Africa/Bangui|Africa/Lagos',
'Africa/Bangui|Africa/Libreville',
'Africa/Bangui|Africa/Luanda',
'Africa/Bangui|Africa/Malabo',
'Africa/Bangui|Africa/Niamey',
'Africa/Bangui|Africa/Porto-Novo',
'Africa/Blantyre|Africa/Bujumbura',
'Africa/Blantyre|Africa/Gaborone',
'Africa/Blantyre|Africa/Harare',
'Africa/Blantyre|Africa/Kigali',
'Africa/Blantyre|Africa/Lubumbashi',
'Africa/Blantyre|Africa/Lusaka',
'Africa/Blantyre|Africa/Maputo',
'Africa/Cairo|Egypt',
'Africa/Johannesburg|Africa/Maseru',
'Africa/Johannesburg|Africa/Mbabane',
'Africa/Juba|Africa/Khartoum',
'Africa/Tripoli|Libya',
'America/Adak|America/Atka',
'America/Adak|US/Aleutian',
'America/Anchorage|US/Alaska',
'America/Anguilla|America/Antigua',
'America/Anguilla|America/Dominica',
'America/Anguilla|America/Grenada',
'America/Anguilla|America/Guadeloupe',
'America/Anguilla|America/Marigot',
'America/Anguilla|America/Montserrat',
'America/Anguilla|America/Port_of_Spain',
'America/Anguilla|America/St_Barthelemy',
'America/Anguilla|America/St_Kitts',
'America/Anguilla|America/St_Lucia',
'America/Anguilla|America/St_Thomas',
'America/Anguilla|America/St_Vincent',
'America/Anguilla|America/Tortola',
'America/Anguilla|America/Virgin',
'America/Argentina/Buenos_Aires|America/Buenos_Aires',
'America/Argentina/Catamarca|America/Argentina/ComodRivadavia',
'America/Argentina/Catamarca|America/Catamarca',
'America/Argentina/Cordoba|America/Cordoba',
'America/Argentina/Cordoba|America/Rosario',
'America/Argentina/Jujuy|America/Jujuy',
'America/Argentina/Mendoza|America/Mendoza',
'America/Aruba|America/Curacao',
'America/Aruba|America/Kralendijk',
'America/Aruba|America/Lower_Princes',
'America/Atikokan|America/Coral_Harbour',
'America/Chicago|US/Central',
'America/Denver|America/Shiprock',
'America/Denver|Navajo',
'America/Denver|US/Mountain',
'America/Detroit|US/Michigan',
'America/Edmonton|Canada/Mountain',
'America/Ensenada|America/Tijuana',
'America/Ensenada|Mexico/BajaNorte',
'America/Fort_Wayne|America/Indiana/Indianapolis',
'America/Fort_Wayne|America/Indianapolis',
'America/Fort_Wayne|US/East-Indiana',
'America/Halifax|Canada/Atlantic',
'America/Havana|Cuba',
'America/Indiana/Knox|America/Knox_IN',
'America/Indiana/Knox|US/Indiana-Starke',
'America/Jamaica|Jamaica',
'America/Kentucky/Louisville|America/Louisville',
'America/Los_Angeles|US/Pacific',
'America/Los_Angeles|US/Pacific-New',
'America/Manaus|Brazil/West',
'America/Mazatlan|Mexico/BajaSur',
'America/Mexico_City|Mexico/General',
'America/Montreal|America/Toronto',
'America/Montreal|Canada/Eastern',
'America/New_York|US/Eastern',
'America/Noronha|Brazil/DeNoronha',
'America/Phoenix|US/Arizona',
'America/Porto_Acre|America/Rio_Branco',
'America/Porto_Acre|Brazil/Acre',
'America/Regina|Canada/East-Saskatchewan',
'America/Regina|Canada/Saskatchewan',
'America/Santiago|Chile/Continental',
'America/Sao_Paulo|Brazil/East',
'America/St_Johns|Canada/Newfoundland',
'America/Vancouver|Canada/Pacific',
'America/Whitehorse|Canada/Yukon',
'America/Winnipeg|Canada/Central',
'Antarctica/McMurdo|Antarctica/South_Pole',
'Antarctica/McMurdo|NZ',
'Antarctica/McMurdo|Pacific/Auckland',
'Arctic/Longyearbyen|Atlantic/Jan_Mayen',
'Arctic/Longyearbyen|Europe/Oslo',
'Asia/Aden|Asia/Kuwait',
'Asia/Aden|Asia/Riyadh',
'Asia/Ashgabat|Asia/Ashkhabad',
'Asia/Bahrain|Asia/Qatar',
'Asia/Bangkok|Asia/Phnom_Penh',
'Asia/Bangkok|Asia/Vientiane',
'Asia/Calcutta|Asia/Kolkata',
'Asia/Chongqing|Asia/Chungking',
'Asia/Chongqing|Asia/Harbin',
'Asia/Chongqing|Asia/Shanghai',
'Asia/Chongqing|PRC',
'Asia/Dacca|Asia/Dhaka',
'Asia/Dubai|Asia/Muscat',
'Asia/Ho_Chi_Minh|Asia/Saigon',
'Asia/Hong_Kong|Hongkong',
'Asia/Istanbul|Europe/Istanbul',
'Asia/Istanbul|Turkey',
'Asia/Jerusalem|Asia/Tel_Aviv',
'Asia/Jerusalem|Israel',
'Asia/Kashgar|Asia/Urumqi',
'Asia/Kathmandu|Asia/Katmandu',
'Asia/Macao|Asia/Macau',
'Asia/Makassar|Asia/Ujung_Pandang',
'Asia/Nicosia|Europe/Nicosia',
'Asia/Seoul|ROK',
'Asia/Singapore|Singapore',
'Asia/Taipei|ROC',
'Asia/Tehran|Iran',
'Asia/Thimbu|Asia/Thimphu',
'Asia/Tokyo|Japan',
'Asia/Ulaanbaatar|Asia/Ulan_Bator',
'Atlantic/Faeroe|Atlantic/Faroe',
'Atlantic/Reykjavik|Iceland',
'Australia/ACT|Australia/Canberra',
'Australia/ACT|Australia/NSW',
'Australia/ACT|Australia/Sydney',
'Australia/Adelaide|Australia/South',
'Australia/Brisbane|Australia/Queensland',
'Australia/Broken_Hill|Australia/Yancowinna',
'Australia/Darwin|Australia/North',
'Australia/Hobart|Australia/Tasmania',
'Australia/LHI|Australia/Lord_Howe',
'Australia/Melbourne|Australia/Victoria',
'Australia/Perth|Australia/West',
'Chile/EasterIsland|Pacific/Easter',
'Eire|Europe/Dublin',
'Etc/GMT+0|Etc/GMT',
'Etc/GMT+0|Etc/GMT-0',
'Etc/GMT+0|Etc/GMT0',
'Etc/GMT+0|Etc/Greenwich',
'Etc/GMT+0|GMT',
'Etc/GMT+0|GMT+0',
'Etc/GMT+0|GMT-0',
'Etc/GMT+0|GMT0',
'Etc/GMT+0|Greenwich',
'Etc/UCT|UCT',
'Etc/UTC|Etc/Universal',
'Etc/UTC|Etc/Zulu',
'Etc/UTC|UTC',
'Etc/UTC|Universal',
'Etc/UTC|Zulu',
'Europe/Belfast|Europe/Guernsey',
'Europe/Belfast|Europe/Isle_of_Man',
'Europe/Belfast|Europe/Jersey',
'Europe/Belfast|Europe/London',
'Europe/Belfast|GB',
'Europe/Belfast|GB-Eire',
'Europe/Belgrade|Europe/Ljubljana',
'Europe/Belgrade|Europe/Podgorica',
'Europe/Belgrade|Europe/Sarajevo',
'Europe/Belgrade|Europe/Skopje',
'Europe/Belgrade|Europe/Zagreb',
'Europe/Bratislava|Europe/Prague',
'Europe/Busingen|Europe/Vaduz',
'Europe/Busingen|Europe/Zurich',
'Europe/Chisinau|Europe/Tiraspol',
'Europe/Helsinki|Europe/Mariehamn',
'Europe/Lisbon|Portugal',
'Europe/Moscow|W-SU',
'Europe/Rome|Europe/San_Marino',
'Europe/Rome|Europe/Vatican',
'Europe/Warsaw|Poland',
'Kwajalein|Pacific/Kwajalein',
'NZ-CHAT|Pacific/Chatham',
'Pacific/Chuuk|Pacific/Truk',
'Pacific/Chuuk|Pacific/Yap',
'Pacific/Guam|Pacific/Saipan',
'Pacific/Honolulu|Pacific/Johnston',
'Pacific/Honolulu|US/Hawaii',
'Pacific/Midway|Pacific/Pago_Pago',
'Pacific/Midway|Pacific/Samoa',
'Pacific/Midway|US/Samoa',
'Pacific/Pohnpei|Pacific/Ponape'
]
}),
a
});
// OpenLayers 3. See http://openlayers.org/
// License: https://raw.githubusercontent.com/openlayers/ol3/master/LICENSE.md
// Version: v3.11.2
(function (root, factory) {
if (typeof exports === 'object') {
module.exports = factory();
} else if (typeof define === 'function' && define.amd) {
define([], factory);
} else {
root.ol = factory();
}
}(this, function () {
var OPENLAYERS = {
};
var l,
aa = aa || {
},
ba = this;
function ca(b) {
return void 0 !== b
}
function u(b, c, d) {
b = b.split('.');
d = d || ba;
b[0] in d || !d.execScript || d.execScript('var ' + b[0]);
for (var e; b.length && (e = b.shift()); ) !b.length && ca(c) ? d[e] = c : d[e] ? d = d[e] : d = d[e] = {
}
}
function da() {
}
function ea(b) {
b.Yb = function () {
return b.Ng ? b.Ng : b.Ng = new b
}
}
function fa(b) {
var c = typeof b;
if ('object' == c) if (b) {
if (b instanceof Array) return 'array';
if (b instanceof Object) return c;
var d = Object.prototype.toString.call(b);
if ('[object Window]' == d) return 'object';
if ('[object Array]' == d || 'number' == typeof b.length && 'undefined' != typeof b.splice && 'undefined' != typeof b.propertyIsEnumerable && !b.propertyIsEnumerable('splice')) return 'array';
if ('[object Function]' == d || 'undefined' != typeof b.call && 'undefined' != typeof b.propertyIsEnumerable && !b.propertyIsEnumerable('call')) return 'function'
} else return 'null';
 else if ('function' == c && 'undefined' == typeof b.call) return 'object';
return c
}
function ga(b) {
return 'array' == fa(b)
}
function ha(b) {
var c = fa(b);
return 'array' == c || 'object' == c && 'number' == typeof b.length
}
function ia(b) {
return 'string' == typeof b
}
function ja(b) {
return 'number' == typeof b
}
function ka(b) {
return 'function' == fa(b)
}
function ma(b) {
var c = typeof b;
return 'object' == c && null != b || 'function' == c
}
function w(b) {
return b[na] || (b[na] = ++oa)
}
var na = 'closure_uid_' + (1000000000 * Math.random() >>> 0),
oa = 0;
function pa(b, c, d) {
return b.call.apply(b.bind, arguments)
}
function qa(b, c, d) {
if (!b) throw Error();
if (2 < arguments.length) {
var e = Array.prototype.slice.call(arguments, 2);
return function () {
var d = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(d, e);
return b.apply(c, d)
}
}
return function () {
return b.apply(c, arguments)
}
}
function ra(b, c, d) {
ra = Function.prototype.bind && - 1 != Function.prototype.bind.toString().indexOf('native code') ? pa : qa;
return ra.apply(null, arguments)
}
function sa(b, c) {
var d = Array.prototype.slice.call(arguments, 1);
return function () {
var c = d.slice();
c.push.apply(c, arguments);
return b.apply(this, c)
}
}
var ta = Date.now || function () {
return + new Date
};
function y(b, c) {
function d() {
}
d.prototype = c.prototype;
b.da = c.prototype;
b.prototype = new d;
b.prototype.constructor = b;
b.zp = function (b, d, g) {
for (var h = Array(arguments.length - 2), k = 2; k < arguments.length; k++) h[k - 2] = arguments[k];
return c.prototype[d].apply(b, h)
}
};
var ua,
va;
function wa() {
};
function xa(b) {
if (Error.captureStackTrace) Error.captureStackTrace(this, xa);
 else {
var c = Error().stack;
c && (this.stack = c)
}
b && (this.message = String(b))
}
y(xa, Error);
xa.prototype.name = 'CustomError';
var ya;
function Aa(b, c) {
var d = b.length - c.length;
return 0 <= d && b.indexOf(c, d) == d
}
function Ba(b, c) {
for (var d = b.split('%s'), e = '', f = Array.prototype.slice.call(arguments, 1); f.length && 1 < d.length; ) e += d.shift() + f.shift();
return e + d.join('%s')
}
var Ca = String.prototype.trim ? function (b) {
return b.trim()
}
 : function (b) {
return b.replace(/^[\s\xa0]+|[\s\xa0]+$/g, '')
};
function Da(b) {
if (!Fa.test(b)) return b;
- 1 != b.indexOf('&') && (b = b.replace(Ga, '&amp;'));
- 1 != b.indexOf('<') && (b = b.replace(Ha, '&lt;'));
- 1 != b.indexOf('>') && (b = b.replace(Ia, '&gt;'));
- 1 != b.indexOf('"') && (b = b.replace(Ja, '&quot;'));
- 1 != b.indexOf('\'') && (b = b.replace(La, '&#39;'));
- 1 != b.indexOf('\0') && (b = b.replace(Ma, '&#0;'));
return b
}
var Ga = /&/g,
Ha = /</g,
Ia = />/g,
Ja = /"/g,
La = /'/g,
Ma = /\x00/g,
Fa = /[\x00&<>"']/,
Na = String.prototype.repeat ? function (b, c) {
return b.repeat(c)
}
 : function (b, c) {
return Array(c + 1).join(b)
};
function Oa(b) {
b = ca(void 0) ? b.toFixed(void 0)  : String(b);
var c = b.indexOf('.');
- 1 == c && (c = b.length);
return Na('0', Math.max(0, 2 - c)) + b
}
function Pa(b, c) {
for (var d = 0, e = Ca(String(b)).split('.'), f = Ca(String(c)).split('.'), g = Math.max(e.length, f.length), h = 0; 0 == d && h < g; h++) {
var k = e[h] || '',
m = f[h] || '',
n = RegExp('(\\d*)(\\D*)', 'g'),
p = RegExp('(\\d*)(\\D*)', 'g');
do {
var q = n.exec(k) || ['',
'',
''],
r = p.exec(m) || ['',
'',
''];
if (0 == q[0].length && 0 == r[0].length) break;
d = Qa(0 == q[1].length ? 0 : parseInt(q[1], 10), 0 == r[1].length ? 0 : parseInt(r[1], 10)) || Qa(0 == q[2].length, 0 == r[2].length) || Qa(q[2], r[2])
} while (0 == d)
}
return d
}
function Qa(b, c) {
return b < c ? - 1 : b > c ? 1 : 0
};
function Sa(b, c, d) {
return Math.min(Math.max(b, c), d)
}
var Ta = function () {
var b;
'cosh' in Math ? b = Math.cosh : b = function (b) {
b = Math.exp(b);
return (b + 1 / b) / 2
};
return b
}();
function Ua(b, c, d, e, f, g) {
var h = f - d,
k = g - e;
if (0 !== h || 0 !== k) {
var m = ((b - d) * h + (c - e) * k) / (h * h + k * k);
1 < m ? (d = f, e = g)  : 0 < m && (d += h * m, e += k * m)
}
return Va(b, c, d, e)
}
function Va(b, c, d, e) {
b = d - b;
c = e - c;
return b * b + c * c
}
function Wa(b) {
return b * Math.PI / 180
};
function Xa(b) {
return function (c) {
if (c) return [Sa(c[0], b[0], b[2]),
Sa(c[1], b[1], b[3])]
}
}
function Ya(b) {
return b
};
var Za = Array.prototype;
function $a(b, c) {
return Za.indexOf.call(b, c, void 0)
}
function ab(b, c) {
Za.forEach.call(b, c, void 0)
}
function bb(b, c) {
return Za.filter.call(b, c, void 0)
}
function db(b, c) {
return Za.map.call(b, c, void 0)
}
function eb(b, c) {
return Za.some.call(b, c, void 0)
}
function fb(b, c) {
var d = gb(b, c, void 0);
return 0 > d ? null : ia(b) ? b.charAt(d)  : b[d]
}
function gb(b, c, d) {
for (var e = b.length, f = ia(b) ? b.split('')  : b, g = 0; g < e; g++) if (g in f && c.call(d, f[g], g, b)) return g;
return - 1
}
function hb(b, c) {
var d = $a(b, c),
e;
(e = 0 <= d) && Za.splice.call(b, d, 1);
return e
}
function ib(b) {
return Za.concat.apply(Za, arguments)
}
function jb(b) {
var c = b.length;
if (0 < c) {
for (var d = Array(c), e = 0; e < c; e++) d[e] = b[e];
return d
}
return []
}
function lb(b, c) {
for (var d = 1; d < arguments.length; d++) {
var e = arguments[d];
if (ha(e)) {
var f = b.length || 0,
g = e.length || 0;
b.length = f + g;
for (var h = 0; h < g; h++) b[f + h] = e[h]
} else b.push(e)
}
}
function mb(b, c, d, e) {
Za.splice.apply(b, nb(arguments, 1))
}
function nb(b, c, d) {
return 2 >= arguments.length ? Za.slice.call(b, c)  : Za.slice.call(b, c, d)
}
function ob(b, c) {
b.sort(c || pb)
}
function qb(b) {
for (var c = rb, d = 0; d < b.length; d++) b[d] = {
index: d,
value: b[d]
};
var e = c || pb;
ob(b, function (b, c) {
return e(b.value, c.value) || b.index - c.index
});
for (d = 0; d < b.length; d++) b[d] = b[d].value
}
function sb(b, c) {
if (!ha(b) || !ha(c) || b.length != c.length) return !1;
for (var d = b.length, e = tb, f = 0; f < d; f++) if (!e(b[f], c[f])) return !1;
return !0
}
function pb(b, c) {
return b > c ? 1 : b < c ? - 1 : 0
}
function tb(b, c) {
return b === c
}
function ub(b) {
for (var c = [
], d = 0; d < arguments.length; d++) {
var e = arguments[d];
if (ga(e)) for (var f = 0; f < e.length; f += 8192) for (var g = nb(e, f, f + 8192), g = ub.apply(null, g), h = 0; h < g.length; h++) c.push(g[h]);
 else c.push(e)
}
return c
};
function vb(b, c) {
return 0 <= b.indexOf(c)
}
function wb(b, c, d) {
var e = b.length;
if (b[0] <= c) return 0;
if (!(c <= b[e - 1])) if (0 < d) for (d = 1; d < e; ++d) {
if (b[d] < c) return d - 1
} else if (0 > d) for (d = 1; d < e; ++d) {
if (b[d] <= c) return d
} else for (d = 1; d < e; ++d) {
if (b[d] == c) return d;
if (b[d] < c) return b[d - 1] - c < c - b[d] ? d - 1 : d
}
return e - 1
};
function xb(b) {
return function (c, d, e) {
if (void 0 !== c) return c = wb(b, c, e),
c = Sa(c + d, 0, b.length - 1),
b[c]
}
}
function yb(b, c, d) {
return function (e, f, g) {
if (void 0 !== e) return e = Math.max(Math.floor(Math.log(c / e) / Math.log(b) + (0 < g ? 0 : 0 > g ? 1 : 0.5)) + f, 0),
void 0 !== d && (e = Math.min(e, d)),
c / Math.pow(b, e)
}
};
function zb(b) {
if (void 0 !== b) return 0
}
function Ab(b, c) {
if (void 0 !== b) return b + c
}
function Bb(b) {
var c = 2 * Math.PI / b;
return function (b, e) {
if (void 0 !== b) return b = Math.floor((b + e) / c + 0.5) * c
}
}
function Cb() {
var b = Wa(5);
return function (c, d) {
if (void 0 !== c) return Math.abs(c + d) <= b ? 0 : c + d
}
};
function Db(b, c, d) {
this.center = b;
this.resolution = c;
this.rotation = d
};
var Eb;
a: {
var Fb = ba.navigator;
if (Fb) {
var Gb = Fb.userAgent;
if (Gb) {
Eb = Gb;
break a
}
}
Eb = ''
}
function Hb(b) {
return - 1 != Eb.indexOf(b)
};
function Ib(b, c, d) {
for (var e in b) c.call(d, b[e], e, b)
}
function Jb(b, c) {
for (var d in b) if (c.call(void 0, b[d], d, b)) return !0;
return !1
}
function Kb(b) {
var c = 0,
d;
for (d in b) c++;
return c
}
function Lb(b) {
var c = [
],
d = 0,
e;
for (e in b) c[d++] = b[e];
return c
}
function Mb(b) {
var c = [
],
d = 0,
e;
for (e in b) c[d++] = e;
return c
}
function Nb(b, c) {
return c in b
}
function Ob(b, c) {
for (var d in b) if (b[d] == c) return !0;
return !1
}
function Pb(b, c) {
for (var d in b) if (c.call(void 0, b[d], d, b)) return d
}
function Qb(b) {
for (var c in b) return !1;
return !0
}
function Rb(b) {
for (var c in b) delete b[c]
}
function Sb(b, c, d) {
return c in b ? b[c] : d
}
function Tb(b, c) {
var d = [
];
return c in b ? b[c] : b[c] = d
}
function Ub(b) {
var c = {
},
d;
for (d in b) c[d] = b[d];
return c
}
function Vb(b) {
var c = fa(b);
if ('object' == c || 'array' == c) {
if (ka(b.clone)) return b.clone();
var c = 'array' == c ? [
] : {
},
d;
for (d in b) c[d] = Vb(b[d]);
return c
}
return b
}
var Wb = 'constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf'.split(' ');
function Xb(b, c) {
for (var d, e, f = 1; f < arguments.length; f++) {
e = arguments[f];
for (d in e) b[d] = e[d];
for (var g = 0; g < Wb.length; g++) d = Wb[g],
Object.prototype.hasOwnProperty.call(e, d) && (b[d] = e[d])
}
};
var Yb = Hb('Opera') || Hb('OPR'),
Zb = Hb('Trident') || Hb('MSIE'),
$b = Hb('Edge'),
ac = Hb('Gecko') && !( - 1 != Eb.toLowerCase().indexOf('webkit') && !Hb('Edge')) && !(Hb('Trident') || Hb('MSIE')) && !Hb('Edge'),
bc = - 1 != Eb.toLowerCase().indexOf('webkit') && !Hb('Edge'),
cc = Hb('Macintosh'),
dc = Hb('Windows'),
ec = Hb('Linux') || Hb('CrOS');
function fc() {
var b = Eb;
if (ac) return /rv\:([^\);]+)(\)|;)/.exec(b);
if ($b) return /Edge\/([\d\.]+)/.exec(b);
if (Zb) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(b);
if (bc) return /WebKit\/(\S+)/.exec(b)
}
function gc() {
var b = ba.document;
return b ? b.documentMode : void 0
}
var hc = function () {
if (Yb && ba.opera) {
var b;
var c = ba.opera.version;
try {
b = c()
} catch (d) {
b = c
}
return b
}
b = '';
(c = fc()) && (b = c ? c[1] : '');
return Zb && (c = gc(), c > parseFloat(b)) ? String(c)  : b
}(),
ic = {
};
function jc(b) {
return ic[b] || (ic[b] = 0 <= Pa(hc, b))
}
var kc = ba.document,
lc = kc && Zb ? gc() || ('CSS1Compat' == kc.compatMode ? parseInt(hc, 10)  : 5)  : void 0;
var mc = !Zb || 9 <= lc,
nc = !Zb || 9 <= lc,
oc = Zb && !jc('9');
!bc || jc('528');
ac && jc('1.9b') || Zb && jc('8') || Yb && jc('9.5') || bc && jc('528');
ac && !jc('8') || Zb && jc('9');
function pc() {
0 != qc && (rc[w(this)] = this);
this.ia = this.ia;
this.oa = this.oa
}
var qc = 0,
rc = {
};
pc.prototype.ia = !1;
pc.prototype.Ec = function () {
if (!this.ia && (this.ia = !0, this.X(), 0 != qc)) {
var b = w(this);
delete rc[b]
}
};
function tc(b, c) {
var d = sa(uc, c);
b.ia ? d.call(void 0)  : (b.oa || (b.oa = [
]), b.oa.push(ca(void 0) ? ra(d, void 0)  : d))
}
pc.prototype.X = function () {
if (this.oa) for (; this.oa.length; ) this.oa.shift() ()
};
function uc(b) {
b && 'function' == typeof b.Ec && b.Ec()
};
function vc(b, c) {
this.type = b;
this.g = this.target = c;
this.i = !1;
this.Qh = !0
}
vc.prototype.b = function () {
this.i = !0
};
vc.prototype.preventDefault = function () {
this.Qh = !1
};
function wc(b) {
b.b()
}
function xc(b) {
b.preventDefault()
};
var yc = Zb ? 'focusout' : 'DOMFocusOut';
function zc(b) {
zc[' '](b);
return b
}
zc[' '] = da;
function Ac(b, c) {
vc.call(this, b ? b.type : '');
this.relatedTarget = this.g = this.target = null;
this.u = this.j = this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0;
this.A = this.f = this.c = this.B = !1;
this.state = null;
this.l = !1;
this.a = null;
if (b) {
var d = this.type = b.type,
e = b.changedTouches ? b.changedTouches[0] : null;
this.target = b.target || b.srcElement;
this.g = c;
var f = b.relatedTarget;
if (f) {
if (ac) {
var g;
a: {
try {
zc(f.nodeName);
g = !0;
break a
} catch (h) {
}
g = !1
}
g || (f = null)
}
} else 'mouseover' == d ?
f = b.fromElement : 'mouseout' == d && (f = b.toElement);
this.relatedTarget = f;
null === e ? (this.offsetX = bc || void 0 !== b.offsetX ? b.offsetX : b.layerX, this.offsetY = bc || void 0 !== b.offsetY ? b.offsetY : b.layerY, this.clientX = void 0 !== b.clientX ? b.clientX : b.pageX, this.clientY = void 0 !== b.clientY ? b.clientY : b.pageY, this.screenX = b.screenX || 0, this.screenY = b.screenY || 0)  : (this.clientX = void 0 !== e.clientX ? e.clientX : e.pageX, this.clientY = void 0 !== e.clientY ? e.clientY : e.pageY, this.screenX = e.screenX || 0, this.screenY = e.screenY || 0);
this.button =
b.button;
this.j = b.keyCode || 0;
this.u = b.charCode || ('keypress' == d ? b.keyCode : 0);
this.B = b.ctrlKey;
this.c = b.altKey;
this.f = b.shiftKey;
this.A = b.metaKey;
this.l = cc ? b.metaKey : b.ctrlKey;
this.state = b.state;
this.a = b;
b.defaultPrevented && this.preventDefault()
}
}
y(Ac, vc);
var Bc = [
1,
4,
2
];
function Cc(b) {
return (mc ? 0 == b.a.button : 'click' == b.type ? !0 : !!(b.a.button & Bc[0])) && !(bc && cc && b.B)
}
Ac.prototype.b = function () {
Ac.da.b.call(this);
this.a.stopPropagation ? this.a.stopPropagation()  : this.a.cancelBubble = !0
};
Ac.prototype.preventDefault = function () {
Ac.da.preventDefault.call(this);
var b = this.a;
if (b.preventDefault) b.preventDefault();
 else if (b.returnValue = !1, oc) try {
if (b.ctrlKey || 112 <= b.keyCode && 123 >= b.keyCode) b.keyCode = - 1
} catch (c) {
}
};
var Dc = 'closure_listenable_' + (1000000 * Math.random() | 0);
function Ec(b) {
return !(!b || !b[Dc])
}
var Fc = 0;
function Gc(b, c, d, e, f) {
this.listener = b;
this.a = null;
this.src = c;
this.type = d;
this.ad = !!e;
this.je = f;
this.key = ++Fc;
this.Tc = this.Ud = !1
}
function Hc(b) {
b.Tc = !0;
b.listener = null;
b.a = null;
b.src = null;
b.je = null
};
function Ic(b) {
this.src = b;
this.a = {
};
this.c = 0
}
Ic.prototype.add = function (b, c, d, e, f) {
var g = b.toString();
b = this.a[g];
b || (b = this.a[g] = [
], this.c++);
var h = Jc(b, c, e, f);
- 1 < h ? (c = b[h], d || (c.Ud = !1))  : (c = new Gc(c, this.src, g, !!e, f), c.Ud = d, b.push(c));
return c
};
Ic.prototype.remove = function (b, c, d, e) {
b = b.toString();
if (!(b in this.a)) return !1;
var f = this.a[b];
c = Jc(f, c, d, e);
return - 1 < c ? (Hc(f[c]), Za.splice.call(f, c, 1), 0 == f.length && (delete this.a[b], this.c--), !0)  : !1
};
function Kc(b, c) {
var d = c.type;
if (!(d in b.a)) return !1;
var e = hb(b.a[d], c);
e && (Hc(c), 0 == b.a[d].length && (delete b.a[d], b.c--));
return e
}
function Lc(b, c, d, e, f) {
b = b.a[c.toString()];
c = - 1;
b && (c = Jc(b, d, e, f));
return - 1 < c ? b[c] : null
}
function Mc(b, c, d) {
var e = ca(c),
f = e ? c.toString()  : '',
g = ca(d);
return Jb(b.a, function (b) {
for (var c = 0; c < b.length; ++c) if (!(e && b[c].type != f || g && b[c].ad != d)) return !0;
return !1
})
}
function Jc(b, c, d, e) {
for (var f = 0; f < b.length; ++f) {
var g = b[f];
if (!g.Tc && g.listener == c && g.ad == !!d && g.je == e) return f
}
return - 1
};
var Nc = 'closure_lm_' + (1000000 * Math.random() | 0),
Oc = {
},
Pc = 0;
function C(b, c, d, e, f) {
if (ga(c)) {
for (var g = 0; g < c.length; g++) C(b, c[g], d, e, f);
return null
}
d = Qc(d);
return Ec(b) ? b.Qa(c, d, e, f)  : Sc(b, c, d, !1, e, f)
}
function Sc(b, c, d, e, f, g) {
if (!c) throw Error('Invalid event type');
var h = !!f,
k = Tc(b);
k || (b[Nc] = k = new Ic(b));
d = k.add(c, d, e, f, g);
if (d.a) return d;
e = Uc();
d.a = e;
e.src = b;
e.listener = d;
if (b.addEventListener) b.addEventListener(c.toString(), e, h);
 else if (b.attachEvent) b.attachEvent(Vc(c.toString()), e);
 else throw Error('addEventListener and attachEvent are unavailable.');
Pc++;
return d
}
function Uc() {
var b = Wc,
c = nc ? function (d) {
return b.call(c.src, c.listener, d)
}
 : function (d) {
d = b.call(c.src, c.listener, d);
if (!d) return d
};
return c
}
function Xc(b, c, d, e, f) {
if (ga(c)) {
for (var g = 0; g < c.length; g++) Xc(b, c[g], d, e, f);
return null
}
d = Qc(d);
return Ec(b) ? b.zb.add(String(c), d, !0, e, f)  : Sc(b, c, d, !0, e, f)
}
function Yc(b, c, d, e, f) {
if (ga(c)) for (var g = 0; g < c.length; g++) Yc(b, c[g], d, e, f);
 else d = Qc(d),
Ec(b) ? b.Vf(c, d, e, f)  : b && (b = Tc(b)) && (c = Lc(b, c, d, !!e, f)) && Zc(c)
}
function Zc(b) {
if (ja(b) || !b || b.Tc) return !1;
var c = b.src;
if (Ec(c)) return Kc(c.zb, b);
var d = b.type,
e = b.a;
c.removeEventListener ? c.removeEventListener(d, e, b.ad)  : c.detachEvent && c.detachEvent(Vc(d), e);
Pc--;
(d = Tc(c)) ? (Kc(d, b), 0 == d.c && (d.src = null, c[Nc] = null))  : Hc(b);
return !0
}
function Vc(b) {
return b in Oc ? Oc[b] : Oc[b] = 'on' + b
}
function $c(b, c, d, e) {
var f = !0;
if (b = Tc(b)) if (c = b.a[c.toString()]) for (c = c.concat(), b = 0; b < c.length; b++) {
var g = c[b];
g && g.ad == d && !g.Tc && (g = ad(g, e), f = f && !1 !== g)
}
return f
}
function ad(b, c) {
var d = b.listener,
e = b.je || b.src;
b.Ud && Zc(b);
return d.call(e, c)
}
function Wc(b, c) {
if (b.Tc) return !0;
if (!nc) {
var d;
if (!(d = c)) a: {
d = [
'window',
'event'
];
for (var e = ba, f; f = d.shift(); ) if (null != e[f]) e = e[f];
 else {
d = null;
break a
}
d = e
}
f = d;
d = new Ac(f, this);
e = !0;
if (!(0 > f.keyCode || void 0 != f.returnValue)) {
a: {
var g = !1;
if (0 == f.keyCode) try {
f.keyCode = - 1;
break a
} catch (m) {
g = !0
}
if (g || void 0 == f.returnValue) f.returnValue = !0
}
f = [
];
for (g = d.g; g; g = g.parentNode) f.push(g);
for (var g = b.type, h = f.length - 1; !d.i && 0 <= h; h--) {
d.g = f[h];
var k = $c(f[h], g, !0, d),
e = e && k
}
for (h = 0; !d.i && h < f.length; h++) d.g = f[h],
k =
$c(f[h], g, !1, d),
e = e && k
}
return e
}
return ad(b, new Ac(c, this))
}
function Tc(b) {
b = b[Nc];
return b instanceof Ic ? b : null
}
var bd = '__closure_events_fn_' + (1000000000 * Math.random() >>> 0);
function Qc(b) {
if (ka(b)) return b;
b[bd] || (b[bd] = function (c) {
return b.handleEvent(c)
});
return b[bd]
};
function cd() {
pc.call(this);
this.zb = new Ic(this);
this.Nd = this;
this.eb = null
}
y(cd, pc);
cd.prototype[Dc] = !0;
l = cd.prototype;
l.addEventListener = function (b, c, d, e) {
C(this, b, c, d, e)
};
l.removeEventListener = function (b, c, d, e) {
Yc(this, b, c, d, e)
};
l.o = function (b) {
var c,
d = this.eb;
if (d) for (c = [
]; d; d = d.eb) c.push(d);
var d = this.Nd,
e = b.type || b;
if (ia(b)) b = new vc(b, d);
 else if (b instanceof vc) b.target = b.target || d;
 else {
var f = b;
b = new vc(e, d);
Xb(b, f)
}
var f = !0,
g;
if (c) for (var h = c.length - 1; !b.i && 0 <= h; h--) g = b.g = c[h],
f = dd(g, e, !0, b) && f;
b.i || (g = b.g = d, f = dd(g, e, !0, b) && f, b.i || (f = dd(g, e, !1, b) && f));
if (c) for (h = 0; !b.i && h < c.length; h++) g = b.g = c[h],
f = dd(g, e, !1, b) && f;
return f
};
l.X = function () {
cd.da.X.call(this);
if (this.zb) {
var b = this.zb,
c = 0,
d;
for (d in b.a) {
for (var e = b.a[d], f = 0; f < e.length; f++) ++c,
Hc(e[f]);
delete b.a[d];
b.c--
}
}
this.eb = null
};
l.Qa = function (b, c, d, e) {
return this.zb.add(String(b), c, !1, d, e)
};
l.Vf = function (b, c, d, e) {
return this.zb.remove(String(b), c, d, e)
};
function dd(b, c, d, e) {
c = b.zb.a[String(c)];
if (!c) return !0;
c = c.concat();
for (var f = !0, g = 0; g < c.length; ++g) {
var h = c[g];
if (h && !h.Tc && h.ad == d) {
var k = h.listener,
m = h.je || h.src;
h.Ud && Kc(b.zb, h);
f = !1 !== k.call(m, e) && f
}
}
return f && 0 != e.Qh
}
function ed(b, c, d) {
return Mc(b.zb, ca(c) ? String(c)  : void 0, d)
};
function fd() {
cd.call(this);
this.c = 0
}
y(fd, cd);
function gd(b) {
Zc(b)
}
l = fd.prototype;
l.s = function () {
++this.c;
this.o('change')
};
l.L = function () {
return this.c
};
l.H = function (b, c, d) {
return C(this, b, c, !1, d)
};
l.M = function (b, c, d) {
return Xc(this, b, c, !1, d)
};
l.K = function (b, c, d) {
Yc(this, b, c, !1, d)
};
l.N = gd;
function hd(b, c, d) {
vc.call(this, b);
this.key = c;
this.oldValue = d
}
y(hd, vc);
function id(b) {
fd.call(this);
w(this);
this.B = {
};
void 0 !== b && this.I(b)
}
y(id, fd);
var jd = {
};
function kd(b) {
return jd.hasOwnProperty(b) ? jd[b] : jd[b] = 'change:' + b
}
l = id.prototype;
l.get = function (b) {
var c;
this.B.hasOwnProperty(b) && (c = this.B[b]);
return c
};
l.O = function () {
return Object.keys(this.B)
};
l.P = function () {
var b = {
},
c;
for (c in this.B) b[c] = this.B[c];
return b
};
function ld(b, c, d) {
var e;
e = kd(c);
b.o(new hd(e, c, d));
b.o(new hd('propertychange', c, d))
}
l.set = function (b, c, d) {
d ? this.B[b] = c : (d = this.B[b], this.B[b] = c, ld(this, b, d))
};
l.I = function (b, c) {
for (var d in b) this.set(d, b[d], c)
};
l.R = function (b, c) {
if (b in this.B) {
var d = this.B[b];
delete this.B[b];
c || ld(this, b, d)
}
};
function md(b, c, d) {
void 0 === d && (d = [
0,
0
]);
d[0] = b[0] + 2 * c;
d[1] = b[1] + 2 * c;
return d
}
function nd(b, c, d) {
void 0 === d && (d = [
0,
0
]);
d[0] = b[0] * c + 0.5 | 0;
d[1] = b[1] * c + 0.5 | 0;
return d
}
function od(b, c) {
if (ga(b)) return b;
void 0 === c ? c = [
b,
b
] : (c[0] = b, c[1] = b);
return c
};
function pd(b, c) {
var d = b % c;
return 0 > d * c ? d + c : d
}
function qd(b, c, d) {
return b + d * (c - b)
};
function rd(b, c) {
b[0] += c[0];
b[1] += c[1];
return b
}
function sd(b, c) {
var d = b[0],
e = b[1],
f = c[0],
g = c[1],
h = f[0],
f = f[1],
k = g[0],
g = g[1],
m = k - h,
n = g - f,
d = 0 === m && 0 === n ? 0 : (m * (d - h) + n * (e - f)) / (m * m + n * n || 0);
0 >= d || (1 <= d ? (h = k, f = g)  : (h += d * m, f += d * n));
return [h,
f]
}
function td(b, c) {
var d = pd(b + 180, 360) - 180,
e = Math.abs(Math.round(3600 * d));
return Math.floor(e / 3600) + '° ' + Oa(Math.floor(e / 60 % 60)) + '′ ' + Oa(Math.floor(e % 60)) + '″ ' + c.charAt(0 > d ? 1 : 0)
}
function ud(b, c, d) {
return b ? c.replace('{x}', b[0].toFixed(d)).replace('{y}', b[1].toFixed(d))  : ''
}
function vd(b, c) {
for (var d = !0, e = b.length - 1; 0 <= e; --e) if (b[e] != c[e]) {
d = !1;
break
}
return d
}
function wd(b, c) {
var d = Math.cos(c),
e = Math.sin(c),
f = b[1] * d + b[0] * e;
b[0] = b[0] * d - b[1] * e;
b[1] = f;
return b
}
function xd(b, c) {
var d = b[0] - c[0],
e = b[1] - c[1];
return d * d + e * e
}
function yd(b, c) {
return xd(b, sd(b, c))
}
function zd(b, c) {
return ud(b, '{x}, {y}', c)
};
function Ad(b) {
this.length = b.length || b;
for (var c = 0; c < this.length; c++) this[c] = b[c] || 0
}
Ad.prototype.a = 4;
Ad.prototype.set = function (b, c) {
c = c || 0;
for (var d = 0; d < b.length && c + d < this.length; d++) this[c + d] = b[d]
};
Ad.prototype.toString = Array.prototype.join;
'undefined' == typeof Float32Array && (Ad.BYTES_PER_ELEMENT = 4, Ad.prototype.BYTES_PER_ELEMENT = Ad.prototype.a, Ad.prototype.set = Ad.prototype.set, Ad.prototype.toString = Ad.prototype.toString, u('Float32Array', Ad, void 0));
function Bd(b) {
this.length = b.length || b;
for (var c = 0; c < this.length; c++) this[c] = b[c] || 0
}
Bd.prototype.a = 8;
Bd.prototype.set = function (b, c) {
c = c || 0;
for (var d = 0; d < b.length && c + d < this.length; d++) this[c + d] = b[d]
};
Bd.prototype.toString = Array.prototype.join;
if ('undefined' == typeof Float64Array) {
try {
Bd.BYTES_PER_ELEMENT = 8
} catch (b) {
}
Bd.prototype.BYTES_PER_ELEMENT = Bd.prototype.a;
Bd.prototype.set = Bd.prototype.set;
Bd.prototype.toString = Bd.prototype.toString;
u('Float64Array', Bd, void 0)
};
function Cd(b, c, d, e, f) {
b[0] = c;
b[1] = d;
b[2] = e;
b[3] = f
};
function Dd() {
var b = Array(16);
Ed(b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
return b
}
function Fd() {
var b = Array(16);
Ed(b, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
return b
}
function Ed(b, c, d, e, f, g, h, k, m, n, p, q, r, t, x, z, B) {
b[0] = c;
b[1] = d;
b[2] = e;
b[3] = f;
b[4] = g;
b[5] = h;
b[6] = k;
b[7] = m;
b[8] = n;
b[9] = p;
b[10] = q;
b[11] = r;
b[12] = t;
b[13] = x;
b[14] = z;
b[15] = B
}
function Gd(b, c) {
b[0] = c[0];
b[1] = c[1];
b[2] = c[2];
b[3] = c[3];
b[4] = c[4];
b[5] = c[5];
b[6] = c[6];
b[7] = c[7];
b[8] = c[8];
b[9] = c[9];
b[10] = c[10];
b[11] = c[11];
b[12] = c[12];
b[13] = c[13];
b[14] = c[14];
b[15] = c[15]
}
function Hd(b) {
b[0] = 1;
b[1] = 0;
b[2] = 0;
b[3] = 0;
b[4] = 0;
b[5] = 1;
b[6] = 0;
b[7] = 0;
b[8] = 0;
b[9] = 0;
b[10] = 1;
b[11] = 0;
b[12] = 0;
b[13] = 0;
b[14] = 0;
b[15] = 1
}
function Id(b, c, d) {
var e = b[0],
f = b[1],
g = b[2],
h = b[3],
k = b[4],
m = b[5],
n = b[6],
p = b[7],
q = b[8],
r = b[9],
t = b[10],
x = b[11],
z = b[12],
B = b[13],
A = b[14];
b = b[15];
var v = c[0],
O = c[1],
K = c[2],
I = c[3],
G = c[4],
la = c[5],
Ea = c[6],
L = c[7],
za = c[8],
Ra = c[9],
Ka = c[10],
kb = c[11],
cb = c[12],
Rc = c[13],
sc = c[14];
c = c[15];
d[0] = e * v + k * O + q * K + z * I;
d[1] = f * v + m * O + r * K + B * I;
d[2] = g * v + n * O + t * K + A * I;
d[3] = h * v + p * O + x * K + b * I;
d[4] = e * G + k * la + q * Ea + z * L;
d[5] = f * G + m * la + r * Ea + B * L;
d[6] = g * G + n * la + t * Ea + A * L;
d[7] = h * G + p * la + x * Ea + b * L;
d[8] = e * za + k * Ra + q * Ka + z * kb;
d[9] = f * za + m * Ra + r * Ka + B * kb;
d[10] =
g * za + n * Ra + t * Ka + A * kb;
d[11] = h * za + p * Ra + x * Ka + b * kb;
d[12] = e * cb + k * Rc + q * sc + z * c;
d[13] = f * cb + m * Rc + r * sc + B * c;
d[14] = g * cb + n * Rc + t * sc + A * c;
d[15] = h * cb + p * Rc + x * sc + b * c
}
function Jd(b, c) {
var d = b[0],
e = b[1],
f = b[2],
g = b[3],
h = b[4],
k = b[5],
m = b[6],
n = b[7],
p = b[8],
q = b[9],
r = b[10],
t = b[11],
x = b[12],
z = b[13],
B = b[14],
A = b[15],
v = d * k - e * h,
O = d * m - f * h,
K = d * n - g * h,
I = e * m - f * k,
G = e * n - g * k,
la = f * n - g * m,
Ea = p * z - q * x,
L = p * B - r * x,
za = p * A - t * x,
Ra = q * B - r * z,
Ka = q * A - t * z,
kb = r * A - t * B,
cb = v * kb - O * Ka + K * Ra + I * za - G * L + la * Ea;
0 != cb && (cb = 1 / cb, c[0] = (k * kb - m * Ka + n * Ra) * cb, c[1] = ( - e * kb + f * Ka - g * Ra) * cb, c[2] = (z * la - B * G + A * I) * cb, c[3] = ( - q * la + r * G - t * I) * cb, c[4] = ( - h * kb + m * za - n * L) * cb, c[5] = (d * kb - f * za + g * L) * cb, c[6] = ( - x * la + B * K - A * O) * cb, c[7] = (p * la - r * K + t *
O) * cb, c[8] = (h * Ka - k * za + n * Ea) * cb, c[9] = ( - d * Ka + e * za - g * Ea) * cb, c[10] = (x * G - z * K + A * v) * cb, c[11] = ( - p * G + q * K - t * v) * cb, c[12] = ( - h * Ra + k * L - m * Ea) * cb, c[13] = (d * Ra - e * L + f * Ea) * cb, c[14] = ( - x * I + z * O - B * v) * cb, c[15] = (p * I - q * O + r * v) * cb)
}
function Kd(b, c, d) {
var e = b[1] * c + b[5] * d + 0 * b[9] + b[13],
f = b[2] * c + b[6] * d + 0 * b[10] + b[14],
g = b[3] * c + b[7] * d + 0 * b[11] + b[15];
b[12] = b[0] * c + b[4] * d + 0 * b[8] + b[12];
b[13] = e;
b[14] = f;
b[15] = g
}
function Ld(b, c, d) {
Ed(b, b[0] * c, b[1] * c, b[2] * c, b[3] * c, b[4] * d, b[5] * d, b[6] * d, b[7] * d, 1 * b[8], 1 * b[9], 1 * b[10], 1 * b[11], b[12], b[13], b[14], b[15])
}
function Md(b, c) {
var d = b[0],
e = b[1],
f = b[2],
g = b[3],
h = b[4],
k = b[5],
m = b[6],
n = b[7],
p = Math.cos(c),
q = Math.sin(c);
b[0] = d * p + h * q;
b[1] = e * p + k * q;
b[2] = f * p + m * q;
b[3] = g * p + n * q;
b[4] = d * - q + h * p;
b[5] = e * - q + k * p;
b[6] = f * - q + m * p;
b[7] = g * - q + n * p
}
new Float64Array(3);
new Float64Array(3);
new Float64Array(4);
new Float64Array(4);
new Float64Array(4);
new Float64Array(16);
function Nd(b) {
for (var c = Od(), d = 0, e = b.length; d < e; ++d) Pd(c, b[d]);
return c
}
function Qd(b, c, d) {
var e = Math.min.apply(null, b),
f = Math.min.apply(null, c);
b = Math.max.apply(null, b);
c = Math.max.apply(null, c);
return Rd(e, f, b, c, d)
}
function Sd(b, c, d) {
return d ? (d[0] = b[0] - c, d[1] = b[1] - c, d[2] = b[2] + c, d[3] = b[3] + c, d)  : [
b[0] - c,
b[1] - c,
b[2] + c,
b[3] + c
]
}
function Td(b, c) {
return c ? (c[0] = b[0], c[1] = b[1], c[2] = b[2], c[3] = b[3], c)  : b.slice()
}
function Ud(b, c, d) {
c = c < b[0] ? b[0] - c : b[2] < c ? c - b[2] : 0;
b = d < b[1] ? b[1] - d : b[3] < d ? d - b[3] : 0;
return c * c + b * b
}
function Vd(b, c) {
return Wd(b, c[0], c[1])
}
function Xd(b, c) {
return b[0] <= c[0] && c[2] <= b[2] && b[1] <= c[1] && c[3] <= b[3]
}
function Wd(b, c, d) {
return b[0] <= c && c <= b[2] && b[1] <= d && d <= b[3]
}
function Yd(b, c) {
var d = b[1],
e = b[2],
f = b[3],
g = c[0],
h = c[1],
k = 0;
g < b[0] ? k = k | 16 : g > e && (k = k | 4);
h < d ? k |= 8 : h > f && (k |= 2);
0 === k && (k = 1);
return k
}
function Od() {
return [Infinity,
Infinity,
- Infinity,
- Infinity]
}
function Rd(b, c, d, e, f) {
return f ? (f[0] = b, f[1] = c, f[2] = d, f[3] = e, f)  : [
b,
c,
d,
e
]
}
function Zd(b, c) {
var d = b[0],
e = b[1];
return Rd(d, e, d, e, c)
}
function $d(b, c, d, e, f) {
f = Rd(Infinity, Infinity, - Infinity, - Infinity, f);
return ae(f, b, c, d, e)
}
function be(b, c) {
return b[0] == c[0] && b[2] == c[2] && b[1] == c[1] && b[3] == c[3]
}
function ce(b, c) {
c[0] < b[0] && (b[0] = c[0]);
c[2] > b[2] && (b[2] = c[2]);
c[1] < b[1] && (b[1] = c[1]);
c[3] > b[3] && (b[3] = c[3]);
return b
}
function Pd(b, c) {
c[0] < b[0] && (b[0] = c[0]);
c[0] > b[2] && (b[2] = c[0]);
c[1] < b[1] && (b[1] = c[1]);
c[1] > b[3] && (b[3] = c[1])
}
function ae(b, c, d, e, f) {
for (; d < e; d += f) {
var g = b,
h = c[d],
k = c[d + 1];
g[0] = Math.min(g[0], h);
g[1] = Math.min(g[1], k);
g[2] = Math.max(g[2], h);
g[3] = Math.max(g[3], k)
}
return b
}
function de(b, c, d) {
var e;
return (e = c.call(d, ee(b))) || (e = c.call(d, fe(b))) || (e = c.call(d, ge(b))) ? e : (e = c.call(d, he(b))) ? e : !1
}
function ie(b) {
var c = 0;
je(b) || (c = ke(b) * le(b));
return c
}
function ee(b) {
return [b[0],
b[1]]
}
function fe(b) {
return [b[2],
b[1]]
}
function me(b) {
return [(b[0] + b[2]) / 2,
(b[1] + b[3]) / 2]
}
function ne(b, c, d, e) {
var f = c * e[0] / 2;
e = c * e[1] / 2;
c = Math.cos(d);
d = Math.sin(d);
f = [
- f,
- f,
f,
f
];
e = [
- e,
e,
- e,
e
];
var g,
h,
k;
for (g = 0; 4 > g; ++g) h = f[g],
k = e[g],
f[g] = b[0] + h * c - k * d,
e[g] = b[1] + h * d + k * c;
return Qd(f, e, void 0)
}
function le(b) {
return b[3] - b[1]
}
function oe(b, c, d) {
d = d ? d : Od();
pe(b, c) && (d[0] = b[0] > c[0] ? b[0] : c[0], d[1] = b[1] > c[1] ? b[1] : c[1], d[2] = b[2] < c[2] ? b[2] : c[2], d[3] = b[3] < c[3] ? b[3] : c[3]);
return d
}
function he(b) {
return [b[0],
b[3]]
}
function ge(b) {
return [b[2],
b[3]]
}
function ke(b) {
return b[2] - b[0]
}
function pe(b, c) {
return b[0] <= c[2] && b[2] >= c[0] && b[1] <= c[3] && b[3] >= c[1]
}
function je(b) {
return b[2] < b[0] || b[3] < b[1]
}
function qe(b, c) {
var d = (b[2] - b[0]) / 2 * (c - 1),
e = (b[3] - b[1]) / 2 * (c - 1);
b[0] -= d;
b[2] += d;
b[1] -= e;
b[3] += e
}
function re(b, c, d) {
b = [
b[0],
b[1],
b[0],
b[3],
b[2],
b[1],
b[2],
b[3]
];
c(b, b, 2);
return Qd([b[0],
b[2],
b[4],
b[6]], [
b[1],
b[3],
b[5],
b[7]
], d)
};
function se(b) {
return function () {
return b
}
}
var te = se(!1),
ue = se(!0),
ve = se(null);
function we(b) {
return b
}
function xe(b) {
var c;
c = c || 0;
return function () {
return b.apply(this, Array.prototype.slice.call(arguments, 0, c))
}
}
function ye(b) {
var c = arguments,
d = c.length;
return function () {
for (var b, f = 0; f < d; f++) b = c[f].apply(this, arguments);
return b
}
}
function ze(b) {
var c = arguments,
d = c.length;
return function () {
for (var b = 0; b < d; b++) if (!c[b].apply(this, arguments)) return !1;
return !0
}
}; /*
 Latitude/longitude spherical geodesy formulae taken from
 http://www.movable-type.co.uk/scripts/latlong.html
 Licensed under CC-BY-3.0.
*/
function Ae(b) {
this.radius = b
}
Ae.prototype.c = function (b) {
for (var c = 0, d = b.length, e = b[d - 1][0], f = b[d - 1][1], g = 0; g < d; g++) var h = b[g][0],
k = b[g][1],
c = c + Wa(h - e) * (2 + Math.sin(Wa(f)) + Math.sin(Wa(k))),
e = h,
f = k;
return c * this.radius * this.radius / 2
};
Ae.prototype.a = function (b, c) {
var d = Wa(b[1]),
e = Wa(c[1]),
f = (e - d) / 2,
g = Wa(c[0] - b[0]) / 2,
d = Math.sin(f) * Math.sin(f) + Math.sin(g) * Math.sin(g) * Math.cos(d) * Math.cos(e);
return 2 * this.radius * Math.atan2(Math.sqrt(d), Math.sqrt(1 - d))
};
Ae.prototype.offset = function (b, c, d) {
var e = Wa(b[1]);
c /= this.radius;
var f = Math.asin(Math.sin(e) * Math.cos(c) + Math.cos(e) * Math.sin(c) * Math.cos(d));
return [180 * (Wa(b[0]) + Math.atan2(Math.sin(d) * Math.sin(c) * Math.cos(e), Math.cos(c) - Math.sin(e) * Math.sin(f))) / Math.PI,
180 * f / Math.PI]
};
var Be = new Ae(6370997);
var Ce = {
};
Ce.degrees = 2 * Math.PI * Be.radius / 360;
Ce.ft = 0.3048;
Ce.m = 1;
Ce['us-ft'] = 1200 / 3937;
function De(b) {
this.a = b.code;
this.c = b.units;
this.j = void 0 !== b.extent ? b.extent : null;
this.i = void 0 !== b.worldExtent ? b.worldExtent : null;
this.g = void 0 !== b.axisOrientation ? b.axisOrientation : 'enu';
this.f = void 0 !== b.global ? b.global : !1;
this.b = !(!this.f || !this.j);
this.B = void 0 !== b.getPointResolution ? b.getPointResolution : this.dk;
this.l = null;
var c = Ee,
d = b.code;
if ('function' == typeof proj4 && void 0 === c[d]) {
var e = proj4.defs(d);
if (void 0 !== e) {
void 0 !== e.axis && void 0 === b.axisOrientation && (this.g = e.axis);
void 0 === b.units && (b = e.units, void 0 === e.to_meter || void 0 !== b && void 0 !== Ce[b] || (b = e.to_meter.toString(), Ce[b] = e.to_meter), this.c = b);
for (var f in c) b = proj4.defs(f),
void 0 !== b && (c = Fe(f), b === e ? Ge([c,
this])  : (b = proj4(f, d), He(c, this, b.forward, b.inverse)))
}
}
}
l = De.prototype;
l.Fj = function () {
return this.a
};
l.J = function () {
return this.j
};
l.wm = function () {
return this.c
};
l.Jc = function () {
return Ce[this.c]
};
l.pk = function () {
return this.i
};
function Ie(b) {
return b.g
}
l.cl = function () {
return this.f
};
l.No = function (b) {
this.f = b;
this.b = !(!b || !this.j)
};
l.xm = function (b) {
this.j = b;
this.b = !(!this.f || !b)
};
l.Vo = function (b) {
this.i = b
};
l.Mo = function (b) {
this.B = b
};
l.dk = function (b, c) {
if ('degrees' == this.c) return b;
var d = Je(this, Fe('EPSG:4326')),
e = [
c[0] - b / 2,
c[1],
c[0] + b / 2,
c[1],
c[0],
c[1] - b / 2,
c[0],
c[1] + b / 2
],
e = d(e, e, 2),
d = Be.a(e.slice(0, 2), e.slice(2, 4)),
e = Be.a(e.slice(4, 6), e.slice(6, 8)),
e = (d + e) / 2,
d = this.Jc();
void 0 !== d && (e /= d);
return e
};
l.getPointResolution = function (b, c) {
return this.B(b, c)
};
var Ee = {
},
Ke = {
};
function Ge(b) {
Le(b);
b.forEach(function (c) {
b.forEach(function (b) {
c !== b && Me(c, b, Ne)
})
})
}
function Pe() {
var b = Qe,
c = Re,
d = Se;
Te.forEach(function (e) {
b.forEach(function (b) {
Me(e, b, c);
Me(b, e, d)
})
})
}
function Ue(b) {
Ee[b.a] = b;
Me(b, b, Ne)
}
function Le(b) {
var c = [
];
b.forEach(function (b) {
c.push(Ue(b))
})
}
function Ve(b) {
return b ? ia(b) ? Fe(b)  : b : Fe('EPSG:3857')
}
function Me(b, c, d) {
b = b.a;
c = c.a;
b in Ke || (Ke[b] = {
});
Ke[b][c] = d
}
function He(b, c, d, e) {
b = Fe(b);
c = Fe(c);
Me(b, c, We(d));
Me(c, b, We(e))
}
function We(b) {
return function (c, d, e) {
var f = c.length;
e = void 0 !== e ? e : 2;
d = void 0 !== d ? d : Array(f);
var g,
h;
for (h = 0; h < f; h += e) for (g = b([c[h],
c[h + 1]]), d[h] = g[0], d[h + 1] = g[1], g = e - 1; 2 <= g; --g) d[h + g] = c[h + g];
return d
}
}
function Fe(b) {
var c;
b instanceof De ? c = b : ia(b) ? (c = Ee[b], void 0 === c && 'function' == typeof proj4 && void 0 !== proj4.defs(b) && (c = new De({
code: b
}), Ue(c)))  : c = null;
return c
}
function Xe(b, c) {
return b === c ? !0 : b.a === c.a ? b.c === c.c : Je(b, c) === Ne
}
function Ye(b, c) {
var d = Fe(b),
e = Fe(c);
return Je(d, e)
}
function Je(b, c) {
var d = b.a,
e = c.a,
f;
d in Ke && e in Ke[d] && (f = Ke[d][e]);
void 0 === f && (f = Ze);
return f
}
function Ze(b, c) {
if (void 0 !== c && b !== c) {
for (var d = 0, e = b.length; d < e; ++d) c[d] = b[d];
b = c
}
return b
}
function Ne(b, c) {
var d;
if (void 0 !== c) {
d = 0;
for (var e = b.length; d < e; ++d) c[d] = b[d];
d = c
} else d = b.slice();
return d
}
function $e(b, c, d) {
return Ye(c, d) (b, void 0, b.length)
}
function af(b, c, d) {
c = Ye(c, d);
return re(b, c)
};
function bf() {
id.call(this);
this.A = Od();
this.C = - 1;
this.j = {
};
this.u = this.i = 0
}
y(bf, id);
l = bf.prototype;
l.pb = function (b, c) {
var d = c ? c : [
NaN,
NaN
];
this.mb(b[0], b[1], d, Infinity);
return d
};
l.ng = function (b) {
return this.rc(b[0], b[1])
};
l.rc = te;
l.J = function (b) {
this.C != this.c && (this.A = this.Vd(this.A), this.C = this.c);
var c = this.A;
b ? (b[0] = c[0], b[1] = c[1], b[2] = c[2], b[3] = c[3])  : b = c;
return b
};
l.yb = function (b) {
return this.sd(b * b)
};
l.kb = function (b, c) {
this.mc(Ye(b, c));
return this
};
function cf(b, c, d, e, f, g) {
var h = f[0],
k = f[1],
m = f[4],
n = f[5],
p = f[12];
f = f[13];
for (var q = g ? g : [
], r = 0; c < d; c += e) {
var t = b[c],
x = b[c + 1];
q[r++] = h * t + m * x + p;
q[r++] = k * t + n * x + f
}
g && q.length != r && (q.length = r);
return q
};
function df() {
bf.call(this);
this.b = 'XY';
this.a = 2;
this.v = null
}
y(df, bf);
function ef(b) {
if ('XY' == b) return 2;
if ('XYZ' == b || 'XYM' == b) return 3;
if ('XYZM' == b) return 4
}
l = df.prototype;
l.rc = te;
l.Vd = function (b) {
return $d(this.v, 0, this.v.length, this.a, b)
};
l.Jb = function () {
return this.v.slice(0, this.a)
};
l.ja = function () {
return this.v
};
l.Kb = function () {
return this.v.slice(this.v.length - this.a)
};
l.Lb = function () {
return this.b
};
l.sd = function (b) {
this.u != this.c && (Rb(this.j), this.i = 0, this.u = this.c);
if (0 > b || 0 !== this.i && b <= this.i) return this;
var c = b.toString();
if (this.j.hasOwnProperty(c)) return this.j[c];
var d = this.Kc(b);
if (d.ja().length < this.v.length) return this.j[c] = d;
this.i = b;
return this
};
l.Kc = function () {
return this
};
l.ra = function () {
return this.a
};
function ff(b, c, d) {
b.a = ef(c);
b.b = c;
b.v = d
}
function gf(b, c, d, e) {
if (c) d = ef(c);
 else {
for (c = 0; c < e; ++c) {
if (0 === d.length) {
b.b = 'XY';
b.a = 2;
return
}
d = d[0]
}
d = d.length;
c = 2 == d ? 'XY' : 3 == d ? 'XYZ' : 4 == d ? 'XYZM' : void 0
}
b.b = c;
b.a = d
}
l.mc = function (b) {
this.v && (b(this.v, this.v, this.a), this.s())
};
l.Oc = function (b, c) {
var d = this.ja();
if (d) {
var e = this.ra(),
f = d.length,
g = d ? d : [
],
h = 0,
k,
m;
for (k = 0; k < f; k += e) for (g[h++] = d[k] + b, g[h++] = d[k + 1] + c, m = k + 2; m < k + e; ++m) g[h++] = d[m];
d && g.length != h && (g.length = h);
this.s()
}
};
function hf(b, c, d, e) {
for (var f = 0, g = b[d - e], h = b[d - e + 1]; c < d; c += e) var k = b[c],
m = b[c + 1],
f = f + (h * k - g * m),
g = k,
h = m;
return f / 2
}
function jf(b, c, d, e) {
var f = 0,
g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
var k = d[g],
f = f + hf(b, c, k, e);
c = k
}
return f
};
function kf(b, c, d, e, f, g, h) {
var k = b[c],
m = b[c + 1],
n = b[d] - k,
p = b[d + 1] - m;
if (0 !== n || 0 !== p) if (g = ((f - k) * n + (g - m) * p) / (n * n + p * p), 1 < g) c = d;
 else if (0 < g) {
for (f = 0; f < e; ++f) h[f] = qd(b[c + f], b[d + f], g);
h.length = e;
return
}
for (f = 0; f < e; ++f) h[f] = b[c + f];
h.length = e
}
function lf(b, c, d, e, f) {
var g = b[c],
h = b[c + 1];
for (c += e; c < d; c += e) {
var k = b[c],
m = b[c + 1],
g = Va(g, h, k, m);
g > f && (f = g);
g = k;
h = m
}
return f
}
function mf(b, c, d, e, f) {
var g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
var k = d[g];
f = lf(b, c, k, e, f);
c = k
}
return f
}
function nf(b, c, d, e, f, g, h, k, m, n, p) {
if (c == d) return n;
var q;
if (0 === f) {
q = Va(h, k, b[c], b[c + 1]);
if (q < n) {
for (p = 0; p < e; ++p) m[p] = b[c + p];
m.length = e;
return q
}
return n
}
for (var r = p ? p : [
NaN,
NaN
], t = c + e; t < d; ) if (kf(b, t - e, t, e, h, k, r), q = Va(h, k, r[0], r[1]), q < n) {
n = q;
for (p = 0; p < e; ++p) m[p] = r[p];
m.length = e;
t += e
} else t += e * Math.max((Math.sqrt(q) - Math.sqrt(n)) / f | 0, 1);
if (g && (kf(b, d - e, c, e, h, k, r), q = Va(h, k, r[0], r[1]), q < n)) {
n = q;
for (p = 0; p < e; ++p) m[p] = r[p];
m.length = e
}
return n
}
function of(b, c, d, e, f, g, h, k, m, n, p) {
p = p ? p : [
NaN,
NaN
];
var q,
r;
q = 0;
for (r = d.length; q < r; ++q) {
var t = d[q];
n = nf(b, c, t, e, f, g, h, k, m, n, p);
c = t
}
return n
};
function pf(b, c) {
var d = 0,
e,
f;
e = 0;
for (f = c.length; e < f; ++e) b[d++] = c[e];
return d
}
function qf(b, c, d, e) {
var f,
g;
f = 0;
for (g = d.length; f < g; ++f) {
var h = d[f],
k;
for (k = 0; k < e; ++k) b[c++] = h[k]
}
return c
}
function rf(b, c, d, e, f) {
f = f ? f : [
];
var g = 0,
h,
k;
h = 0;
for (k = d.length; h < k; ++h) c = qf(b, c, d[h], e),
f[g++] = c;
f.length = g;
return f
};
function sf(b, c, d, e, f) {
f = void 0 !== f ? f : [
];
for (var g = 0; c < d; c += e) f[g++] = b.slice(c, c + e);
f.length = g;
return f
}
function tf(b, c, d, e, f) {
f = void 0 !== f ? f : [
];
var g = 0,
h,
k;
h = 0;
for (k = d.length; h < k; ++h) {
var m = d[h];
f[g++] = sf(b, c, m, e, f[g]);
c = m
}
f.length = g;
return f
};
function uf(b, c, d, e, f, g, h) {
var k = (d - c) / e;
if (3 > k) {
for (; c < d; c += e) g[h++] = b[c],
g[h++] = b[c + 1];
return h
}
var m = Array(k);
m[0] = 1;
m[k - 1] = 1;
d = [
c,
d - e
];
for (var n = 0, p; 0 < d.length; ) {
var q = d.pop(),
r = d.pop(),
t = 0,
x = b[r],
z = b[r + 1],
B = b[q],
A = b[q + 1];
for (p = r + e; p < q; p += e) {
var v = Ua(b[p], b[p + 1], x, z, B, A);
v > t && (n = p, t = v)
}
t > f && (m[(n - c) / e] = 1, r + e < n && d.push(r, n), n + e < q && d.push(n, q))
}
for (p = 0; p < k; ++p) m[p] && (g[h++] = b[c + p * e], g[h++] = b[c + p * e + 1]);
return h
}
function vf(b, c, d, e, f, g, h, k) {
var m,
n;
m = 0;
for (n = d.length; m < n; ++m) {
var p = d[m];
a: {
var q = b,
r = p,
t = e,
x = f,
z = g;
if (c != r) {
var B = x * Math.round(q[c] / x),
A = x * Math.round(q[c + 1] / x);
c += t;
z[h++] = B;
z[h++] = A;
var v = void 0,
O = void 0;
do if (v = x * Math.round(q[c] / x), O = x * Math.round(q[c + 1] / x), c += t, c == r) {
z[h++] = v;
z[h++] = O;
break a
} while (v == B && O == A);
for (; c < r; ) {
var K,
I;
K = x * Math.round(q[c] / x);
I = x * Math.round(q[c + 1] / x);
c += t;
if (K != v || I != O) {
var G = v - B,
la = O - A,
Ea = K - B,
L = I - A;
G * L == la * Ea && (0 > G && Ea < G || G == Ea || 0 < G && Ea > G) && (0 > la && L < la || la == L || 0 < la &&
L > la) || (z[h++] = v, z[h++] = O, B = v, A = O);
v = K;
O = I
}
}
z[h++] = v;
z[h++] = O
}
}
k.push(h);
c = p
}
return h
};
function wf(b, c) {
df.call(this);
this.g = this.l = - 1;
this.ma(b, c)
}
y(wf, df);
l = wf.prototype;
l.clone = function () {
var b = new wf(null);
xf(b, this.b, this.v.slice());
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
this.g != this.c && (this.l = Math.sqrt(lf(this.v, 0, this.v.length, this.a, 0)), this.g = this.c);
return nf(this.v, 0, this.v.length, this.a, this.l, !0, b, c, d, e)
};
l.Yl = function () {
return hf(this.v, 0, this.v.length, this.a)
};
l.Y = function () {
return sf(this.v, 0, this.v.length, this.a)
};
l.Kc = function (b) {
var c = [
];
c.length = uf(this.v, 0, this.v.length, this.a, b, c, 0);
b = new wf(null);
xf(b, 'XY', c);
return b
};
l.V = function () {
return 'LinearRing'
};
l.ma = function (b, c) {
b ? (gf(this, c, b, 1), this.v || (this.v = [
]), this.v.length = qf(this.v, 0, b, this.a), this.s())  : xf(this, 'XY', null)
};
function xf(b, c, d) {
ff(b, c, d);
b.s()
};
function D(b, c) {
df.call(this);
this.ma(b, c)
}
y(D, df);
l = D.prototype;
l.clone = function () {
var b = new D(null);
b.ba(this.b, this.v.slice());
return b
};
l.mb = function (b, c, d, e) {
var f = this.v;
b = Va(b, c, f[0], f[1]);
if (b < e) {
e = this.a;
for (c = 0; c < e; ++c) d[c] = f[c];
d.length = e;
return b
}
return e
};
l.Y = function () {
return this.v ? this.v.slice()  : [
]
};
l.Vd = function (b) {
return Zd(this.v, b)
};
l.V = function () {
return 'Point'
};
l.Da = function (b) {
return Wd(b, this.v[0], this.v[1])
};
l.ma = function (b, c) {
b ? (gf(this, c, b, 0), this.v || (this.v = [
]), this.v.length = pf(this.v, b), this.s())  : this.ba('XY', null)
};
l.ba = function (b, c) {
ff(this, b, c);
this.s()
};
function yf(b, c, d, e, f) {
return !de(f, function (f) {
return !zf(b, c, d, e, f[0], f[1])
})
}
function zf(b, c, d, e, f, g) {
for (var h = !1, k = b[d - e], m = b[d - e + 1]; c < d; c += e) {
var n = b[c],
p = b[c + 1];
m > g != p > g && f < (n - k) * (g - m) / (p - m) + k && (h = !h);
k = n;
m = p
}
return h
}
function Af(b, c, d, e, f, g) {
if (0 === d.length || !zf(b, c, d[0], e, f, g)) return !1;
var h;
c = 1;
for (h = d.length; c < h; ++c) if (zf(b, d[c - 1], d[c], e, f, g)) return !1;
return !0
};
function Bf(b, c, d, e, f, g, h) {
var k,
m,
n,
p,
q,
r = f[g + 1],
t = [
],
x = d[0];
n = b[x - e];
q = b[x - e + 1];
for (k = c; k < x; k += e) {
p = b[k];
m = b[k + 1];
if (r <= q && m <= r || q <= r && r <= m) n = (r - q) / (m - q) * (p - n) + n,
t.push(n);
n = p;
q = m
}
x = NaN;
q = - Infinity;
t.sort();
n = t[0];
k = 1;
for (m = t.length; k < m; ++k) {
p = t[k];
var z = Math.abs(p - n);
z > q && (n = (n + p) / 2, Af(b, c, d, e, n, r) && (x = n, q = z));
n = p
}
isNaN(x) && (x = f[g]);
return h ? (h.push(x, r), h)  : [
x,
r
]
};
function Cf(b, c, d, e, f, g) {
for (var h = [
b[c],
b[c + 1]
], k = [
], m; c + e < d; c += e) {
k[0] = b[c + e];
k[1] = b[c + e + 1];
if (m = f.call(g, h, k)) return m;
h[0] = k[0];
h[1] = k[1]
}
return !1
};
function Df(b, c, d, e, f) {
var g = ae(Od(), b, c, d, e);
return pe(f, g) ? Xd(f, g) || g[0] >= f[0] && g[2] <= f[2] || g[1] >= f[1] && g[3] <= f[3] ? !0 : Cf(b, c, d, e, function (b, c) {
var d = !1,
e = Yd(f, b),
g = Yd(f, c);
if (1 === e || 1 === g) d = !0;
 else {
var q = f[0],
r = f[1],
t = f[2],
x = f[3],
z = c[0],
B = c[1],
A = (B - b[1]) / (z - b[0]);
g & 2 && !(e & 2) && (d = z - (B - x) / A, d = d >= q && d <= t);
d || !(g & 4) || e & 4 || (d = B - (z - t) * A, d = d >= r && d <= x);
d || !(g & 8) || e & 8 || (d = z - (B - r) / A, d = d >= q && d <= t);
d || !(g & 16) || e & 16 || (d = B - (z - q) * A, d = d >= r && d <= x)
}
return d
})  : !1
}
function Ef(b, c, d, e, f) {
var g = d[0];
if (!(Df(b, c, g, e, f) || zf(b, c, g, e, f[0], f[1]) || zf(b, c, g, e, f[0], f[3]) || zf(b, c, g, e, f[2], f[1]) || zf(b, c, g, e, f[2], f[3]))) return !1;
if (1 === d.length) return !0;
c = 1;
for (g = d.length; c < g; ++c) if (yf(b, d[c - 1], d[c], e, f)) return !1;
return !0
};
function Ff(b, c, d, e) {
for (var f = 0, g = b[d - e], h = b[d - e + 1]; c < d; c += e) var k = b[c],
m = b[c + 1],
f = f + (k - g) * (m + h),
g = k,
h = m;
return 0 < f
}
function Gf(b, c, d, e) {
var f = 0;
e = void 0 !== e ? e : !1;
var g,
h;
g = 0;
for (h = c.length; g < h; ++g) {
var k = c[g],
f = Ff(b, f, k, d);
if (0 === g) {
if (e && f || !e && !f) return !1
} else if (e && !f || !e && f) return !1;
f = k
}
return !0
}
function Hf(b, c, d, e, f) {
f = void 0 !== f ? f : !1;
var g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
var k = d[g],
m = Ff(b, c, k, e);
if (0 === g ? f && m || !f && !m : f && !m || !f && m) for (var m = b, n = k, p = e; c < n - p; ) {
var q;
for (q = 0; q < p; ++q) {
var r = m[c + q];
m[c + q] = m[n - p + q];
m[n - p + q] = r
}
c += p;
n -= p
}
c = k
}
return c
}
function If(b, c, d, e) {
var f = 0,
g,
h;
g = 0;
for (h = c.length; g < h; ++g) f = Hf(b, f, c[g], d, e);
return f
};
function E(b, c) {
df.call(this);
this.g = [
];
this.D = - 1;
this.G = null;
this.T = this.S = this.U = - 1;
this.l = null;
this.ma(b, c)
}
y(E, df);
l = E.prototype;
l.lj = function (b) {
this.v ? lb(this.v, b.ja())  : this.v = b.ja().slice();
this.g.push(this.v.length);
this.s()
};
l.clone = function () {
var b = new E(null);
b.ba(this.b, this.v.slice(), this.g.slice());
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
this.S != this.c && (this.U = Math.sqrt(mf(this.v, 0, this.g, this.a, 0)), this.S = this.c);
return of(this.v, 0, this.g, this.a, this.U, !0, b, c, d, e)
};
l.rc = function (b, c) {
return Af(this.ac(), 0, this.g, this.a, b, c)
};
l.am = function () {
return jf(this.ac(), 0, this.g, this.a)
};
l.Y = function (b) {
var c;
void 0 !== b ? (c = this.ac().slice(), Hf(c, 0, this.g, this.a, b))  : c = this.v;
return tf(c, 0, this.g, this.a)
};
l.Ab = function () {
return this.g
};
function Jf(b) {
if (b.D != b.c) {
var c = me(b.J());
b.G = Bf(b.ac(), 0, b.g, b.a, c, 0);
b.D = b.c
}
return b.G
}
l.Oj = function () {
return new D(Jf(this))
};
l.Tj = function () {
return this.g.length
};
l.Bg = function (b) {
if (0 > b || this.g.length <= b) return null;
var c = new wf(null);
xf(c, this.b, this.v.slice(0 === b ? 0 : this.g[b - 1], this.g[b]));
return c
};
l.ae = function () {
var b = this.b,
c = this.v,
d = this.g,
e = [
],
f = 0,
g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
var k = d[g],
m = new wf(null);
xf(m, b, c.slice(f, k));
e.push(m);
f = k
}
return e
};
l.ac = function () {
if (this.T != this.c) {
var b = this.v;
Gf(b, this.g, this.a) ? this.l = b : (this.l = b.slice(), this.l.length = Hf(this.l, 0, this.g, this.a));
this.T = this.c
}
return this.l
};
l.Kc = function (b) {
var c = [
],
d = [
];
c.length = vf(this.v, 0, this.g, this.a, Math.sqrt(b), c, 0, d);
b = new E(null);
b.ba('XY', c, d);
return b
};
l.V = function () {
return 'Polygon'
};
l.Da = function (b) {
return Ef(this.ac(), 0, this.g, this.a, b)
};
l.ma = function (b, c) {
if (b) {
gf(this, c, b, 2);
this.v || (this.v = [
]);
var d = rf(this.v, 0, b, this.a, this.g);
this.v.length = 0 === d.length ? 0 : d[d.length - 1];
this.s()
} else this.ba('XY', null, this.g)
};
l.ba = function (b, c, d) {
ff(this, b, c);
this.g = d;
this.s()
};
function Kf(b, c, d, e) {
var f = e ? e : 32;
e = [
];
var g;
for (g = 0; g < f; ++g) lb(e, b.offset(c, d, 2 * Math.PI * g / f));
e.push(e[0], e[1]);
b = new E(null);
b.ba('XY', e, [
e.length
]);
return b
}
function Lf(b) {
var c = b[0],
d = b[1],
e = b[2];
b = b[3];
c = [
c,
d,
c,
b,
e,
b,
e,
d,
c,
d
];
d = new E(null);
d.ba('XY', c, [
c.length
]);
return d
}
function Mf(b, c, d) {
var e = c ? c : 32,
f = b.ra();
c = b.b;
for (var g = new E(null, c), e = f * (e + 1), f = [
], h = 0; h < e; h++) f[h] = 0;
g.ba(c, f, [
f.length
]);
Nf(g, b.vd(), b.yf(), d);
return g
}
function Nf(b, c, d, e) {
var f = b.ja(),
g = b.b,
h = b.ra(),
k = b.Ab(),
m = f.length / h - 1;
e = e ? e : 0;
for (var n, p, q = 0; q <= m; ++q) p = q * h,
n = e + 2 * pd(q, m) * Math.PI / m,
f[p] = c[0] + d * Math.cos(n),
f[p + 1] = c[1] + d * Math.sin(n);
b.ba(g, f, k)
};
function Of(b) {
id.call(this);
b = b || {
};
this.b = [
0,
0
];
var c = {
};
c.center = void 0 !== b.center ? b.center : null;
this.g = Ve(b.projection);
var d,
e,
f,
g = void 0 !== b.minZoom ? b.minZoom : 0;
d = void 0 !== b.maxZoom ? b.maxZoom : 28;
var h = void 0 !== b.zoomFactor ? b.zoomFactor : 2;
if (void 0 !== b.resolutions) d = b.resolutions,
e = d[0],
f = d[d.length - 1],
d = xb(d);
 else {
e = Ve(b.projection);
f = e.J();
var k = (f ? Math.max(ke(f), le(f))  : 360 * Ce.degrees / Ce[e.c]) / 256 / Math.pow(2, 0),
m = k / Math.pow(2, 28);
e = b.maxResolution;
void 0 !== e ? g = 0 : e = k / Math.pow(h, g);
f = b.minResolution;
void 0 === f && (f = void 0 !== b.maxZoom ? void 0 !== b.maxResolution ? e / Math.pow(h, d)  : k / Math.pow(h, d)  : m);
d = g + Math.floor(Math.log(e / f) / Math.log(h));
f = e / Math.pow(h, d - g);
d = yb(h, e, d - g)
}
this.a = e;
this.i = f;
this.f = g;
g = void 0 !== b.extent ? Xa(b.extent)  : Ya;
(void 0 !== b.enableRotation ? b.enableRotation : 1) ? (e = b.constrainRotation, e = void 0 === e || !0 === e ? Cb()  : !1 === e ? Ab : ja(e) ? Bb(e)  : Ab)  : e = zb;
this.j = new Db(g, d, e);
void 0 !== b.resolution ? c.resolution = b.resolution : void 0 !== b.zoom && (c.resolution = this.constrainResolution(this.a, b.zoom - this.f));
c.rotation = void 0 !== b.rotation ? b.rotation : 0;
this.I(c)
}
y(Of, id);
l = Of.prototype;
l.Wd = function (b) {
return this.j.center(b)
};
l.constrainResolution = function (b, c, d) {
return this.j.resolution(b, c || 0, d || 0)
};
l.constrainRotation = function (b, c) {
return this.j.rotation(b, c || 0)
};
l.Ta = function () {
return this.get('center')
};
l.Zc = function (b) {
var c = this.Ta(),
d = this.$(),
e = this.Ea();
return ne(c, d, e, b)
};
l.Il = function () {
return this.g
};
l.$ = function () {
return this.get('resolution')
};
function Pf(b) {
var c = b.a,
d = Math.log(c / b.i) / Math.log(2);
return function (b) {
return c / Math.pow(2, b * d)
}
}
l.Ea = function () {
return this.get('rotation')
};
function Qf(b) {
var c = b.a,
d = Math.log(c / b.i) / Math.log(2);
return function (b) {
return Math.log(c / b) / Math.log(2) / d
}
}
function Rf(b) {
var c = b.Ta(),
d = b.g,
e = b.$();
b = b.Ea();
return {
center: [
Math.round(c[0] / e) * e,
Math.round(c[1] / e) * e
],
projection: void 0 !== d ? d : null,
resolution: e,
rotation: b
}
}
l.qk = function () {
var b,
c = this.$();
if (void 0 !== c) {
var d,
e = 0;
do {
d = this.constrainResolution(this.a, e);
if (d == c) {
b = e;
break
}
++e
} while (d > this.i)
}
return void 0 !== b ? this.f + b : b
};
l.jf = function (b, c, d) {
b instanceof df || (b = Lf(b));
var e = d || {
};
d = void 0 !== e.padding ? e.padding : [
0,
0,
0,
0
];
var f = void 0 !== e.constrainResolution ? e.constrainResolution : !0,
g = void 0 !== e.nearest ? e.nearest : !1,
h;
void 0 !== e.minResolution ? h = e.minResolution : void 0 !== e.maxZoom ? h = this.constrainResolution(this.a, e.maxZoom - this.f, 0)  : h = 0;
var k = b.ja(),
m = this.Ea(),
e = Math.cos( - m),
m = Math.sin( - m),
n = Infinity,
p = Infinity,
q = - Infinity,
r = - Infinity;
b = b.ra();
for (var t = 0, x = k.length; t < x; t += b) var z = k[t] * e - k[t + 1] * m,
B = k[t] * m + k[t + 1] * e,
n = Math.min(n, z),
p = Math.min(p, B),
q = Math.max(q, z),
r = Math.max(r, B);
k = [
n,
p,
q,
r
];
c = [
c[0] - d[1] - d[3],
c[1] - d[0] - d[2]
];
c = Math.max(ke(k) / c[0], le(k) / c[1]);
c = isNaN(c) ? h : Math.max(c, h);
f && (h = this.constrainResolution(c, 0, 0), !g && h < c && (h = this.constrainResolution(h, - 1, 0)), c = h);
this.Ub(c);
m = - m;
g = (n + q) / 2 + (d[1] - d[3]) / 2 * c;
d = (p + r) / 2 + (d[0] - d[2]) / 2 * c;
this.jb([g * e - d * m,
d * e + g * m])
};
l.qj = function (b, c, d) {
var e = this.Ea(),
f = Math.cos( - e),
e = Math.sin( - e),
g = b[0] * f - b[1] * e;
b = b[1] * f + b[0] * e;
var h = this.$(),
g = g + (c[0] / 2 - d[0]) * h;
b += (d[1] - c[1] / 2) * h;
e = - e;
this.jb([g * f - b * e,
b * f + g * e])
};
function Sf(b) {
return !!b.Ta() && void 0 !== b.$()
}
l.rotate = function (b, c) {
if (void 0 !== c) {
var d,
e = this.Ta();
void 0 !== e && (d = [
e[0] - c[0],
e[1] - c[1]
], wd(d, b - this.Ea()), rd(d, c));
this.jb(d)
}
this.te(b)
};
l.jb = function (b) {
this.set('center', b)
};
function Tf(b, c) {
b.b[1] += c
}
l.Ub = function (b) {
this.set('resolution', b)
};
l.te = function (b) {
this.set('rotation', b)
};
l.Wo = function (b) {
b = this.constrainResolution(this.a, b - this.f, 0);
this.Ub(b)
};
function Uf(b) {
return Math.pow(b, 3)
}
function Vf(b) {
return 1 - Uf(1 - b)
}
function Wf(b) {
return 3 * b * b - 2 * b * b * b
}
function Xf(b) {
return b
}
function Yf(b) {
return 0.5 > b ? Wf(2 * b)  : 1 - Wf(2 * (b - 0.5))
};
function Zf(b) {
var c = b.source,
d = b.start ? b.start : Date.now(),
e = c[0],
f = c[1],
g = void 0 !== b.duration ? b.duration : 1000,
h = b.easing ? b.easing : Wf;
return function (b, c) {
if (c.time < d) return c.animate = !0,
c.viewHints[0] += 1,
!0;
if (c.time < d + g) {
var n = 1 - h((c.time - d) / g),
p = e - c.viewState.center[0],
q = f - c.viewState.center[1];
c.animate = !0;
c.viewState.center[0] += n * p;
c.viewState.center[1] += n * q;
c.viewHints[0] += 1;
return !0
}
return !1
}
}
function ag(b) {
var c = b.rotation ? b.rotation : 0,
d = b.start ? b.start : Date.now(),
e = void 0 !== b.duration ? b.duration : 1000,
f = b.easing ? b.easing : Wf,
g = b.anchor ? b.anchor : null;
return function (b, k) {
if (k.time < d) return k.animate = !0,
k.viewHints[0] += 1,
!0;
if (k.time < d + e) {
var m = 1 - f((k.time - d) / e),
m = (c - k.viewState.rotation) * m;
k.animate = !0;
k.viewState.rotation += m;
if (g) {
var n = k.viewState.center;
n[0] -= g[0];
n[1] -= g[1];
wd(n, m);
rd(n, g)
}
k.viewHints[0] += 1;
return !0
}
return !1
}
}
function bg(b) {
var c = b.resolution,
d = b.start ? b.start : Date.now(),
e = void 0 !== b.duration ? b.duration : 1000,
f = b.easing ? b.easing : Wf;
return function (b, h) {
if (h.time < d) return h.animate = !0,
h.viewHints[0] += 1,
!0;
if (h.time < d + e) {
var k = 1 - f((h.time - d) / e),
m = c - h.viewState.resolution;
h.animate = !0;
h.viewState.resolution += k * m;
h.viewHints[0] += 1;
return !0
}
return !1
}
};
function cg(b, c, d, e) {
return void 0 !== e ? (e[0] = b, e[1] = c, e[2] = d, e)  : [
b,
c,
d
]
}
function dg(b, c, d) {
return b + '/' + c + '/' + d
}
function eg(b) {
var c = b[0],
d = Array(c),
e = 1 << c - 1,
f,
g;
for (f = 0; f < c; ++f) g = 48,
b[1] & e && (g += 1),
b[2] & e && (g += 2),
d[f] = String.fromCharCode(g),
e >>= 1;
return d.join('')
}
function fg(b) {
return dg(b[0], b[1], b[2])
};
function gg(b, c, d, e) {
this.a = b;
this.f = c;
this.c = d;
this.b = e
}
gg.prototype.contains = function (b) {
return hg(this, b[1], b[2])
};
function hg(b, c, d) {
return b.a <= c && c <= b.f && b.c <= d && d <= b.b
}
function ig(b, c) {
return b.a == c.a && b.c == c.c && b.f == c.f && b.b == c.b
}
function jg(b) {
return b.b - b.c + 1
}
function kg(b) {
return b.f - b.a + 1
}
function lg(b, c) {
return b.a <= c.f && b.f >= c.a && b.c <= c.b && b.b >= c.c
};
function mg(b) {
this.c = b.html;
this.a = b.tileRanges ? b.tileRanges : null
}
mg.prototype.b = function () {
return this.c
};
function ng(b, c, d) {
vc.call(this, b, d);
this.element = c
}
y(ng, vc);
function og(b) {
id.call(this);
this.a = b ? b : [
];
pg(this)
}
y(og, id);
l = og.prototype;
l.clear = function () {
for (; 0 < this.$b(); ) this.pop()
};
l.tf = function (b) {
var c,
d;
c = 0;
for (d = b.length; c < d; ++c) this.push(b[c]);
return this
};
l.forEach = function (b, c) {
this.a.forEach(b, c)
};
l.sl = function () {
return this.a
};
l.item = function (b) {
return this.a[b]
};
l.$b = function () {
return this.get('length')
};
l.ke = function (b, c) {
mb(this.a, b, 0, c);
pg(this);
this.o(new ng('add', c, this))
};
l.pop = function () {
return this.Rf(this.$b() - 1)
};
l.push = function (b) {
var c = this.a.length;
this.ke(c, b);
return c
};
l.remove = function (b) {
var c = this.a,
d,
e;
d = 0;
for (e = c.length; d < e; ++d) if (c[d] === b) return this.Rf(d)
};
l.Rf = function (b) {
var c = this.a[b];
Za.splice.call(this.a, b, 1);
pg(this);
this.o(new ng('remove', c, this));
return c
};
l.Jo = function (b, c) {
var d = this.$b();
if (b < d) d = this.a[b],
this.a[b] = c,
this.o(new ng('remove', d, this)),
this.o(new ng('add', c, this));
 else {
for (; d < b; ++d) this.ke(d, void 0);
this.ke(b, c)
}
};
function pg(b) {
b.set('length', b.a.length)
};
var qg = /^#(?:[0-9a-f]{3}){1,2}$/i,
rg = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i,
sg = /^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i;
function tg(b) {
return ga(b) ? b : ug(b)
}
function vg(b) {
if (!ia(b)) {
var c = b[0];
c != (c | 0) && (c = c + 0.5 | 0);
var d = b[1];
d != (d | 0) && (d = d + 0.5 | 0);
var e = b[2];
e != (e | 0) && (e = e + 0.5 | 0);
b = 'rgba(' + c + ',' + d + ',' + e + ',' + b[3] + ')'
}
return b
}
var ug = function () {
var b = {
},
c = 0;
return function (d) {
var e;
if (b.hasOwnProperty(d)) e = b[d];
 else {
if (1024 <= c) {
e = 0;
for (var f in b) 0 === (e++ & 3) && (delete b[f], --c)
}
var g,
h;
qg.exec(d) ? (h = 3 == d.length - 1 ? 1 : 2, e = parseInt(d.substr(1 + 0 * h, h), 16), f = parseInt(d.substr(1 + 1 * h, h), 16), g = parseInt(d.substr(1 + 2 * h, h), 16), 1 == h && (e = (e << 4) + e, f = (f << 4) + f, g = (g << 4) + g), e = [
e,
f,
g,
1
])  : (h = sg.exec(d)) ? (e = Number(h[1]), f = Number(h[2]), g = Number(h[3]), h = Number(h[4]), e = [
e,
f,
g,
h
], e = wg(e, e))  : (h = rg.exec(d)) ? (e = Number(h[1]), f = Number(h[2]), g = Number(h[3]), e = [
e,
f,
g,
1
], e = wg(e, e))  : e = void 0;
b[d] = e;
++c
}
return e
}
}();
function wg(b, c) {
var d = c || [];
d[0] = Sa(b[0] + 0.5 | 0, 0, 255);
d[1] = Sa(b[1] + 0.5 | 0, 0, 255);
d[2] = Sa(b[2] + 0.5 | 0, 0, 255);
d[3] = Sa(b[3], 0, 1);
return d
};
var xg = !Zb || 9 <= lc;
!ac && !Zb || Zb && 9 <= lc || ac && jc('1.9.1');
Zb && jc('9');
function yg(b, c) {
this.x = ca(b) ? b : 0;
this.y = ca(c) ? c : 0
}
l = yg.prototype;
l.clone = function () {
return new yg(this.x, this.y)
};
l.ceil = function () {
this.x = Math.ceil(this.x);
this.y = Math.ceil(this.y);
return this
};
l.floor = function () {
this.x = Math.floor(this.x);
this.y = Math.floor(this.y);
return this
};
l.round = function () {
this.x = Math.round(this.x);
this.y = Math.round(this.y);
return this
};
l.scale = function (b, c) {
var d = ja(c) ? c : b;
this.x *= b;
this.y *= d;
return this
};
function zg(b, c) {
this.width = b;
this.height = c
}
l = zg.prototype;
l.clone = function () {
return new zg(this.width, this.height)
};
l.oj = function () {
return this.width * this.height
};
l.Ka = function () {
return !this.oj()
};
l.ceil = function () {
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
l.floor = function () {
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
l.round = function () {
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
l.scale = function (b, c) {
var d = ja(c) ? c : b;
this.width *= b;
this.height *= d;
return this
};
function Ag(b) {
return b ? new Bg(Cg(b))  : ya || (ya = new Bg)
}
function Dg(b) {
var c = document;
return ia(b) ? c.getElementById(b)  : b
}
function Eg(b, c) {
Ib(c, function (c, e) {
'style' == e ? b.style.cssText = c : 'class' == e ? b.className = c : 'for' == e ? b.htmlFor = c : Fg.hasOwnProperty(e) ? b.setAttribute(Fg[e], c)  : 0 == e.lastIndexOf('aria-', 0) || 0 == e.lastIndexOf('data-', 0) ? b.setAttribute(e, c)  : b[e] = c
})
}
var Fg = {
cellpadding: 'cellPadding',
cellspacing: 'cellSpacing',
colspan: 'colSpan',
frameborder: 'frameBorder',
height: 'height',
maxlength: 'maxLength',
role: 'role',
rowspan: 'rowSpan',
type: 'type',
usemap: 'useMap',
valign: 'vAlign',
width: 'width'
};
function Gg(b) {
b = b.document.documentElement;
return new zg(b.clientWidth, b.clientHeight)
}
function Hg(b, c, d) {
var e = arguments,
f = document,
g = e[0],
h = e[1];
if (!xg && h && (h.name || h.type)) {
g = [
'<',
g
];
h.name && g.push(' name="', Da(h.name), '"');
if (h.type) {
g.push(' type="', Da(h.type), '"');
var k = {
};
Xb(k, h);
delete k.type;
h = k
}
g.push('>');
g = g.join('')
}
g = f.createElement(g);
h && (ia(h) ? g.className = h : ga(h) ? g.className = h.join(' ')  : Eg(g, h));
2 < e.length && Ig(f, g, e, 2);
return g
}
function Ig(b, c, d, e) {
function f(d) {
d && c.appendChild(ia(d) ? b.createTextNode(d)  : d)
}
for (; e < d.length; e++) {
var g = d[e];
!ha(g) || ma(g) && 0 < g.nodeType ? f(g)  : ab(Jg(g) ? jb(g)  : g, f)
}
}
function Kg(b) {
return document.createElement(b)
}
function Lg(b, c) {
Ig(Cg(b), b, arguments, 1)
}
function Mg(b) {
for (var c; c = b.firstChild; ) b.removeChild(c)
}
function Ng(b, c, d) {
b.insertBefore(c, b.childNodes[d] || null)
}
function Og(b) {
b && b.parentNode && b.parentNode.removeChild(b)
}
function Pg(b, c) {
var d = c.parentNode;
d && d.replaceChild(b, c)
}
function Qg(b) {
if (ca(b.firstElementChild)) b = b.firstElementChild;
 else for (b = b.firstChild; b && 1 != b.nodeType; ) b = b.nextSibling;
return b
}
function Rg(b, c) {
if (b.contains && 1 == c.nodeType) return b == c || b.contains(c);
if ('undefined' != typeof b.compareDocumentPosition) return b == c || Boolean(b.compareDocumentPosition(c) & 16);
for (; c && b != c; ) c = c.parentNode;
return c == b
}
function Cg(b) {
return 9 == b.nodeType ? b : b.ownerDocument || b.document
}
function Jg(b) {
if (b && 'number' == typeof b.length) {
if (ma(b)) return 'function' == typeof b.item || 'string' == typeof b.item;
if (ka(b)) return 'function' == typeof b.item
}
return !1
}
function Bg(b) {
this.a = b || ba.document || document
}
Bg.prototype.I = Eg;
function Sg() {
return !0
}
function Tg(b) {
var c = b.a;
b = c.scrollingElement ? c.scrollingElement : bc ? c.body || c.documentElement : c.documentElement;
c = c.parentWindow || c.defaultView;
return Zb && jc('10') && c.pageYOffset != b.scrollTop ? new yg(b.scrollLeft, b.scrollTop)  : new yg(c.pageXOffset || b.scrollLeft, c.pageYOffset || b.scrollTop)
}
Bg.prototype.appendChild = function (b, c) {
b.appendChild(c)
};
Bg.prototype.contains = Rg;
function Ug(b) {
if (b.classList) return b.classList;
b = b.className;
return ia(b) && b.match(/\S+/g) || []
}
function Vg(b, c) {
var d;
b.classList ? d = b.classList.contains(c)  : (d = Ug(b), d = 0 <= $a(d, c));
return d
}
function Wg(b, c) {
b.classList ? b.classList.add(c)  : Vg(b, c) || (b.className += 0 < b.className.length ? ' ' + c : c)
}
function Xg(b, c) {
b.classList ? b.classList.remove(c)  : Vg(b, c) && (b.className = bb(Ug(b), function (b) {
return b != c
}).join(' '))
}
function Yg(b, c) {
Vg(b, c) ? Xg(b, c)  : Wg(b, c)
};
function Zg(b, c, d, e) {
this.top = b;
this.right = c;
this.bottom = d;
this.left = e
}
l = Zg.prototype;
l.clone = function () {
return new Zg(this.top, this.right, this.bottom, this.left)
};
l.contains = function (b) {
return this && b ? b instanceof Zg ? b.left >= this.left && b.right <= this.right && b.top >= this.top && b.bottom <= this.bottom : b.x >= this.left && b.x <= this.right && b.y >= this.top && b.y <= this.bottom : !1
};
l.ceil = function () {
this.top = Math.ceil(this.top);
this.right = Math.ceil(this.right);
this.bottom = Math.ceil(this.bottom);
this.left = Math.ceil(this.left);
return this
};
l.floor = function () {
this.top = Math.floor(this.top);
this.right = Math.floor(this.right);
this.bottom = Math.floor(this.bottom);
this.left = Math.floor(this.left);
return this
};
l.round = function () {
this.top = Math.round(this.top);
this.right = Math.round(this.right);
this.bottom = Math.round(this.bottom);
this.left = Math.round(this.left);
return this
};
l.scale = function (b, c) {
var d = ja(c) ? c : b;
this.left *= b;
this.right *= b;
this.top *= d;
this.bottom *= d;
return this
};
function $g(b, c, d, e) {
this.left = b;
this.top = c;
this.width = d;
this.height = e
}
l = $g.prototype;
l.clone = function () {
return new $g(this.left, this.top, this.width, this.height)
};
l.contains = function (b) {
return b instanceof $g ? this.left <= b.left && this.left + this.width >= b.left + b.width && this.top <= b.top && this.top + this.height >= b.top + b.height : b.x >= this.left && b.x <= this.left + this.width && b.y >= this.top && b.y <= this.top + this.height
};
l.distance = function (b) {
var c = b.x < this.left ? this.left - b.x : Math.max(b.x - (this.left + this.width), 0);
b = b.y < this.top ? this.top - b.y : Math.max(b.y - (this.top + this.height), 0);
return Math.sqrt(c * c + b * b)
};
l.ceil = function () {
this.left = Math.ceil(this.left);
this.top = Math.ceil(this.top);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
l.floor = function () {
this.left = Math.floor(this.left);
this.top = Math.floor(this.top);
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
l.round = function () {
this.left = Math.round(this.left);
this.top = Math.round(this.top);
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
l.scale = function (b, c) {
var d = ja(c) ? c : b;
this.left *= b;
this.width *= b;
this.top *= d;
this.height *= d;
return this
};
function ah(b, c) {
var d = Cg(b);
return d.defaultView && d.defaultView.getComputedStyle && (d = d.defaultView.getComputedStyle(b, null)) ? d[c] || d.getPropertyValue(c) || '' : ''
}
function bh(b, c) {
return ah(b, c) || (b.currentStyle ? b.currentStyle[c] : null) || b.style && b.style[c]
}
function ch(b, c, d) {
var e;
c instanceof yg ? (e = c.x, c = c.y)  : (e = c, c = d);
b.style.left = dh(e);
b.style.top = dh(c)
}
function eh(b) {
var c;
try {
c = b.getBoundingClientRect()
} catch (d) {
return {
left: 0,
top: 0,
right: 0,
bottom: 0
}
}
Zb && b.ownerDocument.body && (b = b.ownerDocument, c.left -= b.documentElement.clientLeft + b.body.clientLeft, c.top -= b.documentElement.clientTop + b.body.clientTop);
return c
}
function fh(b) {
if (1 == b.nodeType) return b = eh(b),
new yg(b.left, b.top);
b = b.changedTouches ? b.changedTouches[0] : b;
return new yg(b.clientX, b.clientY)
}
function dh(b) {
'number' == typeof b && (b = b + 'px');
return b
}
function gh(b) {
var c = hh;
if ('none' != bh(b, 'display')) return c(b);
var d = b.style,
e = d.display,
f = d.visibility,
g = d.position;
d.visibility = 'hidden';
d.position = 'absolute';
d.display = 'inline';
b = c(b);
d.display = e;
d.position = g;
d.visibility = f;
return b
}
function hh(b) {
var c = b.offsetWidth,
d = b.offsetHeight,
e = bc && !c && !d;
return ca(c) && !e || !b.getBoundingClientRect ? new zg(c, d)  : (b = eh(b), new zg(b.right - b.left, b.bottom - b.top))
}
function ih(b, c) {
b.style.display = c ? '' : 'none'
}
function jh(b, c, d, e) {
if (/^\d+px?$/.test(c)) return parseInt(c, 10);
var f = b.style[d],
g = b.runtimeStyle[d];
b.runtimeStyle[d] = b.currentStyle[d];
b.style[d] = c;
c = b.style[e];
b.style[d] = f;
b.runtimeStyle[d] = g;
return c
}
function kh(b, c) {
var d = b.currentStyle ? b.currentStyle[c] : null;
return d ? jh(b, d, 'left', 'pixelLeft')  : 0
}
function lh(b, c) {
if (Zb) {
var d = kh(b, c + 'Left'),
e = kh(b, c + 'Right'),
f = kh(b, c + 'Top'),
g = kh(b, c + 'Bottom');
return new Zg(f, e, g, d)
}
d = ah(b, c + 'Left');
e = ah(b, c + 'Right');
f = ah(b, c + 'Top');
g = ah(b, c + 'Bottom');
return new Zg(parseFloat(f), parseFloat(e), parseFloat(g), parseFloat(d))
}
var mh = {
thin: 2,
medium: 4,
thick: 6
};
function nh(b, c) {
if ('none' == (b.currentStyle ? b.currentStyle[c + 'Style'] : null)) return 0;
var d = b.currentStyle ? b.currentStyle[c + 'Width'] : null;
return d in mh ? mh[d] : jh(b, d, 'left', 'pixelLeft')
}
function oh(b) {
if (Zb && !(9 <= lc)) {
var c = nh(b, 'borderLeft'),
d = nh(b, 'borderRight'),
e = nh(b, 'borderTop');
b = nh(b, 'borderBottom');
return new Zg(e, d, b, c)
}
c = ah(b, 'borderLeftWidth');
d = ah(b, 'borderRightWidth');
e = ah(b, 'borderTopWidth');
b = ah(b, 'borderBottomWidth');
return new Zg(parseFloat(e), parseFloat(d), parseFloat(b), parseFloat(c))
};
function ph(b, c, d) {
vc.call(this, b);
this.map = c;
this.frameState = void 0 !== d ? d : null
}
y(ph, vc);
function qh(b) {
id.call(this);
this.element = b.element ? b.element : null;
this.a = this.U = null;
this.u = [
];
this.render = b.render ? b.render : wa;
b.target && this.f(b.target)
}
y(qh, id);
qh.prototype.X = function () {
Og(this.element);
qh.da.X.call(this)
};
qh.prototype.g = function () {
return this.a
};
qh.prototype.setMap = function (b) {
this.a && Og(this.element);
0 < this.u.length && (this.u.forEach(Zc), this.u.length = 0);
if (this.a = b) (this.U ? this.U : b.D).appendChild(this.element),
this.render !== wa && this.u.push(C(b, 'postrender', this.render, !1, this)),
b.render()
};
qh.prototype.f = function (b) {
this.U = Dg(b)
};
function rh() {
this.b = 0;
this.f = {
};
this.c = this.a = null
}
l = rh.prototype;
l.clear = function () {
this.b = 0;
this.f = {
};
this.c = this.a = null
};
function sh(b, c) {
return b.f.hasOwnProperty(c)
}
l.forEach = function (b, c) {
for (var d = this.a; d; ) b.call(c, d.zc, d.ne, this),
d = d.sb
};
l.get = function (b) {
b = this.f[b];
if (b === this.c) return b.zc;
b === this.a ? (this.a = this.a.sb, this.a.gc = null)  : (b.sb.gc = b.gc, b.gc.sb = b.sb);
b.sb = null;
b.gc = this.c;
this.c = this.c.sb = b;
return b.zc
};
l.nc = function () {
return this.b
};
l.O = function () {
var b = Array(this.b),
c = 0,
d;
for (d = this.c; d; d = d.gc) b[c++] = d.ne;
return b
};
l.pc = function () {
var b = Array(this.b),
c = 0,
d;
for (d = this.c; d; d = d.gc) b[c++] = d.zc;
return b
};
l.pop = function () {
var b = this.a;
delete this.f[b.ne];
b.sb && (b.sb.gc = null);
this.a = b.sb;
this.a || (this.c = null);
--this.b;
return b.zc
};
l.set = function (b, c) {
var d = {
ne: b,
sb: null,
gc: this.c,
zc: c
};
this.c ? this.c.sb = d : this.a = d;
this.c = d;
this.f[b] = d;
++this.b
};
function th(b) {
rh.call(this);
this.g = void 0 !== b ? b : 2048
}
y(th, rh);
function uh(b) {
return b.nc() > b.g
}
function vh(b, c) {
for (var d, e; uh(b) && !(d = b.a.zc, e = d.a[0].toString(), e in c && c[e].contains(d.a)); ) b.pop().Ec()
};
function wh(b, c) {
cd.call(this);
this.a = b;
this.state = c
}
y(wh, cd);
function xh(b) {
b.o('change')
}
wh.prototype.tb = function () {
return w(this).toString()
};
wh.prototype.f = function () {
return this.a
};
function yh(b) {
id.call(this);
this.f = Fe(b.projection);
this.j = void 0 !== b.attributions ? b.attributions : null;
this.U = b.logo;
this.A = void 0 !== b.state ? b.state : 'ready';
this.S = void 0 !== b.wrapX ? b.wrapX : !1
}
y(yh, id);
l = yh.prototype;
l.xe = wa;
l.sa = function () {
return this.j
};
l.qa = function () {
return this.U
};
l.ta = function () {
return this.f
};
l.ua = function () {
return this.A
};
function zh(b) {
return b.S
}
l.na = function (b) {
this.j = b;
this.s()
};
function Ah(b, c) {
b.A = c;
b.s()
};
function Bh(b) {
this.minZoom = void 0 !== b.minZoom ? b.minZoom : 0;
this.a = b.resolutions;
this.maxZoom = this.a.length - 1;
this.b = void 0 !== b.origin ? b.origin : null;
this.g = null;
void 0 !== b.origins && (this.g = b.origins);
var c = b.extent;
void 0 === c || this.b || this.g || (this.b = he(c));
this.j = null;
void 0 !== b.tileSizes && (this.j = b.tileSizes);
this.l = void 0 !== b.tileSize ? b.tileSize : this.j ? null : 256;
this.u = void 0 !== c ? c : null;
this.c = null;
void 0 !== b.sizes ? this.c = b.sizes.map(function (b) {
return new gg(Math.min(0, b[0]), Math.max(b[0] - 1, - 1), Math.min(0, b[1]), Math.max(b[1] - 1, - 1))
}, this)  : c && Ch(this, c);
this.f = [
0,
0
]
}
var Dh = [
0,
0,
0
];
function Eh(b, c, d, e, f) {
f = b.Aa(c, f);
for (c = c[0] - 1; c >= b.minZoom; ) {
if (d.call(null, c, Fh(b, f, c, e))) return !0;
--c
}
return !1
}
l = Bh.prototype;
l.J = function () {
return this.u
};
l.Cg = function () {
return this.maxZoom
};
l.Dg = function () {
return this.minZoom
};
l.Ca = function (b) {
return this.b ? this.b : this.g[b]
};
l.$ = function (b) {
return this.a[b]
};
l.wh = function () {
return this.a
};
function Gh(b, c, d, e) {
return c[0] < b.maxZoom ? (e = b.Aa(c, e), Fh(b, e, c[0] + 1, d))  : null
}
function Hh(b, c, d, e) {
Ih(b, c[0], c[1], d, !1, Dh);
var f = Dh[1],
g = Dh[2];
Ih(b, c[2], c[3], d, !0, Dh);
b = Dh[1];
c = Dh[2];
void 0 !== e ? (e.a = f, e.f = b, e.c = g, e.b = c)  : e = new gg(f, b, g, c);
return e
}
function Fh(b, c, d, e) {
d = b.$(d);
return Hh(b, c, d, e)
}
function Jh(b, c) {
var d = b.Ca(c[0]),
e = b.$(c[0]),
f = od(b.Ha(c[0]), b.f);
return [d[0] + (c[1] + 0.5) * f[0] * e,
d[1] + (c[2] + 0.5) * f[1] * e]
}
l.Aa = function (b, c) {
var d = this.Ca(b[0]),
e = this.$(b[0]),
f = od(this.Ha(b[0]), this.f),
g = d[0] + b[1] * f[0] * e,
d = d[1] + b[2] * f[1] * e;
return Rd(g, d, g + f[0] * e, d + f[1] * e, c)
};
l.ee = function (b, c, d) {
return Ih(this, b[0], b[1], c, !1, d)
};
function Ih(b, c, d, e, f, g) {
var h = Kh(b, e),
k = e / b.$(h),
m = b.Ca(h);
b = od(b.Ha(h), b.f);
c = k * Math.floor((c - m[0]) / e + (f ? 0.5 : 0)) / b[0];
d = k * Math.floor((d - m[1]) / e + (f ? 0 : 0.5)) / b[1];
f ? (c = Math.ceil(c) - 1, d = Math.ceil(d) - 1)  : (c = Math.floor(c), d = Math.floor(d));
return cg(h, c, d, g)
}
l.fe = function (b, c, d) {
c = this.$(c);
return Ih(this, b[0], b[1], c, !1, d)
};
l.Ha = function (b) {
return this.l ? this.l : this.j[b]
};
function Kh(b, c) {
var d = wb(b.a, c, 0);
return Sa(d, b.minZoom, b.maxZoom)
}
function Ch(b, c) {
for (var d = b.a.length, e = Array(d), f = b.minZoom; f < d; ++f) e[f] = Fh(b, c, f);
b.c = e
}
function Lh(b) {
var c = b.l;
if (!c) {
var c = Mh(b),
d = Nh(c, void 0, void 0),
c = new Bh({
extent: c,
origin: he(c),
resolutions: d,
tileSize: void 0
});
b.l = c
}
return c
}
function Oh(b) {
var c = {
};
Xb(c, void 0 !== b ? b : {
});
void 0 === c.extent && (c.extent = Fe('EPSG:3857').J());
c.resolutions = Nh(c.extent, c.maxZoom, c.tileSize);
delete c.maxZoom;
return new Bh(c)
}
function Nh(b, c, d) {
c = void 0 !== c ? c : 42;
var e = le(b);
b = ke(b);
d = od(void 0 !== d ? d : 256);
d = Math.max(b / d[0], e / d[1]);
c += 1;
e = Array(c);
for (b = 0; b < c; ++b) e[b] = d / Math.pow(2, b);
return e
}
function Mh(b) {
b = Fe(b);
var c = b.J();
c || (b = 180 * Ce.degrees / b.Jc(), c = Rd( - b, - b, b, b));
return c
};
function Ph(b) {
yh.call(this, {
attributions: b.attributions,
extent: b.extent,
logo: b.logo,
projection: b.projection,
state: b.state,
wrapX: b.wrapX
});
this.pa = void 0 !== b.opaque ? b.opaque : !1;
this.C = void 0 !== b.tilePixelRatio ? b.tilePixelRatio : 1;
this.tileGrid = void 0 !== b.tileGrid ? b.tileGrid : null;
this.a = new th(b.cf);
this.b = [
0,
0
]
}
y(Ph, yh);
l = Ph.prototype;
l.nh = function () {
return uh(this.a)
};
l.oh = function (b, c) {
var d = this.td(b);
d && vh(d, c)
};
function Qh(b, c, d, e, f) {
c = b.td(c);
if (!c) return !1;
for (var g = !0, h, k, m = e.a; m <= e.f; ++m) for (var n = e.c; n <= e.b; ++n) h = b.gb(d, m, n),
k = !1,
sh(c, h) && (h = c.get(h), (k = 2 === h.state) && (k = !1 !== f(h))),
k || (g = !1);
return g
}
l.$d = function () {
return 0
};
l.gb = dg;
l.Ga = function () {
return this.tileGrid
};
l.hb = function (b) {
return this.tileGrid ? this.tileGrid : Lh(b)
};
l.td = function (b) {
var c = this.f;
return c && !Xe(c, b) ? null : this.a
};
l.Pb = function (b, c, d) {
c = this.hb(d);
return nd(od(c.Ha(b), this.b), this.C, this.b)
};
function Rh(b, c, d) {
var e = void 0 !== d ? d : b.f;
d = b.hb(e);
if (b.S && e.f) {
var f = c;
c = f[0];
b = Jh(d, f);
e = Mh(e);
Vd(e, b) ? c = f : (f = ke(e), b[0] += f * Math.ceil((e[0] - b[0]) / f), c = d.fe(b, c))
}
f = c[0];
e = c[1];
b = c[2];
if (d.minZoom > f || f > d.maxZoom) d = !1;
 else {
var g = d.J();
d = (d = g ? Fh(d, g, f)  : d.c ? d.c[f] : null) ? hg(d, e, b)  : !0
}
return d ? c : null
}
l.Xf = wa;
function Sh(b, c) {
vc.call(this, b);
this.tile = c
}
y(Sh, vc);
function Th(b) {
b = b ? b : {
};
this.D = Kg('UL');
this.A = Kg('LI');
this.D.appendChild(this.A);
ih(this.A, !1);
this.b = void 0 !== b.collapsed ? b.collapsed : !0;
this.i = void 0 !== b.collapsible ? b.collapsible : !0;
this.i || (this.b = !1);
var c = b.className ? b.className : 'ol-attribution',
d = b.tipLabel ? b.tipLabel : 'Attributions',
e = b.collapseLabel ? b.collapseLabel : '»';
this.G = ia(e) ? Hg('SPAN', {
}, e)  : e;
e = b.label ? b.label : 'i';
this.S = ia(e) ? Hg('SPAN', {
}, e)  : e;
d = Hg('BUTTON', {
type: 'button',
title: d
}, this.i && !this.b ? this.G : this.S);
C(d, 'click', this.Ll, !1, this);
C(d, [
'mouseout',
yc
], function () {
this.blur()
}, !1);
c = Hg('DIV', c + ' ol-unselectable ol-control' + (this.b && this.i ? ' ol-collapsed' : '') + (this.i ? '' : ' ol-uncollapsible'), this.D, d);
qh.call(this, {
element: c,
render: b.render ? b.render : Uh,
target: b.target
});
this.C = !0;
this.l = {
};
this.j = {
};
this.T = {
}
}
y(Th, qh);
function Uh(b) {
if (b = b.frameState) {
var c,
d,
e,
f,
g,
h,
k,
m,
n,
p,
q,
r = b.layerStatesArray,
t = Ub(b.attributions),
x = {
},
z = b.viewState.projection;
d = 0;
for (c = r.length; d < c; d++) if (h = r[d].layer.fa()) if (p = w(h).toString(), n = h.j) for (e = 0, f = n.length; e < f; e++) if (k = n[e], m = w(k).toString(), !(m in t)) {
if (g = b.usedTiles[p]) {
var B = h.hb(z);
a: {
q = k;
var A = z;
if (q.a) {
var v = void 0,
O = void 0,
K = void 0,
I = void 0;
for (I in g) if (I in q.a) for (var K = g[I], G, v = 0, O = q.a[I].length; v < O; ++v) {
  G = q.a[I][v];
  if (lg(G, K)) {
    q = !0;
    break a
  }
  var la = Fh(B, A.J(), parseInt(I, 10)),
  Ea = kg(la);
  if (K.a < la.a || K.f > la.f) if (lg(G, new gg(pd(K.a, Ea), pd(K.f, Ea), K.c, K.b)) || kg(K) > Ea && lg(G, la)) {
    q = !0;
    break a
  }
}
q = !1
} else q = !0
}
} else q = !1;
q ? (m in x && delete x[m], t[m] = k)  : x[m] = k
}
c = [
t,
x
];
d = c[0];
c = c[1];
for (var L in this.l) L in d ? (this.j[L] || (ih(this.l[L], !0), this.j[L] = !0), delete d[L])  : L in c ? (this.j[L] && (ih(this.l[L], !1), delete this.j[L]), delete c[L])  : (Og(this.l[L]), delete this.l[L], delete this.j[L]);
for (L in d) e = Kg('LI'),
e.innerHTML = d[L].c,
this.D.appendChild(e),
this.l[L] = e,
this.j[L] = !0;
for (L in c) e =
Kg('LI'),
e.innerHTML = c[L].c,
ih(e, !1),
this.D.appendChild(e),
this.l[L] = e;
L = !Qb(this.j) || !Qb(b.logos);
this.C != L && (ih(this.element, L), this.C = L);
L && Qb(this.j) ? Wg(this.element, 'ol-logo-only')  : Xg(this.element, 'ol-logo-only');
var za;
b = b.logos;
L = this.T;
for (za in L) za in b || (Og(L[za]), delete L[za]);
for (var Ra in b) Ra in L || (za = new Image, za.src = Ra, d = b[Ra], '' === d ? d = za : (d = Hg('A', {
href: d
}), d.appendChild(za)), this.A.appendChild(d), L[Ra] = d);
ih(this.A, !Qb(b))
} else this.C && (ih(this.element, !1), this.C = !1)
}
l = Th.prototype;
l.Ll = function (b) {
b.preventDefault();
Vh(this)
};
function Vh(b) {
Yg(b.element, 'ol-collapsed');
b.b ? Pg(b.G, b.S)  : Pg(b.S, b.G);
b.b = !b.b
}
l.Kl = function () {
return this.i
};
l.Nl = function (b) {
this.i !== b && (this.i = b, Yg(this.element, 'ol-uncollapsible'), !b && this.b && Vh(this))
};
l.Ml = function (b) {
this.i && this.b !== b && Vh(this)
};
l.Jl = function () {
return this.b
};
function Wh(b) {
b = b ? b : {
};
var c = b.className ? b.className : 'ol-rotate',
d = b.label ? b.label : '⇧';
this.b = null;
ia(d) ? this.b = Hg('SPAN', 'ol-compass', d)  : (this.b = d, Wg(this.b, 'ol-compass'));
d = Hg('BUTTON', {
'class': c + '-reset',
type: 'button',
title: b.tipLabel ? b.tipLabel : 'Reset rotation'
}, this.b);
C(d, 'click', Wh.prototype.A, !1, this);
c = Hg('DIV', c + ' ol-unselectable ol-control', d);
qh.call(this, {
element: c,
render: b.render ? b.render : Xh,
target: b.target
});
this.i = b.duration ? b.duration : 250;
this.j = void 0 !== b.autoHide ? b.autoHide :
!0;
this.l = void 0;
this.j && Wg(this.element, 'ol-hidden')
}
y(Wh, qh);
Wh.prototype.A = function (b) {
b.preventDefault();
b = this.a;
var c = b.aa();
if (c) {
var d = c.Ea();
void 0 !== d && (0 < this.i && (d %= 2 * Math.PI, d < - Math.PI && (d += 2 * Math.PI), d > Math.PI && (d -= 2 * Math.PI), b.Ma(ag({
rotation: d,
duration: this.i,
easing: Vf
}))), c.te(0))
}
};
function Xh(b) {
if (b = b.frameState) {
b = b.viewState.rotation;
if (b != this.l) {
var c = 'rotate(' + b + 'rad)';
if (this.j) {
var d = this.element;
0 === b ? Wg(d, 'ol-hidden')  : Xg(d, 'ol-hidden')
}
this.b.style.msTransform = c;
this.b.style.webkitTransform = c;
this.b.style.transform = c
}
this.l = b
}
};
function Yh(b) {
b = b ? b : {
};
var c = b.className ? b.className : 'ol-zoom',
d = b.delta ? b.delta : 1,
e = b.zoomOutLabel ? b.zoomOutLabel : '−',
f = b.zoomOutTipLabel ? b.zoomOutTipLabel : 'Zoom out',
g = Hg('BUTTON', {
'class': c + '-in',
type: 'button',
title: b.zoomInTipLabel ? b.zoomInTipLabel : 'Zoom in'
}, b.zoomInLabel ? b.zoomInLabel : '+');
C(g, 'click', sa(Yh.prototype.j, d), !1, this);
e = Hg('BUTTON', {
'class': c + '-out',
type: 'button',
title: f
}, e);
C(e, 'click', sa(Yh.prototype.j, - d), !1, this);
c = Hg('DIV', c + ' ol-unselectable ol-control', g, e);
qh.call(this, {
element: c,
target: b.target
});
this.b = void 0 !== b.duration ? b.duration : 250
}
y(Yh, qh);
Yh.prototype.j = function (b, c) {
c.preventDefault();
var d = this.a,
e = d.aa();
if (e) {
var f = e.$();
f && (0 < this.b && d.Ma(bg({
resolution: f,
duration: this.b,
easing: Vf
})), d = e.constrainResolution(f, b), e.Ub(d))
}
};
function Zh(b) {
b = b ? b : {
};
var c = new og;
(void 0 !== b.zoom ? b.zoom : 1) && c.push(new Yh(b.zoomOptions));
(void 0 !== b.rotate ? b.rotate : 1) && c.push(new Wh(b.rotateOptions));
(void 0 !== b.attribution ? b.attribution : 1) && c.push(new Th(b.attributionOptions));
return c
};
var $h = bc ? 'webkitfullscreenchange' : ac ? 'mozfullscreenchange' : Zb ? 'MSFullscreenChange' : 'fullscreenchange';
function ai() {
var b = Ag().a,
c = b.body;
return !!(c.webkitRequestFullscreen || c.mozRequestFullScreen && b.mozFullScreenEnabled || c.msRequestFullscreen && b.msFullscreenEnabled || c.requestFullscreen && b.fullscreenEnabled)
}
function bi(b) {
b.webkitRequestFullscreen ? b.webkitRequestFullscreen()  : b.mozRequestFullScreen ? b.mozRequestFullScreen()  : b.msRequestFullscreen ? b.msRequestFullscreen()  : b.requestFullscreen && b.requestFullscreen()
}
function di() {
var b = Ag().a;
return !!(b.webkitIsFullScreen || b.mozFullScreen || b.msFullscreenElement || b.fullscreenElement)
};
function ei(b) {
b = b ? b : {
};
this.b = b.className ? b.className : 'ol-full-screen';
var c = b.label ? b.label : '↔';
this.j = ia(c) ? document.createTextNode(String(c))  : c;
c = b.labelActive ? b.labelActive : '×';
this.i = ia(c) ? document.createTextNode(String(c))  : c;
c = b.tipLabel ? b.tipLabel : 'Toggle full-screen';
c = Hg('BUTTON', {
'class': this.b + '-' + di(),
type: 'button',
title: c
}, this.j);
C(c, 'click', this.C, !1, this);
C(ba.document, $h, this.l, !1, this);
var d = this.b + ' ol-unselectable ol-control ' + (ai() ? '' : 'ol-unsupported'),
c = Hg('DIV', d, c);
qh.call(this, {
element: c,
target: b.target
});
this.A = void 0 !== b.keys ? b.keys : !1
}
y(ei, qh);
ei.prototype.C = function (b) {
b.preventDefault();
ai() && (b = this.a) && (di() ? (b = Ag().a, b.webkitCancelFullScreen ? b.webkitCancelFullScreen()  : b.mozCancelFullScreen ? b.mozCancelFullScreen()  : b.msExitFullscreen ? b.msExitFullscreen()  : b.exitFullscreen && b.exitFullscreen())  : (b = b.wf(), b = Dg(b), this.A ? b.mozRequestFullScreenWithKeys ? b.mozRequestFullScreenWithKeys()  : b.webkitRequestFullscreen ? b.webkitRequestFullscreen()  : bi(b)  : bi(b)))
};
ei.prototype.l = function () {
var b = this.b + '-true',
c = this.b + '-false',
d = Qg(this.element),
e = this.a;
di() ? (Vg(d, c) && (Xg(d, c), Wg(d, b)), Pg(this.i, this.j))  : (Vg(d, b) && (Xg(d, b), Wg(d, c)), Pg(this.j, this.i));
e && e.Uc()
};
function fi(b) {
b = b ? b : {
};
var c = Hg('DIV', b.className ? b.className : 'ol-mouse-position');
qh.call(this, {
element: c,
render: b.render ? b.render : gi,
target: b.target
});
C(this, kd('projection'), this.Ol, !1, this);
b.coordinateFormat && this.Th(b.coordinateFormat);
b.projection && this.$g(Fe(b.projection));
this.A = b.undefinedHTML ? b.undefinedHTML : '';
this.l = c.innerHTML;
this.i = this.j = this.b = null
}
y(fi, qh);
function gi(b) {
b = b.frameState;
b ? this.b != b.viewState.projection && (this.b = b.viewState.projection, this.j = null)  : this.b = null;
hi(this, this.i)
}
l = fi.prototype;
l.Ol = function () {
this.j = null
};
l.vg = function () {
return this.get('coordinateFormat')
};
l.Zg = function () {
return this.get('projection')
};
l.Jk = function (b) {
this.i = this.a.Zd(b.a);
hi(this, this.i)
};
l.Kk = function () {
hi(this, null);
this.i = null
};
l.setMap = function (b) {
fi.da.setMap.call(this, b);
b && (b = b.a, this.u.push(C(b, 'mousemove', this.Jk, !1, this), C(b, 'mouseout', this.Kk, !1, this)))
};
l.Th = function (b) {
this.set('coordinateFormat', b)
};
l.$g = function (b) {
this.set('projection', b)
};
function hi(b, c) {
var d = b.A;
if (c && b.b) {
if (!b.j) {
var e = b.Zg();
b.j = e ? Je(b.b, e)  : Ze
}
if (e = b.a.Fa(c)) b.j(e, e),
d = (d = b.vg()) ? d(e)  : e.toString()
}
b.l && d == b.l || (b.element.innerHTML = d, b.l = d)
};
function ii(b, c, d) {
pc.call(this);
this.wa = null;
this.b = !1;
this.j = b;
this.g = d;
this.a = c || window;
this.c = ra(this.f, this)
}
y(ii, pc);
ii.prototype.start = function () {
ji(this);
this.b = !1;
var b = ki(this),
c = li(this);
b && !c && this.a.mozRequestAnimationFrame ? (this.wa = C(this.a, 'MozBeforePaint', this.c), this.a.mozRequestAnimationFrame(null), this.b = !0)  : this.wa = b && c ? b.call(this.a, this.c)  : this.a.setTimeout(xe(this.c), 20)
};
function ji(b) {
if (null != b.wa) {
var c = ki(b),
d = li(b);
c && !d && b.a.mozRequestAnimationFrame ? Zc(b.wa)  : c && d ? d.call(b.a, b.wa)  : b.a.clearTimeout(b.wa)
}
b.wa = null
}
ii.prototype.f = function () {
this.b && this.wa && Zc(this.wa);
this.wa = null;
this.j.call(this.g, ta())
};
ii.prototype.X = function () {
ji(this);
ii.da.X.call(this)
};
function ki(b) {
b = b.a;
return b.requestAnimationFrame || b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || b.oRequestAnimationFrame || b.msRequestAnimationFrame || null
}
function li(b) {
b = b.a;
return b.cancelAnimationFrame || b.cancelRequestAnimationFrame || b.webkitCancelRequestAnimationFrame || b.mozCancelRequestAnimationFrame || b.oCancelRequestAnimationFrame || b.msCancelRequestAnimationFrame || null
};
function mi(b) {
ba.setTimeout(function () {
throw b;
}, 0)
}
function ni(b, c) {
var d = b;
c && (d = ra(b, c));
d = oi(d);
!ka(ba.setImmediate) || ba.Window && ba.Window.prototype && ba.Window.prototype.setImmediate == ba.setImmediate ? (pi || (pi = qi()), pi(d))  : ba.setImmediate(d)
}
var pi;
function qi() {
var b = ba.MessageChannel;
'undefined' === typeof b && 'undefined' !== typeof window && window.postMessage && window.addEventListener && !Hb('Presto') && (b = function () {
var b = document.createElement('IFRAME');
b.style.display = 'none';
b.src = '';
document.documentElement.appendChild(b);
var c = b.contentWindow,
b = c.document;
b.open();
b.write('');
b.close();
var d = 'callImmediate' + Math.random(),
e = 'file:' == c.location.protocol ? '*' : c.location.protocol + '//' + c.location.host,
b = ra(function (b) {
if (('*' == e || b.origin == e) && b.data ==
d) this.port1.onmessage()
}, this);
c.addEventListener('message', b, !1);
this.port1 = {
};
this.port2 = {
postMessage: function () {
c.postMessage(d, e)
}
}
});
if ('undefined' !== typeof b && !Hb('Trident') && !Hb('MSIE')) {
var c = new b,
d = {
},
e = d;
c.port1.onmessage = function () {
if (ca(d.next)) {
d = d.next;
var b = d.mg;
d.mg = null;
b()
}
};
return function (b) {
e.next = {
mg: b
};
e = e.next;
c.port2.postMessage(0)
}
}
return 'undefined' !== typeof document && 'onreadystatechange' in document.createElement('SCRIPT') ? function (b) {
var c = document.createElement('SCRIPT');
c.onreadystatechange = function () {
c.onreadystatechange = null;
c.parentNode.removeChild(c);
c = null;
b();
b = null
};
document.documentElement.appendChild(c)
}
 : function (b) {
ba.setTimeout(b, 0)
}
}
var oi = we;
function ri(b, c) {
this.c = {
};
this.a = [
];
this.b = 0;
var d = arguments.length;
if (1 < d) {
if (d % 2) throw Error('Uneven number of arguments');
for (var e = 0; e < d; e += 2) this.set(arguments[e], arguments[e + 1])
} else if (b) {
b instanceof ri ? (d = b.O(), e = b.pc())  : (d = Mb(b), e = Lb(b));
for (var f = 0; f < d.length; f++) this.set(d[f], e[f])
}
}
l = ri.prototype;
l.nc = function () {
return this.b
};
l.pc = function () {
si(this);
for (var b = [
], c = 0; c < this.a.length; c++) b.push(this.c[this.a[c]]);
return b
};
l.O = function () {
si(this);
return this.a.concat()
};
l.Ka = function () {
return 0 == this.b
};
l.clear = function () {
this.c = {
};
this.b = this.a.length = 0
};
l.remove = function (b) {
return ti(this.c, b) ? (delete this.c[b], this.b--, this.a.length > 2 * this.b && si(this), !0)  : !1
};
function si(b) {
if (b.b != b.a.length) {
for (var c = 0, d = 0; c < b.a.length; ) {
var e = b.a[c];
ti(b.c, e) && (b.a[d++] = e);
c++
}
b.a.length = d
}
if (b.b != b.a.length) {
for (var f = {
}, d = c = 0; c < b.a.length; ) e = b.a[c],
ti(f, e) || (b.a[d++] = e, f[e] = 1),
c++;
b.a.length = d
}
}
l.get = function (b, c) {
return ti(this.c, b) ? this.c[b] : c
};
l.set = function (b, c) {
ti(this.c, b) || (this.b++, this.a.push(b));
this.c[b] = c
};
l.forEach = function (b, c) {
for (var d = this.O(), e = 0; e < d.length; e++) {
var f = d[e],
g = this.get(f);
b.call(c, g, f, this)
}
};
l.clone = function () {
return new ri(this)
};
function ti(b, c) {
return Object.prototype.hasOwnProperty.call(b, c)
};
function ui() {
this.a = ta()
}
new ui;
ui.prototype.set = function (b) {
this.a = b
};
ui.prototype.reset = function () {
this.set(ta())
};
ui.prototype.get = function () {
return this.a
};
function vi(b) {
cd.call(this);
this.a = b || window;
this.c = C(this.a, 'resize', this.f, !1, this);
this.b = Gg(this.a || window)
}
y(vi, cd);
vi.prototype.X = function () {
vi.da.X.call(this);
this.c && (Zc(this.c), this.c = null);
this.b = this.a = null
};
vi.prototype.f = function () {
var b = Gg(this.a || window),
c = this.b;
b == c || b && c && b.width == c.width && b.height == c.height || (this.b = b, this.o('resize'))
};
function wi(b, c, d, e, f) {
if (!(Zb || $b || bc && jc('525'))) return !0;
if (cc && f) return xi(b);
if (f && !e) return !1;
ja(c) && (c = yi(c));
if (!d && (17 == c || 18 == c || cc && 91 == c)) return !1;
if ((bc || $b) && e && d) switch (b) {
case 220:
case 219:
case 221:
case 192:
case 186:
case 189:
case 187:
case 188:
case 190:
case 191:
case 192:
case 222:
return !1
}
if (Zb && e && c == b) return !1;
switch (b) {
case 13:
return !0;
case 27:
return !(bc || $b)
}
return xi(b)
}
function xi(b) {
if (48 <= b && 57 >= b || 96 <= b && 106 >= b || 65 <= b && 90 >= b || (bc || $b) && 0 == b) return !0;
switch (b) {
case 32:
case 43:
case 63:
case 64:
case 107:
case 109:
case 110:
case 111:
case 186:
case 59:
case 189:
case 187:
case 61:
case 188:
case 190:
case 191:
case 192:
case 222:
case 219:
case 220:
case 221:
return !0;
default:
return !1
}
}
function yi(b) {
if (ac) b = zi(b);
 else if (cc && bc) a: switch (b) {
case 93:
b = 91;
break a
}
return b
}
function zi(b) {
switch (b) {
case 61:
return 187;
case 59:
return 186;
case 173:
return 189;
case 224:
return 91;
case 0:
return 224;
default:
return b
}
};
function Ai(b, c) {
cd.call(this);
b && Bi(this, b, c)
}
y(Ai, cd);
l = Ai.prototype;
l.ud = null;
l.le = null;
l.qf = null;
l.me = null;
l.ib = - 1;
l.Zb = - 1;
l.bf = !1;
var Ci = {
3: 13,
12: 144,
63232: 38,
63233: 40,
63234: 37,
63235: 39,
63236: 112,
63237: 113,
63238: 114,
63239: 115,
63240: 116,
63241: 117,
63242: 118,
63243: 119,
63244: 120,
63245: 121,
63246: 122,
63247: 123,
63248: 44,
63272: 46,
63273: 36,
63275: 35,
63276: 33,
63277: 34,
63289: 144,
63302: 45
},
Di = {
Up: 38,
Down: 40,
Left: 37,
Right: 39,
Enter: 13,
F1: 112,
F2: 113,
F3: 114,
F4: 115,
F5: 116,
F6: 117,
F7: 118,
F8: 119,
F9: 120,
F10: 121,
F11: 122,
F12: 123,
'U+007F': 46,
Home: 36,
End: 35,
PageUp: 33,
PageDown: 34,
Insert: 45
},
Ei = Zb || $b || bc && jc('525'),
Fi = cc && ac;
Ai.prototype.a = function (b) {
if (bc || $b) if (17 == this.ib && !b.B || 18 == this.ib && !b.c || cc && 91 == this.ib && !b.A) this.Zb = this.ib = - 1;
- 1 == this.ib && (b.B && 17 != b.j ? this.ib = 17 : b.c && 18 != b.j ? this.ib = 18 : b.A && 91 != b.j && (this.ib = 91));
Ei && !wi(b.j, this.ib, b.f, b.B, b.c) ? this.handleEvent(b)  : (this.Zb = yi(b.j), Fi && (this.bf = b.c))
};
Ai.prototype.c = function (b) {
this.Zb = this.ib = - 1;
this.bf = b.c
};
Ai.prototype.handleEvent = function (b) {
var c = b.a,
d,
e,
f = c.altKey;
Zb && 'keypress' == b.type ? (d = this.Zb, e = 13 != d && 27 != d ? c.keyCode : 0)  : (bc || $b) && 'keypress' == b.type ? (d = this.Zb, e = 0 <= c.charCode && 63232 > c.charCode && xi(d) ? c.charCode : 0)  : Yb && !bc ? (d = this.Zb, e = xi(d) ? c.keyCode : 0)  : (d = c.keyCode || this.Zb, e = c.charCode || 0, Fi && (f = this.bf), cc && 63 == e && 224 == d && (d = 191));
var g = d = yi(d),
h = c.keyIdentifier;
d ? 63232 <= d && d in Ci ? g = Ci[d] : 25 == d && b.f && (g = 9)  : h && h in Di && (g = Di[h]);
this.ib = g;
b = new Gi(g, e, 0, c);
b.c = f;
this.o(b)
};
function Bi(b, c, d) {
b.me && Hi(b);
b.ud = c;
b.le = C(b.ud, 'keypress', b, d);
b.qf = C(b.ud, 'keydown', b.a, d, b);
b.me = C(b.ud, 'keyup', b.c, d, b)
}
function Hi(b) {
b.le && (Zc(b.le), Zc(b.qf), Zc(b.me), b.le = null, b.qf = null, b.me = null);
b.ud = null;
b.ib = - 1;
b.Zb = - 1
}
Ai.prototype.X = function () {
Ai.da.X.call(this);
Hi(this)
};
function Gi(b, c, d, e) {
Ac.call(this, e);
this.type = 'key';
this.j = b;
this.u = c
}
y(Gi, Ac);
function Ii(b, c) {
cd.call(this);
var d = this.a = b;
(d = ma(d) && 1 == d.nodeType ? this.a : this.a ? this.a.body : null) && bh(d, 'direction');
this.c = C(this.a, ac ? 'DOMMouseScroll' : 'mousewheel', this, c)
}
y(Ii, cd);
Ii.prototype.handleEvent = function (b) {
var c = 0,
d = 0;
b = b.a;
if ('mousewheel' == b.type) {
c = 1;
if (Zb || bc && (dc || jc('532.0'))) c = 40;
d = Ji( - b.wheelDelta, c);
c = ca(b.wheelDeltaX) ? Ji( - b.wheelDeltaY, c)  : d
} else d = b.detail,
100 < d ? d = 3 : - 100 > d && (d = - 3),
ca(b.axis) && b.axis === b.HORIZONTAL_AXIS || (c = d);
ja(this.b) && (c = Math.min(Math.max(c, - this.b), this.b));
d = new Ki(d, b, 0, c);
this.o(d)
};
function Ji(b, c) {
return bc && (cc || ec) && 0 != b % c ? b : b / c
}
Ii.prototype.X = function () {
Ii.da.X.call(this);
Zc(this.c);
this.c = null
};
function Ki(b, c, d, e) {
Ac.call(this, c);
this.type = 'mousewheel';
this.detail = b;
this.C = e
}
y(Ki, Ac);
function Li(b, c, d) {
vc.call(this, b);
this.a = c;
b = d ? d : {
};
this.buttons = Mi(b);
this.pressure = Ni(b, this.buttons);
this.bubbles = 'bubbles' in b ? b.bubbles : !1;
this.cancelable = 'cancelable' in b ? b.cancelable : !1;
this.view = 'view' in b ? b.view : null;
this.detail = 'detail' in b ? b.detail : null;
this.screenX = 'screenX' in b ? b.screenX : 0;
this.screenY = 'screenY' in b ? b.screenY : 0;
this.clientX = 'clientX' in b ? b.clientX : 0;
this.clientY = 'clientY' in b ? b.clientY : 0;
this.button = 'button' in b ? b.button : 0;
this.relatedTarget = 'relatedTarget' in b ? b.relatedTarget :
null;
this.pointerId = 'pointerId' in b ? b.pointerId : 0;
this.width = 'width' in b ? b.width : 0;
this.height = 'height' in b ? b.height : 0;
this.pointerType = 'pointerType' in b ? b.pointerType : '';
this.isPrimary = 'isPrimary' in b ? b.isPrimary : !1;
c.preventDefault && (this.preventDefault = function () {
c.preventDefault()
})
}
y(Li, vc);
function Mi(b) {
if (b.buttons || Oi) b = b.buttons;
 else switch (b.which) {
case 1:
b = 1;
break;
case 2:
b = 4;
break;
case 3:
b = 2;
break;
default:
b = 0
}
return b
}
function Ni(b, c) {
var d = 0;
b.pressure ? d = b.pressure : d = c ? 0.5 : 0;
return d
}
var Oi = !1;
try {
Oi = 1 === (new MouseEvent('click', {
buttons: 1
})).buttons
} catch (b) {
};
function Pi(b, c) {
var d = Kg('CANVAS');
b && (d.width = b);
c && (d.height = c);
return d.getContext('2d')
}
var Qi = function () {
var b;
return function () {
if (void 0 === b) if (ba.getComputedStyle) {
var c = Kg('P'),
d,
e = {
webkitTransform: '-webkit-transform',
OTransform: '-o-transform',
msTransform: '-ms-transform',
MozTransform: '-moz-transform',
transform: 'transform'
};
document.body.appendChild(c);
for (var f in e) f in c.style && (c.style[f] = 'translate(1px,1px)', d = ba.getComputedStyle(c).getPropertyValue(e[f]));
Og(c);
b = d && 'none' !== d
} else b = !1;
return b
}
}(),
Ri = function () {
var b;
return function () {
if (void 0 === b) if (ba.getComputedStyle) {
var c =
Kg('P'),
d,
e = {
webkitTransform: '-webkit-transform',
OTransform: '-o-transform',
msTransform: '-ms-transform',
MozTransform: '-moz-transform',
transform: 'transform'
};
document.body.appendChild(c);
for (var f in e) f in c.style && (c.style[f] = 'translate3d(1px,1px,1px)', d = ba.getComputedStyle(c).getPropertyValue(e[f]));
Og(c);
b = d && 'none' !== d
} else b = !1;
return b
}
}();
function Si(b, c) {
var d = b.style;
d.WebkitTransform = c;
d.MozTransform = c;
d.a = c;
d.msTransform = c;
d.transform = c;
Zb && jc('9.0') && (b.style.transformOrigin = '0 0')
}
function Ti(b, c) {
var d;
if (Ri()) {
var e = Array(16);
for (d = 0; 16 > d; ++d) e[d] = c[d].toFixed(6);
Si(b, 'matrix3d(' + e.join(',') + ')')
} else if (Qi()) {
var e = [
c[0],
c[1],
c[4],
c[5],
c[12],
c[13]
],
f = Array(6);
for (d = 0; 6 > d; ++d) f[d] = e[d].toFixed(6);
Si(b, 'matrix(' + f.join(',') + ')')
} else b.style.left = Math.round(c[12]) + 'px',
b.style.top = Math.round(c[13]) + 'px'
};
var Ui = [
'experimental-webgl',
'webgl',
'webkit-3d',
'moz-webgl'
];
function Vi(b, c) {
var d,
e,
f = Ui.length;
for (e = 0; e < f; ++e) try {
if (d = b.getContext(Ui[e], c)) return d
} catch (g) {
}
return null
};
var Wi,
Xi = ba.devicePixelRatio || 1,
Yi = !1,
Zi = function () {
if (!('HTMLCanvasElement' in ba)) return !1;
try {
var b = Pi();
return b ? (void 0 !== b.setLineDash && (Yi = !0), !0)  : !1
} catch (c) {
return !1
}
}(),
$i = 'DeviceOrientationEvent' in ba,
aj = 'geolocation' in ba.navigator,
bj = 'ontouchstart' in ba,
cj = 'PointerEvent' in ba,
dj = !!ba.navigator.msPointerEnabled,
ej = !1,
fj,
gj = [
];
if ('WebGLRenderingContext' in ba) try {
var hj = Vi(Kg('CANVAS'), {
failIfMajorPerformanceCaveat: !0
});
hj && (ej = !0, fj = hj.getParameter(hj.MAX_TEXTURE_SIZE), gj = hj.getSupportedExtensions())
} catch (b) {
}
Wi = ej;
va = gj;
ua = fj;
function ij(b, c) {
this.a = b;
this.g = c
};
function jj(b) {
ij.call(this, b, {
mousedown: this.el,
mousemove: this.fl,
mouseup: this.il,
mouseover: this.hl,
mouseout: this.gl
});
this.c = b.c;
this.b = [
]
}
y(jj, ij);
function kj(b, c) {
for (var d = b.b, e = c.clientX, f = c.clientY, g = 0, h = d.length, k; g < h && (k = d[g]); g++) {
var m = Math.abs(f - k[1]);
if (25 >= Math.abs(e - k[0]) && 25 >= m) return !0
}
return !1
}
function lj(b) {
var c = mj(b, b.a),
d = c.preventDefault;
c.preventDefault = function () {
b.preventDefault();
d()
};
c.pointerId = 1;
c.isPrimary = !0;
c.pointerType = 'mouse';
return c
}
l = jj.prototype;
l.el = function (b) {
if (!kj(this, b)) {
(1).toString() in this.c && this.cancel(b);
var c = lj(b);
this.c[(1).toString()] = b;
nj(this.a, oj, c, b)
}
};
l.fl = function (b) {
if (!kj(this, b)) {
var c = lj(b);
nj(this.a, pj, c, b)
}
};
l.il = function (b) {
if (!kj(this, b)) {
var c = this.c[(1).toString()];
c && c.button === b.button && (c = lj(b), nj(this.a, qj, c, b), delete this.c[(1).toString()])
}
};
l.hl = function (b) {
if (!kj(this, b)) {
var c = lj(b);
rj(this.a, c, b)
}
};
l.gl = function (b) {
if (!kj(this, b)) {
var c = lj(b);
sj(this.a, c, b)
}
};
l.cancel = function (b) {
var c = lj(b);
this.a.cancel(c, b);
delete this.c[(1).toString()]
};
function tj(b) {
ij.call(this, b, {
MSPointerDown: this.nl,
MSPointerMove: this.ol,
MSPointerUp: this.rl,
MSPointerOut: this.pl,
MSPointerOver: this.ql,
MSPointerCancel: this.ml,
MSGotPointerCapture: this.kl,
MSLostPointerCapture: this.ll
});
this.c = b.c;
this.b = [
'',
'unavailable',
'touch',
'pen',
'mouse'
]
}
y(tj, ij);
function uj(b, c) {
var d = c;
ja(c.a.pointerType) && (d = mj(c, c.a), d.pointerType = b.b[c.a.pointerType]);
return d
}
l = tj.prototype;
l.nl = function (b) {
this.c[b.a.pointerId.toString()] = b;
var c = uj(this, b);
nj(this.a, oj, c, b)
};
l.ol = function (b) {
var c = uj(this, b);
nj(this.a, pj, c, b)
};
l.rl = function (b) {
var c = uj(this, b);
nj(this.a, qj, c, b);
delete this.c[b.a.pointerId.toString()]
};
l.pl = function (b) {
var c = uj(this, b);
sj(this.a, c, b)
};
l.ql = function (b) {
var c = uj(this, b);
rj(this.a, c, b)
};
l.ml = function (b) {
var c = uj(this, b);
this.a.cancel(c, b);
delete this.c[b.a.pointerId.toString()]
};
l.ll = function (b) {
this.a.o(new Li('lostpointercapture', b, b.a))
};
l.kl = function (b) {
this.a.o(new Li('gotpointercapture', b, b.a))
};
function vj(b) {
ij.call(this, b, {
pointerdown: this.Vn,
pointermove: this.Wn,
pointerup: this.Zn,
pointerout: this.Xn,
pointerover: this.Yn,
pointercancel: this.Un,
gotpointercapture: this.rk,
lostpointercapture: this.dl
})
}
y(vj, ij);
l = vj.prototype;
l.Vn = function (b) {
wj(this.a, b)
};
l.Wn = function (b) {
wj(this.a, b)
};
l.Zn = function (b) {
wj(this.a, b)
};
l.Xn = function (b) {
wj(this.a, b)
};
l.Yn = function (b) {
wj(this.a, b)
};
l.Un = function (b) {
wj(this.a, b)
};
l.dl = function (b) {
wj(this.a, b)
};
l.rk = function (b) {
wj(this.a, b)
};
function xj(b, c) {
ij.call(this, b, {
touchstart: this.ap,
touchmove: this.$o,
touchend: this.Zo,
touchcancel: this.Yo
});
this.c = b.c;
this.i = c;
this.b = void 0;
this.j = 0;
this.f = void 0
}
y(xj, ij);
l = xj.prototype;
l.Ph = function () {
this.j = 0;
this.f = void 0
};
function yj(b, c, d) {
c = mj(c, d);
c.pointerId = d.identifier + 2;
c.bubbles = !0;
c.cancelable = !0;
c.detail = b.j;
c.button = 0;
c.buttons = 1;
c.width = d.webkitRadiusX || d.radiusX || 0;
c.height = d.webkitRadiusY || d.radiusY || 0;
c.pressure = d.webkitForce || d.force || 0.5;
c.isPrimary = b.b === d.identifier;
c.pointerType = 'touch';
c.clientX = d.clientX;
c.clientY = d.clientY;
c.screenX = d.screenX;
c.screenY = d.screenY;
return c
}
function zj(b, c, d) {
function e() {
c.preventDefault()
}
var f = Array.prototype.slice.call(c.a.changedTouches),
g = f.length,
h,
k;
for (h = 0; h < g; ++h) k = yj(b, c, f[h]),
k.preventDefault = e,
d.call(b, c, k)
}
l.ap = function (b) {
var c = b.a.touches,
d = Mb(this.c),
e = d.length;
if (e >= c.length) {
var f = [
],
g,
h,
k;
for (g = 0; g < e; ++g) {
h = d[g];
k = this.c[h];
var m;
if (!(m = 1 == h)) a: {
m = c.length;
for (var n = void 0, p = 0; p < m; p++) if (n = c[p], n.identifier === h - 2) {
m = !0;
break a
}
m = !1
}
m || f.push(k.tc)
}
for (g = 0; g < f.length; ++g) this.df(b, f[g])
}
c = Kb(this.c);
if (0 === c || 1 === c && (1).toString() in this.c) this.b = b.a.changedTouches[0].identifier,
void 0 !== this.f && ba.clearTimeout(this.f);
Bj(this, b);
this.j++;
zj(this, b, this.Qn)
};
l.Qn = function (b, c) {
this.c[c.pointerId] = {
target: c.target,
tc: c,
xh: c.target
};
var d = this.a;
c.bubbles = !0;
nj(d, Cj, c, b);
d = this.a;
c.bubbles = !1;
nj(d, Dj, c, b);
nj(this.a, oj, c, b)
};
l.$o = function (b) {
b.preventDefault();
zj(this, b, this.jl)
};
l.jl = function (b, c) {
var d = this.c[c.pointerId];
if (d) {
var e = d.tc,
f = d.xh;
nj(this.a, pj, c, b);
e && f !== c.target && (e.relatedTarget = c.target, c.relatedTarget = f, e.target = f, c.target ? (sj(this.a, e, b), rj(this.a, c, b))  : (c.target = f, c.relatedTarget = null, this.df(b, c)));
d.tc = c;
d.xh = c.target
}
};
l.Zo = function (b) {
Bj(this, b);
zj(this, b, this.bp)
};
l.bp = function (b, c) {
nj(this.a, qj, c, b);
this.a.tc(c, b);
var d = this.a;
c.bubbles = !1;
nj(d, Ej, c, b);
delete this.c[c.pointerId];
c.isPrimary && (this.b = void 0, this.f = ba.setTimeout(ra(this.Ph, this), 200))
};
l.Yo = function (b) {
zj(this, b, this.df)
};
l.df = function (b, c) {
this.a.cancel(c, b);
this.a.tc(c, b);
var d = this.a;
c.bubbles = !1;
nj(d, Ej, c, b);
delete this.c[c.pointerId];
c.isPrimary && (this.b = void 0, this.f = ba.setTimeout(ra(this.Ph, this), 200))
};
function Bj(b, c) {
var d = b.i.b,
e = c.a.changedTouches[0];
if (b.b === e.identifier) {
var f = [
e.clientX,
e.clientY
];
d.push(f);
ba.setTimeout(function () {
hb(d, f)
}, 2500)
}
};
function Fj(b) {
cd.call(this);
this.f = b;
this.c = {
};
this.b = {
};
this.a = [
];
cj ? Gj(this, new vj(this))  : dj ? Gj(this, new tj(this))  : (b = new jj(this), Gj(this, b), bj && Gj(this, new xj(this, b)));
b = this.a.length;
for (var c, d = 0; d < b; d++) c = this.a[d],
Hj(this, Object.keys(c.g))
}
y(Fj, cd);
function Gj(b, c) {
var d = Object.keys(c.g);
d && (d.forEach(function (b) {
var d = c.g[b];
d && (this.b[b] = ra(d, c))
}, b), b.a.push(c))
}
Fj.prototype.g = function (b) {
var c = this.b[b.type];
c && c(b)
};
function Hj(b, c) {
c.forEach(function (b) {
C(this.f, b, this.g, !1, this)
}, b)
}
function Ij(b, c) {
c.forEach(function (b) {
Yc(this.f, b, this.g, !1, this)
}, b)
}
function mj(b, c) {
for (var d = {
}, e, f = 0, g = Jj.length; f < g; f++) e = Jj[f][0],
d[e] = b[e] || c[e] || Jj[f][1];
return d
}
Fj.prototype.tc = function (b, c) {
b.bubbles = !0;
nj(this, Kj, b, c)
};
Fj.prototype.cancel = function (b, c) {
nj(this, Lj, b, c)
};
function sj(b, c, d) {
b.tc(c, d);
var e = c.relatedTarget;
e && Rg(c.target, e) || (c.bubbles = !1, nj(b, Ej, c, d))
}
function rj(b, c, d) {
c.bubbles = !0;
nj(b, Cj, c, d);
var e = c.relatedTarget;
e && Rg(c.target, e) || (c.bubbles = !1, nj(b, Dj, c, d))
}
function nj(b, c, d, e) {
b.o(new Li(c, e, d))
}
function wj(b, c) {
b.o(new Li(c.type, c, c.a))
}
Fj.prototype.X = function () {
for (var b = this.a.length, c, d = 0; d < b; d++) c = this.a[d],
Ij(this, Object.keys(c.g));
Fj.da.X.call(this)
};
var pj = 'pointermove',
oj = 'pointerdown',
qj = 'pointerup',
Cj = 'pointerover',
Kj = 'pointerout',
Dj = 'pointerenter',
Ej = 'pointerleave',
Lj = 'pointercancel',
Jj = [
['bubbles',
!1],
[
'cancelable',
!1
],
[
'view',
null
],
[
'detail',
null
],
[
'screenX',
0
],
[
'screenY',
0
],
[
'clientX',
0
],
[
'clientY',
0
],
[
'ctrlKey',
!1
],
[
'altKey',
!1
],
[
'shiftKey',
!1
],
[
'metaKey',
!1
],
[
'button',
0
],
[
'relatedTarget',
null
],
[
'buttons',
0
],
[
'pointerId',
0
],
[
'width',
0
],
[
'height',
0
],
[
'pressure',
0
],
[
'tiltX',
0
],
[
'tiltY',
0
],
[
'pointerType',
''
],
[
'hwTimestamp',
0
],
[
'isPrimary',
!1
],
[
'type',
''
],
[
'target',
null
],
[
'currentTarget',
null
],
[
'which',
0
]
];
function Mj(b, c, d, e, f) {
ph.call(this, b, c, f);
this.a = d;
this.originalEvent = d.a;
this.pixel = c.Zd(this.originalEvent);
this.coordinate = c.Fa(this.pixel);
this.dragging = void 0 !== e ? e : !1
}
y(Mj, ph);
Mj.prototype.preventDefault = function () {
Mj.da.preventDefault.call(this);
this.a.preventDefault()
};
Mj.prototype.b = function () {
Mj.da.b.call(this);
this.a.b()
};
function Nj(b, c, d, e, f) {
Mj.call(this, b, c, d.a, e, f);
this.c = d
}
y(Nj, Mj);
function Oj(b) {
cd.call(this);
this.b = b;
this.j = 0;
this.i = !1;
this.c = this.l = this.f = null;
b = this.b.a;
this.A = 0;
this.u = {
};
this.g = new Fj(b);
this.a = null;
this.l = C(this.g, oj, this.Nk, !1, this);
this.B = C(this.g, pj, this.xo, !1, this)
}
y(Oj, cd);
function Pj(b, c) {
var d;
d = new Nj(Qj, b.b, c);
b.o(d);
0 !== b.j ? (ba.clearTimeout(b.j), b.j = 0, d = new Nj(Rj, b.b, c), b.o(d))  : b.j = ba.setTimeout(ra(function () {
this.j = 0;
var b = new Nj(Sj, this.b, c);
this.o(b)
}, b), 250)
}
function Tj(b, c) {
c.type == Uj || c.type == Vj ? delete b.u[c.pointerId] : c.type == Wj && (b.u[c.pointerId] = !0);
b.A = Kb(b.u)
}
l = Oj.prototype;
l.Jg = function (b) {
Tj(this, b);
var c = new Nj(Uj, this.b, b);
this.o(c);
!this.i && 0 === b.button && Pj(this, this.c);
0 === this.A && (this.f.forEach(Zc), this.f = null, this.i = !1, this.c = null, uc(this.a), this.a = null)
};
l.Nk = function (b) {
Tj(this, b);
var c = new Nj(Wj, this.b, b);
this.o(c);
this.c = b;
this.f || (this.a = new Fj(document), this.f = [
C(this.a, Xj, this.El, !1, this),
C(this.a, Uj, this.Jg, !1, this),
C(this.g, Vj, this.Jg, !1, this)
])
};
l.El = function (b) {
if (b.clientX != this.c.clientX || b.clientY != this.c.clientY) {
this.i = !0;
var c = new Nj(Yj, this.b, b, this.i);
this.o(c)
}
b.preventDefault()
};
l.xo = function (b) {
this.o(new Nj(b.type, this.b, b, !(!this.c || b.clientX == this.c.clientX && b.clientY == this.c.clientY)))
};
l.X = function () {
this.B && (Zc(this.B), this.B = null);
this.l && (Zc(this.l), this.l = null);
this.f && (this.f.forEach(Zc), this.f = null);
this.a && (uc(this.a), this.a = null);
this.g && (uc(this.g), this.g = null);
Oj.da.X.call(this)
};
var Sj = 'singleclick',
Qj = 'click',
Rj = 'dblclick',
Yj = 'pointerdrag',
Xj = 'pointermove',
Wj = 'pointerdown',
Uj = 'pointerup',
Vj = 'pointercancel',
Zj = {
up: Sj,
jp: Qj,
kp: Rj,
np: Yj,
qp: Xj,
mp: Wj,
tp: Uj,
sp: 'pointerover',
rp: 'pointerout',
op: 'pointerenter',
pp: 'pointerleave',
lp: Vj
};
function ak(b) {
id.call(this);
var c = Ub(b);
c.opacity = void 0 !== b.opacity ? b.opacity : 1;
c.visible = void 0 !== b.visible ? b.visible : !0;
c.zIndex = void 0 !== b.zIndex ? b.zIndex : 0;
c.maxResolution = void 0 !== b.maxResolution ? b.maxResolution : Infinity;
c.minResolution = void 0 !== b.minResolution ? b.minResolution : 0;
this.I(c)
}
y(ak, id);
function bk(b) {
var c = b.Rb(),
d = b.of(),
e = b.qb(),
f = b.J(),
g = b.Sb(),
h = b.Mb(),
k = b.Nb();
return {
layer: b,
opacity: Sa(c, 0, 1),
S: d,
visible: e,
rb: !0,
extent: f,
zIndex: g,
maxResolution: h,
minResolution: Math.max(k, 0)
}
}
l = ak.prototype;
l.J = function () {
return this.get('extent')
};
l.Mb = function () {
return this.get('maxResolution')
};
l.Nb = function () {
return this.get('minResolution')
};
l.Rb = function () {
return this.get('opacity')
};
l.qb = function () {
return this.get('visible')
};
l.Sb = function () {
return this.get('zIndex')
};
l.bc = function (b) {
this.set('extent', b)
};
l.jc = function (b) {
this.set('maxResolution', b)
};
l.kc = function (b) {
this.set('minResolution', b)
};
l.cc = function (b) {
this.set('opacity', b)
};
l.dc = function (b) {
this.set('visible', b)
};
l.ec = function (b) {
this.set('zIndex', b)
};
function ck() {
};
function dk(b, c, d, e, f, g) {
vc.call(this, b, c);
this.vectorContext = d;
this.frameState = e;
this.context = f;
this.glContext = g
}
y(dk, vc);
function ek(b) {
var c = Ub(b);
delete c.source;
ak.call(this, c);
this.j = this.A = this.u = null;
b.map && this.setMap(b.map);
C(this, kd('source'), this.Tk, !1, this);
this.wc(b.source ? b.source : null)
}
y(ek, ak);
function fk(b, c) {
return b.visible && c >= b.minResolution && c < b.maxResolution
}
l = ek.prototype;
l.nf = function (b) {
b = b ? b : [
];
b.push(bk(this));
return b
};
l.fa = function () {
return this.get('source') || null
};
l.of = function () {
var b = this.fa();
return b ? b.A : 'undefined'
};
l.vm = function () {
this.s()
};
l.Tk = function () {
this.j && (Zc(this.j), this.j = null);
var b = this.fa();
b && (this.j = C(b, 'change', this.vm, !1, this));
this.s()
};
l.setMap = function (b) {
Zc(this.u);
this.u = null;
b || this.s();
Zc(this.A);
this.A = null;
b && (this.u = C(b, 'precompose', function (b) {
var d = bk(this);
d.rb = !1;
d.zIndex = Infinity;
b.frameState.layerStatesArray.push(d);
b.frameState.layerStates[w(this)] = d
}, !1, this), this.A = C(this, 'change', b.render, !1, b), this.s())
};
l.wc = function (b) {
this.set('source', b)
};
function gk(b, c, d, e, f) {
cd.call(this);
this.j = f;
this.extent = b;
this.b = d;
this.resolution = c;
this.state = e
}
y(gk, cd);
function hk(b) {
b.o('change')
}
gk.prototype.J = function () {
return this.extent
};
gk.prototype.$ = function () {
return this.resolution
};
function ik(b, c, d, e, f, g, h, k) {
Hd(b);
0 === c && 0 === d || Kd(b, c, d);
1 == e && 1 == f || Ld(b, e, f);
0 !== g && Md(b, g);
0 === h && 0 === k || Kd(b, h, k);
return b
}
function jk(b, c) {
return b[0] == c[0] && b[1] == c[1] && b[4] == c[4] && b[5] == c[5] && b[12] == c[12] && b[13] == c[13]
}
function kk(b, c, d) {
var e = b[1],
f = b[5],
g = b[13],
h = c[0];
c = c[1];
d[0] = b[0] * h + b[4] * c + b[12];
d[1] = e * h + f * c + g;
return d
};
function lk(b) {
fd.call(this);
this.a = b
}
y(lk, fd);
l = lk.prototype;
l.Za = wa;
l.sc = function (b, c, d, e) {
b = b.slice();
kk(c.pixelToCoordinateMatrix, b, b);
if (this.Za(b, c, ue, this)) return d.call(e, this.a)
};
l.we = te;
l.bd = function (b, c, d) {
return function (e, f) {
return Qh(b, c, e, f, function (b) {
d[e] || (d[e] = {
});
d[e][b.a.toString()] = b
})
}
};
l.zm = function (b) {
2 === b.target.state && mk(this)
};
function nk(b, c) {
var d = c.state;
2 != d && 3 != d && C(c, 'change', b.zm, !1, b);
0 == d && (c.load(), d = c.state);
return 2 == d
}
function mk(b) {
var c = b.a;
c.qb() && 'ready' == c.of() && b.s()
}
function ok(b, c) {
c.nh() && b.postRenderFunctions.push(sa(function (b, c, f) {
c = w(b).toString();
b.oh(f.viewState.projection, f.usedTiles[c])
}, c))
}
function pk(b, c) {
if (c) {
var d,
e,
f;
e = 0;
for (f = c.length; e < f; ++e) d = c[e],
b[w(d).toString()] = d
}
}
function qk(b, c) {
var d = c.U;
void 0 !== d && (ia(d) ? b.logos[d] = '' : ma(d) && (b.logos[d.src] = d.href))
}
function rk(b, c, d, e) {
c = w(c).toString();
d = d.toString();
c in b ? d in b[c] ? (b = b[c][d], e.a < b.a && (b.a = e.a), e.f > b.f && (b.f = e.f), e.c < b.c && (b.c = e.c), e.b > b.b && (b.b = e.b))  : b[c][d] = e : (b[c] = {
}, b[c][d] = e)
}
function sk(b, c, d) {
return [c * (Math.round(b[0] / c) + d[0] % 2 / 2),
c * (Math.round(b[1] / c) + d[1] % 2 / 2)]
}
function tk(b, c, d, e, f, g, h, k, m, n) {
var p = w(c).toString();
p in b.wantedTiles || (b.wantedTiles[p] = {
});
var q = b.wantedTiles[p];
b = b.tileQueue;
var r = d.minZoom,
t,
x,
z,
B,
A,
v;
for (v = h; v >= r; --v) for (x = Fh(d, g, v, x), z = d.$(v), B = x.a; B <= x.f; ++B) for (A = x.c; A <= x.b; ++A) h - v <= k ? (t = c.Ob(v, B, A, e, f), 0 == t.state && (q[fg(t.a)] = !0, t.tb() in b.b || uk(b, [
t,
p,
Jh(d, t.a),
z
])), void 0 !== m && m.call(n, t))  : c.Xf(v, B, A, f)
};
function vk(b) {
this.A = b.opacity;
this.D = b.rotateWithView;
this.u = b.rotation;
this.i = b.scale;
this.G = b.snapToPixel
}
l = vk.prototype;
l.Ae = function () {
return this.A
};
l.ce = function () {
return this.D
};
l.Be = function () {
return this.u
};
l.Ce = function () {
return this.i
};
l.de = function () {
return this.G
};
l.De = function (b) {
this.A = b
};
l.Ee = function (b) {
this.u = b
};
l.Fe = function (b) {
this.i = b
};
function wk(b) {
b = b || {
};
this.g = void 0 !== b.anchor ? b.anchor : [
0.5,
0.5
];
this.f = null;
this.c = void 0 !== b.anchorOrigin ? b.anchorOrigin : 'top-left';
this.l = void 0 !== b.anchorXUnits ? b.anchorXUnits : 'fraction';
this.B = void 0 !== b.anchorYUnits ? b.anchorYUnits : 'fraction';
var c = void 0 !== b.crossOrigin ? b.crossOrigin : null,
d = void 0 !== b.img ? b.img : null,
e = void 0 !== b.imgSize ? b.imgSize : null,
f = b.src;
void 0 !== f && 0 !== f.length || !d || (f = d.src);
var g = void 0 !== b.src ? 0 : 2,
h = xk.Yb(),
k = h.get(f, c);
k || (k = new yk(d, f, e, c, g), h.set(f, c, k));
this.a =
k;
this.ia = void 0 !== b.offset ? b.offset : [
0,
0
];
this.b = void 0 !== b.offsetOrigin ? b.offsetOrigin : 'top-left';
this.j = null;
this.C = void 0 !== b.size ? b.size : null;
vk.call(this, {
opacity: void 0 !== b.opacity ? b.opacity : 1,
rotation: void 0 !== b.rotation ? b.rotation : 0,
scale: void 0 !== b.scale ? b.scale : 1,
snapToPixel: void 0 !== b.snapToPixel ? b.snapToPixel : !0,
rotateWithView: void 0 !== b.rotateWithView ? b.rotateWithView : !1
})
}
y(wk, vk);
l = wk.prototype;
l.Xb = function () {
if (this.f) return this.f;
var b = this.g,
c = this.Bb();
if ('fraction' == this.l || 'fraction' == this.B) {
if (!c) return null;
b = this.g.slice();
'fraction' == this.l && (b[0] *= c[0]);
'fraction' == this.B && (b[1] *= c[1])
}
if ('top-left' != this.c) {
if (!c) return null;
b === this.g && (b = this.g.slice());
if ('top-right' == this.c || 'bottom-right' == this.c) b[0] = - b[0] + c[0];
if ('bottom-left' == this.c || 'bottom-right' == this.c) b[1] = - b[1] + c[1]
}
return this.f = b
};
l.fc = function () {
return this.a.a
};
l.qd = function () {
return this.a.b
};
l.Bd = function () {
return this.a.c
};
l.ze = function () {
var b = this.a;
if (!b.g) if (b.l) {
var c = b.b[0],
d = b.b[1],
e = Pi(c, d);
e.fillRect(0, 0, c, d);
b.g = e.canvas
} else b.g = b.a;
return b.g
};
l.Ca = function () {
if (this.j) return this.j;
var b = this.ia;
if ('top-left' != this.b) {
var c = this.Bb(),
d = this.a.b;
if (!c || !d) return null;
b = b.slice();
if ('top-right' == this.b || 'bottom-right' == this.b) b[0] = d[0] - c[0] - b[0];
if ('bottom-left' == this.b || 'bottom-right' == this.b) b[1] = d[1] - c[1] - b[1]
}
return this.j = b
};
l.fn = function () {
return this.a.j
};
l.Bb = function () {
return this.C ? this.C : this.a.b
};
l.sf = function (b, c) {
return C(this.a, 'change', b, !1, c)
};
l.load = function () {
this.a.load()
};
l.Wf = function (b, c) {
Yc(this.a, 'change', b, !1, c)
};
function yk(b, c, d, e, f) {
cd.call(this);
this.g = null;
this.a = b ? b : new Image;
null !== e && (this.a.crossOrigin = e);
this.f = null;
this.c = f;
this.b = d;
this.j = c;
this.l = !1;
2 == this.c && zk(this)
}
y(yk, cd);
function zk(b) {
var c = Pi(1, 1);
try {
c.drawImage(b.a, 0, 0),
c.getImageData(0, 0, 1, 1)
} catch (d) {
b.l = !0
}
}
yk.prototype.i = function () {
this.c = 3;
this.f.forEach(Zc);
this.f = null;
this.o('change')
};
yk.prototype.B = function () {
this.c = 2;
this.b = [
this.a.width,
this.a.height
];
this.f.forEach(Zc);
this.f = null;
zk(this);
this.o('change')
};
yk.prototype.load = function () {
if (0 == this.c) {
this.c = 1;
this.f = [
Xc(this.a, 'error', this.i, !1, this),
Xc(this.a, 'load', this.B, !1, this)
];
try {
this.a.src = this.j
} catch (b) {
this.i()
}
}
};
function xk() {
this.a = {
};
this.c = 0
}
ea(xk);
xk.prototype.clear = function () {
this.a = {
};
this.c = 0
};
xk.prototype.get = function (b, c) {
var d = c + ':' + b;
return d in this.a ? this.a[d] : null
};
xk.prototype.set = function (b, c, d) {
this.a[c + ':' + b] = d;
++this.c
};
function Ak(b, c) {
pc.call(this);
this.j = c;
this.f = {
};
this.u = {
}
}
y(Ak, pc);
function Bk(b) {
var c = b.viewState,
d = b.coordinateToPixelMatrix;
ik(d, b.size[0] / 2, b.size[1] / 2, 1 / c.resolution, - 1 / c.resolution, - c.rotation, - c.center[0], - c.center[1]);
Jd(d, b.pixelToCoordinateMatrix)
}
l = Ak.prototype;
l.X = function () {
Ib(this.f, uc);
Ak.da.X.call(this)
};
function Ck() {
var b = xk.Yb();
if (32 < b.c) {
var c = 0,
d,
e;
for (d in b.a) {
e = b.a[d];
var f;
if (f = 0 === (c++ & 3)) Ec(e) ? e = ed(e, void 0, void 0)  : (e = Tc(e), e = !!e && Mc(e, void 0, void 0)),
f = !e;
f && (delete b.a[d], --b.c)
}
}
}
l.Af = function (b, c, d, e, f, g) {
function h(b) {
var c = w(b).toString();
if (!(c in p)) return p[c] = !0,
d.call(e, b, null)
}
var k,
m = c.viewState,
n = m.resolution,
p = {
},
q = m.projection,
m = b;
if (q.b) {
var q = q.J(),
r = ke(q),
t = b[0];
if (t < q[0] || t > q[2]) m = [
t + r * Math.ceil((q[0] - t) / r),
b[1]
]
}
q = c.layerStatesArray;
for (r = q.length - 1; 0 <= r; --r) {
var t = q[r],
x = t.layer;
if (!t.rb || fk(t, n) && f.call(g, x)) {
var z = Dk(this, x);
x.fa() && (k = z.Za(zh(x.fa()) ? m : b, c, t.rb ? d : h, e));
if (k) return k
}
}
};
l.jh = function (b, c, d, e, f, g) {
var h,
k = c.viewState.resolution,
m = c.layerStatesArray,
n;
for (n = m.length - 1; 0 <= n; --n) {
h = m[n];
var p = h.layer;
if (fk(h, k) && f.call(g, p) && (h = Dk(this, p).sc(b, c, d, e))) return h
}
};
l.kh = function (b, c, d, e) {
return void 0 !== this.Af(b, c, ue, this, d, e)
};
function Dk(b, c) {
var d = w(c).toString();
if (d in b.f) return b.f[d];
var e = b.gf(c);
b.f[d] = e;
b.u[d] = C(e, 'change', b.Dk, !1, b);
return e
}
l.Dk = function () {
this.j.render()
};
l.Me = wa;
l.Do = function (b, c) {
for (var d in this.f) if (!(c && d in c.layerStates)) {
var e = d,
f = this.f[e];
delete this.f[e];
Zc(this.u[e]);
delete this.u[e];
uc(f)
}
};
function Ek(b, c) {
for (var d in b.f) if (!(d in c.layerStates)) {
c.postRenderFunctions.push(ra(b.Do, b));
break
}
}
function rb(b, c) {
return b.zIndex - c.zIndex
};
function Fk(b, c) {
this.i = b;
this.g = c;
this.a = [
];
this.c = [
];
this.b = {
}
}
Fk.prototype.clear = function () {
this.a.length = 0;
this.c.length = 0;
Rb(this.b)
};
function Gk(b) {
var c = b.a,
d = b.c,
e = c[0];
1 == c.length ? (c.length = 0, d.length = 0)  : (c[0] = c.pop(), d[0] = d.pop(), Hk(b, 0));
c = b.g(e);
delete b.b[c];
return e
}
function uk(b, c) {
var d = b.i(c);
Infinity != d && (b.a.push(c), b.c.push(d), b.b[b.g(c)] = !0, Ik(b, 0, b.a.length - 1))
}
Fk.prototype.nc = function () {
return this.a.length
};
Fk.prototype.Ka = function () {
return 0 === this.a.length
};
function Hk(b, c) {
for (var d = b.a, e = b.c, f = d.length, g = d[c], h = e[c], k = c; c < f >> 1; ) {
var m = 2 * c + 1,
n = 2 * c + 2,
m = n < f && e[n] < e[m] ? n : m;
d[c] = d[m];
e[c] = e[m];
c = m
}
d[c] = g;
e[c] = h;
Ik(b, k, c)
}
function Ik(b, c, d) {
var e = b.a;
b = b.c;
for (var f = e[d], g = b[d]; d > c; ) {
var h = d - 1 >> 1;
if (b[h] > g) e[d] = e[h],
b[d] = b[h],
d = h;
 else break
}
e[d] = f;
b[d] = g
}
function Jk(b) {
var c = b.i,
d = b.a,
e = b.c,
f = 0,
g = d.length,
h,
k,
m;
for (k = 0; k < g; ++k) h = d[k],
m = c(h),
Infinity == m ? delete b.b[b.g(h)] : (e[f] = m, d[f++] = h);
d.length = f;
e.length = f;
for (c = (b.a.length >> 1) - 1; 0 <= c; c--) Hk(b, c)
};
function Kk(b, c) {
Fk.call(this, function (c) {
return b.apply(null, c)
}, function (b) {
return b[0].tb()
});
this.l = c;
this.f = 0
}
y(Kk, Fk);
Kk.prototype.j = function (b) {
b = b.target;
var c = b.state;
if (2 === c || 3 === c || 4 === c) Yc(b, 'change', this.j, !1, this),
--this.f,
this.l()
};
function Lk(b, c, d) {
for (var e = 0, f; b.f < c && e < d && 0 < b.nc(); ) f = Gk(b) [0],
0 === f.state && (C(f, 'change', b.j, !1, b), f.load(), ++b.f, ++e)
};
function Mk(b, c, d) {
this.f = b;
this.b = c;
this.j = d;
this.a = [
];
this.c = this.g = 0
}
function Nk(b, c) {
var d = b.f,
e = b.c,
f = b.b - e,
g = Math.log(b.b / b.c) / b.f;
return Zf({
source: c,
duration: g,
easing: function (b) {
return e * (Math.exp(d * b * g) - 1) / f
}
})
};
function Ok(b) {
id.call(this);
this.u = null;
this.g(!0);
this.handleEvent = b.handleEvent
}
y(Ok, id);
Ok.prototype.b = function () {
return this.get('active')
};
Ok.prototype.g = function (b) {
this.set('active', b)
};
Ok.prototype.setMap = function (b) {
this.u = b
};
function Pk(b, c, d, e, f) {
if (void 0 !== d) {
var g = c.Ea(),
h = c.Ta();
void 0 !== g && h && f && 0 < f && (b.Ma(ag({
rotation: g,
duration: f,
easing: Vf
})), e && b.Ma(Zf({
source: h,
duration: f,
easing: Vf
})));
c.rotate(d, e)
}
}
function Qk(b, c, d, e, f) {
var g = c.$();
d = c.constrainResolution(g, d, 0);
Rk(b, c, d, e, f)
}
function Rk(b, c, d, e, f) {
if (d) {
var g = c.$(),
h = c.Ta();
void 0 !== g && h && d !== g && f && 0 < f && (b.Ma(bg({
resolution: g,
duration: f,
easing: Vf
})), e && b.Ma(Zf({
source: h,
duration: f,
easing: Vf
})));
if (e) {
var k;
b = c.Ta();
f = c.$();
void 0 !== b && void 0 !== f && (k = [
e[0] - d * (e[0] - b[0]) / f,
e[1] - d * (e[1] - b[1]) / f
]);
c.jb(k)
}
c.Ub(d)
}
};
function Sk(b) {
b = b ? b : {
};
this.a = b.delta ? b.delta : 1;
Ok.call(this, {
handleEvent: Tk
});
this.f = b.duration ? b.duration : 250
}
y(Sk, Ok);
function Tk(b) {
var c = !1,
d = b.a;
if (b.type == Rj) {
var c = b.map,
e = b.coordinate,
d = d.f ? - this.a : this.a,
f = c.aa();
Qk(c, f, d, e, this.f);
b.preventDefault();
c = !0
}
return !c
};
function Uk(b) {
b = b.a;
return b.c && !b.l && b.f
}
function Vk(b) {
return 'pointermove' == b.type
}
function Wk(b) {
return b.type == Sj
}
function Xk(b) {
b = b.a;
return !b.c && !b.l && !b.f
}
function Yk(b) {
b = b.a;
return !b.c && !b.l && b.f
}
function Zk(b) {
b = b.a.target.tagName;
return 'INPUT' !== b && 'SELECT' !== b && 'TEXTAREA' !== b
}
function $k(b) {
return 'mouse' == b.c.pointerType
};
function al(b) {
b = b ? b : {
};
Ok.call(this, {
handleEvent: b.handleEvent ? b.handleEvent : bl
});
this.Ac = b.handleDownEvent ? b.handleDownEvent : te;
this.Bc = b.handleDragEvent ? b.handleDragEvent : wa;
this.Xc = b.handleMoveEvent ? b.handleMoveEvent : wa;
this.We = b.handleUpEvent ? b.handleUpEvent : te;
this.C = !1;
this.Z = {
};
this.j = [
]
}
y(al, Ok);
function cl(b) {
for (var c = b.length, d = 0, e = 0, f = 0; f < c; f++) d += b[f].clientX,
e += b[f].clientY;
return [d / c,
e / c]
}
function bl(b) {
if (!(b instanceof Nj)) return !0;
var c = !1,
d = b.type;
if (d === Wj || d === Yj || d === Uj) d = b.c,
b.type == Uj ? delete this.Z[d.pointerId] : b.type == Wj ? this.Z[d.pointerId] = d : d.pointerId in this.Z && (this.Z[d.pointerId] = d),
this.j = Lb(this.Z);
this.C && (b.type == Yj ? this.Bc(b)  : b.type == Uj && (this.C = this.We(b)));
b.type == Wj ? (this.C = b = this.Ac(b), c = this.xc(b))  : b.type == Xj && this.Xc(b);
return !c
}
al.prototype.xc = we;
function dl(b) {
al.call(this, {
handleDownEvent: el,
handleDragEvent: fl,
handleUpEvent: gl
});
b = b ? b : {
};
this.a = b.kinetic;
this.f = this.i = null;
this.A = b.condition ? b.condition : Xk;
this.l = !1
}
y(dl, al);
function fl(b) {
var c = cl(this.j);
this.a && this.a.a.push(c[0], c[1], Date.now());
if (this.f) {
var d = this.f[0] - c[0],
e = c[1] - this.f[1];
b = b.map;
var f = b.aa(),
g = Rf(f),
e = d = [
d,
e
],
h = g.resolution;
e[0] *= h;
e[1] *= h;
wd(d, g.rotation);
rd(d, g.center);
d = f.Wd(d);
b.render();
f.jb(d)
}
this.f = c
}
function gl(b) {
b = b.map;
var c = b.aa();
if (0 === this.j.length) {
var d;
if (d = !this.l && this.a) if (d = this.a, 6 > d.a.length) d = !1;
 else {
var e = Date.now() - d.j,
f = d.a.length - 3;
if (d.a[f + 2] < e) d = !1;
 else {
for (var g = f - 3; 0 < g && d.a[g + 2] > e; ) g -= 3;
var e = d.a[f + 2] - d.a[g + 2],
h = d.a[f] - d.a[g],
f = d.a[f + 1] - d.a[g + 1];
d.g = Math.atan2(f, h);
d.c = Math.sqrt(h * h + f * f) / e;
d = d.c > d.b
}
}
d && (d = this.a, d = (d.b - d.c) / d.f, f = this.a.g, g = c.Ta(), this.i = Nk(this.a, g), b.Ma(this.i), g = b.Oa(g), d = b.Fa([g[0] - d * Math.cos(f),
g[1] - d * Math.sin(f)]), d = c.Wd(d), c.jb(d));
Tf(c, - 1);
b.render();
return !1
}
this.f = null;
return !0
}
function el(b) {
if (0 < this.j.length && this.A(b)) {
var c = b.map,
d = c.aa();
this.f = null;
this.C || Tf(d, 1);
c.render();
this.i && hb(c.S, this.i) && (d.jb(b.frameState.viewState.center), this.i = null);
this.a && (b = this.a, b.a.length = 0, b.g = 0, b.c = 0);
this.l = 1 < this.j.length;
return !0
}
return !1
}
dl.prototype.xc = te;
function hl(b) {
b = b ? b : {
};
al.call(this, {
handleDownEvent: il,
handleDragEvent: jl,
handleUpEvent: kl
});
this.f = b.condition ? b.condition : Uk;
this.a = void 0;
this.i = b.duration ? b.duration : 250
}
y(hl, al);
function jl(b) {
if ($k(b)) {
var c = b.map,
d = c.Ra();
b = b.pixel;
d = Math.atan2(d[1] / 2 - b[1], b[0] - d[0] / 2);
if (void 0 !== this.a) {
b = d - this.a;
var e = c.aa(),
f = e.Ea();
c.render();
Pk(c, e, f - b)
}
this.a = d
}
}
function kl(b) {
if (!$k(b)) return !0;
b = b.map;
var c = b.aa();
Tf(c, - 1);
var d = c.Ea(),
e = this.i,
d = c.constrainRotation(d, 0);
Pk(b, c, d, void 0, e);
return !1
}
function il(b) {
return $k(b) && Cc(b.a) && this.f(b) ? (b = b.map, Tf(b.aa(), 1), b.render(), this.a = void 0, !0)  : !1
}
hl.prototype.xc = te;
function ll(b) {
this.f = null;
this.c = document.createElement('div');
this.c.style.position = 'absolute';
this.c.className = 'ol-box ' + b;
this.b = this.g = this.a = null
}
y(ll, pc);
ll.prototype.X = function () {
this.setMap(null);
ll.da.X.call(this)
};
function ml(b) {
var c = b.g,
d = b.b;
b = b.c.style;
b.left = Math.min(c[0], d[0]) + 'px';
b.top = Math.min(c[1], d[1]) + 'px';
b.width = Math.abs(d[0] - c[0]) + 'px';
b.height = Math.abs(d[1] - c[1]) + 'px'
}
ll.prototype.setMap = function (b) {
if (this.a) {
this.a.G.removeChild(this.c);
var c = this.c.style;
c.left = c.top = c.width = c.height = 'inherit'
}(this.a = b) && this.a.G.appendChild(this.c)
};
function nl(b) {
var c = b.g,
d = b.b,
c = [
c,
[
c[0],
d[1]
],
d,
[
d[0],
c[1]
]
].map(b.a.Fa, b.a);
c[4] = c[0].slice();
b.f ? b.f.ma([c])  : b.f = new E([c])
}
ll.prototype.W = function () {
return this.f
};
function pl(b, c) {
vc.call(this, b);
this.coordinate = c
}
y(pl, vc);
function ql(b) {
al.call(this, {
handleDownEvent: rl,
handleDragEvent: sl,
handleUpEvent: tl
});
b = b ? b : {
};
this.f = new ll(b.className || 'ol-dragbox');
this.a = null;
this.A = b.condition ? b.condition : ue
}
y(ql, al);
function sl(b) {
if ($k(b)) {
var c = this.f;
b = b.pixel;
c.g = this.a;
c.b = b;
nl(c);
ml(c)
}
}
ql.prototype.W = function () {
return this.f.W()
};
ql.prototype.l = wa;
function tl(b) {
if (!$k(b)) return !0;
this.f.setMap(null);
var c = b.pixel[0] - this.a[0],
d = b.pixel[1] - this.a[1];
64 <= c * c + d * d && (this.l(b), this.o(new pl('boxend', b.coordinate)));
return !1
}
function rl(b) {
if ($k(b) && Cc(b.a) && this.A(b)) {
this.a = b.pixel;
this.f.setMap(b.map);
var c = this.f,
d = this.a;
c.g = this.a;
c.b = d;
nl(c);
ml(c);
this.o(new pl('boxstart', b.coordinate));
return !0
}
return !1
};
function ul(b) {
b = b ? b : {
};
var c = b.condition ? b.condition : Yk;
this.i = void 0 !== b.duration ? b.duration : 200;
ql.call(this, {
condition: c,
className: b.className || 'ol-dragzoom'
})
}
y(ul, ql);
ul.prototype.l = function () {
var b = this.u,
c = b.aa(),
d = b.Ra(),
e = this.W().J(),
d = c.constrainResolution(Math.max(ke(e) / d[0], le(e) / d[1])),
f = c.$(),
g = c.Ta();
b.Ma(bg({
resolution: f,
duration: this.i,
easing: Vf
}));
b.Ma(Zf({
source: g,
duration: this.i,
easing: Vf
}));
c.jb(me(e));
c.Ub(d)
};
function vl(b) {
Ok.call(this, {
handleEvent: wl
});
b = b || {
};
this.a = void 0 !== b.condition ? b.condition : ze(Xk, Zk);
this.f = void 0 !== b.duration ? b.duration : 100;
this.j = void 0 !== b.pixelDelta ? b.pixelDelta : 128
}
y(vl, Ok);
function wl(b) {
var c = !1;
if ('key' == b.type) {
var d = b.a.j;
if (this.a(b) && (40 == d || 37 == d || 39 == d || 38 == d)) {
var e = b.map,
c = e.aa(),
f = c.$() * this.j,
g = 0,
h = 0;
40 == d ? h = - f : 37 == d ? g = - f : 39 == d ? g = f : h = f;
d = [
g,
h
];
wd(d, c.Ea());
f = this.f;
if (g = c.Ta()) f && 0 < f && e.Ma(Zf({
source: g,
duration: f,
easing: Xf
})),
e = c.Wd([g[0] + d[0],
g[1] + d[1]]),
c.jb(e);
b.preventDefault();
c = !0
}
}
return !c
};
function xl(b) {
Ok.call(this, {
handleEvent: yl
});
b = b ? b : {
};
this.f = b.condition ? b.condition : Zk;
this.a = b.delta ? b.delta : 1;
this.j = void 0 !== b.duration ? b.duration : 100
}
y(xl, Ok);
function yl(b) {
var c = !1;
if ('key' == b.type) {
var d = b.a.u;
if (this.f(b) && (43 == d || 45 == d)) {
c = b.map;
d = 43 == d ? this.a : - this.a;
c.render();
var e = c.aa();
Qk(c, e, d, void 0, this.j);
b.preventDefault();
c = !0
}
}
return !c
};
function zl(b) {
Ok.call(this, {
handleEvent: Al
});
b = b || {
};
this.f = 0;
this.C = void 0 !== b.duration ? b.duration : 250;
this.l = void 0 !== b.useAnchor ? b.useAnchor : !0;
this.a = null;
this.i = this.j = void 0
}
y(zl, Ok);
function Al(b) {
var c = !1;
if ('mousewheel' == b.type) {
var c = b.map,
d = b.a;
this.l && (this.a = b.coordinate);
this.f += d.C;
void 0 === this.j && (this.j = Date.now());
d = Math.max(80 - (Date.now() - this.j), 0);
ba.clearTimeout(this.i);
this.i = ba.setTimeout(ra(this.A, this, c), d);
b.preventDefault();
c = !0
}
return !c
}
zl.prototype.A = function (b) {
var c = Sa(this.f, - 1, 1),
d = b.aa();
b.render();
Qk(b, d, - c, this.a, this.C);
this.f = 0;
this.a = null;
this.i = this.j = void 0
};
zl.prototype.D = function (b) {
this.l = b;
b || (this.a = null)
};
function Bl(b) {
al.call(this, {
handleDownEvent: Cl,
handleDragEvent: Dl,
handleUpEvent: El
});
b = b || {
};
this.f = null;
this.i = void 0;
this.a = !1;
this.l = 0;
this.D = void 0 !== b.threshold ? b.threshold : 0.3;
this.A = void 0 !== b.duration ? b.duration : 250
}
y(Bl, al);
function Dl(b) {
var c = 0,
d = this.j[0],
e = this.j[1],
d = Math.atan2(e.clientY - d.clientY, e.clientX - d.clientX);
void 0 !== this.i && (c = d - this.i, this.l += c, !this.a && Math.abs(this.l) > this.D && (this.a = !0));
this.i = d;
b = b.map;
d = fh(b.a);
e = cl(this.j);
e[0] -= d.x;
e[1] -= d.y;
this.f = b.Fa(e);
this.a && (d = b.aa(), e = d.Ea(), b.render(), Pk(b, d, e + c, this.f))
}
function El(b) {
if (2 > this.j.length) {
b = b.map;
var c = b.aa();
Tf(c, - 1);
if (this.a) {
var d = c.Ea(),
e = this.f,
f = this.A,
d = c.constrainRotation(d, 0);
Pk(b, c, d, e, f)
}
return !1
}
return !0
}
function Cl(b) {
return 2 <= this.j.length ? (b = b.map, this.f = null, this.i = void 0, this.a = !1, this.l = 0, this.C || Tf(b.aa(), 1), b.render(), !0)  : !1
}
Bl.prototype.xc = te;
function Fl(b) {
al.call(this, {
handleDownEvent: Gl,
handleDragEvent: Hl,
handleUpEvent: Il
});
b = b ? b : {
};
this.f = null;
this.l = void 0 !== b.duration ? b.duration : 400;
this.a = void 0;
this.i = 1
}
y(Fl, al);
function Hl(b) {
var c = 1,
d = this.j[0],
e = this.j[1],
f = d.clientX - e.clientX,
d = d.clientY - e.clientY,
f = Math.sqrt(f * f + d * d);
void 0 !== this.a && (c = this.a / f);
this.a = f;
1 != c && (this.i = c);
b = b.map;
var f = b.aa(),
d = f.$(),
e = fh(b.a),
g = cl(this.j);
g[0] -= e.x;
g[1] -= e.y;
this.f = b.Fa(g);
b.render();
Rk(b, f, d * c, this.f)
}
function Il(b) {
if (2 > this.j.length) {
b = b.map;
var c = b.aa();
Tf(c, - 1);
var d = c.$(),
e = this.f,
f = this.l,
d = c.constrainResolution(d, 0, this.i - 1);
Rk(b, c, d, e, f);
return !1
}
return !0
}
function Gl(b) {
return 2 <= this.j.length ? (b = b.map, this.f = null, this.a = void 0, this.i = 1, this.C || Tf(b.aa(), 1), b.render(), !0)  : !1
}
Fl.prototype.xc = te;
function Jl(b) {
b = b ? b : {
};
var c = new og,
d = new Mk( - 0.005, 0.05, 100);
(void 0 !== b.altShiftDragRotate ? b.altShiftDragRotate : 1) && c.push(new hl);
(void 0 !== b.doubleClickZoom ? b.doubleClickZoom : 1) && c.push(new Sk({
delta: b.zoomDelta,
duration: b.zoomDuration
}));
(void 0 !== b.dragPan ? b.dragPan : 1) && c.push(new dl({
kinetic: d
}));
(void 0 !== b.pinchRotate ? b.pinchRotate : 1) && c.push(new Bl);
(void 0 !== b.pinchZoom ? b.pinchZoom : 1) && c.push(new Fl({
duration: b.zoomDuration
}));
if (void 0 !== b.keyboard ? b.keyboard : 1) c.push(new vl),
c.push(new xl({
delta: b.zoomDelta,
duration: b.zoomDuration
}));
(void 0 !== b.mouseWheelZoom ? b.mouseWheelZoom : 1) && c.push(new zl({
duration: b.zoomDuration
}));
(void 0 !== b.shiftDragZoom ? b.shiftDragZoom : 1) && c.push(new ul({
duration: b.zoomDuration
}));
return c
};
function Kl(b) {
var c = b || {
};
b = Ub(c);
delete b.layers;
c = c.layers;
ak.call(this, b);
this.b = [
];
this.a = {
};
C(this, kd('layers'), this.Fk, !1, this);
c ? ga(c) && (c = new og(c.slice()))  : c = new og;
this.gh(c)
}
y(Kl, ak);
l = Kl.prototype;
l.he = function () {
this.qb() && this.s()
};
l.Fk = function () {
this.b.forEach(Zc);
this.b.length = 0;
var b = this.Pc();
this.b.push(C(b, 'add', this.Ek, !1, this), C(b, 'remove', this.Gk, !1, this));
Ib(this.a, function (b) {
b.forEach(Zc)
});
Rb(this.a);
var b = b.a,
c,
d,
e;
c = 0;
for (d = b.length; c < d; c++) e = b[c],
this.a[w(e).toString()] = [
C(e, 'propertychange', this.he, !1, this),
C(e, 'change', this.he, !1, this)
];
this.s()
};
l.Ek = function (b) {
b = b.element;
var c = w(b).toString();
this.a[c] = [
C(b, 'propertychange', this.he, !1, this),
C(b, 'change', this.he, !1, this)
];
this.s()
};
l.Gk = function (b) {
b = w(b.element).toString();
this.a[b].forEach(Zc);
delete this.a[b];
this.s()
};
l.Pc = function () {
return this.get('layers')
};
l.gh = function (b) {
this.set('layers', b)
};
l.nf = function (b) {
var c = void 0 !== b ? b : [
],
d = c.length;
this.Pc().forEach(function (b) {
b.nf(c)
});
b = bk(this);
var e,
f;
for (e = c.length; d < e; d++) f = c[d],
f.opacity *= b.opacity,
f.visible = f.visible && b.visible,
f.maxResolution = Math.min(f.maxResolution, b.maxResolution),
f.minResolution = Math.max(f.minResolution, b.minResolution),
void 0 !== b.extent && (f.extent = void 0 !== f.extent ? oe(f.extent, b.extent)  : b.extent);
return c
};
l.of = function () {
return 'ready'
};
function Ll(b) {
De.call(this, {
code: b,
units: 'm',
extent: Ml,
global: !0,
worldExtent: Nl
})
}
y(Ll, De);
Ll.prototype.getPointResolution = function (b, c) {
return b / Ta(c[1] / 6378137)
};
var Ol = 6378137 * Math.PI,
Ml = [
- Ol,
- Ol,
Ol,
Ol
],
Nl = [
- 180,
- 85,
180,
85
],
Qe = 'EPSG:3857 EPSG:102100 EPSG:102113 EPSG:900913 urn:ogc:def:crs:EPSG:6.18:3:3857 urn:ogc:def:crs:EPSG::3857 http://www.opengis.net/gml/srs/epsg.xml#3857'.split(' ').map(function (b) {
return new Ll(b)
});
function Re(b, c, d) {
var e = b.length;
d = 1 < d ? d : 2;
void 0 === c && (2 < d ? c = b.slice()  : c = Array(e));
for (var f = 0; f < e; f += d) c[f] = 6378137 * Math.PI * b[f] / 180,
c[f + 1] = 6378137 * Math.log(Math.tan(Math.PI * (b[f + 1] + 90) / 360));
return c
}
function Se(b, c, d) {
var e = b.length;
d = 1 < d ? d : 2;
void 0 === c && (2 < d ? c = b.slice()  : c = Array(e));
for (var f = 0; f < e; f += d) c[f] = 180 * b[f] / (6378137 * Math.PI),
c[f + 1] = 360 * Math.atan(Math.exp(b[f + 1] / 6378137)) / Math.PI - 90;
return c
};
function Pl(b, c) {
De.call(this, {
code: b,
units: 'degrees',
extent: Ql,
axisOrientation: c,
global: !0,
worldExtent: Ql
})
}
y(Pl, De);
Pl.prototype.getPointResolution = function (b) {
return b
};
var Ql = [
- 180,
- 90,
180,
90
],
Te = [
new Pl('CRS:84'),
new Pl('EPSG:4326', 'neu'),
new Pl('urn:ogc:def:crs:EPSG::4326', 'neu'),
new Pl('urn:ogc:def:crs:EPSG:6.6:4326', 'neu'),
new Pl('urn:ogc:def:crs:OGC:1.3:CRS84'),
new Pl('urn:ogc:def:crs:OGC:2:84'),
new Pl('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),
new Pl('urn:x-ogc:def:crs:EPSG:4326', 'neu')
];
function Rl() {
Ge(Qe);
Ge(Te);
Pe()
};
function Sl(b) {
ek.call(this, b ? b : {
})
}
y(Sl, ek);
function F(b) {
b = b ? b : {
};
var c = Ub(b);
delete c.preload;
delete c.useInterimTilesOnError;
ek.call(this, c);
this.f(void 0 !== b.preload ? b.preload : 0);
this.g(void 0 !== b.useInterimTilesOnError ? b.useInterimTilesOnError : !0)
}
y(F, ek);
F.prototype.a = function () {
return this.get('preload')
};
F.prototype.f = function (b) {
this.set('preload', b)
};
F.prototype.b = function () {
return this.get('useInterimTilesOnError')
};
F.prototype.g = function (b) {
this.set('useInterimTilesOnError', b)
};
var Tl = [
0,
0,
0,
1
],
Ul = [
],
Vl = [
0,
0,
0,
1
];
function Wl(b) {
b = b || {
};
this.a = void 0 !== b.color ? b.color : null;
this.c = void 0
}
Wl.prototype.b = function () {
return this.a
};
Wl.prototype.f = function (b) {
this.a = b;
this.c = void 0
};
Wl.prototype.Ib = function () {
void 0 === this.c && (this.c = 'f' + (this.a ? vg(this.a)  : '-'));
return this.c
};
function Xl() {
this.c = - 1
};
function Yl() {
this.c = - 1;
this.c = 64;
this.a = Array(4);
this.g = Array(this.c);
this.f = this.b = 0;
this.reset()
}
y(Yl, Xl);
Yl.prototype.reset = function () {
this.a[0] = 1732584193;
this.a[1] = 4023233417;
this.a[2] = 2562383102;
this.a[3] = 271733878;
this.f = this.b = 0
};
function Zl(b, c, d) {
d || (d = 0);
var e = Array(16);
if (ia(c)) for (var f = 0; 16 > f; ++f) e[f] = c.charCodeAt(d++) | c.charCodeAt(d++) << 8 | c.charCodeAt(d++) << 16 | c.charCodeAt(d++) << 24;
 else for (f = 0; 16 > f; ++f) e[f] = c[d++] | c[d++] << 8 | c[d++] << 16 | c[d++] << 24;
c = b.a[0];
d = b.a[1];
var f = b.a[2],
g = b.a[3],
h = 0,
h = c + (g ^ d & (f ^ g)) + e[0] + 3614090360 & 4294967295;
c = d + (h << 7 & 4294967295 | h >>> 25);
h = g + (f ^ c & (d ^ f)) + e[1] + 3905402710 & 4294967295;
g = c + (h << 12 & 4294967295 | h >>> 20);
h = f + (d ^ g & (c ^ d)) + e[2] + 606105819 & 4294967295;
f = g + (h << 17 & 4294967295 | h >>> 15);
h = d + (c ^ f & (g ^
c)) + e[3] + 3250441966 & 4294967295;
d = f + (h << 22 & 4294967295 | h >>> 10);
h = c + (g ^ d & (f ^ g)) + e[4] + 4118548399 & 4294967295;
c = d + (h << 7 & 4294967295 | h >>> 25);
h = g + (f ^ c & (d ^ f)) + e[5] + 1200080426 & 4294967295;
g = c + (h << 12 & 4294967295 | h >>> 20);
h = f + (d ^ g & (c ^ d)) + e[6] + 2821735955 & 4294967295;
f = g + (h << 17 & 4294967295 | h >>> 15);
h = d + (c ^ f & (g ^ c)) + e[7] + 4249261313 & 4294967295;
d = f + (h << 22 & 4294967295 | h >>> 10);
h = c + (g ^ d & (f ^ g)) + e[8] + 1770035416 & 4294967295;
c = d + (h << 7 & 4294967295 | h >>> 25);
h = g + (f ^ c & (d ^ f)) + e[9] + 2336552879 & 4294967295;
g = c + (h << 12 & 4294967295 | h >>> 20);
h = f + (d ^ g & (c ^ d)) + e[10] + 4294925233 & 4294967295;
f = g + (h << 17 & 4294967295 | h >>> 15);
h = d + (c ^ f & (g ^ c)) + e[11] + 2304563134 & 4294967295;
d = f + (h << 22 & 4294967295 | h >>> 10);
h = c + (g ^ d & (f ^ g)) + e[12] + 1804603682 & 4294967295;
c = d + (h << 7 & 4294967295 | h >>> 25);
h = g + (f ^ c & (d ^ f)) + e[13] + 4254626195 & 4294967295;
g = c + (h << 12 & 4294967295 | h >>> 20);
h = f + (d ^ g & (c ^ d)) + e[14] + 2792965006 & 4294967295;
f = g + (h << 17 & 4294967295 | h >>> 15);
h = d + (c ^ f & (g ^ c)) + e[15] + 1236535329 & 4294967295;
d = f + (h << 22 & 4294967295 | h >>> 10);
h = c + (f ^ g & (d ^ f)) + e[1] + 4129170786 & 4294967295;
c = d + (h << 5 & 4294967295 |
h >>> 27);
h = g + (d ^ f & (c ^ d)) + e[6] + 3225465664 & 4294967295;
g = c + (h << 9 & 4294967295 | h >>> 23);
h = f + (c ^ d & (g ^ c)) + e[11] + 643717713 & 4294967295;
f = g + (h << 14 & 4294967295 | h >>> 18);
h = d + (g ^ c & (f ^ g)) + e[0] + 3921069994 & 4294967295;
d = f + (h << 20 & 4294967295 | h >>> 12);
h = c + (f ^ g & (d ^ f)) + e[5] + 3593408605 & 4294967295;
c = d + (h << 5 & 4294967295 | h >>> 27);
h = g + (d ^ f & (c ^ d)) + e[10] + 38016083 & 4294967295;
g = c + (h << 9 & 4294967295 | h >>> 23);
h = f + (c ^ d & (g ^ c)) + e[15] + 3634488961 & 4294967295;
f = g + (h << 14 & 4294967295 | h >>> 18);
h = d + (g ^ c & (f ^ g)) + e[4] + 3889429448 & 4294967295;
d = f + (h << 20 & 4294967295 |
h >>> 12);
h = c + (f ^ g & (d ^ f)) + e[9] + 568446438 & 4294967295;
c = d + (h << 5 & 4294967295 | h >>> 27);
h = g + (d ^ f & (c ^ d)) + e[14] + 3275163606 & 4294967295;
g = c + (h << 9 & 4294967295 | h >>> 23);
h = f + (c ^ d & (g ^ c)) + e[3] + 4107603335 & 4294967295;
f = g + (h << 14 & 4294967295 | h >>> 18);
h = d + (g ^ c & (f ^ g)) + e[8] + 1163531501 & 4294967295;
d = f + (h << 20 & 4294967295 | h >>> 12);
h = c + (f ^ g & (d ^ f)) + e[13] + 2850285829 & 4294967295;
c = d + (h << 5 & 4294967295 | h >>> 27);
h = g + (d ^ f & (c ^ d)) + e[2] + 4243563512 & 4294967295;
g = c + (h << 9 & 4294967295 | h >>> 23);
h = f + (c ^ d & (g ^ c)) + e[7] + 1735328473 & 4294967295;
f = g + (h << 14 & 4294967295 |
h >>> 18);
h = d + (g ^ c & (f ^ g)) + e[12] + 2368359562 & 4294967295;
d = f + (h << 20 & 4294967295 | h >>> 12);
h = c + (d ^ f ^ g) + e[5] + 4294588738 & 4294967295;
c = d + (h << 4 & 4294967295 | h >>> 28);
h = g + (c ^ d ^ f) + e[8] + 2272392833 & 4294967295;
g = c + (h << 11 & 4294967295 | h >>> 21);
h = f + (g ^ c ^ d) + e[11] + 1839030562 & 4294967295;
f = g + (h << 16 & 4294967295 | h >>> 16);
h = d + (f ^ g ^ c) + e[14] + 4259657740 & 4294967295;
d = f + (h << 23 & 4294967295 | h >>> 9);
h = c + (d ^ f ^ g) + e[1] + 2763975236 & 4294967295;
c = d + (h << 4 & 4294967295 | h >>> 28);
h = g + (c ^ d ^ f) + e[4] + 1272893353 & 4294967295;
g = c + (h << 11 & 4294967295 | h >>> 21);
h = f + (g ^
c ^ d) + e[7] + 4139469664 & 4294967295;
f = g + (h << 16 & 4294967295 | h >>> 16);
h = d + (f ^ g ^ c) + e[10] + 3200236656 & 4294967295;
d = f + (h << 23 & 4294967295 | h >>> 9);
h = c + (d ^ f ^ g) + e[13] + 681279174 & 4294967295;
c = d + (h << 4 & 4294967295 | h >>> 28);
h = g + (c ^ d ^ f) + e[0] + 3936430074 & 4294967295;
g = c + (h << 11 & 4294967295 | h >>> 21);
h = f + (g ^ c ^ d) + e[3] + 3572445317 & 4294967295;
f = g + (h << 16 & 4294967295 | h >>> 16);
h = d + (f ^ g ^ c) + e[6] + 76029189 & 4294967295;
d = f + (h << 23 & 4294967295 | h >>> 9);
h = c + (d ^ f ^ g) + e[9] + 3654602809 & 4294967295;
c = d + (h << 4 & 4294967295 | h >>> 28);
h = g + (c ^ d ^ f) + e[12] + 3873151461 & 4294967295;
g = c + (h << 11 & 4294967295 | h >>> 21);
h = f + (g ^ c ^ d) + e[15] + 530742520 & 4294967295;
f = g + (h << 16 & 4294967295 | h >>> 16);
h = d + (f ^ g ^ c) + e[2] + 3299628645 & 4294967295;
d = f + (h << 23 & 4294967295 | h >>> 9);
h = c + (f ^ (d | ~g)) + e[0] + 4096336452 & 4294967295;
c = d + (h << 6 & 4294967295 | h >>> 26);
h = g + (d ^ (c | ~f)) + e[7] + 1126891415 & 4294967295;
g = c + (h << 10 & 4294967295 | h >>> 22);
h = f + (c ^ (g | ~d)) + e[14] + 2878612391 & 4294967295;
f = g + (h << 15 & 4294967295 | h >>> 17);
h = d + (g ^ (f | ~c)) + e[5] + 4237533241 & 4294967295;
d = f + (h << 21 & 4294967295 | h >>> 11);
h = c + (f ^ (d | ~g)) + e[12] + 1700485571 & 4294967295;
c = d + (h << 6 & 4294967295 | h >>> 26);
h = g + (d ^ (c | ~f)) + e[3] + 2399980690 & 4294967295;
g = c + (h << 10 & 4294967295 | h >>> 22);
h = f + (c ^ (g | ~d)) + e[10] + 4293915773 & 4294967295;
f = g + (h << 15 & 4294967295 | h >>> 17);
h = d + (g ^ (f | ~c)) + e[1] + 2240044497 & 4294967295;
d = f + (h << 21 & 4294967295 | h >>> 11);
h = c + (f ^ (d | ~g)) + e[8] + 1873313359 & 4294967295;
c = d + (h << 6 & 4294967295 | h >>> 26);
h = g + (d ^ (c | ~f)) + e[15] + 4264355552 & 4294967295;
g = c + (h << 10 & 4294967295 | h >>> 22);
h = f + (c ^ (g | ~d)) + e[6] + 2734768916 & 4294967295;
f = g + (h << 15 & 4294967295 | h >>> 17);
h = d + (g ^ (f | ~c)) + e[13] + 1309151649 & 4294967295;
d = f + (h << 21 & 4294967295 | h >>> 11);
h = c + (f ^ (d | ~g)) + e[4] + 4149444226 & 4294967295;
c = d + (h << 6 & 4294967295 | h >>> 26);
h = g + (d ^ (c | ~f)) + e[11] + 3174756917 & 4294967295;
g = c + (h << 10 & 4294967295 | h >>> 22);
h = f + (c ^ (g | ~d)) + e[2] + 718787259 & 4294967295;
f = g + (h << 15 & 4294967295 | h >>> 17);
h = d + (g ^ (f | ~c)) + e[9] + 3951481745 & 4294967295;
b.a[0] = b.a[0] + c & 4294967295;
b.a[1] = b.a[1] + (f + (h << 21 & 4294967295 | h >>> 11)) & 4294967295;
b.a[2] = b.a[2] + f & 4294967295;
b.a[3] = b.a[3] + g & 4294967295
}
function $l(b, c) {
var d;
ca(d) || (d = c.length);
for (var e = d - b.c, f = b.g, g = b.b, h = 0; h < d; ) {
if (0 == g) for (; h <= e; ) Zl(b, c, h),
h += b.c;
if (ia(c)) for (; h < d; ) {
if (f[g++] = c.charCodeAt(h++), g == b.c) {
Zl(b, f);
g = 0;
break
}
} else for (; h < d; ) if (f[g++] = c[h++], g == b.c) {
Zl(b, f);
g = 0;
break
}
}
b.b = g;
b.f += d
};
function am(b) {
b = b || {
};
this.a = void 0 !== b.color ? b.color : null;
this.f = b.lineCap;
this.b = void 0 !== b.lineDash ? b.lineDash : null;
this.g = b.lineJoin;
this.j = b.miterLimit;
this.c = b.width;
this.i = void 0
}
l = am.prototype;
l.mn = function () {
return this.a
};
l.Qj = function () {
return this.f
};
l.nn = function () {
return this.b
};
l.Rj = function () {
return this.g
};
l.Wj = function () {
return this.j
};
l.pn = function () {
return this.c
};
l.qn = function (b) {
this.a = b;
this.i = void 0
};
l.Oo = function (b) {
this.f = b;
this.i = void 0
};
l.rn = function (b) {
this.b = b;
this.i = void 0
};
l.Po = function (b) {
this.g = b;
this.i = void 0
};
l.Qo = function (b) {
this.j = b;
this.i = void 0
};
l.Uo = function (b) {
this.c = b;
this.i = void 0
};
l.Ib = function () {
if (void 0 === this.i) {
var b = 's' + (this.a ? vg(this.a)  : '-') + ',' + (void 0 !== this.f ? this.f.toString()  : '-') + ',' + (this.b ? this.b.toString()  : '-') + ',' + (void 0 !== this.g ? this.g : '-') + ',' + (void 0 !== this.j ? this.j.toString()  : '-') + ',' + (void 0 !== this.c ? this.c.toString()  : '-'),
c = new Yl;
$l(c, b);
b = Array((56 > c.b ? c.c : 2 * c.c) - c.b);
b[0] = 128;
for (var d = 1; d < b.length - 8; ++d) b[d] = 0;
for (var e = 8 * c.f, d = b.length - 8; d < b.length; ++d) b[d] = e & 255,
e /= 256;
$l(c, b);
b = Array(16);
for (d = e = 0; 4 > d; ++d) for (var f = 0; 32 > f; f += 8) b[e++] = c.a[d] >>>
f & 255;
if (8192 >= b.length) c = String.fromCharCode.apply(null, b);
 else for (c = '', d = 0; d < b.length; d += 8192) e = nb(b, d, d + 8192),
c += String.fromCharCode.apply(null, e);
this.i = c
}
return this.i
};
function bm(b) {
b = b || {
};
this.j = this.a = this.g = null;
this.f = void 0 !== b.fill ? b.fill : null;
this.c = void 0 !== b.stroke ? b.stroke : null;
this.b = b.radius;
this.C = [
0,
0
];
this.B = this.ia = this.l = null;
var c = b.atlasManager,
d,
e = null,
f,
g = 0;
this.c && (f = vg(this.c.a), g = this.c.c, void 0 === g && (g = 1), e = this.c.b, Yi || (e = null));
var h = 2 * (this.b + g) + 1;
f = {
strokeStyle: f,
Hd: g,
size: h,
lineDash: e
};
void 0 === c ? (this.a = Kg('CANVAS'), this.a.height = h, this.a.width = h, d = h = this.a.width, c = this.a.getContext('2d'), this.sh(f, c, 0, 0), this.f ? this.j = this.a : (c =
this.j = Kg('CANVAS'), c.height = f.size, c.width = f.size, c = c.getContext('2d'), this.rh(f, c, 0, 0)))  : (h = Math.round(h), (e = !this.f) && (d = ra(this.rh, this, f)), g = this.Ib(), f = c.add(g, h, h, ra(this.sh, this, f), d), this.a = f.image, this.C = [
f.offsetX,
f.offsetY
], d = f.image.width, this.j = e ? f.Mg : this.a);
this.l = [
h / 2,
h / 2
];
this.ia = [
h,
h
];
this.B = [
d,
d
];
vk.call(this, {
opacity: 1,
rotateWithView: !1,
rotation: 0,
scale: 1,
snapToPixel: void 0 !== b.snapToPixel ? b.snapToPixel : !0
})
}
y(bm, vk);
l = bm.prototype;
l.Xb = function () {
return this.l
};
l.cn = function () {
return this.f
};
l.ze = function () {
return this.j
};
l.fc = function () {
return this.a
};
l.Bd = function () {
return 2
};
l.qd = function () {
return this.B
};
l.Ca = function () {
return this.C
};
l.dn = function () {
return this.b
};
l.Bb = function () {
return this.ia
};
l.en = function () {
return this.c
};
l.sf = wa;
l.load = wa;
l.Wf = wa;
l.sh = function (b, c, d, e) {
c.setTransform(1, 0, 0, 1, 0, 0);
c.translate(d, e);
c.beginPath();
c.arc(b.size / 2, b.size / 2, this.b, 0, 2 * Math.PI, !0);
this.f && (c.fillStyle = vg(this.f.a), c.fill());
this.c && (c.strokeStyle = b.strokeStyle, c.lineWidth = b.Hd, b.lineDash && c.setLineDash(b.lineDash), c.stroke());
c.closePath()
};
l.rh = function (b, c, d, e) {
c.setTransform(1, 0, 0, 1, 0, 0);
c.translate(d, e);
c.beginPath();
c.arc(b.size / 2, b.size / 2, this.b, 0, 2 * Math.PI, !0);
c.fillStyle = vg(Tl);
c.fill();
this.c && (c.strokeStyle = b.strokeStyle, c.lineWidth = b.Hd, b.lineDash && c.setLineDash(b.lineDash), c.stroke());
c.closePath()
};
l.Ib = function () {
var b = this.c ? this.c.Ib()  : '-',
c = this.f ? this.f.Ib()  : '-';
this.g && b == this.g[1] && c == this.g[2] && this.b == this.g[3] || (this.g = [
'c' + b + c + (void 0 !== this.b ? this.b.toString()  : '-'),
b,
c,
this.b
]);
return this.g[0]
};
function cm(b) {
b = b || {
};
this.i = null;
this.g = dm;
void 0 !== b.geometry && this.vh(b.geometry);
this.j = void 0 !== b.fill ? b.fill : null;
this.b = void 0 !== b.image ? b.image : null;
this.f = void 0 !== b.stroke ? b.stroke : null;
this.c = void 0 !== b.text ? b.text : null;
this.a = b.zIndex
}
l = cm.prototype;
l.W = function () {
return this.i
};
l.Lj = function () {
return this.g
};
l.sn = function () {
return this.j
};
l.tn = function () {
return this.b
};
l.vn = function () {
return this.f
};
l.wn = function () {
return this.c
};
l.xn = function () {
return this.a
};
l.vh = function (b) {
ka(b) ? this.g = b : ia(b) ? this.g = function (c) {
return c.get(b)
}
 : b ? void 0 !== b && (this.g = function () {
return b
})  : this.g = dm;
this.i = b
};
l.yn = function (b) {
this.a = b
};
function em(b) {
if (!ka(b)) {
var c;
c = ga(b) ? b : [
b
];
b = function () {
return c
}
}
return b
}
var fm = null;
function gm() {
if (!fm) {
var b = new Wl({
color: 'rgba(255,255,255,0.4)'
}),
c = new am({
color: '#3399CC',
width: 1.25
});
fm = [
new cm({
image: new bm({
fill: b,
stroke: c,
radius: 5
}),
fill: b,
stroke: c
})
]
}
return fm
}
function hm() {
var b = {
},
c = [
255,
255,
255,
1
],
d = [
0,
153,
255,
1
];
b.Polygon = [
new cm({
fill: new Wl({
color: [
255,
255,
255,
0.5
]
})
})
];
b.MultiPolygon = b.Polygon;
b.LineString = [
new cm({
stroke: new am({
color: c,
width: 5
})
}),
new cm({
stroke: new am({
color: d,
width: 3
})
})
];
b.MultiLineString = b.LineString;
b.Circle = b.Polygon.concat(b.LineString);
b.Point = [
new cm({
image: new bm({
radius: 6,
fill: new Wl({
color: d
}),
stroke: new am({
color: c,
width: 1.5
})
}),
zIndex: Infinity
})
];
b.MultiPoint = b.Point;
b.GeometryCollection = b.Polygon.concat(b.LineString, b.Point);
return b
}
function dm(b) {
return b.W()
};
function H(b) {
b = b ? b : {
};
var c = Ub(b);
delete c.style;
delete c.renderBuffer;
delete c.updateWhileAnimating;
delete c.updateWhileInteracting;
ek.call(this, c);
this.a = void 0 !== b.renderBuffer ? b.renderBuffer : 100;
this.C = null;
this.b = void 0;
this.f(b.style);
this.i = void 0 !== b.updateWhileAnimating ? b.updateWhileAnimating : !1;
this.l = void 0 !== b.updateWhileInteracting ? b.updateWhileInteracting : !1
}
y(H, ek);
function im(b) {
return b.get('renderOrder')
}
H.prototype.D = function () {
return this.C
};
H.prototype.G = function () {
return this.b
};
H.prototype.f = function (b) {
this.C = void 0 !== b ? b : gm;
this.b = null === b ? void 0 : em(this.C);
this.s()
};
function J(b) {
b = b ? b : {
};
var c = Ub(b);
delete c.preload;
delete c.useInterimTilesOnError;
H.call(this, c);
this.T(b.preload ? b.preload : 0);
this.Z(b.useInterimTilesOnError ? b.useInterimTilesOnError : !0)
}
y(J, H);
J.prototype.g = function () {
return this.get('preload')
};
J.prototype.U = function () {
return this.get('useInterimTilesOnError')
};
J.prototype.T = function (b) {
this.set('preload', b)
};
J.prototype.Z = function (b) {
this.set('useInterimTilesOnError', b)
};
function jm(b, c, d, e, f) {
this.C = {
};
this.b = b;
this.G = c;
this.g = d;
this.oa = e;
this.Xc = f;
this.j = this.a = this.c = this.va = this.eb = this.ga = null;
this.xa = this.pa = this.A = this.T = this.U = this.S = 0;
this.fb = !1;
this.i = this.Cb = 0;
this.Db = !1;
this.Z = 0;
this.f = '';
this.B = this.ia = this.Ac = this.Nd = 0;
this.ea = this.u = this.l = null;
this.D = [
];
this.Bc = Dd()
}
function km(b, c, d) {
if (b.j) {
c = cf(c, 0, d, 2, b.oa, b.D);
d = b.b;
var e = b.Bc,
f = d.globalAlpha;
1 != b.A && (d.globalAlpha = f * b.A);
var g = b.Cb;
b.fb && (g += b.Xc);
var h,
k;
h = 0;
for (k = c.length; h < k; h += 2) {
var m = c[h] - b.S,
n = c[h + 1] - b.U;
b.Db && (m = m + 0.5 | 0, n = n + 0.5 | 0);
if (0 !== g || 1 != b.i) {
var p = m + b.S,
q = n + b.U;
ik(e, p, q, b.i, b.i, g, - p, - q);
d.setTransform(e[0], e[1], e[4], e[5], e[12], e[13])
}
d.drawImage(b.j, b.pa, b.xa, b.Z, b.T, m, n, b.Z, b.T)
}
0 === g && 1 == b.i || d.setTransform(1, 0, 0, 1, 0, 0);
1 != b.A && (d.globalAlpha = f)
}
}
function lm(b, c, d, e) {
var f = 0;
if (b.ea && '' !== b.f) {
b.l && mm(b, b.l);
b.u && nm(b, b.u);
var g = b.ea,
h = b.b,
k = b.va;
k ? (k.font != g.font && (k.font = h.font = g.font), k.textAlign != g.textAlign && (k.textAlign = h.textAlign = g.textAlign), k.textBaseline != g.textBaseline && (k.textBaseline = h.textBaseline = g.textBaseline))  : (h.font = g.font, h.textAlign = g.textAlign, h.textBaseline = g.textBaseline, b.va = {
font: g.font,
textAlign: g.textAlign,
textBaseline: g.textBaseline
});
c = cf(c, f, d, e, b.oa, b.D);
for (g = b.b; f < d; f += e) {
h = c[f] + b.Nd;
k = c[f + 1] + b.Ac;
if (0 !==
b.ia || 1 != b.B) {
var m = ik(b.Bc, h, k, b.B, b.B, b.ia, - h, - k);
g.setTransform(m[0], m[1], m[4], m[5], m[12], m[13])
}
b.u && g.strokeText(b.f, h, k);
b.l && g.fillText(b.f, h, k)
}
0 === b.ia && 1 == b.B || g.setTransform(1, 0, 0, 1, 0, 0)
}
}
function om(b, c, d, e, f, g) {
var h = b.b;
b = cf(c, d, e, f, b.oa, b.D);
h.moveTo(b[0], b[1]);
for (c = 2; c < b.length; c += 2) h.lineTo(b[c], b[c + 1]);
g && h.lineTo(b[0], b[1]);
return e
}
function qm(b, c, d, e, f) {
var g = b.b,
h,
k;
h = 0;
for (k = e.length; h < k; ++h) d = om(b, c, d, e[h], f, !0),
g.closePath();
return d
}
l = jm.prototype;
l.ld = function (b, c) {
var d = b.toString(),
e = this.C[d];
void 0 !== e ? e.push(c)  : this.C[d] = [
c
]
};
l.Fc = function (b) {
if (pe(this.g, b.J())) {
if (this.c || this.a) {
this.c && mm(this, this.c);
this.a && nm(this, this.a);
var c;
c = this.oa;
var d = this.D,
e = b.ja();
if (e) {
var f = b.ra();
c = cf(e, 0, e.length, f, c, d)
} else c = null;
d = c[2] - c[0];
e = c[3] - c[1];
d = Math.sqrt(d * d + e * e);
e = this.b;
e.beginPath();
e.arc(c[0], c[1], d, 0, 2 * Math.PI);
this.c && e.fill();
this.a && e.stroke()
}
'' !== this.f && lm(this, b.vd(), 2, 2)
}
};
l.hf = function (b, c) {
var d = (0, c.g) (b);
if (d && pe(this.g, d.J())) {
var e = c.a;
void 0 === e && (e = 0);
this.ld(e, function (b) {
b.$a(c.j, c.f);
b.vb(c.b);
b.ab(c.c);
rm[d.V()].call(b, d, null)
})
}
};
l.Xd = function (b, c) {
var d = b.f,
e,
f;
e = 0;
for (f = d.length; e < f; ++e) {
var g = d[e];
rm[g.V()].call(this, g, c)
}
};
l.Gb = function (b) {
var c = b.ja();
b = b.ra();
this.j && km(this, c, c.length);
'' !== this.f && lm(this, c, c.length, b)
};
l.Fb = function (b) {
var c = b.ja();
b = b.ra();
this.j && km(this, c, c.length);
'' !== this.f && lm(this, c, c.length, b)
};
l.Wb = function (b) {
if (pe(this.g, b.J())) {
if (this.a) {
nm(this, this.a);
var c = this.b,
d = b.ja();
c.beginPath();
om(this, d, 0, d.length, b.ra(), !1);
c.stroke()
}
'' !== this.f && (b = sm(b), lm(this, b, 2, 2))
}
};
l.Gc = function (b) {
var c = b.J();
if (pe(this.g, c)) {
if (this.a) {
nm(this, this.a);
var c = this.b,
d = b.ja(),
e = 0,
f = b.Ab(),
g = b.ra();
c.beginPath();
var h,
k;
h = 0;
for (k = f.length; h < k; ++h) e = om(this, d, e, f[h], g, !1);
c.stroke()
}
'' !== this.f && (b = tm(b), lm(this, b, b.length, 2))
}
};
l.Ic = function (b) {
if (pe(this.g, b.J())) {
if (this.a || this.c) {
this.c && mm(this, this.c);
this.a && nm(this, this.a);
var c = this.b;
c.beginPath();
qm(this, b.ac(), 0, b.Ab(), b.ra());
this.c && c.fill();
this.a && c.stroke()
}
'' !== this.f && (b = Jf(b), lm(this, b, 2, 2))
}
};
l.Hc = function (b) {
if (pe(this.g, b.J())) {
if (this.a || this.c) {
this.c && mm(this, this.c);
this.a && nm(this, this.a);
var c = this.b,
d = um(b),
e = 0,
f = b.g,
g = b.ra(),
h,
k;
h = 0;
for (k = f.length; h < k; ++h) {
var m = f[h];
c.beginPath();
e = qm(this, d, e, m, g);
this.c && c.fill();
this.a && c.stroke()
}
}
'' !== this.f && (b = vm(b), lm(this, b, b.length, 2))
}
};
function wm(b) {
var c = Object.keys(b.C).map(Number);
ob(c);
var d,
e,
f,
g,
h;
d = 0;
for (e = c.length; d < e; ++d) for (f = b.C[c[d].toString()], g = 0, h = f.length; g < h; ++g) f[g](b)
}
function mm(b, c) {
var d = b.b,
e = b.ga;
e ? e.fillStyle != c.fillStyle && (e.fillStyle = d.fillStyle = c.fillStyle)  : (d.fillStyle = c.fillStyle, b.ga = {
fillStyle: c.fillStyle
})
}
function nm(b, c) {
var d = b.b,
e = b.eb;
e ? (e.lineCap != c.lineCap && (e.lineCap = d.lineCap = c.lineCap), Yi && !sb(e.lineDash, c.lineDash) && d.setLineDash(e.lineDash = c.lineDash), e.lineJoin != c.lineJoin && (e.lineJoin = d.lineJoin = c.lineJoin), e.lineWidth != c.lineWidth && (e.lineWidth = d.lineWidth = c.lineWidth), e.miterLimit != c.miterLimit && (e.miterLimit = d.miterLimit = c.miterLimit), e.strokeStyle != c.strokeStyle && (e.strokeStyle = d.strokeStyle = c.strokeStyle))  : (d.lineCap = c.lineCap, Yi && d.setLineDash(c.lineDash), d.lineJoin = c.lineJoin, d.lineWidth =
c.lineWidth, d.miterLimit = c.miterLimit, d.strokeStyle = c.strokeStyle, b.eb = {
lineCap: c.lineCap,
lineDash: c.lineDash,
lineJoin: c.lineJoin,
lineWidth: c.lineWidth,
miterLimit: c.miterLimit,
strokeStyle: c.strokeStyle
})
}
l.$a = function (b, c) {
if (b) {
var d = b.a;
this.c = {
fillStyle: vg(d ? d : Tl)
}
} else this.c = null;
if (c) {
var d = c.a,
e = c.f,
f = c.b,
g = c.g,
h = c.c,
k = c.j;
this.a = {
lineCap: void 0 !== e ? e : 'round',
lineDash: f ? f : Ul,
lineJoin: void 0 !== g ? g : 'round',
lineWidth: this.G * (void 0 !== h ? h : 1),
miterLimit: void 0 !== k ? k : 10,
strokeStyle: vg(d ? d : Vl)
}
} else this.a = null
};
l.vb = function (b) {
if (b) {
var c = b.Xb(),
d = b.fc(1),
e = b.Ca(),
f = b.Bb();
this.S = c[0];
this.U = c[1];
this.T = f[1];
this.j = d;
this.A = b.A;
this.pa = e[0];
this.xa = e[1];
this.fb = b.D;
this.Cb = b.u;
this.i = b.i;
this.Db = b.G;
this.Z = f[0]
} else this.j = null
};
l.ab = function (b) {
if (b) {
var c = b.a;
c ? (c = c.a, this.l = {
fillStyle: vg(c ? c : Tl)
})  : this.l = null;
var d = b.l;
if (d) {
var c = d.a,
e = d.f,
f = d.b,
g = d.g,
h = d.c,
d = d.j;
this.u = {
lineCap: void 0 !== e ? e : 'round',
lineDash: f ? f : Ul,
lineJoin: void 0 !== g ? g : 'round',
lineWidth: void 0 !== h ? h : 1,
miterLimit: void 0 !== d ? d : 10,
strokeStyle: vg(c ? c : Vl)
}
} else this.u = null;
var c = b.f,
e = b.g,
f = b.j,
g = b.i,
h = b.c,
d = b.b,
k = b.B;
b = b.u;
this.ea = {
font: void 0 !== c ? c : '10px sans-serif',
textAlign: void 0 !== k ? k : 'center',
textBaseline: void 0 !== b ? b : 'middle'
};
this.f = void 0 !== d ? d :
'';
this.Nd = void 0 !== e ? this.G * e : 0;
this.Ac = void 0 !== f ? this.G * f : 0;
this.ia = void 0 !== g ? g : 0;
this.B = this.G * (void 0 !== h ? h : 1)
} else this.f = ''
};
var rm = {
Point: jm.prototype.Gb,
LineString: jm.prototype.Wb,
Polygon: jm.prototype.Ic,
MultiPoint: jm.prototype.Fb,
MultiLineString: jm.prototype.Gc,
MultiPolygon: jm.prototype.Hc,
GeometryCollection: jm.prototype.Xd,
Circle: jm.prototype.Fc
};
function xm(b) {
lk.call(this, b);
this.S = Dd()
}
y(xm, lk);
xm.prototype.u = function (b, c, d) {
ym(this, 'precompose', d, b, void 0);
var e = this.yd();
if (e) {
var f = c.extent,
g = void 0 !== f;
if (g) {
var h = b.pixelRatio,
k = he(f),
m = ge(f),
n = fe(f),
f = ee(f);
kk(b.coordinateToPixelMatrix, k, k);
kk(b.coordinateToPixelMatrix, m, m);
kk(b.coordinateToPixelMatrix, n, n);
kk(b.coordinateToPixelMatrix, f, f);
d.save();
d.beginPath();
d.moveTo(k[0] * h, k[1] * h);
d.lineTo(m[0] * h, m[1] * h);
d.lineTo(n[0] * h, n[1] * h);
d.lineTo(f[0] * h, f[1] * h);
d.clip()
}
h = this.mf();
k = d.globalAlpha;
d.globalAlpha = c.opacity;
0 === b.viewState.rotation ?
d.drawImage(e, 0, 0, + e.width, + e.height, Math.round(h[12]), Math.round(h[13]), Math.round(e.width * h[0]), Math.round(e.height * h[5]))  : (d.setTransform(h[0], h[1], h[4], h[5], h[12], h[13]), d.drawImage(e, 0, 0), d.setTransform(1, 0, 0, 1, 0, 0));
d.globalAlpha = k;
g && d.restore()
}
ym(this, 'postcompose', d, b, void 0)
};
function ym(b, c, d, e, f) {
var g = b.a;
ed(g, c) && (b = void 0 !== f ? f : zm(b, e, 0), b = new jm(d, e.pixelRatio, e.extent, b, e.viewState.rotation), g.o(new dk(c, g, b, e, d, null)), wm(b))
}
function zm(b, c, d) {
var e = c.viewState,
f = c.pixelRatio;
return ik(b.S, f * c.size[0] / 2, f * c.size[1] / 2, f / e.resolution, - f / e.resolution, - e.rotation, - e.center[0] + d, - e.center[1])
}
function Am(b, c) {
var d = [
0,
0
];
kk(c, b, d);
return d
}
var Bm = function () {
var b = null,
c = null;
return function (d) {
if (!b) {
b = Pi(1, 1);
c = b.createImageData(1, 1);
var e = c.data;
e[0] = 42;
e[1] = 84;
e[2] = 126;
e[3] = 255
}
var e = b.canvas,
f = d[0] <= e.width && d[1] <= e.height;
f || (e.width = d[0], e.height = d[1], e = d[0] - 1, d = d[1] - 1, b.putImageData(c, e, d), d = b.getImageData(e, d, 1, 1), f = sb(c.data, d.data));
return f
}
}();
var Cm = [
'Polygon',
'LineString',
'Image',
'Text'
];
function Dm(b, c, d) {
this.va = b;
this.Z = c;
this.f = null;
this.g = 0;
this.resolution = d;
this.U = this.S = null;
this.c = [
];
this.coordinates = [
];
this.ga = Dd();
this.a = [
];
this.ea = [
];
this.eb = Dd()
}
y(Dm, ck);
function Em(b, c, d, e, f, g) {
var h = b.coordinates.length,
k = b.kf(),
m = [
c[d],
c[d + 1]
],
n = [
NaN,
NaN
],
p = !0,
q,
r,
t;
for (q = d + f; q < e; q += f) n[0] = c[q],
n[1] = c[q + 1],
t = Yd(k, n),
t !== r ? (p && (b.coordinates[h++] = m[0], b.coordinates[h++] = m[1]), b.coordinates[h++] = n[0], b.coordinates[h++] = n[1], p = !1)  : 1 === t ? (b.coordinates[h++] = n[0], b.coordinates[h++] = n[1], p = !1)  : p = !0,
m[0] = n[0],
m[1] = n[1],
r = t;
q === d + f && (b.coordinates[h++] = m[0], b.coordinates[h++] = m[1]);
g && (b.coordinates[h++] = c[d], b.coordinates[h++] = c[d + 1]);
return h
}
function Fm(b, c) {
b.S = [
0,
c,
0
];
b.c.push(b.S);
b.U = [
0,
c,
0
];
b.a.push(b.U)
}
function Gm(b, c, d, e, f, g, h, k, m) {
var n;
jk(e, b.ga) ? n = b.ea : (n = cf(b.coordinates, 0, b.coordinates.length, 2, e, b.ea), Gd(b.ga, e));
e = !Qb(g);
var p = 0,
q = h.length,
r = 0,
t;
b = b.eb;
for (var x, z, B, A; p < q; ) {
var v = h[p],
O,
K,
I,
G;
switch (v[0]) {
case 0:
r = v[1];
e && g[w(r).toString()] || !r.W() ? p = v[2] : void 0 === m || pe(m, r.W().J()) ? ++p : p = v[2];
break;
case 1:
c.beginPath();
++p;
break;
case 2:
r = v[1];
t = n[r];
v = n[r + 1];
G = n[r + 2] - t;
r = n[r + 3] - v;
c.arc(t, v, Math.sqrt(G * G + r * r), 0, 2 * Math.PI, !0);
++p;
break;
case 3:
c.closePath();
++p;
break;
case 4:
r = v[1];
t = v[2];
O = v[3];
I = v[4] * d;
var la = v[5] * d,
Ea = v[6];
K = v[7];
var L = v[8],
za = v[9];
B = v[11];
A = v[12];
var Ra = v[13],
Ka = v[14];
for (v[10] && (B += f); r < t; r += 2) {
v = n[r] - I;
G = n[r + 1] - la;
Ra && (v = v + 0.5 | 0, G = G + 0.5 | 0);
if (1 != A || 0 !== B) {
var kb = v + I,
cb = G + la;
ik(b, kb, cb, A, A, B, - kb, - cb);
c.setTransform(b[0], b[1], b[4], b[5], b[12], b[13])
}
kb = c.globalAlpha;
1 != K && (c.globalAlpha = kb * K);
c.drawImage(O, L, za, Ka, Ea, v, G, Ka * d, Ea * d);
1 != K && (c.globalAlpha = kb);
1 == A && 0 === B || c.setTransform(1, 0, 0, 1, 0, 0)
}
++p;
break;
case 5:
r = v[1];
t = v[2];
I = v[3];
la = v[4] * d;
Ea = v[5] * d;
B = v[6];
A =
v[7] * d;
O = v[8];
for (K = v[9]; r < t; r += 2) {
v = n[r] + la;
G = n[r + 1] + Ea;
if (1 != A || 0 !== B) ik(b, v, G, A, A, B, - v, - G),
c.setTransform(b[0], b[1], b[4], b[5], b[12], b[13]);
K && c.strokeText(I, v, G);
O && c.fillText(I, v, G);
1 == A && 0 === B || c.setTransform(1, 0, 0, 1, 0, 0)
}
++p;
break;
case 6:
if (void 0 !== k && (r = v[1], r = k(r))) return r;
++p;
break;
case 7:
c.fill();
++p;
break;
case 8:
r = v[1];
t = v[2];
v = n[r];
G = n[r + 1];
B = v + 0.5 | 0;
A = G + 0.5 | 0;
if (B !== x || A !== z) c.moveTo(v, G),
x = B,
z = A;
for (r += 2; r < t; r += 2) if (v = n[r], G = n[r + 1], B = v + 0.5 | 0, A = G + 0.5 | 0, B !== x || A !== z) c.lineTo(v, G),
x = B,
z =
A;
++p;
break;
case 9:
c.fillStyle = v[1];
++p;
break;
case 10:
x = void 0 !== v[7] ? v[7] : !0;
z = v[2];
c.strokeStyle = v[1];
c.lineWidth = x ? z * d : z;
c.lineCap = v[3];
c.lineJoin = v[4];
c.miterLimit = v[5];
Yi && c.setLineDash(v[6]);
z = x = NaN;
++p;
break;
case 11:
c.font = v[1];
c.textAlign = v[2];
c.textBaseline = v[3];
++p;
break;
case 12:
c.stroke();
++p;
break;
default:
++p
}
}
}
function Hm(b) {
var c = b.a;
c.reverse();
var d,
e = c.length,
f,
g,
h = - 1;
for (d = 0; d < e; ++d) if (f = c[d], g = f[0], 6 == g) h = d;
 else if (0 == g) {
f[2] = d;
f = b.a;
for (g = d; h < g; ) {
var k = f[h];
f[h] = f[g];
f[g] = k;
++h;
--g
}
h = - 1
}
}
function Im(b, c) {
b.S[2] = b.c.length;
b.S = null;
b.U[2] = b.a.length;
b.U = null;
var d = [
6,
c
];
b.c.push(d);
b.a.push(d)
}
Dm.prototype.ve = wa;
Dm.prototype.kf = function () {
return this.Z
};
function Jm(b, c, d) {
Dm.call(this, b, c, d);
this.l = this.T = null;
this.oa = this.ia = this.G = this.D = this.C = this.A = this.u = this.B = this.i = this.j = this.b = void 0
}
y(Jm, Dm);
Jm.prototype.Gb = function (b, c) {
if (this.l) {
Fm(this, c);
var d = b.ja(),
e = b.ra(),
f = this.coordinates.length,
d = Em(this, d, 0, d.length, e, !1);
this.c.push([4,
f,
d,
this.l,
this.b,
this.j,
this.i,
this.B,
this.u,
this.A,
this.C,
this.D,
this.G,
this.ia,
this.oa]);
this.a.push([4,
f,
d,
this.T,
this.b,
this.j,
this.i,
this.B,
this.u,
this.A,
this.C,
this.D,
this.G,
this.ia,
this.oa]);
Im(this, c)
}
};
Jm.prototype.Fb = function (b, c) {
if (this.l) {
Fm(this, c);
var d = b.ja(),
e = b.ra(),
f = this.coordinates.length,
d = Em(this, d, 0, d.length, e, !1);
this.c.push([4,
f,
d,
this.l,
this.b,
this.j,
this.i,
this.B,
this.u,
this.A,
this.C,
this.D,
this.G,
this.ia,
this.oa]);
this.a.push([4,
f,
d,
this.T,
this.b,
this.j,
this.i,
this.B,
this.u,
this.A,
this.C,
this.D,
this.G,
this.ia,
this.oa]);
Im(this, c)
}
};
Jm.prototype.ve = function () {
Hm(this);
this.j = this.b = void 0;
this.l = this.T = null;
this.oa = this.ia = this.D = this.C = this.A = this.u = this.B = this.G = this.i = void 0
};
Jm.prototype.vb = function (b) {
var c = b.Xb(),
d = b.Bb(),
e = b.ze(1),
f = b.fc(1),
g = b.Ca();
this.b = c[0];
this.j = c[1];
this.T = e;
this.l = f;
this.i = d[1];
this.B = b.A;
this.u = g[0];
this.A = g[1];
this.C = b.D;
this.D = b.u;
this.G = b.i;
this.ia = b.G;
this.oa = d[0]
};
function Km(b, c, d) {
Dm.call(this, b, c, d);
this.b = {
hd: void 0,
cd: void 0,
dd: null,
ed: void 0,
fd: void 0,
gd: void 0,
rf: 0,
strokeStyle: void 0,
lineCap: void 0,
lineDash: null,
lineJoin: void 0,
lineWidth: void 0,
miterLimit: void 0
}
}
y(Km, Dm);
function Lm(b, c, d, e, f) {
var g = b.coordinates.length;
c = Em(b, c, d, e, f, !1);
g = [
8,
g,
c
];
b.c.push(g);
b.a.push(g);
return e
}
l = Km.prototype;
l.kf = function () {
this.f || (this.f = Td(this.Z), 0 < this.g && Sd(this.f, this.resolution * (this.g + 1) / 2, this.f));
return this.f
};
function Mm(b) {
var c = b.b,
d = c.strokeStyle,
e = c.lineCap,
f = c.lineDash,
g = c.lineJoin,
h = c.lineWidth,
k = c.miterLimit;
c.hd == d && c.cd == e && sb(c.dd, f) && c.ed == g && c.fd == h && c.gd == k || (c.rf != b.coordinates.length && (b.c.push([12]), c.rf = b.coordinates.length), b.c.push([10,
d,
h,
e,
g,
k,
f], [
1
]), c.hd = d, c.cd = e, c.dd = f, c.ed = g, c.fd = h, c.gd = k)
}
l.Wb = function (b, c) {
var d = this.b,
e = d.lineWidth;
void 0 !== d.strokeStyle && void 0 !== e && (Mm(this), Fm(this, c), this.a.push([10,
d.strokeStyle,
d.lineWidth,
d.lineCap,
d.lineJoin,
d.miterLimit,
d.lineDash], [
1
]), d = b.ja(), e = b.ra(), Lm(this, d, 0, d.length, e), this.a.push([12]), Im(this, c))
};
l.Gc = function (b, c) {
var d = this.b,
e = d.lineWidth;
if (void 0 !== d.strokeStyle && void 0 !== e) {
Mm(this);
Fm(this, c);
this.a.push([10,
d.strokeStyle,
d.lineWidth,
d.lineCap,
d.lineJoin,
d.miterLimit,
d.lineDash], [
1
]);
var d = b.Ab(),
e = b.ja(),
f = b.ra(),
g = 0,
h,
k;
h = 0;
for (k = d.length; h < k; ++h) g = Lm(this, e, g, d[h], f);
this.a.push([12]);
Im(this, c)
}
};
l.ve = function () {
this.b.rf != this.coordinates.length && this.c.push([12]);
Hm(this);
this.b = null
};
l.$a = function (b, c) {
var d = c.a;
this.b.strokeStyle = vg(d ? d : Vl);
d = c.f;
this.b.lineCap = void 0 !== d ? d : 'round';
d = c.b;
this.b.lineDash = d ? d : Ul;
d = c.g;
this.b.lineJoin = void 0 !== d ? d : 'round';
d = c.c;
this.b.lineWidth = void 0 !== d ? d : 1;
d = c.j;
this.b.miterLimit = void 0 !== d ? d : 10;
this.b.lineWidth > this.g && (this.g = this.b.lineWidth, this.f = null)
};
function Nm(b, c, d) {
Dm.call(this, b, c, d);
this.b = {
pg: void 0,
hd: void 0,
cd: void 0,
dd: null,
ed: void 0,
fd: void 0,
gd: void 0,
fillStyle: void 0,
strokeStyle: void 0,
lineCap: void 0,
lineDash: null,
lineJoin: void 0,
lineWidth: void 0,
miterLimit: void 0
}
}
y(Nm, Dm);
function Om(b, c, d, e, f) {
var g = b.b,
h = [
1
];
b.c.push(h);
b.a.push(h);
var k,
h = 0;
for (k = e.length; h < k; ++h) {
var m = e[h],
n = b.coordinates.length;
d = Em(b, c, d, m, f, !0);
d = [
8,
n,
d
];
n = [
3
];
b.c.push(d, n);
b.a.push(d, n);
d = m
}
c = [
7
];
b.a.push(c);
void 0 !== g.fillStyle && b.c.push(c);
void 0 !== g.strokeStyle && (g = [
12
], b.c.push(g), b.a.push(g));
return d
}
l = Nm.prototype;
l.Fc = function (b, c) {
var d = this.b,
e = d.strokeStyle;
if (void 0 !== d.fillStyle || void 0 !== e) {
Pm(this);
Fm(this, c);
this.a.push([9,
vg(Tl)]);
void 0 !== d.strokeStyle && this.a.push([10,
d.strokeStyle,
d.lineWidth,
d.lineCap,
d.lineJoin,
d.miterLimit,
d.lineDash]);
var f = b.ja(),
g = b.ra(),
e = this.coordinates.length;
Em(this, f, 0, f.length, g, !1);
f = [
1
];
e = [
2,
e
];
this.c.push(f, e);
this.a.push(f, e);
e = [
7
];
this.a.push(e);
void 0 !== d.fillStyle && this.c.push(e);
void 0 !== d.strokeStyle && (d = [
12
], this.c.push(d), this.a.push(d));
Im(this, c)
}
};
l.Ic = function (b, c) {
var d = this.b,
e = d.strokeStyle;
if (void 0 !== d.fillStyle || void 0 !== e) {
Pm(this);
Fm(this, c);
this.a.push([9,
vg(Tl)]);
void 0 !== d.strokeStyle && this.a.push([10,
d.strokeStyle,
d.lineWidth,
d.lineCap,
d.lineJoin,
d.miterLimit,
d.lineDash]);
var d = b.Ab(),
e = b.ac(),
f = b.ra();
Om(this, e, 0, d, f);
Im(this, c)
}
};
l.Hc = function (b, c) {
var d = this.b,
e = d.strokeStyle;
if (void 0 !== d.fillStyle || void 0 !== e) {
Pm(this);
Fm(this, c);
this.a.push([9,
vg(Tl)]);
void 0 !== d.strokeStyle && this.a.push([10,
d.strokeStyle,
d.lineWidth,
d.lineCap,
d.lineJoin,
d.miterLimit,
d.lineDash]);
var d = b.g,
e = um(b),
f = b.ra(),
g = 0,
h,
k;
h = 0;
for (k = d.length; h < k; ++h) g = Om(this, e, g, d[h], f);
Im(this, c)
}
};
l.ve = function () {
Hm(this);
this.b = null;
var b = this.va;
if (0 !== b) {
var c = this.coordinates,
d,
e;
d = 0;
for (e = c.length; d < e; ++d) c[d] = b * Math.round(c[d] / b)
}
};
l.kf = function () {
this.f || (this.f = Td(this.Z), 0 < this.g && Sd(this.f, this.resolution * (this.g + 1) / 2, this.f));
return this.f
};
l.$a = function (b, c) {
var d = this.b;
if (b) {
var e = b.a;
d.fillStyle = vg(e ? e : Tl)
} else d.fillStyle = void 0;
c ? (e = c.a, d.strokeStyle = vg(e ? e : Vl), e = c.f, d.lineCap = void 0 !== e ? e : 'round', e = c.b, d.lineDash = e ? e.slice()  : Ul, e = c.g, d.lineJoin = void 0 !== e ? e : 'round', e = c.c, d.lineWidth = void 0 !== e ? e : 1, e = c.j, d.miterLimit = void 0 !== e ? e : 10, d.lineWidth > this.g && (this.g = d.lineWidth, this.f = null))  : (d.strokeStyle = void 0, d.lineCap = void 0, d.lineDash = null, d.lineJoin = void 0, d.lineWidth = void 0, d.miterLimit = void 0)
};
function Pm(b) {
var c = b.b,
d = c.fillStyle,
e = c.strokeStyle,
f = c.lineCap,
g = c.lineDash,
h = c.lineJoin,
k = c.lineWidth,
m = c.miterLimit;
void 0 !== d && c.pg != d && (b.c.push([9,
d]), c.pg = c.fillStyle);
void 0 === e || c.hd == e && c.cd == f && c.dd == g && c.ed == h && c.fd == k && c.gd == m || (b.c.push([10,
e,
k,
f,
h,
m,
g]), c.hd = e, c.cd = f, c.dd = g, c.ed = h, c.fd = k, c.gd = m)
}
function Qm(b, c, d) {
Dm.call(this, b, c, d);
this.ia = this.G = this.D = null;
this.l = '';
this.C = this.A = this.u = this.B = 0;
this.i = this.j = this.b = null
}
y(Qm, Dm);
Qm.prototype.Hb = function (b, c, d, e, f, g) {
if ('' !== this.l && this.i && (this.b || this.j)) {
if (this.b) {
f = this.b;
var h = this.D;
if (!h || h.fillStyle != f.fillStyle) {
var k = [
9,
f.fillStyle
];
this.c.push(k);
this.a.push(k);
h ? h.fillStyle = f.fillStyle : this.D = {
fillStyle: f.fillStyle
}
}
}
this.j && (f = this.j, h = this.G, h && h.lineCap == f.lineCap && h.lineDash == f.lineDash && h.lineJoin == f.lineJoin && h.lineWidth == f.lineWidth && h.miterLimit == f.miterLimit && h.strokeStyle == f.strokeStyle || (k = [
10,
f.strokeStyle,
f.lineWidth,
f.lineCap,
f.lineJoin,
f.miterLimit,
f.lineDash,
!1
], this.c.push(k), this.a.push(k), h ? (h.lineCap = f.lineCap, h.lineDash = f.lineDash, h.lineJoin = f.lineJoin, h.lineWidth = f.lineWidth, h.miterLimit = f.miterLimit, h.strokeStyle = f.strokeStyle)  : this.G = {
lineCap: f.lineCap,
lineDash: f.lineDash,
lineJoin: f.lineJoin,
lineWidth: f.lineWidth,
miterLimit: f.miterLimit,
strokeStyle: f.strokeStyle
}));
f = this.i;
h = this.ia;
h && h.font == f.font && h.textAlign == f.textAlign && h.textBaseline == f.textBaseline || (k = [
11,
f.font,
f.textAlign,
f.textBaseline
], this.c.push(k), this.a.push(k), h ? (h.font = f.font, h.textAlign = f.textAlign, h.textBaseline = f.textBaseline)  : this.ia = {
font: f.font,
textAlign: f.textAlign,
textBaseline: f.textBaseline
});
Fm(this, g);
f = this.coordinates.length;
b = Em(this, b, c, d, e, !1);
b = [
5,
f,
b,
this.l,
this.B,
this.u,
this.A,
this.C,
!!this.b,
!!this.j
];
this.c.push(b);
this.a.push(b);
Im(this, g)
}
};
Qm.prototype.ab = function (b) {
if (b) {
var c = b.a;
c ? (c = c.a, c = vg(c ? c : Tl), this.b ? this.b.fillStyle = c : this.b = {
fillStyle: c
})  : this.b = null;
var d = b.l;
if (d) {
var c = d.a,
e = d.f,
f = d.b,
g = d.g,
h = d.c,
d = d.j,
e = void 0 !== e ? e : 'round',
f = f ? f.slice()  : Ul,
g = void 0 !== g ? g : 'round',
h = void 0 !== h ? h : 1,
d = void 0 !== d ? d : 10,
c = vg(c ? c : Vl);
if (this.j) {
var k = this.j;
k.lineCap = e;
k.lineDash = f;
k.lineJoin = g;
k.lineWidth = h;
k.miterLimit = d;
k.strokeStyle = c
} else this.j = {
lineCap: e,
lineDash: f,
lineJoin: g,
lineWidth: h,
miterLimit: d,
strokeStyle: c
}
} else this.j = null;
var m = b.f,
c = b.g,
e = b.j,
f = b.i,
h = b.c,
d = b.b,
g = b.B,
k = b.u;
b = void 0 !== m ? m : '10px sans-serif';
g = void 0 !== g ? g : 'center';
k = void 0 !== k ? k : 'middle';
this.i ? (m = this.i, m.font = b, m.textAlign = g, m.textBaseline = k)  : this.i = {
font: b,
textAlign: g,
textBaseline: k
};
this.l = void 0 !== d ? d : '';
this.B = void 0 !== c ? c : 0;
this.u = void 0 !== e ? e : 0;
this.A = void 0 !== f ? f : 0;
this.C = void 0 !== h ? h : 1
} else this.l = ''
};
function Rm(b, c, d, e) {
this.u = b;
this.g = c;
this.B = d;
this.j = e;
this.c = {
};
this.i = Pi(1, 1);
this.l = Dd()
}
function Sm(b) {
for (var c in b.c) {
var d = b.c[c],
e;
for (e in d) d[e].ve()
}
}
Rm.prototype.f = function (b, c, d, e, f) {
var g = this.l;
ik(g, 0.5, 0.5, 1 / c, - 1 / c, - d, - b[0], - b[1]);
var h = this.i;
h.clearRect(0, 0, 1, 1);
var k;
void 0 !== this.j && (k = Od(), Pd(k, b), Sd(k, c * this.j, k));
return Tm(this, h, g, d, e, function (b) {
if (0 < h.getImageData(0, 0, 1, 1).data[3]) {
if (b = f(b)) return b;
h.clearRect(0, 0, 1, 1)
}
}, k)
};
Rm.prototype.a = function (b, c) {
var d = void 0 !== b ? b.toString()  : '0',
e = this.c[d];
void 0 === e && (e = {
}, this.c[d] = e);
d = e[c];
void 0 === d && (d = new Um[c](this.u, this.g, this.B), e[c] = d);
return d
};
Rm.prototype.Ka = function () {
return Qb(this.c)
};
Rm.prototype.b = function (b, c, d, e, f) {
var g = Object.keys(this.c).map(Number);
ob(g);
var h = this.g,
k = h[0],
m = h[1],
n = h[2],
h = h[3],
k = [
k,
m,
k,
h,
n,
h,
n,
m
];
cf(k, 0, 8, 2, d, k);
b.save();
b.beginPath();
b.moveTo(k[0], k[1]);
b.lineTo(k[2], k[3]);
b.lineTo(k[4], k[5]);
b.lineTo(k[6], k[7]);
b.closePath();
b.clip();
for (var p, q, k = 0, m = g.length; k < m; ++k) for (p = this.c[g[k].toString()], n = 0, h = Cm.length; n < h; ++n) q = p[Cm[n]],
void 0 !== q && Gm(q, b, c, d, e, f, q.c, void 0);
b.restore()
};
function Tm(b, c, d, e, f, g, h) {
var k = Object.keys(b.c).map(Number);
ob(k, function (b, c) {
return c - b
});
var m,
n,
p,
q,
r;
m = 0;
for (n = k.length; m < n; ++m) for (q = b.c[k[m].toString()], p = Cm.length - 1; 0 <= p; --p) if (r = q[Cm[p]], void 0 !== r && (r = Gm(r, c, 1, d, e, f, r.a, g, h))) return r
}
var Um = {
Image: Jm,
LineString: Km,
Polygon: Nm,
Text: Qm
};
function Vm(b, c, d, e) {
this.b = b;
this.a = c;
this.g = d;
this.f = e
}
l = Vm.prototype;
l.get = function (b) {
return this.f[b]
};
l.Ab = function () {
return this.g
};
l.J = function () {
this.c || (this.c = 'Point' === this.b ? Zd(this.a)  : $d(this.a, 0, this.a.length, 2));
return this.c
};
l.ja = Vm.prototype.ac = function () {
return this.a
};
l.W = function () {
return this
};
l.ym = function () {
return this.f
};
l.sd = Vm.prototype.W;
l.ra = se(2);
l.Qb = wa;
l.V = function () {
return this.b
};
function Wm(b, c) {
return w(b) - w(c)
}
function Xm(b, c) {
var d = 0.5 * b / c;
return d * d
}
function Ym(b, c, d, e, f, g) {
var h = !1,
k,
m;
if (k = d.b) m = k.Bd(),
2 == m || 3 == m ? k.Wf(f, g)  : (0 == m && k.load(), k.sf(f, g), h = !0);
if (f = (0, d.g) (c)) e = f.sd(e),
(0, Zm[e.V()]) (b, e, d, c);
return h
}
var Zm = {
Point: function (b, c, d, e) {
var f = d.b;
if (f) {
if (2 != f.Bd()) return;
var g = b.a(d.a, 'Image');
g.vb(f);
g.Gb(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
b.Hb(c.ja(), 0, 2, 2, c, e)
},
LineString: function (b, c, d, e) {
var f = d.f;
if (f) {
var g = b.a(d.a, 'LineString');
g.$a(null, f);
g.Wb(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
b.Hb(sm(c), 0, 2, 2, c, e)
},
Polygon: function (b, c, d, e) {
var f = d.j,
g = d.f;
if (f || g) {
var h = b.a(d.a, 'Polygon');
h.$a(f, g);
h.Ic(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
b.Hb(Jf(c), 0, 2, 2, c, e)
},
MultiPoint: function (b, c, d, e) {
var f = d.b;
if (f) {
if (2 != f.Bd()) return;
var g = b.a(d.a, 'Image');
g.vb(f);
g.Fb(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
d = c.ja(),
b.Hb(d, 0, d.length, c.ra(), c, e)
},
MultiLineString: function (b, c, d, e) {
var f = d.f;
if (f) {
var g = b.a(d.a, 'LineString');
g.$a(null, f);
g.Gc(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
d = tm(c),
b.Hb(d, 0, d.length, 2, c, e)
},
MultiPolygon: function (b, c, d, e) {
var f = d.j,
g = d.f;
if (g || f) {
var h = b.a(d.a, 'Polygon');
h.$a(f, g);
h.Hc(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
d = vm(c),
b.Hb(d, 0, d.length, 2, c, e)
},
GeometryCollection: function (b, c, d, e) {
c = c.f;
var f,
g;
f = 0;
for (g = c.length; f < g; ++f) (0, Zm[c[f].V()]) (b, c[f], d, e)
},
Circle: function (b, c, d, e) {
var f = d.j,
g = d.f;
if (f || g) {
var h = b.a(d.a, 'Polygon');
h.$a(f, g);
h.Fc(c, e)
}
if (f = d.c) b = b.a(d.a, 'Text'),
b.ab(f),
b.Hb(c.vd(), 0, 2, 2, c, e)
}
};
function $m(b, c, d, e, f, g) {
this.g = void 0 !== g ? g : null;
gk.call(this, b, c, d, void 0 !== g ? 0 : 2, e);
this.f = f;
this.c = null
}
y($m, gk);
$m.prototype.getError = function () {
return this.c
};
$m.prototype.i = function (b) {
b ? (this.c = b, this.state = 3)  : this.state = 2;
hk(this)
};
$m.prototype.load = function () {
0 == this.state && (this.state = 1, hk(this), this.g(ra(this.i, this)))
};
$m.prototype.a = function () {
return this.f
};
var an = !((Hb('Chrome') || Hb('CriOS')) && !Hb('Opera') && !Hb('OPR') && !Hb('Edge')) || Hb('iPhone') && !Hb('iPod') && !Hb('iPad') || Hb('iPad') || Hb('iPod');
function bn(b, c, d, e) {
var f = $e(d, c, b);
d = c.getPointResolution(e, d);
c = c.Jc();
void 0 !== c && (d *= c);
c = b.Jc();
void 0 !== c && (d /= c);
b = b.getPointResolution(d, f) / d;
isFinite(b) && !isNaN(b) && 0 < b && (d /= b);
return d
}
function cn(b, c, d, e) {
b = d - b;
c = e - c;
var f = Math.sqrt(b * b + c * c);
return [Math.round(d + b / f),
Math.round(e + c / f)]
}
function dn(b, c, d, e, f, g, h, k, m, n) {
var p = Pi(Math.round(d * b), Math.round(d * c));
if (0 === m.length) return p.canvas;
p.scale(d, d);
var q = Od();
m.forEach(function (b) {
ce(q, b.extent)
});
var r = Pi(Math.round(d * ke(q) / e), Math.round(d * le(q) / e));
r.scale(d / e, d / e);
r.translate( - q[0], q[3]);
m.forEach(function (b) {
r.drawImage(b.image, b.extent[0], - b.extent[3], ke(b.extent), le(b.extent))
});
var t = he(h);
k.f.forEach(function (b) {
var c = b.source,
f = b.target,
h = c[1][0],
k = c[1][1],
m = c[2][0],
n = c[2][1];
b = (f[0][0] - t[0]) / g;
var I = - (f[0][1] - t[1]) /
g,
G = (f[1][0] - t[0]) / g,
la = - (f[1][1] - t[1]) / g,
Ea = (f[2][0] - t[0]) / g,
L = - (f[2][1] - t[1]) / g,
f = c[0][0],
c = c[0][1],
h = h - f,
k = k - c,
m = m - f,
n = n - c;
a: {
h = [
[h,
k,
0,
0,
G - b],
[
m,
n,
0,
0,
Ea - b
],
[
0,
0,
h,
k,
la - I
],
[
0,
0,
m,
n,
L - I
]
];
k = h.length;
for (m = 0; m < k; m++) {
for (var n = m, za = Math.abs(h[m][m]), Ra = m + 1; Ra < k; Ra++) {
var Ka = Math.abs(h[Ra][m]);
Ka > za && (za = Ka, n = Ra)
}
if (0 === za) {
h = null;
break a
}
za = h[n];
h[n] = h[m];
h[m] = za;
for (n = m + 1; n < k; n++) for (za = - h[n][m] / h[m][m], Ra = m; Ra < k + 1; Ra++) h[n][Ra] = m == Ra ? 0 : h[n][Ra] + za * h[m][Ra]
}
m = Array(k);
for (n = k - 1; 0 <= n; n--) for (m[n] =
h[n][k] / h[n][n], za = n - 1; 0 <= za; za--) h[za][k] -= h[za][n] * m[n];
h = m
}
h && (p.save(), p.beginPath(), an ? (m = (b + G + Ea) / 3, n = (I + la + L) / 3, k = cn(m, n, b, I), G = cn(m, n, G, la), Ea = cn(m, n, Ea, L), p.moveTo(k[0], k[1]), p.lineTo(G[0], G[1]), p.lineTo(Ea[0], Ea[1]))  : (p.moveTo(b, I), p.lineTo(G, la), p.lineTo(Ea, L)), p.closePath(), p.clip(), p.transform(h[0], h[2], h[1], h[3], b, I), p.translate(q[0] - f, q[3] - c), p.scale(e / d, - e / d), p.drawImage(r.canvas, 0, 0), p.restore())
});
n && (p.save(), p.strokeStyle = 'black', p.lineWidth = 1, k.f.forEach(function (b) {
var c = b.target;
b = (c[0][0] - t[0]) / g;
var d = - (c[0][1] - t[1]) / g,
e = (c[1][0] - t[0]) / g,
f = - (c[1][1] - t[1]) / g,
h = (c[2][0] - t[0]) / g,
c = - (c[2][1] - t[1]) / g;
p.beginPath();
p.moveTo(b, d);
p.lineTo(e, f);
p.lineTo(h, c);
p.closePath();
p.stroke()
}), p.restore());
return p.canvas
};
function en(b, c, d, e, f) {
this.b = b;
this.g = c;
var g = {
},
h = Ye(this.g, this.b);
this.c = function (b) {
var c = b[0] + '/' + b[1];
g[c] || (g[c] = h(b));
return g[c]
};
this.j = e;
this.u = f * f;
this.f = [
];
this.l = !1;
this.B = this.b.b && !!e && !!this.b.J() && ke(e) == ke(this.b.J());
this.a = this.b.J() ? ke(this.b.J())  : null;
this.i = this.g.J() ? ke(this.g.J())  : null;
b = he(d);
c = ge(d);
e = fe(d);
d = ee(d);
f = this.c(b);
var k = this.c(c),
m = this.c(e),
n = this.c(d);
fn(this, b, c, e, d, f, k, m, n, 10);
if (this.l) {
var p = Infinity;
this.f.forEach(function (b) {
p = Math.min(p, b.source[0][0], b.source[1][0], b.source[2][0])
});
this.f.forEach(function (b) {
if (Math.max(b.source[0][0], b.source[1][0], b.source[2][0]) - p > this.a / 2) {
var c = [
[b.source[0][0],
b.source[0][1]],
[
b.source[1][0],
b.source[1][1]
],
[
b.source[2][0],
b.source[2][1]
]
];
c[0][0] - p > this.a / 2 && (c[0][0] -= this.a);
c[1][0] - p > this.a / 2 && (c[1][0] -= this.a);
c[2][0] - p > this.a / 2 && (c[2][0] -= this.a);
Math.max(c[0][0], c[1][0], c[2][0]) - Math.min(c[0][0], c[1][0], c[2][0]) < this.a / 2 && (b.source = c)
}
}, this)
}
g = {
}
}
function fn(b, c, d, e, f, g, h, k, m, n) {
var p = Nd([g,
h,
k,
m]),
q = b.a ? ke(p) / b.a : null,
r = b.b.b && 0.5 < q && 1 > q,
t = !1;
if (0 < n) {
if (b.g.f && b.i) var x = Nd([c,
d,
e,
f]),
t = t | 0.25 < ke(x) / b.i;
!r && b.b.f && q && (t |= 0.25 < q)
}
if (t || !b.j || pe(p, b.j)) {
if (!(t || isFinite(g[0]) && isFinite(g[1]) && isFinite(h[0]) && isFinite(h[1]) && isFinite(k[0]) && isFinite(k[1]) && isFinite(m[0]) && isFinite(m[1]))) if (0 < n) t = !0;
 else return;
if (0 < n && (t || (q = b.c([(c[0] + e[0]) / 2,
(c[1] + e[1]) / 2]), p = r ? (pd(g[0], b.a) + pd(k[0], b.a)) / 2 - pd(q[0], b.a)  : (g[0] + k[0]) / 2 - q[0], q = (g[1] + k[1]) / 2 - q[1], t = p * p + q * q > b.u), t)) {
Math.abs(c[0] - e[0]) <= Math.abs(c[1] - e[1]) ? (r = [
(d[0] + e[0]) / 2,
(d[1] + e[1]) / 2
], p = b.c(r), q = [
(f[0] + c[0]) / 2,
(f[1] + c[1]) / 2
], t = b.c(q), fn(b, c, d, r, q, g, h, p, t, n - 1), fn(b, q, r, e, f, t, p, k, m, n - 1))  : (r = [
(c[0] + d[0]) / 2,
(c[1] + d[1]) / 2
], p = b.c(r), q = [
(e[0] + f[0]) / 2,
(e[1] + f[1]) / 2
], t = b.c(q), fn(b, c, r, q, f, g, p, t, m, n - 1), fn(b, r, d, e, q, p, h, k, t, n - 1));
return
}
if (r) {
if (!b.B) return;
b.l = !0
}
b.f.push({
source: [
g,
k,
m
],
target: [
c,
e,
f
]
});
b.f.push({
source: [
g,
h,
k
],
target: [
c,
d,
e
]
})
}
}
function gn(b) {
var c = Od();
b.f.forEach(function (b) {
b = b.source;
Pd(c, b[0]);
Pd(c, b[1]);
Pd(c, b[2])
});
return c
};
function hn(b, c, d, e, f, g) {
this.C = c;
this.A = b.J();
var h = c.J(),
k = h ? oe(d, h)  : d,
h = bn(b, c, me(k), e);
this.B = new en(b, c, k, this.A, 0.5 * h);
this.i = e;
this.g = d;
b = gn(this.B);
this.u = (this.c = g(b, h, f)) ? this.c.b : 1;
this.f = this.l = null;
f = 2;
g = [
];
this.c && (f = 0, g = this.c.j);
gk.call(this, d, e, this.u, f, g)
}
y(hn, gk);
hn.prototype.X = function () {
1 == this.state && (Zc(this.f), this.f = null);
hn.da.X.call(this)
};
hn.prototype.a = function () {
return this.l
};
function jn(b) {
var c = b.c.state;
2 == c && (b.l = dn(ke(b.g) / b.i, le(b.g) / b.i, b.u, b.c.$(), 0, b.i, b.g, b.B, [
{
extent: b.c.J(),
image: b.c.a()
}
]));
b.state = c;
hk(b)
}
hn.prototype.load = function () {
if (0 == this.state) {
this.state = 1;
hk(this);
var b = this.c.state;
2 == b || 3 == b ? jn(this)  : (this.f = this.c.Qa('change', function () {
var b = this.c.state;
if (2 == b || 3 == b) Zc(this.f),
this.f = null,
jn(this)
}, !1, this), this.c.load())
}
};
function kn(b) {
yh.call(this, {
attributions: b.attributions,
extent: b.extent,
logo: b.logo,
projection: b.projection,
state: b.state
});
this.G = void 0 !== b.resolutions ? b.resolutions : null;
this.a = null;
this.va = 0
}
y(kn, yh);
function ln(b, c) {
if (b.G) {
var d = wb(b.G, c, 0);
c = b.G[d]
}
return c
}
kn.prototype.C = function (b, c, d, e) {
var f = this.f;
if (f && e && !Xe(f, e)) {
if (this.a) {
if (this.va == this.c && Xe(this.a.C, e) && this.a.$() == c && this.a.b == d && be(this.a.J(), b)) return this.a;
this.a.Ec();
this.a = null
}
this.a = new hn(f, e, b, c, d, ra(function (b, c, d) {
return this.pd(b, c, d, f)
}, this));
this.va = this.c;
return this.a
}
f && (e = f);
return this.pd(b, c, d, e)
};
kn.prototype.D = function (b) {
b = b.target;
switch (b.state) {
case 1:
this.o(new mn(nn, b));
break;
case 2:
this.o(new mn(on, b));
break;
case 3:
this.o(new mn(pn, b))
}
};
function qn(b, c) {
b.a().src = c
}
function mn(b, c) {
vc.call(this, b);
this.image = c
}
y(mn, vc);
var nn = 'imageloadstart',
on = 'imageloadend',
pn = 'imageloaderror';
function rn(b) {
kn.call(this, {
attributions: b.attributions,
logo: b.logo,
projection: b.projection,
resolutions: b.resolutions,
state: void 0 !== b.state ? b.state : void 0
});
this.ga = b.canvasFunction;
this.Z = null;
this.ea = 0;
this.pa = void 0 !== b.ratio ? b.ratio : 1.5
}
y(rn, kn);
rn.prototype.pd = function (b, c, d, e) {
c = ln(this, c);
var f = this.Z;
if (f && this.ea == this.c && f.$() == c && f.b == d && Xd(f.J(), b)) return f;
b = b.slice();
qe(b, this.pa);
(e = this.ga(b, c, d, [
ke(b) / c * d,
le(b) / c * d
], e)) && (f = new $m(b, c, d, this.j, e));
this.Z = f;
this.ea = this.c;
return f
};
function sn(b) {
id.call(this);
this.wa = void 0;
this.a = 'geometry';
this.f = null;
this.g = void 0;
this.b = null;
C(this, kd(this.a), this.ge, !1, this);
void 0 !== b && (b instanceof bf || !b ? this.La(b)  : this.I(b))
}
y(sn, id);
l = sn.prototype;
l.clone = function () {
var b = new sn(this.P());
b.vc(this.a);
var c = this.W();
c && b.La(c.clone());
(c = this.f) && b.vf(c);
return b
};
l.W = function () {
return this.get(this.a)
};
l.Na = function () {
return this.wa
};
l.Mj = function () {
return this.a
};
l.vl = function () {
return this.f
};
l.Qb = function () {
return this.g
};
l.wl = function () {
this.s()
};
l.ge = function () {
this.b && (Zc(this.b), this.b = null);
var b = this.W();
b && (this.b = C(b, 'change', this.wl, !1, this));
this.s()
};
l.La = function (b) {
this.set(this.a, b)
};
l.vf = function (b) {
this.g = (this.f = b) ? tn(b)  : void 0;
this.s()
};
l.ic = function (b) {
this.wa = b;
this.s()
};
l.vc = function (b) {
Yc(this, kd(this.a), this.ge, !1, this);
this.a = b;
C(this, kd(this.a), this.ge, !1, this);
this.ge()
};
function tn(b) {
if (!ka(b)) {
var c;
c = ga(b) ? b : [
b
];
b = function () {
return c
}
}
return b
};
function un(b) {
b.prototype.then = b.prototype.then;
b.prototype.$goog_Thenable = !0
}
function vn(b) {
if (!b) return !1;
try {
return !!b.$goog_Thenable
} catch (c) {
return !1
}
};
function wn(b, c, d) {
this.f = d;
this.b = b;
this.g = c;
this.c = 0;
this.a = null
}
wn.prototype.get = function () {
var b;
0 < this.c ? (this.c--, b = this.a, this.a = b.next, b.next = null)  : b = this.b();
return b
};
function xn(b, c) {
b.g(c);
b.c < b.f && (b.c++, c.next = b.a, b.a = c)
};
function yn() {
this.c = this.a = null
}
var An = new wn(function () {
return new zn
}, function (b) {
b.reset()
}, 100);
yn.prototype.add = function (b, c) {
var d = An.get();
d.set(b, c);
this.c ? this.c.next = d : this.a = d;
this.c = d
};
yn.prototype.remove = function () {
var b = null;
this.a && (b = this.a, this.a = this.a.next, this.a || (this.c = null), b.next = null);
return b
};
function zn() {
this.next = this.c = this.a = null
}
zn.prototype.set = function (b, c) {
this.a = b;
this.c = c;
this.next = null
};
zn.prototype.reset = function () {
this.next = this.c = this.a = null
};
function Bn(b, c) {
Cn || Dn();
En || (Cn(), En = !0);
Fn.add(b, c)
}
var Cn;
function Dn() {
if (ba.Promise && ba.Promise.resolve) {
var b = ba.Promise.resolve(void 0);
Cn = function () {
b.then(Gn)
}
} else Cn = function () {
ni(Gn)
}
}
var En = !1,
Fn = new yn;
function Gn() {
for (var b = null; b = Fn.remove(); ) {
try {
b.a.call(b.c)
} catch (c) {
mi(c)
}
xn(An, b)
}
En = !1
};
function Hn(b, c) {
this.a = In;
this.i = void 0;
this.f = this.c = this.b = null;
this.g = this.j = !1;
if (b != da) try {
var d = this;
b.call(c, function (b) {
Jn(d, Kn, b)
}, function (b) {
Jn(d, Ln, b)
})
} catch (e) {
Jn(this, Ln, e)
}
}
var In = 0,
Kn = 2,
Ln = 3;
function Mn() {
this.next = this.b = this.c = this.f = this.a = null;
this.g = !1
}
Mn.prototype.reset = function () {
this.b = this.c = this.f = this.a = null;
this.g = !1
};
var Nn = new wn(function () {
return new Mn
}, function (b) {
b.reset()
}, 100);
function On(b, c, d) {
var e = Nn.get();
e.f = b;
e.c = c;
e.b = d;
return e
}
Hn.prototype.then = function (b, c, d) {
return Pn(this, ka(b) ? b : null, ka(c) ? c : null, d)
};
un(Hn);
Hn.prototype.cancel = function (b) {
this.a == In && Bn(function () {
var c = new Qn(b);
Rn(this, c)
}, this)
};
function Rn(b, c) {
if (b.a == In) if (b.b) {
var d = b.b;
if (d.c) {
for (var e = 0, f = null, g = null, h = d.c; h && (h.g || (e++, h.a == b && (f = h), !(f && 1 < e))); h = h.next) f || (g = h);
f && (d.a == In && 1 == e ? Rn(d, c)  : (g ? (e = g, e.next == d.f && (d.f = e), e.next = e.next.next)  : Sn(d), Tn(d, f, Ln, c)))
}
b.b = null
} else Jn(b, Ln, c)
}
function Un(b, c) {
b.c || b.a != Kn && b.a != Ln || Vn(b);
b.f ? b.f.next = c : b.c = c;
b.f = c
}
function Pn(b, c, d, e) {
var f = On(null, null, null);
f.a = new Hn(function (b, h) {
f.f = c ? function (d) {
try {
var f = c.call(e, d);
b(f)
} catch (n) {
h(n)
}
}
 : b;
f.c = d ? function (c) {
try {
var f = d.call(e, c);
!ca(f) && c instanceof Qn ? h(c)  : b(f)
} catch (n) {
h(n)
}
}
 : h
});
f.a.b = b;
Un(b, f);
return f.a
}
Hn.prototype.B = function (b) {
this.a = In;
Jn(this, Kn, b)
};
Hn.prototype.u = function (b) {
this.a = In;
Jn(this, Ln, b)
};
function Jn(b, c, d) {
if (b.a == In) {
b == d && (c = Ln, d = new TypeError('Promise cannot resolve to itself'));
b.a = 1;
var e;
a: {
var f = d,
g = b.B,
h = b.u;
if (f instanceof Hn) Un(f, On(g || da, h || null, b)),
e = !0;
 else if (vn(f)) f.then(g, h, b),
e = !0;
 else {
if (ma(f)) try {
var k = f.then;
if (ka(k)) {
Wn(f, k, g, h, b);
e = !0;
break a
}
} catch (m) {
h.call(b, m);
e = !0;
break a
}
e = !1
}
}
e || (b.i = d, b.a = c, b.b = null, Vn(b), c != Ln || d instanceof Qn || Xn(b, d))
}
}
function Wn(b, c, d, e, f) {
function g(b) {
k || (k = !0, e.call(f, b))
}
function h(b) {
k || (k = !0, d.call(f, b))
}
var k = !1;
try {
c.call(b, h, g)
} catch (m) {
g(m)
}
}
function Vn(b) {
b.j || (b.j = !0, Bn(b.l, b))
}
function Sn(b) {
var c = null;
b.c && (c = b.c, b.c = c.next, c.next = null);
b.c || (b.f = null);
return c
}
Hn.prototype.l = function () {
for (var b = null; b = Sn(this); ) Tn(this, b, this.a, this.i);
this.j = !1
};
function Tn(b, c, d, e) {
if (d == Ln && c.c && !c.g) for (; b && b.g; b = b.b) b.g = !1;
if (c.a) c.a.b = null,
Yn(c, d, e);
 else try {
c.g ? c.f.call(c.b)  : Yn(c, d, e)
} catch (f) {
Zn.call(null, f)
}
xn(Nn, c)
}
function Yn(b, c, d) {
c == Kn ? b.f.call(b.b, d)  : b.c && b.c.call(b.b, d)
}
function Xn(b, c) {
b.g = !0;
Bn(function () {
b.g && Zn.call(null, c)
})
}
var Zn = mi;
function Qn(b) {
xa.call(this, b)
}
y(Qn, xa);
Qn.prototype.name = 'cancel';
function $n(b, c, d) {
if (ka(b)) d && (b = ra(b, d));
 else if (b && 'function' == typeof b.handleEvent) b = ra(b.handleEvent, b);
 else throw Error('Invalid listener argument');
return 2147483647 < c ? - 1 : ba.setTimeout(b, c || 0)
};
var ao = ba.JSON.parse,
bo = ba.JSON.stringify;
function co() {
}
co.prototype.a = null;
function eo(b) {
var c;
(c = b.a) || (c = {
}, fo(b) && (c[0] = !0, c[1] = !0), c = b.a = c);
return c
};
var go;
function ho() {
}
y(ho, co);
function io(b) {
return (b = fo(b)) ? new ActiveXObject(b)  : new XMLHttpRequest
}
function fo(b) {
if (!b.c && 'undefined' == typeof XMLHttpRequest && 'undefined' != typeof ActiveXObject) {
for (var c = [
'MSXML2.XMLHTTP.6.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP'
], d = 0; d < c.length; d++) {
var e = c[d];
try {
return new ActiveXObject(e),
b.c = e
} catch (f) {
}
}
throw Error('Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed');
}
return b.c
}
go = new ho;
var jo = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;
function ko(b, c) {
if (b) for (var d = b.split('&'), e = 0; e < d.length; e++) {
var f = d[e].indexOf('='),
g = null,
h = null;
0 <= f ? (g = d[e].substring(0, f), h = d[e].substring(f + 1))  : g = d[e];
c(g, h ? decodeURIComponent(h.replace(/\+/g, ' '))  : '')
}
}
function lo(b) {
if (b[1]) {
var c = b[0],
d = c.indexOf('#');
0 <= d && (b.push(c.substr(d)), b[0] = c = c.substr(0, d));
d = c.indexOf('?');
0 > d ? b[1] = '?' : d == c.length - 1 && (b[1] = void 0)
}
return b.join('')
}
function mo(b, c, d) {
if (ga(c)) for (var e = 0; e < c.length; e++) mo(b, String(c[e]), d);
 else null != c && d.push('&', b, '' === c ? '' : '=', encodeURIComponent(String(c)))
}
function no(b, c) {
for (var d in c) mo(d, c[d], b);
return b
};
function oo(b) {
cd.call(this);
this.S = new ri;
this.B = b || null;
this.a = !1;
this.l = this.ha = null;
this.g = this.U = this.C = '';
this.c = this.A = this.f = this.u = !1;
this.i = 0;
this.b = null;
this.j = po;
this.D = this.Z = !1
}
y(oo, cd);
var po = '',
qo = /^https?$/i,
ro = [
'POST',
'PUT'
];
function so(b, c) {
if (b.ha) throw Error('[goog.net.XhrIo] Object is active with another request=' + b.C + '; newUri=' + c);
b.C = c;
b.g = '';
b.U = 'GET';
b.u = !1;
b.a = !0;
b.ha = b.B ? io(b.B)  : io(go);
b.l = b.B ? eo(b.B)  : eo(go);
b.ha.onreadystatechange = ra(b.G, b);
try {
b.A = !0,
b.ha.open('GET', String(c), !0),
b.A = !1
} catch (g) {
to(b, g);
return
}
var d = b.S.clone(),
e = fb(d.O(), uo),
f = ba.FormData && !1;
!(0 <= $a(ro, 'GET')) || e || f || d.set('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
d.forEach(function (b, c) {
this.ha.setRequestHeader(c, b)
}, b);
b.j && (b.ha.responseType = b.j);
'withCredentials' in b.ha && (b.ha.withCredentials = b.Z);
try {
vo(b),
0 < b.i && (b.D = wo(b.ha), b.D ? (b.ha.timeout = b.i, b.ha.ontimeout = ra(b.yc, b))  : b.b = $n(b.yc, b.i, b)),
b.f = !0,
b.ha.send(''),
b.f = !1
} catch (g) {
to(b, g)
}
}
function wo(b) {
return Zb && jc(9) && ja(b.timeout) && ca(b.ontimeout)
}
function uo(b) {
return 'content-type' == b.toLowerCase()
}
oo.prototype.yc = function () {
'undefined' != typeof aa && this.ha && (this.g = 'Timed out after ' + this.i + 'ms, aborting', this.o('timeout'), this.ha && this.a && (this.a = !1, this.c = !0, this.ha.abort(), this.c = !1, this.o('complete'), this.o('abort'), xo(this)))
};
function to(b, c) {
b.a = !1;
b.ha && (b.c = !0, b.ha.abort(), b.c = !1);
b.g = c;
yo(b);
xo(b)
}
function yo(b) {
b.u || (b.u = !0, b.o('complete'), b.o('error'))
}
oo.prototype.X = function () {
this.ha && (this.a && (this.a = !1, this.c = !0, this.ha.abort(), this.c = !1), xo(this, !0));
oo.da.X.call(this)
};
oo.prototype.G = function () {
this.ia || (this.A || this.f || this.c ? zo(this)  : this.T())
};
oo.prototype.T = function () {
zo(this)
};
function zo(b) {
if (b.a && 'undefined' != typeof aa && (!b.l[1] || 4 != Ao(b) || 2 != Bo(b))) if (b.f && 4 == Ao(b)) $n(b.G, 0, b);
 else if (b.o('readystatechange'), 4 == Ao(b)) {
b.a = !1;
try {
if (Co(b)) b.o('complete'),
b.o('success');
 else {
var c;
try {
c = 2 < Ao(b) ? b.ha.statusText : ''
} catch (d) {
c = ''
}
b.g = c + ' [' + Bo(b) + ']';
yo(b)
}
} finally {
xo(b)
}
}
}
function xo(b, c) {
if (b.ha) {
vo(b);
var d = b.ha,
e = b.l[0] ? da : null;
b.ha = null;
b.l = null;
c || b.o('ready');
try {
d.onreadystatechange = e
} catch (f) {
}
}
}
function vo(b) {
b.ha && b.D && (b.ha.ontimeout = null);
ja(b.b) && (ba.clearTimeout(b.b), b.b = null)
}
function Co(b) {
var c = Bo(b),
d;
a: switch (c) {
case 200:
case 201:
case 202:
case 204:
case 206:
case 304:
case 1223:
d = !0;
break a;
default:
d = !1
}
if (!d) {
if (c = 0 === c) b = String(b.C).match(jo) [1] || null,
!b && ba.self && ba.self.location && (b = ba.self.location.protocol, b = b.substr(0, b.length - 1)),
c = !qo.test(b ? b.toLowerCase()  : '');
d = c
}
return d
}
function Ao(b) {
return b.ha ? b.ha.readyState : 0
}
function Bo(b) {
try {
return 2 < Ao(b) ? b.ha.status : - 1
} catch (c) {
return - 1
}
}
function Do(b) {
try {
return b.ha ? b.ha.responseText : ''
} catch (c) {
return ''
}
}
function Eo(b) {
try {
if (!b.ha) return null;
if ('response' in b.ha) return b.ha.response;
switch (b.j) {
case po:
case 'text':
return b.ha.responseText;
case 'arraybuffer':
if ('mozResponseArrayBuffer' in b.ha) return b.ha.mozResponseArrayBuffer
}
return null
} catch (c) {
return null
}
};
function Fo() {
if (!Zb) return !1;
try {
return new ActiveXObject('MSXML2.DOMDocument'),
!0
} catch (b) {
return !1
}
}
var Go = Zb && Fo();
function Ho(b) {
var c = b.xml;
if (c) return c;
if ('undefined' != typeof XMLSerializer) return (new XMLSerializer).serializeToString(b);
throw Error('Your browser does not support serializing XML documents');
};
var Io;
a: if (document.implementation && document.implementation.createDocument) Io = document.implementation.createDocument('', '', null);
 else {
if (Go) {
var Jo = new ActiveXObject('MSXML2.DOMDocument');
if (Jo) {
Jo.resolveExternals = !1;
Jo.validateOnParse = !1;
try {
Jo.setProperty('ProhibitDTD', !0),
Jo.setProperty('MaxXMLSize', 2048),
Jo.setProperty('MaxElementDepth', 256)
} catch (b) {
}
}
if (Jo) {
Io = Jo;
break a
}
}
throw Error('Your browser does not support creating new documents');
}
var Ko = Io;
function Lo(b, c) {
return Ko.createElementNS(b, c)
}
function Mo(b, c) {
b || (b = '');
return Ko.createNode(1, c, b)
}
var No = document.implementation && document.implementation.createDocument ? Lo : Mo;
function Oo(b, c) {
return Po(b, c, [
]).join('')
}
function Po(b, c, d) {
if (4 == b.nodeType || 3 == b.nodeType) c ? d.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g, ''))  : d.push(b.nodeValue);
 else for (b = b.firstChild; b; b = b.nextSibling) Po(b, c, d);
return d
}
function Qo(b) {
return b.localName
}
function Ro(b) {
var c = b.localName;
return void 0 !== c ? c : b.baseName
}
var So = Zb ? Ro : Qo;
function To(b) {
return b instanceof Document
}
function Uo(b) {
return ma(b) && 9 == b.nodeType
}
var Vo = Zb ? Uo : To;
function Wo(b) {
return b instanceof Node
}
function Xo(b) {
return ma(b) && void 0 !== b.nodeType
}
var Yo = Zb ? Xo : Wo;
function Zo(b, c, d) {
return b.getAttributeNS(c, d) || ''
}
function $o(b, c, d) {
var e = '';
b = ap(b, c, d);
void 0 !== b && (e = b.nodeValue);
return e
}
var bp = document.implementation && document.implementation.createDocument ? Zo : $o;
function cp(b, c, d) {
return b.getAttributeNodeNS(c, d)
}
function dp(b, c, d) {
var e = null;
b = b.attributes;
for (var f, g, h = 0, k = b.length; h < k; ++h) if (f = b[h], f.namespaceURI == c && (g = f.prefix ? f.prefix + ':' + d : d, g == f.nodeName)) {
e = f;
break
}
return e
}
var ap = document.implementation && document.implementation.createDocument ? cp : dp;
function ep(b, c, d, e) {
b.setAttributeNS(c, d, e)
}
function fp(b, c, d, e) {
c ? (c = b.ownerDocument.createNode(2, d, c), c.nodeValue = e, b.setAttributeNode(c))  : b.setAttribute(d, e)
}
var gp = document.implementation && document.implementation.createDocument ? ep : fp;
function hp(b) {
return (new DOMParser).parseFromString(b, 'application/xml')
}
function ip(b, c) {
return function (d, e) {
var f = b.call(c, d, e);
void 0 !== f && lb(e[e.length - 1], f)
}
}
function jp(b, c) {
return function (d, e) {
var f = b.call(void 0 !== c ? c : this, d, e);
void 0 !== f && e[e.length - 1].push(f)
}
}
function kp(b, c) {
return function (d, e) {
var f = b.call(void 0 !== c ? c : this, d, e);
void 0 !== f && (e[e.length - 1] = f)
}
}
function lp(b) {
return function (c, d) {
var e = b.call(this, c, d);
void 0 !== e && Tb(d[d.length - 1], c.localName).push(e)
}
}
function M(b, c) {
return function (d, e) {
var f = b.call(this, d, e);
void 0 !== f && (e[e.length - 1][void 0 !== c ? c : d.localName] = f)
}
}
function N(b, c) {
return function (d, e, f) {
b.call(void 0 !== c ? c : this, d, e, f);
f[f.length - 1].node.appendChild(d)
}
}
function mp(b) {
var c,
d;
return function (e, f, g) {
if (void 0 === c) {
c = {
};
var h = {
};
h[e.localName] = b;
c[e.namespaceURI] = h;
d = np(e.localName)
}
op(c, d, f, g)
}
}
function np(b, c) {
return function (d, e, f) {
d = e[e.length - 1].node;
e = b;
void 0 === e && (e = f);
f = c;
void 0 === c && (f = d.namespaceURI);
return No(f, e)
}
}
var pp = np();
function qp(b, c) {
for (var d = c.length, e = Array(d), f = 0; f < d; ++f) e[f] = b[c[f]];
return e
}
function P(b, c, d) {
d = void 0 !== d ? d : {
};
var e,
f;
e = 0;
for (f = b.length; e < f; ++e) d[b[e]] = c;
return d
}
function rp(b, c, d, e) {
for (c = c.firstElementChild; c; c = c.nextElementSibling) {
var f = b[c.namespaceURI];
void 0 !== f && (f = f[c.localName], void 0 !== f && f.call(e, c, d))
}
}
function Q(b, c, d, e, f) {
e.push(b);
rp(c, d, e, f);
return e.pop()
}
function op(b, c, d, e, f, g) {
for (var h = (void 0 !== f ? f : d).length, k, m, n = 0; n < h; ++n) k = d[n],
void 0 !== k && (m = c.call(g, k, e, void 0 !== f ? f[n] : void 0), void 0 !== m && b[m.namespaceURI][m.localName].call(g, m, k, e))
}
function sp(b, c, d, e, f, g, h) {
f.push(b);
op(c, d, e, f, g, h);
f.pop()
};
function tp(b, c, d, e) {
return function (f, g, h) {
var k = new oo;
k.j = 'arraybuffer' == c.V() ? 'arraybuffer' : 'text';
C(k, 'complete', function (b) {
b = b.target;
if (Co(b)) {
var f = c.V(),
g;
if ('json' == f) g = Do(b);
 else if ('text' == f) g = Do(b);
 else if ('xml' == f) {
if (!Zb) try {
g = b.ha ? b.ha.responseXML : null
} catch (k) {
g = null
}
g || (g = hp(Do(b)))
} else 'arraybuffer' == f && (g = Eo(b));
g && (f = c.Ba(g, {
featureProjection: h
}), 2 == d.length ? d.call(this, f, c.Ia(g))  : d.call(this, f))
} else e.call(this);
uc(b)
}, !1, this);
ka(b) ? so(k, b(f, g, h))  : so(k, b)
}
}
function up(b, c) {
return tp(b, c, function (b, c) {
this.c = c;
this.g = b;
this.state = 2;
xh(this)
}, function () {
this.state = 3;
xh(this)
})
}
function vp(b, c) {
return tp(b, c, function (b) {
this.Dc(b)
}, wa)
};
function wp() {
return [[ - Infinity,
- Infinity,
Infinity,
Infinity]]
};
var xp,
yp,
zp,
Ap;
(function () {
var b = {
ka: {
}
};
(function () {
function c(b, d) {
if (!(this instanceof c)) return new c(b, d);
this.af = Math.max(4, b || 9);
this.gg = Math.max(2, Math.ceil(0.4 * this.af));
d && this.$i(d);
this.clear()
}
function d(b, c) {
b.bbox = e(b, 0, b.children.length, c)
}
function e(b, c, d, e) {
for (var g = [
Infinity,
Infinity,
- Infinity,
- Infinity
], h; c < d; c++) h = b.children[c],
f(g, b.Pa ? e(h)  : h.bbox);
return g
}
function f(b, c) {
b[0] = Math.min(b[0], c[0]);
b[1] = Math.min(b[1], c[1]);
b[2] = Math.max(b[2], c[2]);
b[3] = Math.max(b[3], c[3])
}
function g(b, c) {
return b.bbox[0] -
c.bbox[0]
}
function h(b, c) {
return b.bbox[1] - c.bbox[1]
}
function k(b) {
return (b[2] - b[0]) * (b[3] - b[1])
}
function m(b) {
return b[2] - b[0] + (b[3] - b[1])
}
function n(b, c) {
return b[0] <= c[0] && b[1] <= c[1] && c[2] <= b[2] && c[3] <= b[3]
}
function p(b, c) {
return c[0] <= b[2] && c[1] <= b[3] && c[2] >= b[0] && c[3] >= b[1]
}
function q(b, c, d, e, f) {
for (var g = [
c,
d
], h; g.length; ) d = g.pop(),
c = g.pop(),
d - c <= e || (h = c + Math.ceil((d - c) / e / 2) * e, r(b, c, d, h, f), g.push(c, h, h, d))
}
function r(b, c, d, e, f) {
for (var g, h, k, m, n; d > c; ) {
600 < d - c && (g = d - c + 1, h = e - c + 1, k = Math.log(g), m = 0.5 * Math.exp(2 * k / 3), n = 0.5 * Math.sqrt(k * m * (g - m) / g) * (0 > h - g / 2 ? - 1 : 1), k = Math.max(c, Math.floor(e - h * m / g + n)), h = Math.min(d, Math.floor(e + (g - h) * m / g + n)), r(b, k, h, e, f));
g = b[e];
h = c;
m = d;
t(b, c, e);
for (0 < f(b[d], g) && t(b, c, d); h < m; ) {
t(b, h, m);
h++;
for (m--; 0 > f(b[h], g); ) h++;
for (; 0 < f(b[m], g); ) m--
}
0 === f(b[c], g) ? t(b, c, m)  : (m++, t(b, m, d));
m <= e && (c = m + 1);
e <= m && (d = m - 1)
}
}
function t(b, c, d) {
var e = b[c];
b[c] = b[d];
b[d] = e
}
c.prototype = {
all: function () {
return this.bg(this.data, [
])
},
search: function (b) {
var c = this.data,
d = [
],
e = this.cb;
if (!p(b, c.bbox)) return d;
for (var f = [
], g, h, k, m; c; ) {
g = 0;
for (h = c.children.length; g < h; g++) k = c.children[g],
m = c.Pa ? e(k)  : k.bbox,
p(b, m) && (c.Pa ? d.push(k)  : n(b, m) ? this.bg(k, d)  : f.push(k));
c = f.pop()
}
return d
},
load: function (b) {
if (!b || !b.length) return this;
if (b.length < this.gg) {
for (var c = 0, d = b.length; c < d; c++) this.ya(b[c]);
return this
}
b = this.dg(b.slice(), 0, b.length - 1, 0);
this.data.children.length ? this.data.height === b.height ? this.ig(this.data, b)  : (this.data.height < b.height && (c = this.data, this.data = b, b = c), this.fg(b, this.data.height - b.height - 1, !0))  : this.data = b;
return this
},
ya: function (b) {
b && this.fg(b, this.data.height - 1);
return this
},
clear: function () {
this.data = {
children: [
],
height: 1,
bbox: [
Infinity,
Infinity,
- Infinity,
- Infinity
],
Pa: !0
};
return this
},
remove: function (b) {
if (!b) return this;
for (var c = this.data, d = this.cb(b), e = [
], f = [
], g, h, k, m; c || e.length; ) {
c || (c = e.pop(), h = e[e.length - 1], g = f.pop(), m = !0);
if (c.Pa && (k = c.children.indexOf(b), - 1 !== k)) {
c.children.splice(k, 1);
e.push(c);
this.Yi(e);
break
}
m || c.Pa || !n(c.bbox, d) ? h ? (g++, c = h.children[g], m = !1)  : c = null : (e.push(c), f.push(g), g = 0, h = c, c = c.children[0])
}
return this
},
cb: function (b) {
return b
},
ef: function (b, c) {
return b[0] - c[0]
},
ff: function (b, c) {
return b[1] - c[1]
},
toJSON: function () {
return this.data
},
bg: function (b, c) {
for (var d = [
]; b; ) b.Pa ? c.push.apply(c, b.children)  : d.push.apply(d, b.children),
b = d.pop();
return c
},
dg: function (b, c, e, f) {
var g = e - c + 1,
h = this.af,
k;
if (g <= h) return k = {
children: b.slice(c, e + 1),
height: 1,
bbox: null,
Pa: !0
},
d(k, this.cb),
k;
f || (f = Math.ceil(Math.log(g) / Math.log(h)), h = Math.ceil(g / Math.pow(h, f - 1)));
k = {
children: [
],
height: f,
bbox: null
};
var g = Math.ceil(g / h),
h = g * Math.ceil(Math.sqrt(h)),
m,
n,
p;
for (q(b, c, e, h, this.ef); c <= e; c += h) for (n = Math.min(c + h - 1, e), q(b, c, n, g, this.ff), m = c; m <= n; m += g) p = Math.min(m + g - 1, n),
k.children.push(this.dg(b, m, p, f - 1));
d(k, this.cb);
return k
},
Xi: function (b, c, d, e) {
for (var f, g, h, m, n, p, q, r; ; ) {
e.push(c);
if (c.Pa || e.length - 1 === d) break;
q = r = Infinity;
f = 0;
for (g = c.children.length; f < g; f++) h = c.children[f],
n = k(h.bbox),
p = h.bbox,
p = (Math.max(p[2], b[2]) - Math.min(p[0], b[0])) * (Math.max(p[3], b[3]) - Math.min(p[1], b[1])) - n,
p < r ? (r = p, q = n < q ? n : q, m = h)  : p === r && n < q && (q = n, m = h);
c = m
}
return c
},
fg: function (b, c, d) {
var e = this.cb;
d = d ? b.bbox : e(b);
var e = [
],
g = this.Xi(d, this.data, c, e);
g.children.push(b);
for (f(g.bbox, d); 0 <= c; ) if (e[c].children.length > this.af) this.fj(e, c),
c--;
 else break;
this.Ui(d, e, c)
},
fj: function (b, c) {
var e = b[c],
f = e.children.length,
g = this.gg;
this.Vi(e, g, f);
f = this.Wi(e, g, f);
f = {
children: e.children.splice(f, e.children.length - f),
height: e.height
};
e.Pa && (f.Pa = !0);
d(e, this.cb);
d(f, this.cb);
c ? b[c - 1].children.push(f)  : this.ig(e, f)
},
ig: function (b, c) {
this.data = {
children: [
b,
c
],
height: b.height + 1
};
d(this.data, this.cb)
},
Wi: function (b, c, d) {
var f,
g,
h,
m,
n,
p,
q;
n = p = Infinity;
for (f = c; f <= d - c; f++) g = e(b, 0, f, this.cb),
h = e(b, f, d, this.cb),
m = Math.max(0, Math.min(g[2], h[2]) - Math.max(g[0], h[0])) * Math.max(0, Math.min(g[3], h[3]) - Math.max(g[1], h[1])),
g = k(g) + k(h),
m < n ? (n = m, q = f, p = g < p ? g : p)  : m === n && g < p && (p = g, q = f);
return q
},
Vi: function (b, c, d) {
var e = b.Pa ? this.ef : g,
f = b.Pa ? this.ff : h,
k = this.cg(b, c, d, e);
c = this.cg(b, c, d, f);
k < c && b.children.sort(e)
},
cg: function (b, c, d, g) {
b.children.sort(g);
g = this.cb;
var h = e(b, 0, c, g),
k = e(b, d - c, d, g),
n = m(h) + m(k),
p,
q;
for (p = c; p < d - c; p++) q = b.children[p],
f(h, b.Pa ? g(q)  : q.bbox),
n += m(h);
for (p = d - c - 1; p >= c; p--) q = b.children[p],
f(k, b.Pa ? g(q)  : q.bbox),
n += m(k);
return n
},
Ui: function (b, c, d) {
for (; 0 <= d; d--) f(c[d].bbox, b)
},
Yi: function (b) {
for (var c = b.length - 1, e; 0 <= c; c--) 0 === b[c].children.length ? 0 < c ? (e = b[c - 1].children, e.splice(e.indexOf(b[c]), 1))  : this.clear()  : d(b[c], this.cb)
},
$i: function (b) {
var c = [
'return a',
' - b',
';'
];
this.ef = new Function('a', 'b', c.join(b[0]));
this.ff = new Function('a', 'b', c.join(b[1]));
this.cb = new Function('a', 'return [a' + b.join(', a') + '];')
}
};
'undefined' !== typeof b ? b.ka = c : 'undefined' !== typeof self ? self.a = c : window.a = c
}) ();
xp = b.ka
}) ();
function Bp(b) {
this.c = xp(b);
this.a = {
}
}
l = Bp.prototype;
l.ya = function (b, c) {
var d = [
b[0],
b[1],
b[2],
b[3],
c
];
this.c.ya(d);
this.a[w(c)] = d
};
l.load = function (b, c) {
for (var d = Array(c.length), e = 0, f = c.length; e < f; e++) {
var g = b[e],
h = c[e],
g = [
g[0],
g[1],
g[2],
g[3],
h
];
d[e] = g;
this.a[w(h)] = g
}
this.c.load(d)
};
l.remove = function (b) {
b = w(b);
var c = this.a[b];
delete this.a[b];
return null !== this.c.remove(c)
};
function Cp(b, c, d) {
var e = w(d);
be(b.a[e].slice(0, 4), c) || (b.remove(d), b.ya(c, d))
}
function Dp(b) {
return b.c.all().map(function (b) {
return b[4]
})
}
function Ep(b, c) {
return b.c.search(c).map(function (b) {
return b[4]
})
}
l.forEach = function (b, c) {
return Fp(Dp(this), b, c)
};
function Gp(b, c, d, e) {
return Fp(Ep(b, c), d, e)
}
function Fp(b, c, d) {
for (var e, f = 0, g = b.length; f < g && !(e = c.call(d, b[f])); f++);
return e
}
l.Ka = function () {
return Qb(this.a)
};
l.clear = function () {
this.c.clear();
this.a = {
}
};
l.J = function () {
return this.c.data.bbox
};
function R(b) {
b = b || {
};
yh.call(this, {
attributions: b.attributions,
logo: b.logo,
projection: void 0,
state: 'ready',
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
});
this.T = wa;
void 0 !== b.loader ? this.T = b.loader : void 0 !== b.url && (this.T = vp(b.url, b.format));
this.pa = void 0 !== b.strategy ? b.strategy : wp;
var c = void 0 !== b.useSpatialIndex ? b.useSpatialIndex : !0;
this.a = c ? new Bp : null;
this.Z = new Bp;
this.g = {
};
this.i = {
};
this.l = {
};
this.u = {
};
this.b = null;
var d,
e;
b.features instanceof og ? (d = b.features, e = d.a)  : ga(b.features) && (e = b.features);
c ||
void 0 !== d || (d = new og(e));
void 0 !== e && Hp(this, e);
void 0 !== d && Ip(this, d)
}
y(R, yh);
l = R.prototype;
l.Ad = function (b) {
var c = w(b).toString();
if (Jp(this, c, b)) {
Kp(this, c, b);
var d = b.W();
d ? (c = d.J(), this.a && this.a.ya(c, b))  : this.g[c] = b;
this.o(new Lp('addfeature', b))
}
this.s()
};
function Kp(b, c, d) {
b.u[c] = [
C(d, 'change', b.qh, !1, b),
C(d, 'propertychange', b.qh, !1, b)
]
}
function Jp(b, c, d) {
var e = !0,
f = d.Na();
void 0 !== f ? f.toString() in b.i ? e = !1 : b.i[f.toString()] = d : b.l[c] = d;
return e
}
l.Dc = function (b) {
Hp(this, b);
this.s()
};
function Hp(b, c) {
var d,
e,
f,
g,
h = [
],
k = [
],
m = [
];
e = 0;
for (f = c.length; e < f; e++) g = c[e],
d = w(g).toString(),
Jp(b, d, g) && k.push(g);
e = 0;
for (f = k.length; e < f; e++) {
g = k[e];
d = w(g).toString();
Kp(b, d, g);
var n = g.W();
n ? (d = n.J(), h.push(d), m.push(g))  : b.g[d] = g
}
b.a && b.a.load(h, m);
e = 0;
for (f = k.length; e < f; e++) b.o(new Lp('addfeature', k[e]))
}
function Ip(b, c) {
var d = !1;
C(b, 'addfeature', function (b) {
d || (d = !0, c.push(b.feature), d = !1)
});
C(b, 'removefeature', function (b) {
d || (d = !0, c.remove(b.feature), d = !1)
});
C(c, 'add', function (b) {
d || (b = b.element, d = !0, this.Ad(b), d = !1)
}, !1, b);
C(c, 'remove', function (b) {
d || (b = b.element, d = !0, this.Qc(b), d = !1)
}, !1, b);
b.b = c
}
l.clear = function (b) {
if (b) {
for (var c in this.u) this.u[c].forEach(Zc);
this.b || (this.u = {
}, this.i = {
}, this.l = {
})
} else b = this.Nh,
this.a && (this.a.forEach(b, this), Ib(this.g, b, this));
this.b && this.b.clear();
this.a && this.a.clear();
this.Z.clear();
this.g = {
};
this.o(new Lp('clear'));
this.s()
};
l.rg = function (b, c) {
if (this.a) return this.a.forEach(b, c);
if (this.b) return this.b.forEach(b, c)
};
function Mp(b, c, d) {
b.ob([c[0],
c[1],
c[0],
c[1]], function (b) {
if (b.W().ng(c)) return d.call(void 0, b)
})
}
l.ob = function (b, c, d) {
if (this.a) return Gp(this.a, b, c, d);
if (this.b) return this.b.forEach(c, d)
};
l.sg = function (b, c, d) {
return this.ob(b, function (e) {
if (e.W().Da(b) && (e = c.call(d, e))) return e
})
};
l.yg = function () {
return this.b
};
l.ye = function () {
var b;
this.b ? b = this.b.a : this.a && (b = Dp(this.a), Qb(this.g) || lb(b, Lb(this.g)));
return b
};
l.xg = function (b) {
var c = [
];
Mp(this, b, function (b) {
c.push(b)
});
return c
};
l.lf = function (b) {
return Ep(this.a, b)
};
l.ug = function (b) {
var c = b[0],
d = b[1],
e = null,
f = [
NaN,
NaN
],
g = Infinity,
h = [
- Infinity,
- Infinity,
Infinity,
Infinity
];
Gp(this.a, h, function (b) {
var m = b.W(),
n = g;
g = m.mb(c, d, f, g);
g < n && (e = b, b = Math.sqrt(g), h[0] = c - b, h[1] = d - b, h[2] = c + b, h[3] = d + b)
});
return e
};
l.J = function () {
return this.a.J()
};
l.wg = function (b) {
b = this.i[b.toString()];
return void 0 !== b ? b : null
};
l.qh = function (b) {
b = b.target;
var c = w(b).toString(),
d = b.W();
d ? (d = d.J(), c in this.g ? (delete this.g[c], this.a && this.a.ya(d, b))  : this.a && Cp(this.a, d, b))  : c in this.g || (this.a && this.a.remove(b), this.g[c] = b);
d = b.Na();
void 0 !== d ? (d = d.toString(), c in this.l ? (delete this.l[c], this.i[d] = b)  : this.i[d] !== b && (Np(this, b), this.i[d] = b))  : c in this.l || (Np(this, b), this.l[c] = b);
this.s();
this.o(new Lp('changefeature', b))
};
l.Ka = function () {
return this.a.Ka() && Qb(this.g)
};
l.Mc = function (b, c, d) {
var e = this.Z;
b = this.pa(b, c);
var f,
g;
f = 0;
for (g = b.length; f < g; ++f) {
var h = b[f];
Gp(e, h, function (b) {
return Xd(b.extent, h)
}) || (this.T.call(this, h, c, d), e.ya(h, {
extent: h.slice()
}))
}
};
l.Qc = function (b) {
var c = w(b).toString();
c in this.g ? delete this.g[c] : this.a && this.a.remove(b);
this.Nh(b);
this.s()
};
l.Nh = function (b) {
var c = w(b).toString();
this.u[c].forEach(Zc);
delete this.u[c];
var d = b.Na();
void 0 !== d ? delete this.i[d.toString()] : delete this.l[c];
this.o(new Lp('removefeature', b))
};
function Np(b, c) {
for (var d in b.i) if (b.i[d] === c) {
delete b.i[d];
break
}
}
function Lp(b, c) {
vc.call(this, b);
this.feature = c
}
y(Lp, vc);
function Op(b) {
this.b = b.source;
this.xa = Dd();
this.g = Pi();
this.i = [
0,
0
];
this.u = null;
rn.call(this, {
attributions: b.attributions,
canvasFunction: ra(this.pj, this),
logo: b.logo,
projection: b.projection,
ratio: b.ratio,
resolutions: b.resolutions,
state: this.b.A
});
this.T = null;
this.l = void 0;
this.mh(b.style);
C(this.b, 'change', this.Mm, void 0, this)
}
y(Op, rn);
l = Op.prototype;
l.pj = function (b, c, d, e, f) {
var g = new Rm(0.5 * c / d, b, c);
this.b.Mc(b, c, f);
var h = !1;
this.b.ob(b, function (b) {
var e;
if (!(e = h)) {
var f;
(e = b.Qb()) ? f = e.call(b, c)  : this.l && (f = this.l(b, c));
if (f) {
var p,
q = !1;
e = 0;
for (p = f.length; e < p; ++e) q = Ym(g, b, f[e], Xm(c, d), this.Lm, this) || q;
e = q
} else e = !1
}
h = e
}, this);
Sm(g);
if (h) return null;
this.i[0] != e[0] || this.i[1] != e[1] ? (this.g.canvas.width = e[0], this.g.canvas.height = e[1], this.i[0] = e[0], this.i[1] = e[1])  : this.g.clearRect(0, 0, e[0], e[1]);
b = Pp(this, me(b), c, d, e);
g.b(this.g, d, b, 0, {
});
this.u =
g;
return this.g.canvas
};
l.xe = function (b, c, d, e, f) {
if (this.u) {
var g = {
};
return this.u.f(b, c, 0, e, function (b) {
var c = w(b).toString();
if (!(c in g)) return g[c] = !0,
f(b)
})
}
};
l.Im = function () {
return this.b
};
l.Jm = function () {
return this.T
};
l.Km = function () {
return this.l
};
function Pp(b, c, d, e, f) {
return ik(b.xa, f[0] / 2, f[1] / 2, e / d, - e / d, 0, - c[0], - c[1])
}
l.Lm = function () {
this.s()
};
l.Mm = function () {
Ah(this, this.b.A)
};
l.mh = function (b) {
this.T = void 0 !== b ? b : gm;
this.l = b ? em(this.T)  : void 0;
this.s()
};
function Qp(b) {
xm.call(this, b);
this.g = null;
this.j = Dd();
this.b = this.f = null
}
y(Qp, xm);
l = Qp.prototype;
l.Za = function (b, c, d, e) {
var f = this.a;
return f.fa().xe(b, c.viewState.resolution, c.viewState.rotation, c.skippedFeatureUids, function (b) {
return d.call(e, b, f)
})
};
l.sc = function (b, c, d, e) {
if (this.yd()) if (this.a.fa() instanceof Op) {
if (b = b.slice(), kk(c.pixelToCoordinateMatrix, b, b), this.Za(b, c, ue, this)) return d.call(e, this.a)
} else if (this.f || (this.f = Dd(), Jd(this.j, this.f)), c = Am(b, this.f), this.b || (this.b = Pi(1, 1)), this.b.clearRect(0, 0, 1, 1), this.b.drawImage(this.yd(), c[0], c[1], 1, 1, 0, 0, 1, 1), 0 < this.b.getImageData(0, 0, 1, 1).data[3]) return d.call(e, this.a)
};
l.yd = function () {
return this.g ? this.g.a()  : null
};
l.mf = function () {
return this.j
};
l.zd = function (b, c) {
var d = b.pixelRatio,
e = b.viewState,
f = e.center,
g = e.resolution,
h = e.rotation,
k = this.a.fa(),
m = b.viewHints,
n = b.extent;
void 0 !== c.extent && (n = oe(n, c.extent));
m[0] || m[1] || je(n) || (e = k.C(n, g, d, e.projection)) && nk(this, e) && (this.g = e);
if (this.g) {
var e = this.g,
m = e.J(),
n = e.$(),
p = e.b,
g = d * n / (g * p);
ik(this.j, d * b.size[0] / 2, d * b.size[1] / 2, g, g, h, p * (m[0] - f[0]) / n, p * (f[1] - m[3]) / n);
this.f = null;
pk(b.attributions, e.j);
qk(b, k)
}
return !0
};
function Rp(b) {
xm.call(this, b);
this.b = this.j = null;
this.B = !1;
this.i = null;
this.A = Dd();
this.g = null;
this.D = this.G = this.C = NaN;
this.l = this.f = null;
this.U = [
0,
0
]
}
y(Rp, xm);
Rp.prototype.yd = function () {
return this.j
};
Rp.prototype.mf = function () {
return this.A
};
Rp.prototype.zd = function (b, c) {
var d = b.pixelRatio,
e = b.viewState,
f = e.projection,
g = this.a,
h = g.fa(),
k = h.hb(f),
m = h.$d(),
n = Kh(k, e.resolution),
p = h.Pb(n, b.pixelRatio, f),
q = p[0] / od(k.Ha(n), this.U) [0],
r = k.$(n),
q = r / q,
t = e.center,
x;
r == e.resolution ? (t = sk(t, r, b.size), x = ne(t, r, e.rotation, b.size))  : x = b.extent;
void 0 !== c.extent && (x = oe(x, c.extent));
if (je(x)) return !1;
var z = Hh(k, x, r),
B = p[0] * kg(z),
A = p[1] * jg(z),
v,
O;
this.j ? (v = this.j, O = this.i, this.b[0] < B || this.b[1] < A || this.G !== p[0] || this.D !== p[1] || this.B && (this.b[0] > B || this.b[1] >
A) ? (v.width = B, v.height = A, this.b = [
B,
A
], this.B = !Bm(this.b), this.f = null)  : (B = this.b[0], A = this.b[1], (v = n != this.C) || (v = this.f, v = !(v.a <= z.a && z.f <= v.f && v.c <= z.c && z.b <= v.b)), v && (this.f = null)))  : (O = Pi(B, A), this.j = O.canvas, this.b = [
B,
A
], this.i = O, this.B = !Bm(this.b));
var K,
I;
this.f ? (A = this.f, B = kg(A))  : (B /= p[0], A /= p[1], K = z.a - Math.floor((B - kg(z)) / 2), I = z.c - Math.floor((A - jg(z)) / 2), this.C = n, this.G = p[0], this.D = p[1], this.f = new gg(K, K + B - 1, I, I + A - 1), this.l = Array(B * A), A = this.f);
v = {
};
v[n] = {
};
var G = [
],
la = this.bd(h, f, v),
Ea = g.b(),
L = Od(),
za = new gg(0, 0, 0, 0),
Ra,
Ka,
kb;
for (I = z.a; I <= z.f; ++I) for (kb = z.c; kb <= z.b; ++kb) Ka = h.Ob(n, I, kb, d, f),
K = Ka.state,
2 == K || 4 == K || 3 == K && !Ea ? v[n][fg(Ka.a)] = Ka : (Ra = Eh(k, Ka.a, la, za, L), Ra || (G.push(Ka), (Ra = Gh(k, Ka.a, za, L)) && la(n + 1, Ra)));
la = 0;
for (Ra = G.length; la < Ra; ++la) Ka = G[la],
I = p[0] * (Ka.a[1] - A.a),
kb = p[1] * (A.b - Ka.a[2]),
O.clearRect(I, kb, p[0], p[1]);
G = Object.keys(v).map(Number);
ob(G);
var cb = h.pa,
Rc = he(k.Aa([n,
A.a,
A.b], L)),
sc,
Oe,
Aj,
ci,
$f,
pm,
la = 0;
for (Ra = G.length; la < Ra; ++la) if (sc = G[la], p = h.Pb(sc, d, f), ci = v[sc], sc ==
n) for (Aj in ci) Ka = ci[Aj],
Oe = (Ka.a[2] - A.c) * B + (Ka.a[1] - A.a),
this.l[Oe] != Ka && (I = p[0] * (Ka.a[1] - A.a), kb = p[1] * (A.b - Ka.a[2]), K = Ka.state, 4 != K && (3 != K || Ea) && cb || O.clearRect(I, kb, p[0], p[1]), 2 == K && O.drawImage(Ka.Sa(), m, m, p[0], p[1], I, kb, p[0], p[1]), this.l[Oe] = Ka);
 else for (Aj in sc = k.$(sc) / r, ci) for (Ka = ci[Aj], Oe = k.Aa(Ka.a, L), I = (Oe[0] - Rc[0]) / q, kb = (Rc[1] - Oe[3]) / q, pm = sc * p[0], $f = sc * p[1], K = Ka.state, 4 != K && cb || O.clearRect(I, kb, pm, $f), 2 == K && O.drawImage(Ka.Sa(), m, m, p[0], p[1], I, kb, pm, $f), Ka = Fh(k, Oe, n, za), K = Math.max(Ka.a, A.a), kb = Math.min(Ka.f, A.f), I = Math.max(Ka.c, A.c), Ka = Math.min(Ka.b, A.b); K <= kb; ++K) for ($f = I; $f <= Ka; ++$f) Oe = ($f - A.c) * B + (K - A.a),
this.l[Oe] = void 0;
rk(b.usedTiles, h, n, z);
tk(b, h, k, d, f, x, n, g.a());
ok(b, h);
qk(b, h);
ik(this.A, d * b.size[0] / 2, d * b.size[1] / 2, d * q / e.resolution, d * q / e.resolution, e.rotation, (Rc[0] - t[0]) / q, (t[1] - Rc[1]) / q);
this.g = null;
return !0
};
Rp.prototype.sc = function (b, c, d, e) {
if (this.i && (this.g || (this.g = Dd(), Jd(this.A, this.g)), b = Am(b, this.g), 0 < this.i.getImageData(b[0], b[1], 1, 1).data[3])) return d.call(e, this.a)
};
function Sp(b) {
xm.call(this, b);
this.f = !1;
this.B = - 1;
this.l = NaN;
this.j = Od();
this.b = this.i = null;
this.g = Pi()
}
y(Sp, xm);
Sp.prototype.u = function (b, c, d) {
var e = b.extent,
f = b.pixelRatio,
g = c.rb ? b.skippedFeatureUids : {
},
h = b.viewState,
k = h.projection,
h = h.rotation,
m = k.J(),
n = this.a.fa(),
p = zm(this, b, 0);
ym(this, 'precompose', d, b, p);
var q = this.b;
if (q && !q.Ka()) {
var r;
ed(this.a, 'render') ? (this.g.canvas.width = d.canvas.width, this.g.canvas.height = d.canvas.height, r = this.g)  : r = d;
var t = r.globalAlpha;
r.globalAlpha = c.opacity;
q.b(r, f, p, h, g);
if (n.S && k.b && !Xd(m, e)) {
c = e[0];
k = ke(m);
for (n = 0; c < m[0]; ) --n,
p = k * n,
p = zm(this, b, p),
q.b(r, f, p, h, g),
c += k;
n = 0;
for (c = e[2]; c > m[2]; ) ++n,
p = k * n,
p = zm(this, b, p),
q.b(r, f, p, h, g),
c -= k;
p = zm(this, b, 0)
}
r != d && (ym(this, 'render', r, b, p), d.drawImage(r.canvas, 0, 0));
r.globalAlpha = t
}
ym(this, 'postcompose', d, b, p)
};
Sp.prototype.Za = function (b, c, d, e) {
if (this.b) {
var f = c.viewState.resolution,
g = c.viewState.rotation,
h = this.a,
k = c.layerStates[w(h)],
m = {
};
return this.b.f(b, f, g, k.rb ? c.skippedFeatureUids : {
}, function (b) {
var c = w(b).toString();
if (!(c in m)) return m[c] = !0,
d.call(e, b, h)
})
}
};
Sp.prototype.A = function () {
mk(this)
};
Sp.prototype.zd = function (b) {
function c(b) {
var c,
e = b.Qb();
e ? c = e.call(b, n)  : (e = d.b) && (c = e(b, n));
if (c) {
if (c) {
var f,
g = !1,
e = 0;
for (f = c.length; e < f; ++e) g = Ym(r, b, c[e], Xm(n, p), this.A, this) || g;
b = g
} else b = !1;
this.f = this.f || b
}
}
var d = this.a,
e = d.fa();
pk(b.attributions, e.j);
qk(b, e);
var f = b.viewHints[0],
g = b.viewHints[1],
h = d.i,
k = d.l;
if (!this.f && !h && f || !k && g) return !0;
var m = b.extent,
k = b.viewState,
f = k.projection,
n = k.resolution,
p = b.pixelRatio,
g = d.c,
q = d.a,
h = im(d);
void 0 === h && (h = Wm);
m = Sd(m, q * n);
q = k.projection.J();
e.S && k.projection.b &&
!Xd(q, b.extent) && (b = Math.max(ke(m) / 2, ke(q)), m[0] = q[0] - b, m[2] = q[2] + b);
if (!this.f && this.l == n && this.B == g && this.i == h && Xd(this.j, m)) return !0;
uc(this.b);
this.b = null;
this.f = !1;
var r = new Rm(0.5 * n / p, m, n, d.a);
e.Mc(m, n, f);
if (h) {
var t = [
];
e.ob(m, function (b) {
t.push(b)
}, this);
ob(t, h);
t.forEach(c, this)
} else e.ob(m, c, this);
Sm(r);
this.l = n;
this.B = g;
this.i = h;
this.j = m;
this.b = r;
return !0
};
function Tp(b, c, d, e, f) {
wh.call(this, b, c);
this.j = e;
this.c = this.g = null;
this.b = {
jd: !1,
Sf: null,
Oh: - 1,
Gd: null
};
this.B = f;
this.i = d
}
y(Tp, wh);
l = Tp.prototype;
l.X = function () {
Tp.da.X.call(this)
};
l.Hl = function () {
return this.j
};
l.tb = function () {
return this.i
};
l.load = function () {
0 == this.state && (this.state = 1, xh(this), this.B(this, this.i), this.l(null, NaN, null))
};
l.Yh = function (b) {
this.l = b
};
function Up(b, c) {
var d = /\{z\}/g,
e = /\{x\}/g,
f = /\{y\}/g,
g = /\{-y\}/g;
return function (h) {
if (h) return b.replace(d, h[0].toString()).replace(e, h[1].toString()).replace(f, function () {
return ( - h[2] - 1).toString()
}).replace(g, function () {
return (jg(c.c ? c.c[h[0]] : null) + h[2]).toString()
})
}
}
function Vp(b, c) {
for (var d = b.length, e = Array(d), f = 0; f < d; ++f) e[f] = Up(b[f], c);
return Wp(e)
}
function Wp(b) {
return 1 === b.length ? b[0] : function (c, d, e) {
if (c) return b[pd((c[1] << c[0]) + c[2], b.length)](c, d, e)
}
}
function Xp() {
}
function Yp(b) {
var c = [
],
d = /\{(\d)-(\d)\}/.exec(b) || /\{([a-z])-([a-z])\}/.exec(b);
if (d) {
var e = d[2].charCodeAt(0),
f;
for (f = d[1].charCodeAt(0); f <= e; ++f) c.push(b.replace(d[0], String.fromCharCode(f)))
} else c.push(b);
return c
};
function Zp(b) {
Ph.call(this, {
attributions: b.attributions,
cf: b.cf,
extent: b.extent,
logo: b.logo,
opaque: b.opaque,
projection: b.projection,
state: b.state ? b.state : void 0,
tileGrid: b.tileGrid,
tilePixelRatio: b.tilePixelRatio,
wrapX: b.wrapX
});
this.tileLoadFunction = b.tileLoadFunction;
this.tileUrlFunction = b.tileUrlFunction ? b.tileUrlFunction : Xp;
this.urls = null;
b.urls ? b.tileUrlFunction ? this.urls = b.urls : this.Va(b.urls)  : b.url && this.Ua(b.url);
b.tileUrlFunction && this.Ja(b.tileUrlFunction)
}
y(Zp, Ph);
l = Zp.prototype;
l.Wa = function () {
return this.tileLoadFunction
};
l.Xa = function () {
return this.tileUrlFunction
};
l.Ya = function () {
return this.urls
};
l.ph = function (b) {
b = b.target;
switch (b.state) {
case 1:
this.o(new Sh('tileloadstart', b));
break;
case 2:
this.o(new Sh('tileloadend', b));
break;
case 3:
this.o(new Sh('tileloaderror', b))
}
};
l.bb = function (b) {
this.a.clear();
this.tileLoadFunction = b;
this.s()
};
l.Ja = function (b) {
this.a.clear();
this.tileUrlFunction = b;
this.s()
};
l.Ua = function (b) {
this.Ja(Vp(Yp(b), this.tileGrid));
this.urls = [
b
]
};
l.Va = function (b) {
this.Ja(Vp(b, this.tileGrid));
this.urls = b
};
l.Xf = function (b, c, d) {
b = this.gb(b, c, d);
sh(this.a, b) && this.a.get(b)
};
function $p(b) {
Zp.call(this, {
attributions: b.attributions,
cf: 128,
extent: b.extent,
logo: b.logo,
opaque: b.opaque,
projection: b.projection,
state: b.state ? b.state : void 0,
tileGrid: b.tileGrid,
tileLoadFunction: b.tileLoadFunction ? b.tileLoadFunction : aq,
tileUrlFunction: b.tileUrlFunction,
tilePixelRatio: b.tilePixelRatio,
url: b.url,
urls: b.urls,
wrapX: void 0 === b.wrapX ? !0 : b.wrapX
});
this.g = b.format ? b.format : null;
this.tileClass = b.tileClass ? b.tileClass : Tp
}
y($p, Zp);
$p.prototype.Ob = function (b, c, d, e, f) {
var g = this.gb(b, c, d);
if (sh(this.a, g)) return this.a.get(g);
b = [
b,
c,
d
];
e = (c = Rh(this, b, f)) ? this.tileUrlFunction(c, e, f)  : void 0;
e = new this.tileClass(b, void 0 !== e ? 0 : 4, void 0 !== e ? e : '', this.g, this.tileLoadFunction);
C(e, 'change', this.ph, !1, this);
this.a.set(g, e);
return e
};
function aq(b, c) {
b.Yh(up(c, b.j))
};
function bq(b) {
xm.call(this, b);
this.f = Pi();
this.b = !1;
this.g = [
];
this.j = Od();
this.i = [
NaN,
NaN
];
this.B = Dd()
}
y(bq, xm);
bq.prototype.u = function (b, c, d) {
var e = b.pixelRatio,
f = c.rb ? b.skippedFeatureUids : {
},
g = b.viewState,
h = g.center,
k = g.projection,
m = g.resolution,
n = g.rotation,
p = this.a,
q = p.fa(),
r = zm(this, b, 0);
ym(this, 'precompose', d, b, r);
ed(p, 'render') ? (this.f.canvas.width = d.canvas.width, this.f.canvas.height = d.canvas.height, p = this.f)  : p = d;
var t = p.globalAlpha;
p.globalAlpha = c.opacity;
c = this.g;
var x = q.tileGrid,
z,
B,
A,
v,
O,
K;
B = 0;
for (A = c.length; B < A; ++B) v = c[B],
z = v.a[0],
O = x.Ha(z),
K = q.Pb(z, e, k),
O = K[0] / od(O, this.i) [0],
z = x.$(z),
z /= O,
'tile-pixels' ==
v.c.c && (r = he(x.Aa(v.a, this.j)), r = ik(this.B, e * b.size[0] / 2, e * b.size[1] / 2, e * z / m, e * z / m, g.rotation, (r[0] - h[0]) / z, (h[1] - r[1]) / z)),
v.b.Gd.b(p, e, r, n, f);
r = zm(this, b, 0);
p != d && (ym(this, 'render', p, b, r), d.drawImage(p.canvas, 0, 0));
p.globalAlpha = t;
ym(this, 'postcompose', d, b, r)
};
function cq(b, c, d, e) {
function f(b) {
var c;
b.Qb() ? c = b.Qb().call(b, t)  : d.b && (c = (0, d.b) (b, t));
if (c) {
var e = z,
f = x;
if (c) {
var g,
h,
m = !1;
g = 0;
for (h = c.length; g < h; ++g) m = Ym(f, b, c[g], e, this.l, this) || m;
b = m
} else b = !1;
this.b = this.b || b;
k.jd = k.jd || b
}
}
var g = d.c,
h = im(d) || null,
k = c.b;
if (k.jd || k.Oh != g || k.Sf != h) {
uc(k.Gd);
k.Gd = null;
k.jd = !1;
var m = d.fa(),
n = m.tileGrid,
p = c.a,
q = 'tile-pixels' == c.c.c,
r;
q ? (r = m.Pb(p[0], e, c.c), r = [
0,
0,
r[0],
r[1]
])  : r = n.Aa(p);
var t = n.$(p[0]),
m = q ? m.C : t;
k.jd = !1;
var x = new Rm(0, r, m, d.a),
z = Xm(m, e);
c = c.g;
h && h !==
k.Sf && c.sort(h);
c.forEach(f, b);
Sm(x);
k.Oh = g;
k.Sf = h;
k.Gd = x
}
}
bq.prototype.Za = function (b, c, d, e) {
var f = c.viewState.resolution,
g = c.viewState.rotation,
h = this.a,
k = c.layerStates[w(h)],
m = {
},
n = this.g,
p = h.fa(),
q = p.tileGrid,
r,
t,
x,
z,
B,
A,
v;
x = 0;
for (z = n.length; x < z; ++x) A = n[x],
t = A.a,
B = p.tileGrid.Aa(t, this.j),
Vd(B, b) && ('tile-pixels' === A.c.c ? (B = he(B), f = p.C, v = q.$(t[0]) / f, od(q.Ha(t[0])), t = [
(b[0] - B[0]) / v,
(B[1] - b[1]) / v
])  : t = b, A = A.b.Gd, r = r || A.f(t, f, g, k.rb ? c.skippedFeatureUids : {
}, function (b) {
var c = w(b).toString();
if (!(c in m)) return m[c] = !0,
d.call(e, b, h)
}));
return r
};
bq.prototype.l = function () {
mk(this)
};
bq.prototype.zd = function (b, c) {
var d = this.a,
e = d.fa();
pk(b.attributions, e.j);
qk(b, e);
var f = b.viewHints[0],
g = b.viewHints[1],
h = d.i,
k = d.l;
if (!this.b && !h && f || !k && g) return !0;
g = b.extent;
c.extent && (g = oe(g, c.extent));
if (je(g)) return !1;
for (var f = b.viewState, h = f.projection, k = f.resolution, f = b.pixelRatio, m = e.tileGrid, n = m.a, p = n.length - 1; 0 < p && n[p] < k; ) --p;
n = Fh(m, g, p);
rk(b.usedTiles, e, p, n);
tk(b, e, m, f, h, g, p, d.g());
ok(b, e);
g = {
};
g[p] = {
};
var q = this.bd(e, h, g),
r = d.U(),
t = this.j,
x = new gg(0, 0, 0, 0),
z,
B,
A;
for (B = n.a; B <= n.f; ++B) for (A =
n.c; A <= n.b; ++A) k = e.Ob(p, B, A, f, h),
z = k.state,
2 == z || 4 == z || 3 == z && !r ? g[p][fg(k.a)] = k : (z = Eh(m, k.a, q, x, t), z || (k = Gh(m, k.a, x, t)) && q(p + 1, k));
this.b = !1;
e = Object.keys(g).map(Number);
e.sort();
for (var h = [
], v, m = 0, p = e.length; m < p; ++m) for (v in k = e[m], n = g[k], n) k = n[v],
2 == k.state && (h.push(k), cq(this, k, d, f));
this.g = h;
return !0
};
function dq(b, c) {
Ak.call(this, 0, c);
this.b = Pi();
this.a = this.b.canvas;
this.a.style.width = '100%';
this.a.style.height = '100%';
this.a.className = 'ol-unselectable';
Ng(b, this.a, 0);
this.c = !0;
this.g = Dd()
}
y(dq, Ak);
dq.prototype.gf = function (b) {
return b instanceof Sl ? new Qp(b)  : b instanceof F ? new Rp(b)  : b instanceof J ? new bq(b)  : b instanceof H ? new Sp(b)  : null
};
function eq(b, c, d) {
var e = b.j,
f = b.b;
if (ed(e, c)) {
var g = d.extent,
h = d.pixelRatio,
k = d.viewState.rotation,
m = d.pixelRatio,
n = d.viewState,
p = n.resolution;
b = ik(b.g, b.a.width / 2, b.a.height / 2, m / p, - m / p, - n.rotation, - n.center[0], - n.center[1]);
g = new jm(f, h, g, b, k);
e.o(new dk(c, e, g, d, f, null));
wm(g)
}
}
dq.prototype.V = function () {
return 'canvas'
};
dq.prototype.Me = function (b) {
if (b) {
var c = this.b,
d = b.size[0] * b.pixelRatio,
e = b.size[1] * b.pixelRatio;
this.a.width != d || this.a.height != e ? (this.a.width = d, this.a.height = e)  : c.clearRect(0, 0, this.a.width, this.a.height);
Bk(b);
eq(this, 'precompose', b);
d = b.layerStatesArray;
qb(d);
var e = b.viewState.resolution,
f,
g,
h,
k;
f = 0;
for (g = d.length; f < g; ++f) k = d[f],
h = k.layer,
h = Dk(this, h),
fk(k, e) && 'ready' == k.S && h.zd(b, k) && h.u(b, k, c);
eq(this, 'postcompose', b);
this.c || (ih(this.a, !0), this.c = !0);
Ek(this, b);
b.postRenderFunctions.push(Ck)
} else this.c && (ih(this.a, !1), this.c = !1)
};
function fq(b, c) {
lk.call(this, b);
this.target = c
}
y(fq, lk);
fq.prototype.g = wa;
fq.prototype.l = wa;
function gq(b) {
var c = Kg('DIV');
c.style.position = 'absolute';
fq.call(this, b, c);
this.b = null;
this.f = Fd()
}
y(gq, fq);
gq.prototype.Za = function (b, c, d, e) {
var f = this.a;
return f.fa().xe(b, c.viewState.resolution, c.viewState.rotation, c.skippedFeatureUids, function (b) {
return d.call(e, b, f)
})
};
gq.prototype.g = function () {
Mg(this.target);
this.b = null
};
gq.prototype.j = function (b, c) {
var d = b.viewState,
e = d.center,
f = d.resolution,
g = d.rotation,
h = this.b,
k = this.a.fa(),
m = b.viewHints,
n = b.extent;
void 0 !== c.extent && (n = oe(n, c.extent));
m[0] || m[1] || je(n) || (d = k.C(n, f, b.pixelRatio, d.projection)) && nk(this, d) && (h = d);
h && (m = h.J(), n = h.$(), d = Dd(), ik(d, b.size[0] / 2, b.size[1] / 2, n / f, n / f, g, (m[0] - e[0]) / n, (e[1] - m[3]) / n), h != this.b && (e = h.a(this), e.style.maxWidth = 'none', e.style.position = 'absolute', Mg(this.target), this.target.appendChild(e), this.b = h), jk(d, this.f) || (Ti(this.target, d), Gd(this.f, d)), pk(b.attributions, h.j), qk(b, k));
return !0
};
function hq(b) {
var c = Kg('DIV');
c.style.position = 'absolute';
fq.call(this, b, c);
this.f = !0;
this.B = 1;
this.i = 0;
this.b = {
}
}
y(hq, fq);
hq.prototype.g = function () {
Mg(this.target);
this.i = 0
};
hq.prototype.j = function (b, c) {
if (!c.visible) return this.f && (ih(this.target, !1), this.f = !1),
!0;
var d = b.pixelRatio,
e = b.viewState,
f = e.projection,
g = this.a,
h = g.fa(),
k = h.hb(f),
m = h.$d(),
n = Kh(k, e.resolution),
p = k.$(n),
q = e.center,
r;
p == e.resolution ? (q = sk(q, p, b.size), r = ne(q, p, e.rotation, b.size))  : r = b.extent;
void 0 !== c.extent && (r = oe(r, c.extent));
var p = Hh(k, r, p),
t = {
};
t[n] = {
};
var x = this.bd(h, f, t),
z = g.b(),
B = Od(),
A = new gg(0, 0, 0, 0),
v,
O,
K,
I;
for (K = p.a; K <= p.f; ++K) for (I = p.c; I <= p.b; ++I) v = h.Ob(n, K, I, d, f),
O = v.state,
2 == O ? t[n][fg(v.a)] =
v : 4 == O || 3 == O && !z || (O = Eh(k, v.a, x, A, B), O || (v = Gh(k, v.a, A, B)) && x(n + 1, v));
var G;
if (this.i != h.c) {
for (G in this.b) z = this.b[ + G],
Og(z.target);
this.b = {
};
this.i = h.c
}
B = Object.keys(t).map(Number);
ob(B);
var x = {
},
la;
K = 0;
for (I = B.length; K < I; ++K) {
G = B[K];
G in this.b ? z = this.b[G] : (z = k.fe(q, G), z = new iq(k, z), x[G] = !0, this.b[G] = z);
G = t[G];
for (la in G) {
v = z;
O = G[la];
var Ea = m,
L = O.a,
za = L[0],
Ra = L[1],
Ka = L[2],
L = fg(L);
if (!(L in v.c)) {
var za = od(v.g.Ha(za), v.l),
kb = O.Sa(v),
cb = kb.style;
cb.maxWidth = 'none';
var Rc = void 0,
sc = void 0;
0 < Ea ? (Rc =
Kg('DIV'), sc = Rc.style, sc.overflow = 'hidden', sc.width = za[0] + 'px', sc.height = za[1] + 'px', cb.position = 'absolute', cb.left = - Ea + 'px', cb.top = - Ea + 'px', cb.width = za[0] + 2 * Ea + 'px', cb.height = za[1] + 2 * Ea + 'px', Rc.appendChild(kb))  : (cb.width = za[0] + 'px', cb.height = za[1] + 'px', Rc = kb, sc = cb);
sc.position = 'absolute';
sc.left = (Ra - v.b[1]) * za[0] + 'px';
sc.top = (v.b[2] - Ka) * za[1] + 'px';
v.a || (v.a = document.createDocumentFragment());
v.a.appendChild(Rc);
v.c[L] = O
}
}
z.a && (z.target.appendChild(z.a), z.a = null)
}
m = Object.keys(this.b).map(Number);
ob(m);
K = Dd();
la = 0;
for (B = m.length; la < B; ++la) if (G = m[la], z = this.b[G], G in t) if (v = z.$(), I = z.Ca(), ik(K, b.size[0] / 2, b.size[1] / 2, v / e.resolution, v / e.resolution, e.rotation, (I[0] - q[0]) / v, (q[1] - I[1]) / v), z.setTransform(K), G in x) {
for (--G; 0 <= G; --G) if (G in this.b) {
I = this.b[G].target;
I.parentNode && I.parentNode.insertBefore(z.target, I.nextSibling);
break
}
0 > G && Ng(this.target, z.target, 0)
} else {
if (!b.viewHints[0] && !b.viewHints[1]) {
O = Fh(z.g, r, z.b[0], A);
G = [
];
v = I = void 0;
for (v in z.c) I = z.c[v],
O.contains(I.a) || G.push(I);
Ea =
O = void 0;
O = 0;
for (Ea = G.length; O < Ea; ++O) I = G[O],
v = fg(I.a),
Og(I.Sa(z)),
delete z.c[v]
}
} else Og(z.target),
delete this.b[G];
c.opacity != this.B && (this.B = this.target.style.opacity = c.opacity);
c.visible && !this.f && (ih(this.target, !0), this.f = !0);
rk(b.usedTiles, h, n, p);
tk(b, h, k, d, f, r, n, g.a());
ok(b, h);
qk(b, h);
return !0
};
function iq(b, c) {
this.target = Kg('DIV');
this.target.style.position = 'absolute';
this.target.style.width = '100%';
this.target.style.height = '100%';
this.g = b;
this.b = c;
this.j = he(b.Aa(c));
this.i = b.$(c[0]);
this.c = {
};
this.a = null;
this.f = Fd();
this.l = [
0,
0
]
}
iq.prototype.Ca = function () {
return this.j
};
iq.prototype.$ = function () {
return this.i
};
iq.prototype.setTransform = function (b) {
jk(b, this.f) || (Ti(this.target, b), Gd(this.f, b))
};
function jq(b) {
this.i = Pi();
var c = this.i.canvas;
c.style.maxWidth = 'none';
c.style.position = 'absolute';
fq.call(this, b, c);
this.f = !1;
this.C = - 1;
this.A = NaN;
this.B = Od();
this.b = this.u = null;
this.G = Dd();
this.D = Dd()
}
y(jq, fq);
jq.prototype.l = function (b, c) {
var d = b.viewState,
e = d.center,
f = d.rotation,
g = d.resolution,
d = b.pixelRatio,
h = b.size[0],
k = b.size[1],
m = h * d,
n = k * d,
e = ik(this.G, d * h / 2, d * k / 2, d / g, - d / g, - f, - e[0], - e[1]),
g = this.i;
g.canvas.width = m;
g.canvas.height = n;
h = ik(this.D, 0, 0, 1 / d, 1 / d, 0, - (m - h) / 2 * d, - (n - k) / 2 * d);
Ti(g.canvas, h);
kq(this, 'precompose', b, e);
(h = this.b) && !h.Ka() && (g.globalAlpha = c.opacity, h.b(g, d, e, f, c.rb ? b.skippedFeatureUids : {
}), kq(this, 'render', b, e));
kq(this, 'postcompose', b, e)
};
function kq(b, c, d, e) {
var f = b.i;
b = b.a;
ed(b, c) && (e = new jm(f, d.pixelRatio, d.extent, e, d.viewState.rotation), b.o(new dk(c, b, e, d, f, null)), wm(e))
}
jq.prototype.Za = function (b, c, d, e) {
if (this.b) {
var f = c.viewState.resolution,
g = c.viewState.rotation,
h = this.a,
k = c.layerStates[w(h)],
m = {
};
return this.b.f(b, f, g, k.rb ? c.skippedFeatureUids : {
}, function (b) {
var c = w(b).toString();
if (!(c in m)) return m[c] = !0,
d.call(e, b, h)
})
}
};
jq.prototype.S = function () {
mk(this)
};
jq.prototype.j = function (b) {
function c(b) {
var c,
e = b.Qb();
e ? c = e.call(b, m)  : (e = d.b) && (c = e(b, m));
if (c) {
if (c) {
var f,
g = !1,
e = 0;
for (f = c.length; e < f; ++e) g = Ym(p, b, c[e], Xm(m, n), this.S, this) || g;
b = g
} else b = !1;
this.f = this.f || b
}
}
var d = this.a,
e = d.fa();
pk(b.attributions, e.j);
qk(b, e);
var f = b.viewHints[0],
g = b.viewHints[1],
h = d.i,
k = d.l;
if (!this.f && !h && f || !k && g) return !0;
var g = b.extent,
h = b.viewState,
f = h.projection,
m = h.resolution,
n = b.pixelRatio;
b = d.c;
k = d.a;
h = im(d);
void 0 === h && (h = Wm);
g = Sd(g, k * m);
if (!this.f && this.A == m && this.C ==
b && this.u == h && Xd(this.B, g)) return !0;
uc(this.b);
this.b = null;
this.f = !1;
var p = new Rm(0.5 * m / n, g, m, d.a);
e.Mc(g, m, f);
if (h) {
var q = [
];
e.ob(g, function (b) {
q.push(b)
}, this);
ob(q, h);
q.forEach(c, this)
} else e.ob(g, c, this);
Sm(p);
this.A = m;
this.C = b;
this.u = h;
this.B = g;
this.b = p;
return !0
};
function lq(b, c) {
Ak.call(this, 0, c);
this.b = Pi();
var d = this.b.canvas;
d.style.position = 'absolute';
d.style.width = '100%';
d.style.height = '100%';
d.className = 'ol-unselectable';
Ng(b, d, 0);
this.g = Dd();
this.a = Kg('DIV');
this.a.className = 'ol-unselectable';
d = this.a.style;
d.position = 'absolute';
d.width = '100%';
d.height = '100%';
C(this.a, 'touchstart', xc);
Ng(b, this.a, 0);
this.c = !0
}
y(lq, Ak);
lq.prototype.X = function () {
Og(this.a);
lq.da.X.call(this)
};
lq.prototype.gf = function (b) {
if (b instanceof Sl) b = new gq(b);
 else if (b instanceof F) b = new hq(b);
 else if (b instanceof H) b = new jq(b);
 else return null;
return b
};
function mq(b, c, d) {
var e = b.j;
if (ed(e, c)) {
var f = d.extent,
g = d.pixelRatio,
h = d.viewState,
k = h.rotation,
m = b.b,
n = m.canvas;
ik(b.g, n.width / 2, n.height / 2, g / h.resolution, - g / h.resolution, - h.rotation, - h.center[0], - h.center[1]);
b = new jm(m, g, f, b.g, k);
e.o(new dk(c, e, b, d, m, null));
wm(b)
}
}
lq.prototype.V = function () {
return 'dom'
};
lq.prototype.Me = function (b) {
if (b) {
var c = this.j;
if (ed(c, 'precompose') || ed(c, 'postcompose')) {
var c = this.b.canvas,
d = b.pixelRatio;
c.width = b.size[0] * d;
c.height = b.size[1] * d
}
mq(this, 'precompose', b);
c = b.layerStatesArray;
qb(c);
var d = b.viewState.resolution,
e,
f,
g,
h;
e = 0;
for (f = c.length; e < f; ++e) h = c[e],
g = h.layer,
g = Dk(this, g),
Ng(this.a, g.target, e),
fk(h, d) && 'ready' == h.S ? g.j(b, h) && g.l(b, h)  : g.g();
var c = b.layerStates,
k;
for (k in this.f) k in c || (g = this.f[k], Og(g.target));
this.c || (ih(this.a, !0), this.c = !0);
Bk(b);
Ek(this, b);
b.postRenderFunctions.push(Ck);
mq(this, 'postcompose', b)
} else this.c && (ih(this.a, !1), this.c = !1)
};
function nq(b) {
this.a = b
}
function oq(b) {
this.a = b
}
y(oq, nq);
oq.prototype.V = function () {
return 35632
};
function pq(b) {
this.a = b
}
y(pq, nq);
pq.prototype.V = function () {
return 35633
};
function qq() {
this.a = 'precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}'
}
y(qq, oq);
ea(qq);
function rq() {
this.a = 'varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.,0.);gl_Position=h*vec4(c,0.,1.)+offsets;a=d;b=f;}'
}
y(rq, pq);
ea(rq);
function sq(b, c) {
this.l = b.getUniformLocation(c, 'j');
this.B = b.getUniformLocation(c, 'i');
this.j = b.getUniformLocation(c, 'k');
this.i = b.getUniformLocation(c, 'h');
this.a = b.getAttribLocation(c, 'e');
this.c = b.getAttribLocation(c, 'f');
this.f = b.getAttribLocation(c, 'c');
this.b = b.getAttribLocation(c, 'g');
this.g = b.getAttribLocation(c, 'd')
};
function tq(b) {
this.a = void 0 !== b ? b : [
]
};
function uq(b, c) {
this.u = b;
this.a = c;
this.c = {
};
this.j = {
};
this.g = {
};
this.l = this.B = this.f = this.i = null;
(this.b = vb(va, 'OES_element_index_uint')) && c.getExtension('OES_element_index_uint');
C(this.u, 'webglcontextlost', this.Hn, !1, this);
C(this.u, 'webglcontextrestored', this.In, !1, this)
}
function vq(b, c, d) {
var e = b.a,
f = d.a,
g = w(d);
if (g in b.c) e.bindBuffer(c, b.c[g].buffer);
 else {
var h = e.createBuffer();
e.bindBuffer(c, h);
var k;
34962 == c ? k = new Float32Array(f)  : 34963 == c && (k = b.b ? new Uint32Array(f)  : new Uint16Array(f));
e.bufferData(c, k, 35044);
b.c[g] = {
Eb: d,
buffer: h
}
}
}
function wq(b, c) {
var d = b.a,
e = w(c),
f = b.c[e];
d.isContextLost() || d.deleteBuffer(f.buffer);
delete b.c[e]
}
l = uq.prototype;
l.X = function () {
var b = this.a;
b.isContextLost() || (Ib(this.c, function (c) {
b.deleteBuffer(c.buffer)
}), Ib(this.g, function (c) {
b.deleteProgram(c)
}), Ib(this.j, function (c) {
b.deleteShader(c)
}), b.deleteFramebuffer(this.f), b.deleteRenderbuffer(this.l), b.deleteTexture(this.B))
};
l.Gn = function () {
return this.a
};
function xq(b) {
if (!b.f) {
var c = b.a,
d = c.createFramebuffer();
c.bindFramebuffer(c.FRAMEBUFFER, d);
var e = yq(c, 1, 1),
f = c.createRenderbuffer();
c.bindRenderbuffer(c.RENDERBUFFER, f);
c.renderbufferStorage(c.RENDERBUFFER, c.DEPTH_COMPONENT16, 1, 1);
c.framebufferTexture2D(c.FRAMEBUFFER, c.COLOR_ATTACHMENT0, c.TEXTURE_2D, e, 0);
c.framebufferRenderbuffer(c.FRAMEBUFFER, c.DEPTH_ATTACHMENT, c.RENDERBUFFER, f);
c.bindTexture(c.TEXTURE_2D, null);
c.bindRenderbuffer(c.RENDERBUFFER, null);
c.bindFramebuffer(c.FRAMEBUFFER, null);
b.f = d;
b.B = e;
b.l = f
}
return b.f
}
function zq(b, c) {
var d = w(c);
if (d in b.j) return b.j[d];
var e = b.a,
f = e.createShader(c.V());
e.shaderSource(f, c.a);
e.compileShader(f);
return b.j[d] = f
}
function Aq(b, c, d) {
var e = w(c) + '/' + w(d);
if (e in b.g) return b.g[e];
var f = b.a,
g = f.createProgram();
f.attachShader(g, zq(b, c));
f.attachShader(g, zq(b, d));
f.linkProgram(g);
return b.g[e] = g
}
l.Hn = function () {
Rb(this.c);
Rb(this.j);
Rb(this.g);
this.l = this.B = this.f = this.i = null
};
l.In = function () {
};
l.Ge = function (b) {
if (b == this.i) return !1;
this.a.useProgram(b);
this.i = b;
return !0
};
function Bq(b, c, d) {
var e = b.createTexture();
b.bindTexture(b.TEXTURE_2D, e);
b.texParameteri(b.TEXTURE_2D, b.TEXTURE_MAG_FILTER, b.LINEAR);
b.texParameteri(b.TEXTURE_2D, b.TEXTURE_MIN_FILTER, b.LINEAR);
void 0 !== c && b.texParameteri(3553, 10242, c);
void 0 !== d && b.texParameteri(3553, 10243, d);
return e
}
function yq(b, c, d) {
var e = Bq(b, void 0, void 0);
b.texImage2D(b.TEXTURE_2D, 0, b.RGBA, c, d, 0, b.RGBA, b.UNSIGNED_BYTE, null);
return e
}
function Cq(b, c) {
var d = Bq(b, 33071, 33071);
b.texImage2D(b.TEXTURE_2D, 0, b.RGBA, b.RGBA, b.UNSIGNED_BYTE, c);
return d
};
function Dq(b, c) {
this.G = this.D = void 0;
this.B = me(c);
this.C = [
];
this.j = [
];
this.oa = void 0;
this.g = [
];
this.f = [
];
this.U = this.S = void 0;
this.c = [
];
this.ia = this.l = null;
this.T = void 0;
this.fb = Fd();
this.Cb = Fd();
this.ea = this.Z = void 0;
this.Db = Fd();
this.va = this.eb = this.ga = void 0;
this.xa = [
];
this.i = [
];
this.a = [
];
this.A = null;
this.b = [
];
this.u = [
];
this.pa = void 0
}
y(Dq, ck);
function Eq(b, c) {
var d = b.A,
e = b.l,
f = b.xa,
g = b.i,
h = c.a;
return function () {
if (!h.isContextLost()) {
var b,
m;
b = 0;
for (m = f.length; b < m; ++b) h.deleteTexture(f[b]);
b = 0;
for (m = g.length; b < m; ++b) h.deleteTexture(g[b])
}
wq(c, d);
wq(c, e)
}
}
function Fq(b, c, d, e) {
var f = b.D,
g = b.G,
h = b.oa,
k = b.S,
m = b.U,
n = b.T,
p = b.Z,
q = b.ea,
r = b.ga ? 1 : 0,
t = b.eb,
x = b.va,
z = b.pa,
B = Math.cos(t),
t = Math.sin(t),
A = b.c.length,
v = b.a.length,
O,
K,
I,
G,
la,
Ea;
for (O = 0; O < d; O += e) la = c[O] - b.B[0],
Ea = c[O + 1] - b.B[1],
K = v / 8,
I = - x * f,
G = - x * (h - g),
b.a[v++] = la,
b.a[v++] = Ea,
b.a[v++] = I * B - G * t,
b.a[v++] = I * t + G * B,
b.a[v++] = p / m,
b.a[v++] = (q + h) / k,
b.a[v++] = n,
b.a[v++] = r,
I = x * (z - f),
G = - x * (h - g),
b.a[v++] = la,
b.a[v++] = Ea,
b.a[v++] = I * B - G * t,
b.a[v++] = I * t + G * B,
b.a[v++] = (p + z) / m,
b.a[v++] = (q + h) / k,
b.a[v++] = n,
b.a[v++] = r,
I = x * (z - f),
G = x * g,
b.a[v++] = la,
b.a[v++] = Ea,
b.a[v++] = I * B - G * t,
b.a[v++] = I * t + G * B,
b.a[v++] = (p + z) / m,
b.a[v++] = q / k,
b.a[v++] = n,
b.a[v++] = r,
I = - x * f,
G = x * g,
b.a[v++] = la,
b.a[v++] = Ea,
b.a[v++] = I * B - G * t,
b.a[v++] = I * t + G * B,
b.a[v++] = p / m,
b.a[v++] = q / k,
b.a[v++] = n,
b.a[v++] = r,
b.c[A++] = K,
b.c[A++] = K + 1,
b.c[A++] = K + 2,
b.c[A++] = K,
b.c[A++] = K + 2,
b.c[A++] = K + 3
}
Dq.prototype.Fb = function (b, c) {
this.b.push(this.c.length);
this.u.push(c);
var d = b.ja(),
e = b.ra();
Fq(this, d, d.length, e)
};
Dq.prototype.Gb = function (b, c) {
this.b.push(this.c.length);
this.u.push(c);
var d = b.ja(),
e = b.ra();
Fq(this, d, d.length, e)
};
function Gq(b, c) {
var d = c.a;
b.C.push(b.c.length);
b.j.push(b.c.length);
b.A = new tq(b.a);
vq(c, 34962, b.A);
b.l = new tq(b.c);
vq(c, 34963, b.l);
var e = {
};
Hq(b.xa, b.g, e, d);
Hq(b.i, b.f, e, d);
b.D = void 0;
b.G = void 0;
b.oa = void 0;
b.g = null;
b.f = null;
b.S = void 0;
b.U = void 0;
b.c = null;
b.T = void 0;
b.Z = void 0;
b.ea = void 0;
b.ga = void 0;
b.eb = void 0;
b.va = void 0;
b.a = null;
b.pa = void 0
}
function Hq(b, c, d, e) {
var f,
g,
h,
k = c.length;
for (h = 0; h < k; ++h) f = c[h],
g = w(f).toString(),
g in d ? f = d[g] : (f = Cq(e, f), d[g] = f),
b[h] = f
}
function Iq(b, c, d, e, f, g, h, k, m, n, p) {
var q = c.a;
vq(c, 34962, b.A);
vq(c, 34963, b.l);
var r = qq.Yb(),
t = rq.Yb(),
t = Aq(c, r, t);
b.ia ? r = b.ia : (r = new sq(q, t), b.ia = r);
c.Ge(t);
q.enableVertexAttribArray(r.f);
q.vertexAttribPointer(r.f, 2, 5126, !1, 32, 0);
q.enableVertexAttribArray(r.a);
q.vertexAttribPointer(r.a, 2, 5126, !1, 32, 8);
q.enableVertexAttribArray(r.g);
q.vertexAttribPointer(r.g, 2, 5126, !1, 32, 16);
q.enableVertexAttribArray(r.c);
q.vertexAttribPointer(r.c, 1, 5126, !1, 32, 24);
q.enableVertexAttribArray(r.b);
q.vertexAttribPointer(r.b, 1, 5126, !1, 32, 28);
t = b.Db;
ik(t, 0, 0, 2 / (e * g[0]), 2 / (e * g[1]), - f, - (d[0] - b.B[0]), - (d[1] - b.B[1]));
d = b.Cb;
e = 2 / g[0];
g = 2 / g[1];
Hd(d);
d[0] = e;
d[5] = g;
d[10] = 1;
d[15] = 1;
g = b.fb;
Hd(g);
0 !== f && Md(g, - f);
q.uniformMatrix4fv(r.i, !1, t);
q.uniformMatrix4fv(r.B, !1, d);
q.uniformMatrix4fv(r.l, !1, g);
q.uniform1f(r.j, h);
var x;
if (void 0 === m) Jq(b, q, c, k, b.xa, b.C);
 else {
if (n) a: {
f = c.b ? 5125 : 5123;
c = c.b ? 4 : 2;
g = b.b.length - 1;
for (h = b.i.length - 1; 0 <= h; --h) for (q.bindTexture(3553, b.i[h]), n = 0 < h ? b.j[h - 1] : 0, t = b.j[h]; 0 <= g && b.b[g] >= n; ) {
x = b.b[g];
d = b.u[g];
e = w(d).toString();
if (void 0 === k[e] && d.W() && (void 0 === p || pe(p, d.W().J())) && (q.clear(q.COLOR_BUFFER_BIT | q.DEPTH_BUFFER_BIT), q.drawElements(4, t - x, f, x * c), t = m(d))) {
b = t;
break a
}
t = x;
g--
}
b = void 0
} else q.clear(q.COLOR_BUFFER_BIT | q.DEPTH_BUFFER_BIT),
Jq(b, q, c, k, b.i, b.j),
b = (b = m(null)) ? b : void 0;
x = b
}
q.disableVertexAttribArray(r.f);
q.disableVertexAttribArray(r.a);
q.disableVertexAttribArray(r.g);
q.disableVertexAttribArray(r.c);
q.disableVertexAttribArray(r.b);
return x
}
function Jq(b, c, d, e, f, g) {
var h = d.b ? 5125 : 5123;
d = d.b ? 4 : 2;
if (Qb(e)) {
var k;
b = 0;
e = f.length;
for (k = 0; b < e; ++b) {
c.bindTexture(3553, f[b]);
var m = g[b];
c.drawElements(4, m - k, h, k * d);
k = m
}
} else {
k = 0;
var n,
m = 0;
for (n = f.length; m < n; ++m) {
c.bindTexture(3553, f[m]);
for (var p = 0 < m ? g[m - 1] : 0, q = g[m], r = p; k < b.b.length && b.b[k] <= q; ) {
var t = w(b.u[k]).toString();
void 0 !== e[t] ? (r !== p && c.drawElements(4, p - r, h, r * d), p = r = k === b.b.length - 1 ? q : b.b[k + 1])  : p = k === b.b.length - 1 ? q : b.b[k + 1];
k++
}
r !== p && c.drawElements(4, p - r, h, r * d)
}
}
}
Dq.prototype.vb = function (b) {
var c = b.Xb(),
d = b.fc(1),
e = b.qd(),
f = b.ze(1),
g = b.A,
h = b.Ca(),
k = b.D,
m = b.u,
n = b.Bb();
b = b.i;
var p;
0 === this.g.length ? this.g.push(d)  : (p = this.g[this.g.length - 1], w(p) != w(d) && (this.C.push(this.c.length), this.g.push(d)));
0 === this.f.length ? this.f.push(f)  : (p = this.f[this.f.length - 1], w(p) != w(f) && (this.j.push(this.c.length), this.f.push(f)));
this.D = c[0];
this.G = c[1];
this.oa = n[1];
this.S = e[1];
this.U = e[0];
this.T = g;
this.Z = h[0];
this.ea = h[1];
this.eb = m;
this.ga = k;
this.va = b;
this.pa = n[0]
};
function Kq(b, c, d) {
this.j = c;
this.i = b;
this.g = d;
this.c = {
}
}
function Lq(b, c) {
var d = [
],
e;
for (e in b.c) d.push(Eq(b.c[e], c));
return ye.apply(null, d)
}
function Mq(b, c) {
for (var d in b.c) Gq(b.c[d], c)
}
Kq.prototype.a = function (b, c) {
var d = this.c[c];
void 0 === d && (d = new Nq[c](this.i, this.j), this.c[c] = d);
return d
};
Kq.prototype.Ka = function () {
return Qb(this.c)
};
Kq.prototype.b = function (b, c, d, e, f, g, h, k) {
var m,
n;
g = 0;
for (m = Cm.length; g < m; ++g) n = this.c[Cm[g]],
void 0 !== n && Iq(n, b, c, d, e, f, h, k, void 0, !1)
};
function Oq(b, c, d, e, f, g, h, k, m, n) {
var p = Pq,
q,
r;
for (q = Cm.length - 1; 0 <= q; --q) if (r = b.c[Cm[q]], void 0 !== r && (r = Iq(r, c, d, e, f, p, g, h, k, m, n))) return r
}
Kq.prototype.f = function (b, c, d, e, f, g, h, k, m, n) {
var p = c.a;
p.bindFramebuffer(p.FRAMEBUFFER, xq(c));
var q;
void 0 !== this.g && (q = Sd(Zd(b), e * this.g));
return Oq(this, c, b, e, f, k, m, function (b) {
var c = new Uint8Array(4);
p.readPixels(0, 0, 1, 1, p.RGBA, p.UNSIGNED_BYTE, c);
if (0 < c[3] && (b = n(b))) return b
}, !0, q)
};
function Qq(b, c, d, e, f, g, h) {
var k = d.a;
k.bindFramebuffer(k.FRAMEBUFFER, xq(d));
return void 0 !== Oq(b, d, c, e, f, g, h, function () {
var b = new Uint8Array(4);
k.readPixels(0, 0, 1, 1, k.RGBA, k.UNSIGNED_BYTE, b);
return 0 < b[3]
}, !1)
}
var Nq = {
Image: Dq
},
Pq = [
1,
1
];
function Rq(b, c, d, e, f, g) {
this.c = b;
this.g = c;
this.f = g;
this.l = f;
this.i = e;
this.j = d;
this.b = null;
this.a = {
}
}
y(Rq, ck);
l = Rq.prototype;
l.ld = function (b, c) {
var d = b.toString(),
e = this.a[d];
void 0 !== e ? e.push(c)  : this.a[d] = [
c
]
};
l.Fc = function () {
};
l.hf = function (b, c) {
var d = (0, c.g) (b);
if (d && pe(this.f, d.J())) {
var e = c.a;
void 0 === e && (e = 0);
this.ld(e, function (b) {
b.$a(c.j, c.f);
b.vb(c.b);
b.ab(c.c);
var e = Sq[d.V()];
e && e.call(b, d, null)
})
}
};
l.Xd = function (b, c) {
var d = b.f,
e,
f;
e = 0;
for (f = d.length; e < f; ++e) {
var g = d[e],
h = Sq[g.V()];
h && h.call(this, g, c)
}
};
l.Gb = function (b, c) {
var d = this.c,
e = (new Kq(1, this.f)).a(0, 'Image');
e.vb(this.b);
e.Gb(b, c);
Gq(e, d);
Iq(e, this.c, this.g, this.j, this.i, this.l, 1, {
}, void 0, !1);
Eq(e, d) ()
};
l.Wb = function () {
};
l.Gc = function () {
};
l.Fb = function (b, c) {
var d = this.c,
e = (new Kq(1, this.f)).a(0, 'Image');
e.vb(this.b);
e.Fb(b, c);
Gq(e, d);
Iq(e, this.c, this.g, this.j, this.i, this.l, 1, {
}, void 0, !1);
Eq(e, d) ()
};
l.Hc = function () {
};
l.Ic = function () {
};
l.Hb = function () {
};
l.$a = function () {
};
l.vb = function (b) {
this.b = b
};
l.ab = function () {
};
var Sq = {
Point: Rq.prototype.Gb,
MultiPoint: Rq.prototype.Fb,
GeometryCollection: Rq.prototype.Xd
};
function Tq() {
this.a = 'precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}'
}
y(Tq, oq);
ea(Tq);
function Uq() {
this.a = 'varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}'
}
y(Uq, pq);
ea(Uq);
function Vq(b, c) {
this.b = b.getUniformLocation(c, 'f');
this.f = b.getUniformLocation(c, 'e');
this.j = b.getUniformLocation(c, 'd');
this.g = b.getUniformLocation(c, 'g');
this.a = b.getAttribLocation(c, 'b');
this.c = b.getAttribLocation(c, 'c')
};
function Wq(b, c) {
lk.call(this, c);
this.b = b;
this.U = new tq([ - 1,
- 1,
0,
0,
1,
- 1,
1,
0,
- 1,
1,
0,
1,
1,
1,
1,
1]);
this.g = this.lb = null;
this.j = void 0;
this.B = Dd();
this.A = Fd();
this.u = null
}
y(Wq, lk);
function Xq(b, c, d) {
var e = b.b.b;
if (void 0 === b.j || b.j != d) {
c.postRenderFunctions.push(sa(function (b, c, d) {
b.isContextLost() || (b.deleteFramebuffer(c), b.deleteTexture(d))
}, e, b.g, b.lb));
c = yq(e, d, d);
var f = e.createFramebuffer();
e.bindFramebuffer(36160, f);
e.framebufferTexture2D(36160, 36064, 3553, c, 0);
b.lb = c;
b.g = f;
b.j = d
} else e.bindFramebuffer(36160, b.g)
}
Wq.prototype.lh = function (b, c, d) {
Yq(this, 'precompose', d, b);
vq(d, 34962, this.U);
var e = d.a,
f = Tq.Yb(),
g = Uq.Yb(),
f = Aq(d, f, g);
this.u ? g = this.u : this.u = g = new Vq(e, f);
d.Ge(f) && (e.enableVertexAttribArray(g.a), e.vertexAttribPointer(g.a, 2, 5126, !1, 16, 0), e.enableVertexAttribArray(g.c), e.vertexAttribPointer(g.c, 2, 5126, !1, 16, 8), e.uniform1i(g.g, 0));
e.uniformMatrix4fv(g.j, !1, this.B);
e.uniformMatrix4fv(g.f, !1, this.A);
e.uniform1f(g.b, c.opacity);
e.bindTexture(3553, this.lb);
e.drawArrays(5, 0, 4);
Yq(this, 'postcompose', d, b)
};
function Yq(b, c, d, e) {
b = b.a;
if (ed(b, c)) {
var f = e.viewState;
b.o(new dk(c, b, new Rq(d, f.center, f.resolution, f.rotation, e.size, e.extent), e, null, d))
}
}
Wq.prototype.Bf = function () {
this.g = this.lb = null;
this.j = void 0
};
function Zq(b, c) {
Wq.call(this, b, c);
this.l = this.i = this.f = null
}
y(Zq, Wq);
function $q(b, c) {
var d = c.a();
return Cq(b.b.b, d)
}
Zq.prototype.Za = function (b, c, d, e) {
var f = this.a;
return f.fa().xe(b, c.viewState.resolution, c.viewState.rotation, c.skippedFeatureUids, function (b) {
return d.call(e, b, f)
})
};
Zq.prototype.Cf = function (b, c) {
var d = this.b.b,
e = b.pixelRatio,
f = b.viewState,
g = f.center,
h = f.resolution,
k = f.rotation,
m = this.f,
n = this.lb,
p = this.a.fa(),
q = b.viewHints,
r = b.extent;
void 0 !== c.extent && (r = oe(r, c.extent));
q[0] || q[1] || je(r) || (f = p.C(r, h, e, f.projection)) && nk(this, f) && (m = f, n = $q(this, f), this.lb && b.postRenderFunctions.push(sa(function (b, c) {
b.isContextLost() || b.deleteTexture(c)
}, d, this.lb)));
m && (d = this.b.g.u, ar(this, d.width, d.height, e, g, h, k, m.J()), this.l = null, e = this.B, Hd(e), Ld(e, 1, - 1), Kd(e, 0, - 1), this.f =
m, this.lb = n, pk(b.attributions, m.j), qk(b, p));
return !0
};
function ar(b, c, d, e, f, g, h, k) {
c *= g;
d *= g;
b = b.A;
Hd(b);
Ld(b, 2 * e / c, 2 * e / d);
Md(b, - h);
Kd(b, k[0] - f[0], k[1] - f[1]);
Ld(b, (k[2] - k[0]) / 2, (k[3] - k[1]) / 2);
Kd(b, 1, 1)
}
Zq.prototype.we = function (b, c) {
return void 0 !== this.Za(b, c, ue, this)
};
Zq.prototype.sc = function (b, c, d, e) {
if (this.f && this.f.a()) if (this.a.fa() instanceof Op) {
if (b = b.slice(), kk(c.pixelToCoordinateMatrix, b, b), this.Za(b, c, ue, this)) return d.call(e, this.a)
} else {
var f = [
this.f.a().width,
this.f.a().height
];
if (!this.l) {
var g = c.size;
c = Dd();
Hd(c);
Kd(c, - 1, - 1);
Ld(c, 2 / g[0], 2 / g[1]);
Kd(c, 0, g[1]);
Ld(c, 1, - 1);
g = Dd();
Jd(this.A, g);
var h = Dd();
Hd(h);
Kd(h, 0, f[1]);
Ld(h, 1, - 1);
Ld(h, f[0] / 2, f[1] / 2);
Kd(h, 1, 1);
var k = Dd();
Id(h, g, k);
Id(k, c, k);
this.l = k
}
c = [
0,
0
];
kk(this.l, b, c);
if (!(0 > c[0] || c[0] > f[0] || 0 >
c[1] || c[1] > f[1]) && (this.i || (this.i = Pi(1, 1)), this.i.clearRect(0, 0, 1, 1), this.i.drawImage(this.f.a(), c[0], c[1], 1, 1, 0, 0, 1, 1), 0 < this.i.getImageData(0, 0, 1, 1).data[3])) return d.call(e, this.a)
}
};
function br() {
this.a = 'precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}'
}
y(br, oq);
ea(br);
function cr() {
this.a = 'varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}'
}
y(cr, pq);
ea(cr);
function dr(b, c) {
this.b = b.getUniformLocation(c, 'e');
this.f = b.getUniformLocation(c, 'd');
this.a = b.getAttribLocation(c, 'b');
this.c = b.getAttribLocation(c, 'c')
};
function er(b, c) {
Wq.call(this, b, c);
this.G = br.Yb();
this.T = cr.Yb();
this.f = null;
this.D = new tq([0,
0,
0,
1,
1,
0,
1,
1,
0,
1,
0,
0,
1,
1,
1,
0]);
this.C = this.i = null;
this.l = - 1;
this.S = [
0,
0
]
}
y(er, Wq);
l = er.prototype;
l.X = function () {
wq(this.b.g, this.D);
er.da.X.call(this)
};
l.bd = function (b, c, d) {
var e = this.b;
return function (f, g) {
return Qh(b, c, f, g, function (b) {
var c = sh(e.c, b.tb());
c && (d[f] || (d[f] = {
}), d[f][b.a.toString()] = b);
return c
})
}
};
l.Bf = function () {
er.da.Bf.call(this);
this.f = null
};
l.Cf = function (b, c, d) {
var e = this.b,
f = d.a,
g = b.viewState,
h = g.projection,
k = this.a,
m = k.fa(),
n = m.hb(h),
p = Kh(n, g.resolution),
q = n.$(p),
r = m.Pb(p, b.pixelRatio, h),
t = r[0] / od(n.Ha(p), this.S) [0],
x = q / t,
z = m.$d(),
B = g.center,
A;
q == g.resolution ? (B = sk(B, q, b.size), A = ne(B, q, g.rotation, b.size))  : A = b.extent;
q = Hh(n, A, q);
if (this.i && ig(this.i, q) && this.l == m.c) x = this.C;
 else {
var v = [
kg(q),
jg(q)
],
O = Math.pow(2, Math.ceil(Math.log(Math.max(v[0] * r[0], v[1] * r[1])) / Math.LN2)),
v = x * O,
K = n.Ca(p),
I = K[0] + q.a * r[0] * x,
x = K[1] + q.c * r[1] * x,
x = [
I,
x,
I +
v,
x + v
];
Xq(this, b, O);
f.viewport(0, 0, O, O);
f.clearColor(0, 0, 0, 0);
f.clear(16384);
f.disable(3042);
O = Aq(d, this.G, this.T);
d.Ge(O);
this.f || (this.f = new dr(f, O));
vq(d, 34962, this.D);
f.enableVertexAttribArray(this.f.a);
f.vertexAttribPointer(this.f.a, 2, 5126, !1, 16, 0);
f.enableVertexAttribArray(this.f.c);
f.vertexAttribPointer(this.f.c, 2, 5126, !1, 16, 8);
f.uniform1i(this.f.b, 0);
d = {
};
d[p] = {
};
var G = this.bd(m, h, d),
la = k.b(),
O = !0,
I = Od(),
Ea = new gg(0, 0, 0, 0),
L,
za,
Ra;
for (za = q.a; za <= q.f; ++za) for (Ra = q.c; Ra <= q.b; ++Ra) {
K = m.Ob(p, za, Ra, t, h);
if (void 0 !== c.extent && (L = n.Aa(K.a, I), !pe(L, c.extent))) continue;
L = K.state;
if (2 == L) {
if (sh(e.c, K.tb())) {
d[p][fg(K.a)] = K;
continue
}
} else if (4 == L || 3 == L && !la) continue;
O = !1;
L = Eh(n, K.a, G, Ea, I);
L || (K = Gh(n, K.a, Ea, I)) && G(p + 1, K)
}
c = Object.keys(d).map(Number);
ob(c);
for (var G = new Float32Array(4), Ka, kb, cb, la = 0, Ea = c.length; la < Ea; ++la) for (Ka in kb = d[c[la]], kb) K = kb[Ka],
L = n.Aa(K.a, I),
za = 2 * (L[2] - L[0]) / v,
Ra = 2 * (L[3] - L[1]) / v,
cb = 2 * (L[0] - x[0]) / v - 1,
L = 2 * (L[1] - x[1]) / v - 1,
Cd(G, za, Ra, cb, L),
f.uniform4fv(this.f.f, G),
fr(e, K, r, z * t),
f.drawArrays(5, 0, 4);
O ? (this.i = q, this.C = x, this.l = m.c)  : (this.C = this.i = null, this.l = - 1, b.animate = !0)
}
rk(b.usedTiles, m, p, q);
var Rc = e.l;
tk(b, m, n, t, h, A, p, k.a(), function (b) {
var c;
(c = 2 != b.state || sh(e.c, b.tb())) || (c = b.tb() in Rc.b);
c || uk(Rc, [
b,
Jh(n, b.a),
n.$(b.a[0]),
r,
z * t
])
}, this);
ok(b, m);
qk(b, m);
f = this.B;
Hd(f);
Kd(f, (B[0] - x[0]) / (x[2] - x[0]), (B[1] - x[1]) / (x[3] - x[1]));
0 !== g.rotation && Md(f, g.rotation);
Ld(f, b.size[0] * g.resolution / (x[2] - x[0]), b.size[1] * g.resolution / (x[3] - x[1]));
Kd(f, - 0.5, - 0.5);
return !0
};
l.sc = function (b, c, d, e) {
if (this.g) {
var f = [
0,
0
];
kk(this.B, [
b[0] / c.size[0],
(c.size[1] - b[1]) / c.size[1]
], f);
b = [
f[0] * this.j,
f[1] * this.j
];
c = this.b.g.a;
c.bindFramebuffer(c.FRAMEBUFFER, this.g);
f = new Uint8Array(4);
c.readPixels(b[0], b[1], 1, 1, c.RGBA, c.UNSIGNED_BYTE, f);
if (0 < f[3]) return d.call(e, this.a)
}
};
function gr(b, c) {
Wq.call(this, b, c);
this.l = !1;
this.S = - 1;
this.G = NaN;
this.C = Od();
this.i = this.f = this.D = null
}
y(gr, Wq);
l = gr.prototype;
l.lh = function (b, c, d) {
this.i = c;
var e = b.viewState,
f = this.f;
f && !f.Ka() && f.b(d, e.center, e.resolution, e.rotation, b.size, b.pixelRatio, c.opacity, c.rb ? b.skippedFeatureUids : {
})
};
l.X = function () {
var b = this.f;
b && (Lq(b, this.b.g) (), this.f = null);
gr.da.X.call(this)
};
l.Za = function (b, c, d, e) {
if (this.f && this.i) {
var f = c.viewState,
g = this.a,
h = this.i,
k = {
};
return this.f.f(b, this.b.g, f.center, f.resolution, f.rotation, c.size, c.pixelRatio, h.opacity, h.rb ? c.skippedFeatureUids : {
}, function (b) {
var c = w(b).toString();
if (!(c in k)) return k[c] = !0,
d.call(e, b, g)
})
}
};
l.we = function (b, c) {
if (this.f && this.i) {
var d = c.viewState;
return Qq(this.f, b, this.b.g, d.resolution, d.rotation, this.i.opacity, c.skippedFeatureUids)
}
return !1
};
l.sc = function (b, c, d, e) {
b = b.slice();
kk(c.pixelToCoordinateMatrix, b, b);
if (this.we(b, c)) return d.call(e, this.a)
};
l.Cm = function () {
mk(this)
};
l.Cf = function (b, c, d) {
function e(b) {
var c,
d = b.Qb();
d ? c = d.call(b, n)  : (d = f.b) && (c = d(b, n));
if (c) {
if (c) {
var e,
g = !1,
d = 0;
for (e = c.length; d < e; ++d) g = Ym(r, b, c[d], Xm(n, p), this.Cm, this) || g;
b = g
} else b = !1;
this.l = this.l || b
}
}
var f = this.a;
c = f.fa();
pk(b.attributions, c.j);
qk(b, c);
var g = b.viewHints[0],
h = b.viewHints[1],
k = f.i,
m = f.l;
if (!this.l && !k && g || !m && h) return !0;
var h = b.extent,
k = b.viewState,
g = k.projection,
n = k.resolution,
p = b.pixelRatio,
k = f.c,
q = f.a,
m = im(f);
void 0 === m && (m = Wm);
h = Sd(h, q * n);
if (!this.l && this.G == n && this.S == k &&
this.D == m && Xd(this.C, h)) return !0;
this.f && b.postRenderFunctions.push(Lq(this.f, d));
this.l = !1;
var r = new Kq(0.5 * n / p, h, f.a);
c.Mc(h, n, g);
if (m) {
var t = [
];
c.ob(h, function (b) {
t.push(b)
}, this);
ob(t, m);
t.forEach(e, this)
} else c.ob(h, e, this);
Mq(r, d);
this.G = n;
this.S = k;
this.D = m;
this.C = h;
this.f = r;
return !0
};
function hr(b, c) {
Ak.call(this, 0, c);
this.a = Kg('CANVAS');
this.a.style.width = '100%';
this.a.style.height = '100%';
this.a.className = 'ol-unselectable';
Ng(b, this.a, 0);
this.C = this.D = 0;
this.G = Pi();
this.B = !0;
this.b = Vi(this.a, {
antialias: !0,
depth: !1,
failIfMajorPerformanceCaveat: !0,
preserveDrawingBuffer: !1,
stencil: !0
});
this.g = new uq(this.a, this.b);
C(this.a, 'webglcontextlost', this.Am, !1, this);
C(this.a, 'webglcontextrestored', this.Bm, !1, this);
this.c = new rh;
this.A = null;
this.l = new Fk(ra(function (b) {
var c = b[1];
b = b[2];
var f = c[0] - this.A[0],
c = c[1] - this.A[1];
return 65536 * Math.log(b) + Math.sqrt(f * f + c * c) / b
}, this), function (b) {
return b[0].tb()
});
this.S = ra(function () {
if (!this.l.Ka()) {
Jk(this.l);
var b = Gk(this.l);
fr(this, b[0], b[3], b[4])
}
}, this);
this.i = 0;
ir(this)
}
y(hr, Ak);
function fr(b, c, d, e) {
var f = b.b,
g = c.tb();
if (sh(b.c, g)) b = b.c.get(g),
f.bindTexture(3553, b.lb),
9729 != b.Qg && (f.texParameteri(3553, 10240, 9729), b.Qg = 9729),
9729 != b.Rg && (f.texParameteri(3553, 10240, 9729), b.Rg = 9729);
 else {
var h = f.createTexture();
f.bindTexture(3553, h);
if (0 < e) {
var k = b.G.canvas,
m = b.G;
b.D !== d[0] || b.C !== d[1] ? (k.width = d[0], k.height = d[1], b.D = d[0], b.C = d[1])  : m.clearRect(0, 0, d[0], d[1]);
m.drawImage(c.Sa(), e, e, d[0], d[1], 0, 0, d[0], d[1]);
f.texImage2D(3553, 0, 6408, 6408, 5121, k)
} else f.texImage2D(3553, 0, 6408, 6408, 5121, c.Sa());
f.texParameteri(3553, 10240, 9729);
f.texParameteri(3553, 10241, 9729);
f.texParameteri(3553, 10242, 33071);
f.texParameteri(3553, 10243, 33071);
b.c.set(g, {
lb: h,
Qg: 9729,
Rg: 9729
})
}
}
l = hr.prototype;
l.gf = function (b) {
return b instanceof Sl ? new Zq(this, b)  : b instanceof F ? new er(this, b)  : b instanceof H ? new gr(this, b)  : null
};
function jr(b, c, d) {
var e = b.j;
if (ed(e, c)) {
var f = b.g;
b = d.viewState;
b = new Rq(f, b.center, b.resolution, b.rotation, d.size, d.extent);
e.o(new dk(c, e, b, d, null, f));
c = Object.keys(b.a).map(Number);
ob(c);
var g,
h;
d = 0;
for (e = c.length; d < e; ++d) for (f = b.a[c[d].toString()], g = 0, h = f.length; g < h; ++g) f[g](b)
}
}
l.X = function () {
var b = this.b;
b.isContextLost() || this.c.forEach(function (c) {
c && b.deleteTexture(c.lb)
});
uc(this.g);
hr.da.X.call(this)
};
l.tj = function (b, c) {
for (var d = this.b, e; 1024 < this.c.nc() - this.i; ) {
if (e = this.c.a.zc) d.deleteTexture(e.lb);
 else if ( + this.c.a.ne == c.index) break;
 else --this.i;
this.c.pop()
}
};
l.V = function () {
return 'webgl'
};
l.Am = function (b) {
b.preventDefault();
this.c.clear();
this.i = 0;
Ib(this.f, function (b) {
b.Bf()
})
};
l.Bm = function () {
ir(this);
this.j.render()
};
function ir(b) {
b = b.b;
b.activeTexture(33984);
b.blendFuncSeparate(770, 771, 1, 771);
b.disable(2884);
b.disable(2929);
b.disable(3089);
b.disable(2960)
}
l.Me = function (b) {
var c = this.g,
d = this.b;
if (d.isContextLost()) return !1;
if (!b) return this.B && (ih(this.a, !1), this.B = !1),
!1;
this.A = b.focus;
this.c.set(( - b.index).toString(), null);
++this.i;
jr(this, 'precompose', b);
var e = [
],
f = b.layerStatesArray;
qb(f);
var g = b.viewState.resolution,
h,
k,
m,
n;
h = 0;
for (k = f.length; h < k; ++h) n = f[h],
fk(n, g) && 'ready' == n.S && (m = Dk(this, n.layer), m.Cf(b, n, c) && e.push(n));
f = b.size[0] * b.pixelRatio;
g = b.size[1] * b.pixelRatio;
if (this.a.width != f || this.a.height != g) this.a.width = f,
this.a.height = g;
d.bindFramebuffer(36160, null);
d.clearColor(0, 0, 0, 0);
d.clear(16384);
d.enable(3042);
d.viewport(0, 0, this.a.width, this.a.height);
h = 0;
for (k = e.length; h < k; ++h) n = e[h],
m = Dk(this, n.layer),
m.lh(b, n, c);
this.B || (ih(this.a, !0), this.B = !0);
Bk(b);
1024 < this.c.nc() - this.i && b.postRenderFunctions.push(ra(this.tj, this));
this.l.Ka() || (b.postRenderFunctions.push(this.S), b.animate = !0);
jr(this, 'postcompose', b);
Ek(this, b);
b.postRenderFunctions.push(Ck)
};
l.Af = function (b, c, d, e, f, g) {
var h;
if (this.b.isContextLost()) return !1;
var k = c.viewState,
m = c.layerStatesArray,
n;
for (n = m.length - 1; 0 <= n; --n) {
h = m[n];
var p = h.layer;
if (fk(h, k.resolution) && f.call(g, p) && (h = Dk(this, p).Za(b, c, d, e))) return h
}
};
l.kh = function (b, c, d, e) {
var f = !1;
if (this.b.isContextLost()) return !1;
var g = c.viewState,
h = c.layerStatesArray,
k;
for (k = h.length - 1; 0 <= k; --k) {
var m = h[k],
n = m.layer;
if (fk(m, g.resolution) && d.call(e, n) && (f = Dk(this, n).we(b, c))) return !0
}
return f
};
l.jh = function (b, c, d, e, f) {
if (this.b.isContextLost()) return !1;
var g = c.viewState,
h,
k = c.layerStatesArray,
m;
for (m = k.length - 1; 0 <= m; --m) {
h = k[m];
var n = h.layer;
if (fk(h, g.resolution) && f.call(e, n) && (h = Dk(this, n).sc(b, c, d, e))) return h
}
};
var kr = [
'canvas',
'webgl',
'dom'
];
function S(b) {
id.call(this);
var c = lr(b);
this.Ac = void 0 !== b.loadTilesWhileAnimating ? b.loadTilesWhileAnimating : !1;
this.Bc = void 0 !== b.loadTilesWhileInteracting ? b.loadTilesWhileInteracting : !1;
this.We = void 0 !== b.pixelRatio ? b.pixelRatio : Xi;
this.Xc = c.logos;
this.u = new ii(this.Eo, void 0, this);
tc(this, this.u);
this.Cb = Dd();
this.Xe = Dd();
this.Db = 0;
this.b = null;
this.xa = Od();
this.C = this.U = null;
this.a = Hg('DIV', 'ol-viewport');
this.a.style.position = 'relative';
this.a.style.overflow = 'hidden';
this.a.style.width = '100%';
this.a.style.height = '100%';
this.a.style.msTouchAction = 'none';
this.a.style.touchAction = 'none';
bj && Wg(this.a, 'ol-touch');
this.G = Hg('DIV', 'ol-overlaycontainer');
this.a.appendChild(this.G);
this.D = Hg('DIV', 'ol-overlaycontainer-stopevent');
C(this.D, [
'click',
'dblclick',
'mousedown',
'touchstart',
'MSPointerDown',
Wj,
ac ? 'DOMMouseScroll' : 'mousewheel'
], wc);
this.a.appendChild(this.D);
b = new Oj(this);
C(b, Lb(Zj), this.Ig, !1, this);
tc(this, b);
this.ga = c.keyboardEventTarget;
this.A = new Ai;
C(this.A, 'key', this.Hg, !1, this);
tc(this, this.A);
b = new Ii(this.a);
C(b, 'mousewheel', this.Hg, !1, this);
tc(this, b);
this.g = c.controls;
this.f = c.interactions;
this.j = c.overlays;
this.Z = {
};
this.i = new c.Go(this.a, this);
tc(this, this.i);
this.fb = new vi;
tc(this, this.fb);
this.T = this.l = null;
this.S = [
];
this.pa = [
];
this.va = new Kk(ra(this.lk, this), ra(this.Vk, this));
this.ea = {
};
C(this, kd('layergroup'), this.Ak, !1, this);
C(this, kd('view'), this.Wk, !1, this);
C(this, kd('size'), this.Sk, !1, this);
C(this, kd('target'), this.Uk, !1, this);
this.I(c.values);
this.g.forEach(function (b) {
b.setMap(this)
}, this);
C(this.g, 'add', function (b) {
b.element.setMap(this)
}, !1, this);
C(this.g, 'remove', function (b) {
b.element.setMap(null)
}, !1, this);
this.f.forEach(function (b) {
b.setMap(this)
}, this);
C(this.f, 'add', function (b) {
b.element.setMap(this)
}, !1, this);
C(this.f, 'remove', function (b) {
b.element.setMap(null)
}, !1, this);
this.j.forEach(this.lg, this);
C(this.j, 'add', function (b) {
this.lg(b.element)
}, !1, this);
C(this.j, 'remove', function (b) {
var c = b.element.Na();
void 0 !== c && delete this.Z[c.toString()];
b.element.setMap(null)
}, !1, this)
}
y(S, id);
l = S.prototype;
l.hj = function (b) {
this.g.push(b)
};
l.ij = function (b) {
this.f.push(b)
};
l.jg = function (b) {
this.oc().Pc().push(b)
};
l.kg = function (b) {
this.j.push(b)
};
l.lg = function (b) {
var c = b.Na();
void 0 !== c && (this.Z[c.toString()] = b);
b.setMap(this)
};
l.Ma = function (b) {
this.render();
Array.prototype.push.apply(this.S, arguments)
};
l.X = function () {
Og(this.a);
S.da.X.call(this)
};
l.od = function (b, c, d, e, f) {
if (this.b) return b = this.Fa(b),
this.i.Af(b, this.b, c, void 0 !== d ? d : null, void 0 !== e ? e : ue, void 0 !== f ? f : null)
};
l.Fl = function (b, c, d, e, f) {
if (this.b) return this.i.jh(b, this.b, c, void 0 !== d ? d : null, void 0 !== e ? e : ue, void 0 !== f ? f : null)
};
l.Yk = function (b, c, d) {
if (!this.b) return !1;
b = this.Fa(b);
return this.i.kh(b, this.b, void 0 !== c ? c : ue, void 0 !== d ? d : null)
};
l.Ij = function (b) {
return this.Fa(this.Zd(b))
};
l.Zd = function (b) {
var c;
c = this.a;
b = fh(b);
c = fh(c);
c = new yg(b.x - c.x, b.y - c.y);
return [c.x,
c.y]
};
l.wf = function () {
return this.get('target')
};
l.Lc = function () {
var b = this.wf();
return void 0 !== b ? Dg(b)  : null
};
l.Fa = function (b) {
var c = this.b;
return c ? (b = b.slice(), kk(c.pixelToCoordinateMatrix, b, b))  : null
};
l.Gj = function () {
return this.g
};
l.$j = function () {
return this.j
};
l.Zj = function (b) {
b = this.Z[b.toString()];
return void 0 !== b ? b : null
};
l.Nj = function () {
return this.f
};
l.oc = function () {
return this.get('layergroup')
};
l.Xg = function () {
return this.oc().Pc()
};
l.Oa = function (b) {
var c = this.b;
return c ? (b = b.slice(0, 2), kk(c.coordinateToPixelMatrix, b, b))  : null
};
l.Ra = function () {
return this.get('size')
};
l.aa = function () {
return this.get('view')
};
l.nk = function () {
return this.a
};
l.lk = function (b, c, d, e) {
var f = this.b;
if (!(f && c in f.wantedTiles && f.wantedTiles[c][fg(b.a)])) return Infinity;
b = d[0] - f.focus[0];
d = d[1] - f.focus[1];
return 65536 * Math.log(e) + Math.sqrt(b * b + d * d) / e
};
l.Hg = function (b, c) {
var d = new Mj(c || b.type, this, b);
this.Ig(d)
};
l.Ig = function (b) {
if (this.b) {
this.T = b.coordinate;
b.frameState = this.b;
var c = this.f.a,
d;
if (!1 !== this.o(b)) for (d = c.length - 1; 0 <= d; d--) {
var e = c[d];
if (e.b() && !e.handleEvent(b)) break
}
}
};
l.Qk = function () {
var b = this.b,
c = this.va;
if (!c.Ka()) {
var d = 16,
e = d,
f = 0;
b && (f = b.viewHints, f[0] && (d = this.Ac ? 8 : 0, e = 2), f[1] && (d = this.Bc ? 8 : 0, e = 2), f = Kb(b.wantedTiles));
d *= f;
e *= f;
c.f < d && (Jk(c), Lk(c, d, e))
}
c = this.pa;
d = 0;
for (e = c.length; d < e; ++d) c[d](this, b);
c.length = 0
};
l.Sk = function () {
this.render()
};
l.Uk = function () {
var b = this.Lc();
Hi(this.A);
b ? (b.appendChild(this.a), Bi(this.A, this.ga ? this.ga : b), this.l || (this.l = C(this.fb, 'resize', this.Uc, !1, this)))  : (Og(this.a), this.l && (Zc(this.l), this.l = null));
this.Uc()
};
l.Vk = function () {
this.render()
};
l.Xk = function () {
this.render()
};
l.Wk = function () {
this.U && (Zc(this.U), this.U = null);
var b = this.aa();
b && (this.U = C(b, 'propertychange', this.Xk, !1, this));
this.render()
};
l.Bk = function () {
this.render()
};
l.Ck = function () {
this.render()
};
l.Ak = function () {
this.C && (this.C.forEach(Zc), this.C = null);
var b = this.oc();
b && (this.C = [
C(b, 'propertychange', this.Ck, !1, this),
C(b, 'change', this.Bk, !1, this)
]);
this.render()
};
l.Fo = function () {
var b = this.u;
ji(b);
b.f()
};
l.render = function () {
null != this.u.wa || this.u.start()
};
l.yo = function (b) {
return this.g.remove(b)
};
l.zo = function (b) {
return this.f.remove(b)
};
l.Bo = function (b) {
return this.oc().Pc().remove(b)
};
l.Co = function (b) {
return this.j.remove(b)
};
l.Eo = function (b) {
var c,
d,
e,
f = this.Ra(),
g = this.aa(),
h = null;
if (void 0 !== f && 0 < f[0] && 0 < f[1] && g && Sf(g)) {
var h = g.b.slice(),
k = this.oc().nf(),
m = {
};
c = 0;
for (d = k.length; c < d; ++c) m[w(k[c].layer)] = k[c];
e = Rf(g);
h = {
animate: !1,
attributions: {
},
coordinateToPixelMatrix: this.Cb,
extent: null,
focus: this.T ? this.T : e.center,
index: this.Db++,
layerStates: m,
layerStatesArray: k,
logos: Ub(this.Xc),
pixelRatio: this.We,
pixelToCoordinateMatrix: this.Xe,
postRenderFunctions: [
],
size: f,
skippedFeatureUids: this.ea,
tileQueue: this.va,
time: b,
usedTiles: {
},
viewState: e,
viewHints: h,
wantedTiles: {
}
}
}
if (h) {
b = this.S;
c = f = 0;
for (d = b.length; c < d; ++c) g = b[c],
g(this, h) && (b[f++] = g);
b.length = f;
h.extent = ne(e.center, e.resolution, e.rotation, h.size)
}
this.b = h;
this.i.Me(h);
h && (h.animate && this.render(), Array.prototype.push.apply(this.pa, h.postRenderFunctions), 0 !== this.S.length || h.viewHints[0] || h.viewHints[1] || be(h.extent, this.xa) || (this.o(new ph('moveend', this, h)), Td(h.extent, this.xa)));
this.o(new ph('postrender', this, h));
ni(this.Qk, this)
};
l.Xh = function (b) {
this.set('layergroup', b)
};
l.Uf = function (b) {
this.set('size', b)
};
l.Gl = function (b) {
this.set('target', b)
};
l.To = function (b) {
this.set('view', b)
};
l.fi = function (b) {
b = w(b).toString();
this.ea[b] = !0;
this.render()
};
l.Uc = function () {
var b = this.Lc();
if (b) {
var c = Cg(b),
d = Zb && b.currentStyle;
d && Sg(Ag(c)) && 'auto' != d.width && 'auto' != d.height && !d.boxSizing ? (c = jh(b, d.width, 'width', 'pixelWidth'), b = jh(b, d.height, 'height', 'pixelHeight'), b = new zg(c, b))  : (d = new zg(b.offsetWidth, b.offsetHeight), c = lh(b, 'padding'), b = oh(b), b = new zg(d.width - b.left - c.left - c.right - b.right, d.height - b.top - c.top - c.bottom - b.bottom));
this.Uf([b.width,
b.height])
} else this.Uf(void 0)
};
l.ii = function (b) {
b = w(b).toString();
delete this.ea[b];
this.render()
};
function lr(b) {
var c = null;
void 0 !== b.keyboardEventTarget && (c = ia(b.keyboardEventTarget) ? document.getElementById(b.keyboardEventTarget)  : b.keyboardEventTarget);
var d = {
},
e = {
};
if (void 0 === b.logo || 'boolean' == typeof b.logo && b.logo) e['data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHGAAABxgEXwfpGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAhNQTFRF////AP//AICAgP//AFVVQECA////K1VVSbbbYL/fJ05idsTYJFtbbcjbJllmZszWWMTOIFhoHlNiZszTa9DdUcHNHlNlV8XRIVdiasrUHlZjIVZjaMnVH1RlIFRkH1RkH1ZlasvYasvXVsPQH1VkacnVa8vWIVZjIFRjVMPQa8rXIVVkXsXRsNveIFVkIFZlIVVj3eDeh6GmbMvXH1ZkIFRka8rWbMvXIFVkIFVjIFVkbMvWH1VjbMvWIFVlbcvWIFVla8vVIFVkbMvWbMvVH1VkbMvWIFVlbcvWIFVkbcvVbMvWjNPbIFVkU8LPwMzNIFVkbczWIFVkbsvWbMvXIFVkRnB8bcvW2+TkW8XRIFVkIlZlJVloJlpoKlxrLl9tMmJwOWd0Omh1RXF8TneCT3iDUHiDU8LPVMLPVcLPVcPQVsPPVsPQV8PQWMTQWsTQW8TQXMXSXsXRX4SNX8bSYMfTYcfTYsfTY8jUZcfSZsnUaIqTacrVasrVa8jTa8rWbI2VbMvWbcvWdJObdcvUdszUd8vVeJaee87Yfc3WgJyjhqGnitDYjaarldPZnrK2oNbborW5o9bbo9fbpLa6q9ndrL3ArtndscDDutzfu8fJwN7gwt7gxc/QyuHhy+HizeHi0NfX0+Pj19zb1+Tj2uXk29/e3uLg3+Lh3+bl4uXj4ufl4+fl5Ofl5ufl5ujm5+jmySDnBAAAAFp0Uk5TAAECAgMEBAYHCA0NDg4UGRogIiMmKSssLzU7PkJJT1JTVFliY2hrdHZ3foSFhYeJjY2QkpugqbG1tre5w8zQ09XY3uXn6+zx8vT09vf4+Pj5+fr6/P39/f3+gz7SsAAAAVVJREFUOMtjYKA7EBDnwCPLrObS1BRiLoJLnte6CQy8FLHLCzs2QUG4FjZ5GbcmBDDjxJBXDWxCBrb8aM4zbkIDzpLYnAcE9VXlJSWlZRU13koIeW57mGx5XjoMZEUqwxWYQaQbSzLSkYGfKFSe0QMsX5WbjgY0YS4MBplemI4BdGBW+DQ11eZiymfqQuXZIjqwyadPNoSZ4L+0FVM6e+oGI6g8a9iKNT3o8kVzNkzRg5lgl7p4wyRUL9Yt2jAxVh6mQCogae6GmflI8p0r13VFWTHBQ0rWPW7ahgWVcPm+9cuLoyy4kCJDzCm6d8PSFoh0zvQNC5OjDJhQopPPJqph1doJBUD5tnkbZiUEqaCnB3bTqLTFG1bPn71kw4b+GFdpLElKIzRxxgYgWNYc5SCENVHKeUaltHdXx0dZ8uBI1hJ2UUDgq82CM2MwKeibqAvSO7MCABq0wXEPiqWEAAAAAElFTkSuQmCC'] =
'http://openlayers.org/';
 else {
var f = b.logo;
ia(f) ? e[f] = '' : ma(f) && (e[f.src] = f.href)
}
f = b.layers instanceof Kl ? b.layers : new Kl({
layers: b.layers
});
d.layergroup = f;
d.target = b.target;
d.view = void 0 !== b.view ? b.view : new Of;
var f = Ak,
g;
void 0 !== b.renderer ? ga(b.renderer) ? g = b.renderer : ia(b.renderer) && (g = [
b.renderer
])  : g = kr;
var h,
k;
h = 0;
for (k = g.length; h < k; ++h) {
var m = g[h];
if ('canvas' == m) {
if (Zi) {
f = dq;
break
}
} else if ('dom' == m) {
f = lq;
break
} else if ('webgl' == m && Wi) {
f = hr;
break
}
}
var n;
void 0 !== b.controls ? n = ga(b.controls) ? new og(b.controls.slice())  :
b.controls : n = Zh();
var p;
void 0 !== b.interactions ? p = ga(b.interactions) ? new og(b.interactions.slice())  : b.interactions : p = Jl();
b = void 0 !== b.overlays ? ga(b.overlays) ? new og(b.overlays.slice())  : b.overlays : new og;
return {
controls: n,
interactions: p,
keyboardEventTarget: c,
logos: e,
overlays: b,
Go: f,
values: d
}
}
Rl();
function mr(b) {
id.call(this);
this.wa = b.id;
this.i = void 0 !== b.insertFirst ? b.insertFirst : !0;
this.l = void 0 !== b.stopEvent ? b.stopEvent : !0;
this.b = Hg('DIV', {
'class': 'ol-overlay-container'
});
this.b.style.position = 'absolute';
this.autoPan = void 0 !== b.autoPan ? b.autoPan : !1;
this.g = void 0 !== b.autoPanAnimation ? b.autoPanAnimation : {
};
this.j = void 0 !== b.autoPanMargin ? b.autoPanMargin : 20;
this.a = {
Td: '',
oe: '',
Ne: '',
Oe: '',
visible: !0
};
this.f = null;
C(this, kd('element'), this.wk, !1, this);
C(this, kd('map'), this.Hk, !1, this);
C(this, kd('offset'), this.Mk, !1, this);
C(this, kd('position'), this.Ok, !1, this);
C(this, kd('positioning'), this.Pk, !1, this);
void 0 !== b.element && this.Uh(b.element);
this.Zh(void 0 !== b.offset ? b.offset : [
0,
0
]);
this.bi(void 0 !== b.positioning ? b.positioning : 'top-left');
void 0 !== b.position && this.xf(b.position)
}
y(mr, id);
l = mr.prototype;
l.re = function () {
return this.get('element')
};
l.Na = function () {
return this.wa
};
l.se = function () {
return this.get('map')
};
l.Eg = function () {
return this.get('offset')
};
l.Yg = function () {
return this.get('position')
};
l.Fg = function () {
return this.get('positioning')
};
l.wk = function () {
Mg(this.b);
var b = this.re();
b && Lg(this.b, b)
};
l.Hk = function () {
this.f && (Og(this.b), Zc(this.f), this.f = null);
var b = this.se();
b && (this.f = C(b, 'postrender', this.render, !1, this), nr(this), b = this.l ? b.D : b.G, this.i ? Ng(b, this.b, 0)  : Lg(b, this.b))
};
l.render = function () {
nr(this)
};
l.Mk = function () {
nr(this)
};
l.Ok = function () {
nr(this);
if (void 0 !== this.get('position') && this.autoPan) {
var b = this.se();
if (void 0 !== b && b.Lc()) {
var c = or(b.Lc(), b.Ra()),
d = this.re(),
e = d.offsetWidth,
f = d.currentStyle || window.getComputedStyle(d),
e = e + (parseInt(f.marginLeft, 10) + parseInt(f.marginRight, 10)),
f = d.offsetHeight,
g = d.currentStyle || window.getComputedStyle(d),
f = f + (parseInt(g.marginTop, 10) + parseInt(g.marginBottom, 10)),
h = or(d, [
e,
f
]),
d = this.j;
Xd(c, h) || (e = h[0] - c[0], f = c[2] - h[2], g = h[1] - c[1], h = c[3] - h[3], c = [
0,
0
], 0 > e ? c[0] = e - d : 0 > f && (c[0] =
Math.abs(f) + d), 0 > g ? c[1] = g - d : 0 > h && (c[1] = Math.abs(h) + d), 0 === c[0] && 0 === c[1]) || (d = b.aa().Ta(), e = b.Oa(d), c = [
e[0] + c[0],
e[1] + c[1]
], this.g && (this.g.source = d, b.Ma(Zf(this.g))), b.aa().jb(b.Fa(c)))
}
}
};
l.Pk = function () {
nr(this)
};
l.Uh = function (b) {
this.set('element', b)
};
l.setMap = function (b) {
this.set('map', b)
};
l.Zh = function (b) {
this.set('offset', b)
};
l.xf = function (b) {
this.set('position', b)
};
function or(b, c) {
var d = Cg(b),
e = new yg(0, 0),
f;
f = d ? Cg(d)  : document;
f = !Zb || 9 <= lc || Sg(Ag(f)) ? f.documentElement : f.body;
b != f && (f = eh(b), d = Tg(Ag(d)), e.x = f.left + d.x, e.y = f.top + d.y);
return [e.x,
e.y,
e.x + c[0],
e.y + c[1]]
}
l.bi = function (b) {
this.set('positioning', b)
};
function pr(b, c) {
b.a.visible !== c && (ih(b.b, c), b.a.visible = c)
}
function nr(b) {
var c = b.se(),
d = b.Yg();
if (void 0 !== c && c.b && void 0 !== d) {
var d = c.Oa(d),
e = c.Ra(),
c = b.b.style,
f = b.Eg(),
g = b.Fg(),
h = f[0],
f = f[1];
if ('bottom-right' == g || 'center-right' == g || 'top-right' == g) '' !== b.a.oe && (b.a.oe = c.left = ''),
h = Math.round(e[0] - d[0] - h) + 'px',
b.a.Ne != h && (b.a.Ne = c.right = h);
 else {
'' !== b.a.Ne && (b.a.Ne = c.right = '');
if ('bottom-center' == g || 'center-center' == g || 'top-center' == g) h -= gh(b.b).width / 2;
h = Math.round(d[0] + h) + 'px';
b.a.oe != h && (b.a.oe = c.left = h)
}
if ('bottom-left' == g || 'bottom-center' == g || 'bottom-right' ==
g) '' !== b.a.Oe && (b.a.Oe = c.top = ''),
d = Math.round(e[1] - d[1] - f) + 'px',
b.a.Td != d && (b.a.Td = c.bottom = d);
 else {
'' !== b.a.Td && (b.a.Td = c.bottom = '');
if ('center-left' == g || 'center-center' == g || 'center-right' == g) f -= gh(b.b).height / 2;
d = Math.round(d[1] + f) + 'px';
b.a.Oe != d && (b.a.Oe = c.top = d)
}
pr(b, !0)
} else pr(b, !1)
};
function qr(b) {
b = b ? b : {
};
this.j = void 0 !== b.collapsed ? b.collapsed : !0;
this.i = void 0 !== b.collapsible ? b.collapsible : !0;
this.i || (this.j = !1);
var c = b.className ? b.className : 'ol-overviewmap',
d = b.tipLabel ? b.tipLabel : 'Overview map',
e = b.collapseLabel ? b.collapseLabel : '«';
this.A = ia(e) ? Hg('SPAN', {
}, e)  : e;
e = b.label ? b.label : '»';
this.C = ia(e) ? Hg('SPAN', {
}, e)  : e;
d = Hg('BUTTON', {
type: 'button',
title: d
}, this.i && !this.j ? this.A : this.C);
C(d, 'click', this.Rl, !1, this);
var e = Hg('DIV', 'ol-overviewmap-map'),
f = this.b = new S({
controls: new og,
interactions: new og,
target: e,
view: b.view
});
b.layers && b.layers.forEach(function (b) {
f.jg(b)
}, this);
var g = Hg('DIV', 'ol-overviewmap-box');
this.l = new mr({
position: [
0,
0
],
positioning: 'bottom-left',
element: g
});
this.b.kg(this.l);
c = Hg('DIV', c + ' ol-unselectable ol-control' + (this.j && this.i ? ' ol-collapsed' : '') + (this.i ? '' : ' ol-uncollapsible'), e, d);
qh.call(this, {
element: c,
render: b.render ? b.render : rr,
target: b.target
})
}
y(qr, qh);
l = qr.prototype;
l.setMap = function (b) {
var c = this.a;
b !== c && (c && (c = c.aa()) && Yc(c, kd('rotation'), this.ie, !1, this), qr.da.setMap.call(this, b), b && (this.u.push(C(b, 'propertychange', this.Ik, !1, this)), 0 === this.b.Xg().$b() && this.b.Xh(b.oc()), b = b.aa())) && (C(b, kd('rotation'), this.ie, !1, this), Sf(b) && (this.b.Uc(), sr(this)))
};
l.Ik = function (b) {
'view' === b.key && ((b = b.oldValue) && Yc(b, kd('rotation'), this.ie, !1, this), b = this.a.aa(), C(b, kd('rotation'), this.ie, !1, this))
};
l.ie = function () {
this.b.aa().te(this.a.aa().Ea())
};
function rr() {
var b = this.a,
c = this.b;
if (b.b && c.b) {
var d = b.Ra(),
b = b.aa().Zc(d),
e = c.Ra(),
d = c.aa().Zc(e),
f = c.Oa(he(b)),
c = c.Oa(fe(b)),
c = new zg(Math.abs(f[0] - c[0]), Math.abs(f[1] - c[1])),
f = e[0],
e = e[1];
c.width < 0.1 * f || c.height < 0.1 * e || c.width > 0.75 * f || c.height > 0.75 * e ? sr(this)  : Xd(d, b) || (b = this.b, d = this.a.aa(), b.aa().jb(d.Ta()))
}
tr(this)
}
function sr(b) {
var c = b.a;
b = b.b;
var d = c.Ra(),
c = c.aa().Zc(d),
d = b.Ra();
b = b.aa();
qe(c, 1 / (0.1 * Math.pow(2, Math.log(7.5) / Math.LN2 / 2)));
b.jf(c, d)
}
function tr(b) {
var c = b.a,
d = b.b;
if (c.b && d.b) {
var e = c.Ra(),
f = c.aa(),
g = d.aa();
d.Ra();
var c = f.Ea(),
h = b.l,
d = b.l.re(),
f = f.Zc(e),
e = g.$(),
g = ee(f),
f = ge(f),
k;
if (b = b.a.aa().Ta()) k = [
g[0] - b[0],
g[1] - b[1]
],
wd(k, c),
rd(k, b);
h.xf(k);
d && (k = new zg(Math.abs((g[0] - f[0]) / e), Math.abs((f[1] - g[1]) / e)), c = Sg(Ag(Cg(d))), !Zb || jc('10') || c && jc('8') ? (d = d.style, ac ? d.MozBoxSizing = 'border-box' : bc ? d.WebkitBoxSizing = 'border-box' : d.boxSizing = 'border-box', d.width = Math.max(k.width, 0) + 'px', d.height = Math.max(k.height, 0) + 'px')  : (b = d.style, c ? (c = lh(d, 'padding'), d = oh(d), b.pixelWidth = k.width - d.left - c.left - c.right - d.right, b.pixelHeight = k.height - d.top - c.top - c.bottom - d.bottom)  : (b.pixelWidth = k.width, b.pixelHeight = k.height)))
}
}
l.Rl = function (b) {
b.preventDefault();
ur(this)
};
function ur(b) {
Yg(b.element, 'ol-collapsed');
b.j ? Pg(b.A, b.C)  : Pg(b.C, b.A);
b.j = !b.j;
var c = b.b;
b.j || c.b || (c.Uc(), sr(b), Xc(c, 'postrender', function () {
tr(this)
}, !1, b))
}
l.Ql = function () {
return this.i
};
l.Tl = function (b) {
this.i !== b && (this.i = b, Yg(this.element, 'ol-uncollapsible'), !b && this.j && ur(this))
};
l.Sl = function (b) {
this.i && this.j !== b && ur(this)
};
l.Pl = function () {
return this.j
};
l.ak = function () {
return this.b
};
function vr(b) {
b = b ? b : {
};
var c = b.className ? b.className : 'ol-scale-line';
this.l = Hg('DIV', c + '-inner');
this.i = Hg('DIV', c + ' ol-unselectable', this.l);
this.C = null;
this.A = void 0 !== b.minWidth ? b.minWidth : 64;
this.b = !1;
this.S = void 0;
this.D = '';
this.j = null;
qh.call(this, {
element: this.i,
render: b.render ? b.render : wr,
target: b.target
});
C(this, kd('units'), this.Z, !1, this);
this.T(b.units || 'metric')
}
y(vr, qh);
var xr = [
1,
2,
5
];
vr.prototype.G = function () {
return this.get('units')
};
function wr(b) {
(b = b.frameState) ? this.C = b.viewState : this.C = null;
yr(this)
}
vr.prototype.Z = function () {
yr(this)
};
vr.prototype.T = function (b) {
this.set('units', b)
};
function yr(b) {
var c = b.C;
if (c) {
var d = c.center,
e = c.projection,
c = e.getPointResolution(c.resolution, d),
f = e.c,
g = b.G();
'degrees' != f || 'metric' != g && 'imperial' != g && 'us' != g && 'nautical' != g ? 'degrees' != f && 'degrees' == g ? (b.j || (b.j = Je(e, Fe('EPSG:4326'))), d = Math.cos(Wa(b.j(d) [1])), e = Be.radius, e /= Ce[f], c *= 180 / (Math.PI * d * e))  : b.j = null : (b.j = null, d = Math.cos(Wa(d[1])), c *= Math.PI * d * Be.radius / 180);
d = b.A * c;
f = '';
'degrees' == g ? d < 1 / 60 ? (f = '″', c *= 3600)  : 1 > d ? (f = '′', c *= 60)  : f = '°' : 'imperial' == g ? 0.9144 > d ? (f = 'in', c /= 0.0254)  :
1609.344 > d ? (f = 'ft', c /= 0.3048)  : (f = 'mi', c /= 1609.344)  : 'nautical' == g ? (c /= 1852, f = 'nm')  : 'metric' == g ? 1 > d ? (f = 'mm', c *= 1000)  : 1000 > d ? f = 'm' : (f = 'km', c /= 1000)  : 'us' == g && (0.9144 > d ? (f = 'in', c *= 39.37)  : 1609.344 > d ? (f = 'ft', c /= 0.30480061)  : (f = 'mi', c /= 1609.3472));
for (d = 3 * Math.floor(Math.log(b.A * c) / Math.log(10)); ; ) {
e = xr[d % 3] * Math.pow(10, Math.floor(d / 3));
g = Math.round(e / c);
if (isNaN(g)) {
ih(b.i, !1);
b.b = !1;
return
}
if (g >= b.A) break;
++d
}
c = e + ' ' + f;
b.D != c && (b.l.innerHTML = c, b.D = c);
b.S != g && (b.l.style.width = g + 'px', b.S = g);
b.b || (ih(b.i, !0), b.b =
!0)
} else b.b && (ih(b.i, !1), b.b = !1)
};
function zr(b) {
pc.call(this);
this.c = b;
this.a = {
}
}
y(zr, pc);
var Ar = [
];
zr.prototype.Qa = function (b, c, d, e) {
ga(c) || (c && (Ar[0] = c.toString()), c = Ar);
for (var f = 0; f < c.length; f++) {
var g = C(b, c[f], d || this.handleEvent, e || !1, this.c || this);
if (!g) break;
this.a[g.key] = g
}
return this
};
zr.prototype.Vf = function (b, c, d, e, f) {
if (ga(c)) for (var g = 0; g < c.length; g++) this.Vf(b, c[g], d, e, f);
 else d = d || this.handleEvent,
f = f || this.c || this,
d = Qc(d),
e = !!e,
c = Ec(b) ? Lc(b.zb, String(c), d, e, f)  : b ? (b = Tc(b)) ? Lc(b, c, d, e, f)  : null : null,
c && (Zc(c), delete this.a[c.key]);
return this
};
function Br(b) {
Ib(b.a, function (b, d) {
this.a.hasOwnProperty(d) && Zc(b)
}, b);
b.a = {
}
}
zr.prototype.X = function () {
zr.da.X.call(this);
Br(this)
};
zr.prototype.handleEvent = function () {
throw Error('EventHandler.handleEvent not implemented');
};
function Cr(b, c, d) {
cd.call(this);
this.target = b;
this.handle = c || b;
this.a = d || new $g(NaN, NaN, NaN, NaN);
this.j = Cg(b);
this.c = new zr(this);
tc(this, this.c);
this.g = this.f = this.B = this.l = this.screenY = this.screenX = this.clientY = this.clientX = 0;
this.b = !1;
C(this.handle, [
'touchstart',
'mousedown'
], this.gi, !1, this)
}
y(Cr, cd);
var Dr = Zb || ac && jc('1.9.3');
l = Cr.prototype;
l.X = function () {
Cr.da.X.call(this);
Yc(this.handle, [
'touchstart',
'mousedown'
], this.gi, !1, this);
Br(this.c);
Dr && this.j.releaseCapture();
this.handle = this.target = null
};
l.gi = function (b) {
var c = 'mousedown' == b.type;
if (this.b || c && !Cc(b)) this.o('earlycancel');
 else if (this.o(new Er('start', this, b.clientX, b.clientY))) {
this.b = !0;
b.preventDefault();
var c = this.j,
d = c.documentElement,
e = !Dr;
this.c.Qa(c, [
'touchmove',
'mousemove'
], this.Lk, e);
this.c.Qa(c, [
'touchend',
'mouseup'
], this.Yd, e);
Dr ? (d.setCapture(!1), this.c.Qa(d, 'losecapture', this.Yd))  : this.c.Qa(c ? c.parentWindow || c.defaultView : window, 'blur', this.Yd);
this.u && this.c.Qa(this.u, 'scroll', this.Nn, e);
this.clientX = this.l = b.clientX;
this.clientY = this.B = b.clientY;
this.screenX = b.screenX;
this.screenY = b.screenY;
this.f = this.target.offsetLeft;
this.g = this.target.offsetTop;
this.i = Tg(Ag(this.j))
}
};
l.Yd = function (b) {
Br(this.c);
Dr && this.j.releaseCapture();
this.b ? (this.b = !1, this.o(new Er('end', this, b.clientX, b.clientY, 0, Fr(this, this.f), Gr(this, this.g))))  : this.o('earlycancel')
};
l.Lk = function (b) {
var c = 1 * (b.clientX - this.clientX),
d = b.clientY - this.clientY;
this.clientX = b.clientX;
this.clientY = b.clientY;
this.screenX = b.screenX;
this.screenY = b.screenY;
if (!this.b) {
var e = this.l - this.clientX,
f = this.B - this.clientY;
if (0 < e * e + f * f) if (this.o(new Er('start', this, b.clientX, b.clientY))) this.b = !0;
 else {
this.ia || this.Yd(b);
return
}
}
d = Hr(this, c, d);
c = d.x;
d = d.y;
this.b && this.o(new Er('beforedrag', this, b.clientX, b.clientY, 0, c, d)) && (Ir(this, b, c, d), b.preventDefault())
};
function Hr(b, c, d) {
var e = Tg(Ag(b.j));
c += e.x - b.i.x;
d += e.y - b.i.y;
b.i = e;
b.f += c;
b.g += d;
return new yg(Fr(b, b.f), Gr(b, b.g))
}
l.Nn = function (b) {
var c = Hr(this, 0, 0);
b.clientX = this.clientX;
b.clientY = this.clientY;
Ir(this, b, c.x, c.y)
};
function Ir(b, c, d, e) {
b.target.style.left = d + 'px';
b.target.style.top = e + 'px';
b.o(new Er('drag', b, c.clientX, c.clientY, 0, d, e))
}
function Fr(b, c) {
var d = b.a,
e = isNaN(d.left) ? null : d.left,
d = isNaN(d.width) ? 0 : d.width;
return Math.min(null != e ? e + d : Infinity, Math.max(null != e ? e : - Infinity, c))
}
function Gr(b, c) {
var d = b.a,
e = isNaN(d.top) ? null : d.top,
d = isNaN(d.height) ? 0 : d.height;
return Math.min(null != e ? e + d : Infinity, Math.max(null != e ? e : - Infinity, c))
}
function Er(b, c, d, e, f, g, h) {
vc.call(this, b);
this.clientX = d;
this.clientY = e;
this.left = ca(g) ? g : c.f;
this.top = ca(h) ? h : c.g
}
y(Er, vc);
function Jr(b) {
b = b ? b : {
};
this.j = void 0;
this.i = Kr;
this.l = null;
this.C = !1;
this.A = b.duration ? b.duration : 200;
var c = b.className ? b.className : 'ol-zoomslider',
d = Hg('BUTTON', {
type: 'button',
'class': c + '-thumb ol-unselectable'
}),
c = Hg('DIV', [
c,
'ol-unselectable',
'ol-control'
], d);
this.b = new Cr(d);
tc(this, this.b);
C(this.b, 'start', this.vk, !1, this);
C(this.b, 'drag', this.tk, !1, this);
C(this.b, 'end', this.uk, !1, this);
C(c, 'click', this.sk, !1, this);
C(d, 'click', wc);
qh.call(this, {
element: c,
render: b.render ? b.render : Lr
})
}
y(Jr, qh);
var Kr = 0;
l = Jr.prototype;
l.setMap = function (b) {
Jr.da.setMap.call(this, b);
b && b.render()
};
function Lr(b) {
if (b.frameState) {
if (!this.C) {
var c = this.element,
d = gh(c),
e = Qg(c),
c = lh(e, 'margin'),
f = new zg(e.offsetWidth, e.offsetHeight),
e = f.width + c.right + c.left,
c = f.height + c.top + c.bottom;
this.l = [
e,
c
];
e = d.width - e;
c = d.height - c;
d.width > d.height ? (this.i = 1, d = new $g(0, 0, e, 0))  : (this.i = Kr, d = new $g(0, 0, 0, c));
this.b.a = d || new $g(NaN, NaN, NaN, NaN);
this.C = !0
}
b = b.frameState.viewState.resolution;
b !== this.j && (this.j = b, b = 1 - Qf(this.a.aa()) (b), d = this.b, c = Qg(this.element), 1 == this.i ? ch(c, d.a.left + d.a.width * b)  : ch(c, d.a.left, d.a.top + d.a.height * b))
}
}
l.sk = function (b) {
var c = this.a,
d = c.aa(),
e = d.$();
c.Ma(bg({
resolution: e,
duration: this.A,
easing: Vf
}));
b = Mr(this, Nr(this, b.offsetX - this.l[0] / 2, b.offsetY - this.l[1] / 2));
d.Ub(d.constrainResolution(b))
};
l.vk = function () {
Tf(this.a.aa(), 1)
};
l.tk = function (b) {
this.j = Mr(this, Nr(this, b.left, b.top));
this.a.aa().Ub(this.j)
};
l.uk = function () {
var b = this.a,
c = b.aa();
Tf(c, - 1);
b.Ma(bg({
resolution: this.j,
duration: this.A,
easing: Vf
}));
b = c.constrainResolution(this.j);
c.Ub(b)
};
function Nr(b, c, d) {
var e = b.b.a;
return Sa(1 === b.i ? (c - e.left) / e.width : (d - e.top) / e.height, 0, 1)
}
function Mr(b, c) {
return Pf(b.a.aa()) (1 - c)
};
function Or(b) {
b = b ? b : {
};
this.b = b.extent ? b.extent : null;
var c = b.className ? b.className : 'ol-zoom-extent',
d = Hg('BUTTON', {
type: 'button',
title: b.tipLabel ? b.tipLabel : 'Fit to extent'
}, b.label ? b.label : 'E');
C(d, 'click', this.j, !1, this);
c = Hg('DIV', c + ' ol-unselectable ol-control', d);
qh.call(this, {
element: c,
target: b.target
})
}
y(Or, qh);
Or.prototype.j = function (b) {
b.preventDefault();
var c = this.a;
b = c.aa();
var d = this.b ? this.b : b.g.J(),
c = c.Ra();
b.jf(d, c)
};
function Pr(b) {
id.call(this);
b = b ? b : {
};
this.a = null;
C(this, kd('tracking'), this.ul, !1, this);
this.uf(void 0 !== b.tracking ? b.tracking : !1)
}
y(Pr, id);
l = Pr.prototype;
l.X = function () {
this.uf(!1);
Pr.da.X.call(this)
};
l.On = function (b) {
b = b.a;
if (null !== b.alpha) {
var c = Wa(b.alpha);
this.set('alpha', c);
'boolean' == typeof b.absolute && b.absolute ? this.set('heading', c)  : ja(b.webkitCompassHeading) && - 1 != b.webkitCompassAccuracy && this.set('heading', Wa(b.webkitCompassHeading))
}
null !== b.beta && this.set('beta', Wa(b.beta));
null !== b.gamma && this.set('gamma', Wa(b.gamma));
this.s()
};
l.Bj = function () {
return this.get('alpha')
};
l.Ej = function () {
return this.get('beta')
};
l.Kj = function () {
return this.get('gamma')
};
l.tl = function () {
return this.get('heading')
};
l.Tg = function () {
return this.get('tracking')
};
l.ul = function () {
if ($i) {
var b = this.Tg();
b && !this.a ? this.a = C(ba, 'deviceorientation', this.On, !1, this)  : !b && this.a && (Zc(this.a), this.a = null)
}
};
l.uf = function (b) {
this.set('tracking', b)
};
function Qr() {
this.defaultDataProjection = null
}
function Rr(b, c, d) {
var e;
d && (e = {
dataProjection: d.dataProjection ? d.dataProjection : b.Ia(c),
featureProjection: d.featureProjection
});
return Sr(b, e)
}
function Sr(b, c) {
var d;
c && (d = {
featureProjection: c.featureProjection,
dataProjection: c.dataProjection ? c.dataProjection : b.defaultDataProjection,
rightHanded: c.rightHanded
});
return d
}
function Tr(b, c, d) {
var e = d ? Fe(d.featureProjection)  : null;
d = d ? Fe(d.dataProjection)  : null;
return e && d && !Xe(e, d) ? b instanceof bf ? (c ? b.clone()  : b).kb(c ? e : d, c ? d : e)  : af(c ? b.slice()  : b, c ? e : d, c ? d : e)  : b
};
function Ur() {
this.defaultDataProjection = null
}
y(Ur, Qr);
function Vr(b) {
return ma(b) ? b : ia(b) ? (b = ao(b)) ? b : null : null
}
l = Ur.prototype;
l.V = function () {
return 'json'
};
l.Tb = function (b, c) {
return this.Rc(Vr(b), Rr(this, b, c))
};
l.Ba = function (b, c) {
return this.Jf(Vr(b), Rr(this, b, c))
};
l.Sc = function (b, c) {
return this.Dh(Vr(b), Rr(this, b, c))
};
l.Ia = function (b) {
return this.Kh(Vr(b))
};
l.Jd = function (b, c) {
return bo(this.Vc(b, c))
};
l.Vb = function (b, c) {
return bo(this.Re(b, c))
};
l.Wc = function (b, c) {
return bo(this.Te(b, c))
};
function Wr(b, c, d, e, f) {
var g = NaN,
h = NaN,
k = (d - c) / e;
if (0 !== k) if (1 == k) g = b[c],
h = b[c + 1];
 else if (2 == k) g = 0.5 * b[c] + 0.5 * b[c + e],
h = 0.5 * b[c + 1] + 0.5 * b[c + e + 1];
 else {
var h = b[c],
k = b[c + 1],
m = 0,
g = [
0
],
n;
for (n = c + e; n < d; n += e) {
var p = b[n],
q = b[n + 1],
m = m + Math.sqrt((p - h) * (p - h) + (q - k) * (q - k));
g.push(m);
h = p;
k = q
}
d = 0.5 * m;
for (var r, h = pb, k = 0, m = g.length; k < m; ) n = k + m >> 1,
p = h(d, g[n]),
0 < p ? k = n + 1 : (m = n, r = !p);
r = r ? k : ~k;
0 > r ? (d = (d - g[ - r - 2]) / (g[ - r - 1] - g[ - r - 2]), c += ( - r - 2) * e, g = qd(b[c], b[c + e], d), h = qd(b[c + 1], b[c + e + 1], d))  : (g = b[c + r * e], h = b[c + r * e + 1])
}
return f ? (f[0] =
g, f[1] = h, f)  : [
g,
h
]
}
function Xr(b, c, d, e, f, g) {
if (d == c) return null;
if (f < b[c + e - 1]) return g ? (d = b.slice(c, c + e), d[e - 1] = f, d)  : null;
if (b[d - 1] < f) return g ? (d = b.slice(d - e, d), d[e - 1] = f, d)  : null;
if (f == b[c + e - 1]) return b.slice(c, c + e);
c /= e;
for (d /= e; c < d; ) g = c + d >> 1,
f < b[(g + 1) * e - 1] ? d = g : c = g + 1;
d = b[c * e - 1];
if (f == d) return b.slice((c - 1) * e, (c - 1) * e + e);
g = (f - d) / (b[(c + 1) * e - 1] - d);
d = [
];
var h;
for (h = 0; h < e - 1; ++h) d.push(qd(b[(c - 1) * e + h], b[c * e + h], g));
d.push(f);
return d
}
function Yr(b, c, d, e, f, g) {
var h = 0;
if (g) return Xr(b, h, c[c.length - 1], d, e, f);
if (e < b[d - 1]) return f ? (b = b.slice(0, d), b[d - 1] = e, b)  : null;
if (b[b.length - 1] < e) return f ? (b = b.slice(b.length - d), b[d - 1] = e, b)  : null;
f = 0;
for (g = c.length; f < g; ++f) {
var k = c[f];
if (h != k) {
if (e < b[h + d - 1]) break;
if (e <= b[k - 1]) return Xr(b, h, k, d, e, !1);
h = k
}
}
return null
};
function T(b, c) {
df.call(this);
this.g = null;
this.D = this.G = this.l = - 1;
this.ma(b, c)
}
y(T, df);
l = T.prototype;
l.jj = function (b) {
this.v ? lb(this.v, b)  : this.v = b.slice();
this.s()
};
l.clone = function () {
var b = new T(null);
b.ba(this.b, this.v.slice());
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
this.D != this.c && (this.G = Math.sqrt(lf(this.v, 0, this.v.length, this.a, 0)), this.D = this.c);
return nf(this.v, 0, this.v.length, this.a, this.G, !1, b, c, d, e)
};
l.yj = function (b, c) {
return Cf(this.v, 0, this.v.length, this.a, b, c)
};
l.Wl = function (b, c) {
return 'XYM' != this.b && 'XYZM' != this.b ? null : Xr(this.v, 0, this.v.length, this.a, b, void 0 !== c ? c : !1)
};
l.Y = function () {
return sf(this.v, 0, this.v.length, this.a)
};
l.Xl = function () {
var b = this.v,
c = this.a,
d = b[0],
e = b[1],
f = 0,
g;
for (g = 0 + c; g < this.v.length; g += c) var h = b[g],
k = b[g + 1],
f = f + Math.sqrt((h - d) * (h - d) + (k - e) * (k - e)),
d = h,
e = k;
return f
};
function sm(b) {
b.l != b.c && (b.g = Wr(b.v, 0, b.v.length, b.a, b.g), b.l = b.c);
return b.g
}
l.Kc = function (b) {
var c = [
];
c.length = uf(this.v, 0, this.v.length, this.a, b, c, 0);
b = new T(null);
b.ba('XY', c);
return b
};
l.V = function () {
return 'LineString'
};
l.Da = function (b) {
return Df(this.v, 0, this.v.length, this.a, b)
};
l.ma = function (b, c) {
b ? (gf(this, c, b, 1), this.v || (this.v = [
]), this.v.length = qf(this.v, 0, b, this.a), this.s())  : this.ba('XY', null)
};
l.ba = function (b, c) {
ff(this, b, c);
this.s()
};
function U(b, c) {
df.call(this);
this.g = [
];
this.l = this.D = - 1;
this.ma(b, c)
}
y(U, df);
l = U.prototype;
l.kj = function (b) {
this.v ? lb(this.v, b.ja().slice())  : this.v = b.ja().slice();
this.g.push(this.v.length);
this.s()
};
l.clone = function () {
var b = new U(null);
b.ba(this.b, this.v.slice(), this.g.slice());
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
this.l != this.c && (this.D = Math.sqrt(mf(this.v, 0, this.g, this.a, 0)), this.l = this.c);
return of(this.v, 0, this.g, this.a, this.D, !1, b, c, d, e)
};
l.Zl = function (b, c, d) {
return 'XYM' != this.b && 'XYZM' != this.b || 0 === this.v.length ? null : Yr(this.v, this.g, this.a, b, void 0 !== c ? c : !1, void 0 !== d ? d : !1)
};
l.Y = function () {
return tf(this.v, 0, this.g, this.a)
};
l.Ab = function () {
return this.g
};
l.Sj = function (b) {
if (0 > b || this.g.length <= b) return null;
var c = new T(null);
c.ba(this.b, this.v.slice(0 === b ? 0 : this.g[b - 1], this.g[b]));
return c
};
l.rd = function () {
var b = this.v,
c = this.g,
d = this.b,
e = [
],
f = 0,
g,
h;
g = 0;
for (h = c.length; g < h; ++g) {
var k = c[g],
m = new T(null);
m.ba(d, b.slice(f, k));
e.push(m);
f = k
}
return e
};
function tm(b) {
var c = [
],
d = b.v,
e = 0,
f = b.g;
b = b.a;
var g,
h;
g = 0;
for (h = f.length; g < h; ++g) {
var k = f[g],
e = Wr(d, e, k, b);
lb(c, e);
e = k
}
return c
}
l.Kc = function (b) {
var c = [
],
d = [
],
e = this.v,
f = this.g,
g = this.a,
h = 0,
k = 0,
m,
n;
m = 0;
for (n = f.length; m < n; ++m) {
var p = f[m],
k = uf(e, h, p, g, b, c, k);
d.push(k);
h = p
}
c.length = k;
b = new U(null);
b.ba('XY', c, d);
return b
};
l.V = function () {
return 'MultiLineString'
};
l.Da = function (b) {
a: {
var c = this.v,
d = this.g,
e = this.a,
f = 0,
g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
if (Df(c, f, d[g], e, b)) {
b = !0;
break a
}
f = d[g]
}
b = !1
}
return b
};
l.ma = function (b, c) {
if (b) {
gf(this, c, b, 2);
this.v || (this.v = [
]);
var d = rf(this.v, 0, b, this.a, this.g);
this.v.length = 0 === d.length ? 0 : d[d.length - 1];
this.s()
} else this.ba('XY', null, this.g)
};
l.ba = function (b, c, d) {
ff(this, b, c);
this.g = d;
this.s()
};
function Zr(b, c) {
var d = b.b,
e = [
],
f = [
],
g,
h;
g = 0;
for (h = c.length; g < h; ++g) {
var k = c[g];
0 === g && (d = k.b);
lb(e, k.ja());
f.push(e.length)
}
b.ba(d, e, f)
};
function $r(b, c) {
df.call(this);
this.ma(b, c)
}
y($r, df);
l = $r.prototype;
l.mj = function (b) {
this.v ? lb(this.v, b.ja())  : this.v = b.ja().slice();
this.s()
};
l.clone = function () {
var b = new $r(null);
b.ba(this.b, this.v.slice());
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
var f = this.v,
g = this.a,
h,
k,
m;
h = 0;
for (k = f.length; h < k; h += g) if (m = Va(b, c, f[h], f[h + 1]), m < e) {
e = m;
for (m = 0; m < g; ++m) d[m] = f[h + m];
d.length = g
}
return e
};
l.Y = function () {
return sf(this.v, 0, this.v.length, this.a)
};
l.ck = function (b) {
var c = this.v ? this.v.length / this.a : 0;
if (0 > b || c <= b) return null;
c = new D(null);
c.ba(this.b, this.v.slice(b * this.a, (b + 1) * this.a));
return c
};
l.ue = function () {
var b = this.v,
c = this.b,
d = this.a,
e = [
],
f,
g;
f = 0;
for (g = b.length; f < g; f += d) {
var h = new D(null);
h.ba(c, b.slice(f, f + d));
e.push(h)
}
return e
};
l.V = function () {
return 'MultiPoint'
};
l.Da = function (b) {
var c = this.v,
d = this.a,
e,
f,
g,
h;
e = 0;
for (f = c.length; e < f; e += d) if (g = c[e], h = c[e + 1], Wd(b, g, h)) return !0;
return !1
};
l.ma = function (b, c) {
b ? (gf(this, c, b, 1), this.v || (this.v = [
]), this.v.length = qf(this.v, 0, b, this.a), this.s())  : this.ba('XY', null)
};
l.ba = function (b, c) {
ff(this, b, c);
this.s()
};
function V(b, c) {
df.call(this);
this.g = [
];
this.D = - 1;
this.G = null;
this.T = this.S = this.U = - 1;
this.l = null;
this.ma(b, c)
}
y(V, df);
l = V.prototype;
l.nj = function (b) {
if (this.v) {
var c = this.v.length;
lb(this.v, b.ja());
b = b.Ab().slice();
var d,
e;
d = 0;
for (e = b.length; d < e; ++d) b[d] += c
} else this.v = b.ja().slice(),
b = b.Ab().slice(),
this.g.push();
this.g.push(b);
this.s()
};
l.clone = function () {
var b = new V(null),
c = Vb(this.g);
as(b, this.b, this.v.slice(), c);
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
if (this.S != this.c) {
var f = this.g,
g = 0,
h = 0,
k,
m;
k = 0;
for (m = f.length; k < m; ++k) var n = f[k],
h = mf(this.v, g, n, this.a, h),
g = n[n.length - 1];
this.U = Math.sqrt(h);
this.S = this.c
}
f = um(this);
g = this.g;
h = this.a;
k = this.U;
m = 0;
var n = [
NaN,
NaN
],
p,
q;
p = 0;
for (q = g.length; p < q; ++p) {
var r = g[p];
e = of(f, m, r, h, k, !0, b, c, d, e, n);
m = r[r.length - 1]
}
return e
};
l.rc = function (b, c) {
var d;
a: {
d = um(this);
var e = this.g,
f = 0;
if (0 !== e.length) {
var g,
h;
g = 0;
for (h = e.length; g < h; ++g) {
var k = e[g];
if (Af(d, f, k, this.a, b, c)) {
d = !0;
break a
}
f = k[k.length - 1]
}
}
d = !1
}
return d
};
l.$l = function () {
var b = um(this),
c = this.g,
d = 0,
e = 0,
f,
g;
f = 0;
for (g = c.length; f < g; ++f) var h = c[f],
e = e + jf(b, d, h, this.a),
d = h[h.length - 1];
return e
};
l.Y = function (b) {
var c;
void 0 !== b ? (c = um(this).slice(), If(c, this.g, this.a, b))  : c = this.v;
b = c;
c = this.g;
var d = this.a,
e = 0,
f = [
],
g = 0,
h,
k;
h = 0;
for (k = c.length; h < k; ++h) {
var m = c[h];
f[g++] = tf(b, e, m, d, f[g]);
e = m[m.length - 1]
}
f.length = g;
return f
};
function vm(b) {
if (b.D != b.c) {
var c = b.v,
d = b.g,
e = b.a,
f = 0,
g = [
],
h,
k,
m = Od();
h = 0;
for (k = d.length; h < k; ++h) {
var n = d[h],
m = $d(c, f, n[0], e);
g.push((m[0] + m[2]) / 2, (m[1] + m[3]) / 2);
f = n[n.length - 1]
}
c = um(b);
d = b.g;
e = b.a;
f = 0;
h = [
];
k = 0;
for (m = d.length; k < m; ++k) n = d[k],
h = Bf(c, f, n, e, g, 2 * k, h),
f = n[n.length - 1];
b.G = h;
b.D = b.c
}
return b.G
}
l.Pj = function () {
var b = new $r(null);
b.ba('XY', vm(this).slice());
return b
};
function um(b) {
if (b.T != b.c) {
var c = b.v,
d;
a: {
d = b.g;
var e,
f;
e = 0;
for (f = d.length; e < f; ++e) if (!Gf(c, d[e], b.a, void 0)) {
d = !1;
break a
}
d = !0
}
d ? b.l = c : (b.l = c.slice(), b.l.length = If(b.l, b.g, b.a));
b.T = b.c
}
return b.l
}
l.Kc = function (b) {
var c = [
],
d = [
],
e = this.v,
f = this.g,
g = this.a;
b = Math.sqrt(b);
var h = 0,
k = 0,
m,
n;
m = 0;
for (n = f.length; m < n; ++m) {
var p = f[m],
q = [
],
k = vf(e, h, p, g, b, c, k, q);
d.push(q);
h = p[p.length - 1]
}
c.length = k;
e = new V(null);
as(e, 'XY', c, d);
return e
};
l.ek = function (b) {
if (0 > b || this.g.length <= b) return null;
var c;
0 === b ? c = 0 : (c = this.g[b - 1], c = c[c.length - 1]);
b = this.g[b].slice();
var d = b[b.length - 1];
if (0 !== c) {
var e,
f;
e = 0;
for (f = b.length; e < f; ++e) b[e] -= c
}
e = new E(null);
e.ba(this.b, this.v.slice(c, d), b);
return e
};
l.be = function () {
var b = this.b,
c = this.v,
d = this.g,
e = [
],
f = 0,
g,
h,
k,
m;
g = 0;
for (h = d.length; g < h; ++g) {
var n = d[g].slice(),
p = n[n.length - 1];
if (0 !== f) for (k = 0, m = n.length; k < m; ++k) n[k] -= f;
k = new E(null);
k.ba(b, c.slice(f, p), n);
e.push(k);
f = p
}
return e
};
l.V = function () {
return 'MultiPolygon'
};
l.Da = function (b) {
a: {
var c = um(this),
d = this.g,
e = this.a,
f = 0,
g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
var k = d[g];
if (Ef(c, f, k, e, b)) {
b = !0;
break a
}
f = k[k.length - 1]
}
b = !1
}
return b
};
l.ma = function (b, c) {
if (b) {
gf(this, c, b, 3);
this.v || (this.v = [
]);
var d = this.v,
e = this.a,
f = this.g,
g = 0,
f = f ? f : [
],
h = 0,
k,
m;
k = 0;
for (m = b.length; k < m; ++k) g = rf(d, g, b[k], e, f[h]),
f[h++] = g,
g = g[g.length - 1];
f.length = h;
0 === f.length ? this.v.length = 0 : (d = f[f.length - 1], this.v.length = 0 === d.length ? 0 : d[d.length - 1]);
this.s()
} else as(this, 'XY', null, this.g)
};
function as(b, c, d, e) {
ff(b, c, d);
b.g = e;
b.s()
}
function bs(b, c) {
var d = b.b,
e = [
],
f = [
],
g,
h,
k;
g = 0;
for (h = c.length; g < h; ++g) {
var m = c[g];
0 === g && (d = m.b);
var n = e.length;
k = m.Ab();
var p,
q;
p = 0;
for (q = k.length; p < q; ++p) k[p] += n;
lb(e, m.ja());
f.push(k)
}
as(b, d, e, f)
};
function cs(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.a = b.geometryName
}
y(cs, Ur);
function ds(b, c) {
if (!b) return null;
var d;
if (ja(b.x) && ja(b.y)) d = 'Point';
 else if (b.points) d = 'MultiPoint';
 else if (b.paths) d = 1 === b.paths.length ? 'LineString' : 'MultiLineString';
 else if (b.rings) {
var e = b.rings,
f = es(b),
g = [
];
d = [
];
var h,
k;
h = 0;
for (k = e.length; h < k; ++h) {
var m = ub(e[h]);
Ff(m, 0, m.length, f.length) ? g.push([e[h]])  : d.push(e[h])
}
for (; d.length; ) {
e = d.shift();
f = !1;
for (h = g.length - 1; 0 <= h; h--) if (Xd((new wf(g[h][0])).J(), (new wf(e)).J())) {
g[h].push(e);
f = !0;
break
}
f || g.push([e.reverse()])
}
b = Ub(b);
1 === g.length ? (d =
'Polygon', b.rings = g[0])  : (d = 'MultiPolygon', b.rings = g)
}
return Tr((0, fs[d]) (b), !1, c)
}
function es(b) {
var c = 'XY';
!0 === b.hasZ && !0 === b.hasM ? c = 'XYZM' : !0 === b.hasZ ? c = 'XYZ' : !0 === b.hasM && (c = 'XYM');
return c
}
function gs(b) {
b = b.b;
return {
hasZ: 'XYZ' === b || 'XYZM' === b,
hasM: 'XYM' === b || 'XYZM' === b
}
}
var fs = {
Point: function (b) {
return void 0 !== b.m && void 0 !== b.z ? new D([b.x,
b.y,
b.z,
b.m], 'XYZM')  : void 0 !== b.z ? new D([b.x,
b.y,
b.z], 'XYZ')  : void 0 !== b.m ? new D([b.x,
b.y,
b.m], 'XYM')  : new D([b.x,
b.y])
},
LineString: function (b) {
return new T(b.paths[0], es(b))
},
Polygon: function (b) {
return new E(b.rings, es(b))
},
MultiPoint: function (b) {
return new $r(b.points, es(b))
},
MultiLineString: function (b) {
return new U(b.paths, es(b))
},
MultiPolygon: function (b) {
return new V(b.rings, es(b))
}
},
hs = {
Point: function (b) {
var c = b.Y();
b = b.b;
if ('XYZ' ===
b) return {
x: c[0],
y: c[1],
z: c[2]
};
if ('XYM' === b) return {
x: c[0],
y: c[1],
m: c[2]
};
if ('XYZM' === b) return {
x: c[0],
y: c[1],
z: c[2],
m: c[3]
};
if ('XY' === b) return {
x: c[0],
y: c[1]
}
},
LineString: function (b) {
var c = gs(b);
return {
hasZ: c.hasZ,
hasM: c.hasM,
paths: [
b.Y()
]
}
},
Polygon: function (b) {
var c = gs(b);
return {
hasZ: c.hasZ,
hasM: c.hasM,
rings: b.Y(!1)
}
},
MultiPoint: function (b) {
var c = gs(b);
return {
hasZ: c.hasZ,
hasM: c.hasM,
points: b.Y()
}
},
MultiLineString: function (b) {
var c = gs(b);
return {
hasZ: c.hasZ,
hasM: c.hasM,
paths: b.Y()
}
},
MultiPolygon: function (b) {
var c =
gs(b);
b = b.Y(!1);
for (var d = [
], e = 0; e < b.length; e++) for (var f = b[e].length - 1; 0 <= f; f--) d.push(b[e][f]);
return {
hasZ: c.hasZ,
hasM: c.hasM,
rings: d
}
}
};
l = cs.prototype;
l.Rc = function (b, c) {
var d = ds(b.geometry, c),
e = new sn;
this.a && e.vc(this.a);
e.La(d);
c && c.pf && b.attributes[c.pf] && e.ic(b.attributes[c.pf]);
b.attributes && e.I(b.attributes);
return e
};
l.Jf = function (b, c) {
var d = c ? c : {
};
if (b.features) {
var e = [
],
f = b.features,
g,
h;
d.pf = b.objectIdFieldName;
g = 0;
for (h = f.length; g < h; ++g) e.push(this.Rc(f[g], d));
return e
}
return [this.Rc(b, d)]
};
l.Dh = function (b, c) {
return ds(b, c)
};
l.Kh = function (b) {
return b.spatialReference && b.spatialReference.wkid ? Fe('EPSG:' + b.spatialReference.wkid)  : null
};
function is(b, c) {
return (0, hs[b.V()]) (Tr(b, !0, c), c)
}
l.Te = function (b, c) {
return is(b, Sr(this, c))
};
l.Vc = function (b, c) {
c = Sr(this, c);
var d = {
},
e = b.W();
e && (d.geometry = is(e, c));
e = b.P();
delete e[b.a];
d.attributes = Qb(e) ? {
}
 : e;
c && c.featureProjection && (d.spatialReference = {
wkid: Fe(c.featureProjection).a.split(':').pop()
});
return d
};
l.Re = function (b, c) {
c = Sr(this, c);
var d = [
],
e,
f;
e = 0;
for (f = b.length; e < f; ++e) d.push(this.Vc(b[e], c));
return {
features: d
}
};
function js(b) {
bf.call(this);
this.f = b ? b : null;
ks(this)
}
y(js, bf);
function ls(b) {
var c = [
],
d,
e;
d = 0;
for (e = b.length; d < e; ++d) c.push(b[d].clone());
return c
}
function ms(b) {
var c,
d;
if (b.f) for (c = 0, d = b.f.length; c < d; ++c) Yc(b.f[c], 'change', b.s, !1, b)
}
function ks(b) {
var c,
d;
if (b.f) for (c = 0, d = b.f.length; c < d; ++c) C(b.f[c], 'change', b.s, !1, b)
}
l = js.prototype;
l.clone = function () {
var b = new js(null);
b.Vh(this.f);
return b
};
l.mb = function (b, c, d, e) {
if (e < Ud(this.J(), b, c)) return e;
var f = this.f,
g,
h;
g = 0;
for (h = f.length; g < h; ++g) e = f[g].mb(b, c, d, e);
return e
};
l.rc = function (b, c) {
var d = this.f,
e,
f;
e = 0;
for (f = d.length; e < f; ++e) if (d[e].rc(b, c)) return !0;
return !1
};
l.Vd = function (b) {
Rd(Infinity, Infinity, - Infinity, - Infinity, b);
for (var c = this.f, d = 0, e = c.length; d < e; ++d) ce(b, c[d].J());
return b
};
l.zg = function () {
return ls(this.f)
};
l.sd = function (b) {
this.u != this.c && (Rb(this.j), this.i = 0, this.u = this.c);
if (0 > b || 0 !== this.i && b < this.i) return this;
var c = b.toString();
if (this.j.hasOwnProperty(c)) return this.j[c];
var d = [
],
e = this.f,
f = !1,
g,
h;
g = 0;
for (h = e.length; g < h; ++g) {
var k = e[g],
m = k.sd(b);
d.push(m);
m !== k && (f = !0)
}
if (f) return b = new js(null),
ms(b),
b.f = d,
ks(b),
b.s(),
this.j[c] = b;
this.i = b;
return this
};
l.V = function () {
return 'GeometryCollection'
};
l.Da = function (b) {
var c = this.f,
d,
e;
d = 0;
for (e = c.length; d < e; ++d) if (c[d].Da(b)) return !0;
return !1
};
l.Ka = function () {
return 0 === this.f.length
};
l.Vh = function (b) {
b = ls(b);
ms(this);
this.f = b;
ks(this);
this.s()
};
l.mc = function (b) {
var c = this.f,
d,
e;
d = 0;
for (e = c.length; d < e; ++d) c[d].mc(b);
this.s()
};
l.Oc = function (b, c) {
var d = this.f,
e,
f;
e = 0;
for (f = d.length; e < f; ++e) d[e].Oc(b, c);
this.s()
};
l.X = function () {
ms(this);
js.da.X.call(this)
};
function ns(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.defaultDataProjection = Fe(b.defaultDataProjection ? b.defaultDataProjection : 'EPSG:4326');
this.a = b.geometryName
}
y(ns, Ur);
function os(b, c) {
return b ? Tr((0, ps[b.type]) (b), !1, c)  : null
}
function qs(b, c) {
return (0, rs[b.V()]) (Tr(b, !0, c), c)
}
var ps = {
Point: function (b) {
return new D(b.coordinates)
},
LineString: function (b) {
return new T(b.coordinates)
},
Polygon: function (b) {
return new E(b.coordinates)
},
MultiPoint: function (b) {
return new $r(b.coordinates)
},
MultiLineString: function (b) {
return new U(b.coordinates)
},
MultiPolygon: function (b) {
return new V(b.coordinates)
},
GeometryCollection: function (b, c) {
var d = b.geometries.map(function (b) {
return os(b, c)
});
return new js(d)
}
},
rs = {
Point: function (b) {
return {
type: 'Point',
coordinates: b.Y()
}
},
LineString: function (b) {
return {
type: 'LineString',
coordinates: b.Y()
}
},
Polygon: function (b, c) {
var d;
c && (d = c.rightHanded);
return {
type: 'Polygon',
coordinates: b.Y(d)
}
},
MultiPoint: function (b) {
return {
type: 'MultiPoint',
coordinates: b.Y()
}
},
MultiLineString: function (b) {
return {
type: 'MultiLineString',
coordinates: b.Y()
}
},
MultiPolygon: function (b, c) {
var d;
c && (d = c.rightHanded);
return {
type: 'MultiPolygon',
coordinates: b.Y(d)
}
},
GeometryCollection: function (b, c) {
return {
type: 'GeometryCollection',
geometries: b.f.map(function (b) {
return qs(b, c)
})
}
},
Circle: function () {
return {
type: 'GeometryCollection',
geometries: [
]
}
}
};
l = ns.prototype;
l.Rc = function (b, c) {
var d = os(b.geometry, c),
e = new sn;
this.a && e.vc(this.a);
e.La(d);
void 0 !== b.id && e.ic(b.id);
b.properties && e.I(b.properties);
return e
};
l.Jf = function (b, c) {
if ('Feature' == b.type) return [this.Rc(b, c)];
if ('FeatureCollection' == b.type) {
var d = [
],
e = b.features,
f,
g;
f = 0;
for (g = e.length; f < g; ++f) d.push(this.Rc(e[f], c));
return d
}
return []
};
l.Dh = function (b, c) {
return os(b, c)
};
l.Kh = function (b) {
return (b = b.crs) ? 'name' == b.type ? Fe(b.properties.name)  : 'EPSG' == b.type ? Fe('EPSG:' + b.properties.code)  : null : this.defaultDataProjection
};
l.Vc = function (b, c) {
c = Sr(this, c);
var d = {
type: 'Feature'
},
e = b.Na();
void 0 !== e && (d.id = e);
e = b.W();
d.geometry = e ? qs(e, c)  : null;
e = b.P();
delete e[b.a];
d.properties = Qb(e) ? null : e;
return d
};
l.Re = function (b, c) {
c = Sr(this, c);
var d = [
],
e,
f;
e = 0;
for (f = b.length; e < f; ++e) d.push(this.Vc(b[e], c));
return {
type: 'FeatureCollection',
features: d
}
};
l.Te = function (b, c) {
return qs(b, Sr(this, c))
};
function ss() {
this.defaultDataProjection = null
}
y(ss, Qr);
l = ss.prototype;
l.V = function () {
return 'xml'
};
l.Tb = function (b, c) {
if (Vo(b)) return ts(this, b, c);
if (Yo(b)) return this.Bh(b, c);
if (ia(b)) {
var d = hp(b);
return ts(this, d, c)
}
return null
};
function ts(b, c, d) {
b = us(b, c, d);
return 0 < b.length ? b[0] : null
}
l.Ba = function (b, c) {
if (Vo(b)) return us(this, b, c);
if (Yo(b)) return this.hc(b, c);
if (ia(b)) {
var d = hp(b);
return us(this, d, c)
}
return []
};
function us(b, c, d) {
var e = [
];
for (c = c.firstChild; c; c = c.nextSibling) 1 == c.nodeType && lb(e, b.hc(c, d));
return e
}
l.Sc = function (b, c) {
if (Vo(b)) return this.u(b, c);
if (Yo(b)) {
var d = this.Ie(b, [
Rr(this, b, c ? c : {
})
]);
return d ? d : null
}
return ia(b) ? (d = hp(b), this.u(d, c))  : null
};
l.Ia = function (b) {
return Vo(b) ? this.Pf(b)  : Yo(b) ? this.Le(b)  : ia(b) ? (b = hp(b), this.Pf(b))  : null
};
l.Pf = function () {
return this.defaultDataProjection
};
l.Le = function () {
return this.defaultDataProjection
};
l.Jd = function (b, c) {
var d = this.C(b, c);
return Ho(d)
};
l.Vb = function (b, c) {
var d = this.c(b, c);
return Ho(d)
};
l.Wc = function (b, c) {
var d = this.B(b, c);
return Ho(d)
};
function vs(b) {
b = b ? b : {
};
this.featureType = b.featureType;
this.featureNS = b.featureNS;
this.srsName = b.srsName;
this.schemaLocation = '';
this.a = {
};
this.a['http://www.opengis.net/gml'] = {
featureMember: kp(vs.prototype.Dd),
featureMembers: kp(vs.prototype.Dd)
};
this.defaultDataProjection = null
}
y(vs, ss);
l = vs.prototype;
l.Dd = function (b, c) {
var d = So(b),
e;
if ('FeatureCollection' == d) 'http://www.opengis.net/wfs' === b.namespaceURI ? e = Q([], this.a, b, c, this)  : e = Q(null, this.a, b, c, this);
 else if ('featureMembers' == d || 'featureMember' == d) {
var f = c[0],
g = f.featureType;
e = f.featureNS;
var h,
k;
if (!g && b.childNodes) {
g = [
];
e = {
};
h = 0;
for (k = b.childNodes.length; h < k; ++h) {
var m = b.childNodes[h];
if (1 === m.nodeType) {
var n = m.nodeName.split(':').pop();
if ( - 1 === g.indexOf(n)) {
var p;
Ob(e, m.namespaceURI) ? p = Pb(e, function (b) {
return b === m.namespaceURI
})  : (p = 'p' +
Kb(e), e[p] = m.namespaceURI);
g.push(p + ':' + n)
}
}
}
f.featureType = g;
f.featureNS = e
}
ia(e) && (h = e, e = {
}, e.p0 = h);
var f = {
},
g = ga(g) ? g : [
g
],
q;
for (q in e) {
n = {
};
h = 0;
for (k = g.length; h < k; ++h) ( - 1 === g[h].indexOf(':') ? 'p0' : g[h].split(':') [0]) === q && (n[g[h].split(':').pop()] = 'featureMembers' == d ? jp(this.If, this)  : kp(this.If, this));
f[e[q]] = n
}
e = Q([], f, b, c)
}
e || (e = [
]);
return e
};
l.Ie = function (b, c) {
var d = c[0];
d.srsName = b.firstElementChild.getAttribute('srsName');
var e = Q(null, this.ag, b, c, this);
if (e) return Tr(e, !1, d)
};
l.If = function (b, c) {
var d,
e = b.getAttribute('fid') || bp(b, 'http://www.opengis.net/gml', 'id'),
f = {
},
g;
for (d = b.firstElementChild; d; d = d.nextElementSibling) {
var h = So(d);
if (0 === d.childNodes.length || 1 === d.childNodes.length && (3 === d.firstChild.nodeType || 4 === d.firstChild.nodeType)) {
var k = Oo(d, !1);
/^[\s\xa0]*$/.test(k) && (k = void 0);
f[h] = k
} else 'boundedBy' !== h && (g = h),
f[h] = this.Ie(d, c)
}
d = new sn(f);
g && d.vc(g);
e && d.ic(e);
return d
};
l.Jh = function (b, c) {
var d = this.He(b, c);
if (d) {
var e = new D(null);
e.ba('XYZ', d);
return e
}
};
l.Hh = function (b, c) {
var d = Q([], this.Hi, b, c, this);
if (d) return new $r(d)
};
l.Gh = function (b, c) {
var d = Q([], this.Gi, b, c, this);
if (d) {
var e = new U(null);
Zr(e, d);
return e
}
};
l.Ih = function (b, c) {
var d = Q([], this.Ii, b, c, this);
if (d) {
var e = new V(null);
bs(e, d);
return e
}
};
l.yh = function (b, c) {
rp(this.Li, b, c, this)
};
l.Og = function (b, c) {
rp(this.Ei, b, c, this)
};
l.zh = function (b, c) {
rp(this.Mi, b, c, this)
};
l.Je = function (b, c) {
var d = this.He(b, c);
if (d) {
var e = new T(null);
e.ba('XYZ', d);
return e
}
};
l.jo = function (b, c) {
var d = Q(null, this.Ld, b, c, this);
if (d) return d
};
l.Fh = function (b, c) {
var d = this.He(b, c);
if (d) {
var e = new wf(null);
xf(e, 'XYZ', d);
return e
}
};
l.Ke = function (b, c) {
var d = Q([null], this.Ve, b, c, this);
if (d && d[0]) {
var e = new E(null),
f = d[0],
g = [
f.length
],
h,
k;
h = 1;
for (k = d.length; h < k; ++h) lb(f, d[h]),
g.push(f.length);
e.ba('XYZ', f, g);
return e
}
};
l.He = function (b, c) {
return Q(null, this.Ld, b, c, this)
};
l.Hi = Object({
'http://www.opengis.net/gml': {
pointMember: jp(vs.prototype.yh),
pointMembers: jp(vs.prototype.yh)
}
});
l.Gi = Object({
'http://www.opengis.net/gml': {
lineStringMember: jp(vs.prototype.Og),
lineStringMembers: jp(vs.prototype.Og)
}
});
l.Ii = Object({
'http://www.opengis.net/gml': {
polygonMember: jp(vs.prototype.zh),
polygonMembers: jp(vs.prototype.zh)
}
});
l.Li = Object({
'http://www.opengis.net/gml': {
Point: jp(vs.prototype.He)
}
});
l.Ei = Object({
'http://www.opengis.net/gml': {
LineString: jp(vs.prototype.Je)
}
});
l.Mi = Object({
'http://www.opengis.net/gml': {
Polygon: jp(vs.prototype.Ke)
}
});
l.Md = Object({
'http://www.opengis.net/gml': {
LinearRing: kp(vs.prototype.jo)
}
});
l.hc = function (b, c) {
var d = {
featureType: this.featureType,
featureNS: this.featureNS
};
c && Xb(d, Rr(this, b, c));
return this.Dd(b, [
d
])
};
l.Le = function (b) {
return Fe(this.A ? this.A : b.firstElementChild.getAttribute('srsName'))
};
function ws(b) {
b = Oo(b, !1);
return xs(b)
}
function xs(b) {
if (b = /^\s*(true|1)|(false|0)\s*$/.exec(b)) return void 0 !== b[1] || !1
}
function ys(b) {
b = Oo(b, !1);
if (b = /^\s*(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?))\s*$/.exec(b)) {
var c = Date.UTC(parseInt(b[1], 10), parseInt(b[2], 10) - 1, parseInt(b[3], 10), parseInt(b[4], 10), parseInt(b[5], 10), parseInt(b[6], 10)) / 1000;
if ('Z' != b[7]) {
var d = '-' == b[8] ? - 1 : 1,
c = c + 60 * d * parseInt(b[9], 10);
void 0 !== b[10] && (c += 3600 * d * parseInt(b[10], 10))
}
return c
}
}
function zs(b) {
b = Oo(b, !1);
return As(b)
}
function As(b) {
if (b = /^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(b)) return parseFloat(b[1])
}
function Bs(b) {
b = Oo(b, !1);
return Cs(b)
}
function Cs(b) {
if (b = /^\s*(\d+)\s*$/.exec(b)) return parseInt(b[1], 10)
}
function W(b) {
return Oo(b, !1).trim()
}
function Ds(b, c) {
Es(b, c ? '1' : '0')
}
function Fs(b, c) {
b.appendChild(Ko.createTextNode(c.toPrecision()))
}
function Gs(b, c) {
b.appendChild(Ko.createTextNode(c.toString()))
}
function Es(b, c) {
b.appendChild(Ko.createTextNode(c))
};
function Hs(b) {
b = b ? b : {
};
vs.call(this, b);
this.a['http://www.opengis.net/gml'].featureMember = jp(vs.prototype.Dd);
this.schemaLocation = b.schemaLocation ? b.schemaLocation : 'http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd'
}
y(Hs, vs);
l = Hs.prototype;
l.Ch = function (b, c) {
var d = Oo(b, !1).replace(/^\s*|\s*$/g, ''),
e = c[0].srsName,
f = b.parentNode.getAttribute('srsDimension'),
g = 'enu';
e && (g = Ie(Fe(e)));
d = d.split(/[\s,]+/);
e = 2;
b.getAttribute('srsDimension') ? e = Cs(b.getAttribute('srsDimension'))  : b.getAttribute('dimension') ? e = Cs(b.getAttribute('dimension'))  : f && (e = Cs(f));
for (var h, k, m = [
], n = 0, p = d.length; n < p; n += e) f = parseFloat(d[n]),
h = parseFloat(d[n + 1]),
k = 3 === e ? parseFloat(d[n + 2])  : 0,
'en' === g.substr(0, 2) ? m.push(f, h, k)  : m.push(h, f, k);
return m
};
l.fo = function (b, c) {
var d = Q([null], this.Ai, b, c, this);
return Rd(d[1][0], d[1][1], d[1][3], d[1][4])
};
l.$k = function (b, c) {
var d = Q(void 0, this.Md, b, c, this);
d && c[c.length - 1].push(d)
};
l.Pn = function (b, c) {
var d = Q(void 0, this.Md, b, c, this);
d && (c[c.length - 1][0] = d)
};
l.Ld = Object({
'http://www.opengis.net/gml': {
coordinates: kp(Hs.prototype.Ch)
}
});
l.Ve = Object({
'http://www.opengis.net/gml': {
innerBoundaryIs: Hs.prototype.$k,
outerBoundaryIs: Hs.prototype.Pn
}
});
l.Ai = Object({
'http://www.opengis.net/gml': {
coordinates: jp(Hs.prototype.Ch)
}
});
l.ag = Object({
'http://www.opengis.net/gml': {
Point: kp(vs.prototype.Jh),
MultiPoint: kp(vs.prototype.Hh),
LineString: kp(vs.prototype.Je),
MultiLineString: kp(vs.prototype.Gh),
LinearRing: kp(vs.prototype.Fh),
Polygon: kp(vs.prototype.Ke),
MultiPolygon: kp(vs.prototype.Ih),
Box: kp(Hs.prototype.fo)
}
});
function Is(b) {
b = b ? b : {
};
vs.call(this, b);
this.l = void 0 !== b.surface ? b.surface : !1;
this.g = void 0 !== b.curve ? b.curve : !1;
this.j = void 0 !== b.multiCurve ? b.multiCurve : !0;
this.i = void 0 !== b.multiSurface ? b.multiSurface : !0;
this.schemaLocation = b.schemaLocation ? b.schemaLocation : 'http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd'
}
y(Is, vs);
l = Is.prototype;
l.no = function (b, c) {
var d = Q([], this.Fi, b, c, this);
if (d) {
var e = new U(null);
Zr(e, d);
return e
}
};
l.oo = function (b, c) {
var d = Q([], this.Ji, b, c, this);
if (d) {
var e = new V(null);
bs(e, d);
return e
}
};
l.qg = function (b, c) {
rp(this.Bi, b, c, this)
};
l.hi = function (b, c) {
rp(this.Qi, b, c, this)
};
l.ro = function (b, c) {
return Q([null], this.Ki, b, c, this)
};
l.to = function (b, c) {
return Q([null], this.Pi, b, c, this)
};
l.so = function (b, c) {
return Q([null], this.Ve, b, c, this)
};
l.mo = function (b, c) {
return Q([null], this.Ld, b, c, this)
};
l.bl = function (b, c) {
var d = Q(void 0, this.Md, b, c, this);
d && c[c.length - 1].push(d)
};
l.uj = function (b, c) {
var d = Q(void 0, this.Md, b, c, this);
d && (c[c.length - 1][0] = d)
};
l.Lh = function (b, c) {
var d = Q([null], this.Ri, b, c, this);
if (d && d[0]) {
var e = new E(null),
f = d[0],
g = [
f.length
],
h,
k;
h = 1;
for (k = d.length; h < k; ++h) lb(f, d[h]),
g.push(f.length);
e.ba('XYZ', f, g);
return e
}
};
l.Ah = function (b, c) {
var d = Q([null], this.Ci, b, c, this);
if (d) {
var e = new T(null);
e.ba('XYZ', d);
return e
}
};
l.io = function (b, c) {
var d = Q([null], this.Di, b, c, this);
return Rd(d[1][0], d[1][1], d[2][0], d[2][1])
};
l.ko = function (b, c) {
for (var d = Oo(b, !1), e = /^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/, f = [
], g; g = e.exec(d); ) f.push(parseFloat(g[1])),
d = d.substr(g[0].length);
if ('' === d) {
d = c[0].srsName;
e = 'enu';
d && (e = Ie(Fe(d)));
if ('neu' === e) for (d = 0, e = f.length; d < e; d += 3) g = f[d],
f[d] = f[d + 1],
f[d + 1] = g;
d = f.length;
2 == d && f.push(0);
return 0 === d ? void 0 : f
}
};
l.Mf = function (b, c) {
var d = Oo(b, !1).replace(/^\s*|\s*$/g, ''),
e = c[0].srsName,
f = b.parentNode.getAttribute('srsDimension'),
g = 'enu';
e && (g = Ie(Fe(e)));
d = d.split(/\s+/);
e = 2;
b.getAttribute('srsDimension') ? e = Cs(b.getAttribute('srsDimension'))  : b.getAttribute('dimension') ? e = Cs(b.getAttribute('dimension'))  : f && (e = Cs(f));
for (var h, k, m = [
], n = 0, p = d.length; n < p; n += e) f = parseFloat(d[n]),
h = parseFloat(d[n + 1]),
k = 3 === e ? parseFloat(d[n + 2])  : 0,
'en' === g.substr(0, 2) ? m.push(f, h, k)  : m.push(h, f, k);
return m
};
l.Ld = Object({
'http://www.opengis.net/gml': {
pos: kp(Is.prototype.ko),
posList: kp(Is.prototype.Mf)
}
});
l.Ve = Object({
'http://www.opengis.net/gml': {
interior: Is.prototype.bl,
exterior: Is.prototype.uj
}
});
l.ag = Object({
'http://www.opengis.net/gml': {
Point: kp(vs.prototype.Jh),
MultiPoint: kp(vs.prototype.Hh),
LineString: kp(vs.prototype.Je),
MultiLineString: kp(vs.prototype.Gh),
LinearRing: kp(vs.prototype.Fh),
Polygon: kp(vs.prototype.Ke),
MultiPolygon: kp(vs.prototype.Ih),
Surface: kp(Is.prototype.Lh),
MultiSurface: kp(Is.prototype.oo),
Curve: kp(Is.prototype.Ah),
MultiCurve: kp(Is.prototype.no),
Envelope: kp(Is.prototype.io)
}
});
l.Fi = Object({
'http://www.opengis.net/gml': {
curveMember: jp(Is.prototype.qg),
curveMembers: jp(Is.prototype.qg)
}
});
l.Ji = Object({
'http://www.opengis.net/gml': {
surfaceMember: jp(Is.prototype.hi),
surfaceMembers: jp(Is.prototype.hi)
}
});
l.Bi = Object({
'http://www.opengis.net/gml': {
LineString: jp(vs.prototype.Je),
Curve: jp(Is.prototype.Ah)
}
});
l.Qi = Object({
'http://www.opengis.net/gml': {
Polygon: jp(vs.prototype.Ke),
Surface: jp(Is.prototype.Lh)
}
});
l.Ri = Object({
'http://www.opengis.net/gml': {
patches: kp(Is.prototype.ro)
}
});
l.Ci = Object({
'http://www.opengis.net/gml': {
segments: kp(Is.prototype.to)
}
});
l.Di = Object({
'http://www.opengis.net/gml': {
lowerCorner: jp(Is.prototype.Mf),
upperCorner: jp(Is.prototype.Mf)
}
});
l.Ki = Object({
'http://www.opengis.net/gml': {
PolygonPatch: kp(Is.prototype.so)
}
});
l.Pi = Object({
'http://www.opengis.net/gml': {
LineStringSegment: kp(Is.prototype.mo)
}
});
function Js(b, c, d) {
d = d[d.length - 1].srsName;
c = c.Y();
for (var e = c.length, f = Array(e), g, h = 0; h < e; ++h) {
g = c[h];
var k = h,
m = 'enu';
d && (m = Ie(Fe(d)));
f[k] = 'en' === m.substr(0, 2) ? g[0] + ' ' + g[1] : g[1] + ' ' + g[0]
}
Es(b, f.join(' '))
}
l.wi = function (b, c, d) {
var e = d[d.length - 1].srsName;
e && b.setAttribute('srsName', e);
e = No(b.namespaceURI, 'pos');
b.appendChild(e);
d = d[d.length - 1].srsName;
b = 'enu';
d && (b = Ie(Fe(d)));
c = c.Y();
Es(e, 'en' === b.substr(0, 2) ? c[0] + ' ' + c[1] : c[1] + ' ' + c[0])
};
var Ks = {
'http://www.opengis.net/gml': {
lowerCorner: N(Es),
upperCorner: N(Es)
}
};
l = Is.prototype;
l.fp = function (b, c, d) {
var e = d[d.length - 1].srsName;
e && b.setAttribute('srsName', e);
sp({
node: b
}, Ks, pp, [
c[0] + ' ' + c[1],
c[2] + ' ' + c[3]
], d, [
'lowerCorner',
'upperCorner'
], this)
};
l.ti = function (b, c, d) {
var e = d[d.length - 1].srsName;
e && b.setAttribute('srsName', e);
e = No(b.namespaceURI, 'posList');
b.appendChild(e);
Js(e, c, d)
};
l.Oi = function (b, c) {
var d = c[c.length - 1],
e = d.node,
f = d.exteriorWritten;
void 0 === f && (d.exteriorWritten = !0);
return No(e.namespaceURI, void 0 !== f ? 'interior' : 'exterior')
};
l.Ue = function (b, c, d) {
var e = d[d.length - 1].srsName;
'PolygonPatch' !== b.nodeName && e && b.setAttribute('srsName', e);
'Polygon' === b.nodeName || 'PolygonPatch' === b.nodeName ? (c = c.ae(), sp({
node: b,
srsName: e
}, Ls, this.Oi, c, d, void 0, this))  : 'Surface' === b.nodeName && (e = No(b.namespaceURI, 'patches'), b.appendChild(e), b = No(e.namespaceURI, 'PolygonPatch'), e.appendChild(b), this.Ue(b, c, d))
};
l.Pe = function (b, c, d) {
var e = d[d.length - 1].srsName;
'LineStringSegment' !== b.nodeName && e && b.setAttribute('srsName', e);
'LineString' === b.nodeName || 'LineStringSegment' === b.nodeName ? (e = No(b.namespaceURI, 'posList'), b.appendChild(e), Js(e, c, d))  : 'Curve' === b.nodeName && (e = No(b.namespaceURI, 'segments'), b.appendChild(e), b = No(e.namespaceURI, 'LineStringSegment'), e.appendChild(b), this.Pe(b, c, d))
};
l.vi = function (b, c, d) {
var e = d[d.length - 1],
f = e.srsName,
e = e.surface;
f && b.setAttribute('srsName', f);
c = c.be();
sp({
node: b,
srsName: f,
surface: e
}, Ms, this.f, c, d, void 0, this)
};
l.gp = function (b, c, d) {
var e = d[d.length - 1].srsName;
e && b.setAttribute('srsName', e);
c = c.ue();
sp({
node: b,
srsName: e
}, Ns, np('pointMember'), c, d, void 0, this)
};
l.ui = function (b, c, d) {
var e = d[d.length - 1],
f = e.srsName,
e = e.curve;
f && b.setAttribute('srsName', f);
c = c.rd();
sp({
node: b,
srsName: f,
curve: e
}, Os, this.f, c, d, void 0, this)
};
l.xi = function (b, c, d) {
var e = No(b.namespaceURI, 'LinearRing');
b.appendChild(e);
this.ti(e, c, d)
};
l.yi = function (b, c, d) {
var e = this.b(c, d);
e && (b.appendChild(e), this.Ue(e, c, d))
};
l.hp = function (b, c, d) {
var e = No(b.namespaceURI, 'Point');
b.appendChild(e);
this.wi(e, c, d)
};
l.si = function (b, c, d) {
var e = this.b(c, d);
e && (b.appendChild(e), this.Pe(e, c, d))
};
l.Se = function (b, c, d) {
var e = d[d.length - 1],
f = Ub(e);
f.node = b;
var g;
ga(c) ? e.dataProjection ? g = af(c, e.featureProjection, e.dataProjection)  : g = c : g = Tr(c, !0, e);
sp(f, Ps, this.b, [
g
], d, void 0, this)
};
l.ni = function (b, c, d) {
var e = c.Na();
e && b.setAttribute('fid', e);
var e = d[d.length - 1],
f = e.featureNS,
g = c.a;
e.uc || (e.uc = {
}, e.uc[f] = {
});
var h = c.P();
c = [
];
var k = [
],
m;
for (m in h) {
var n = h[m];
null !== n && (c.push(m), k.push(n), m == g || n instanceof bf ? m in e.uc[f] || (e.uc[f][m] = N(this.Se, this))  : m in e.uc[f] || (e.uc[f][m] = N(Es)))
}
m = Ub(e);
m.node = b;
sp(m, e.uc, np(void 0, f), k, d, c)
};
var Ms = {
'http://www.opengis.net/gml': {
surfaceMember: N(Is.prototype.yi),
polygonMember: N(Is.prototype.yi)
}
},
Ns = {
'http://www.opengis.net/gml': {
pointMember: N(Is.prototype.hp)
}
},
Os = {
'http://www.opengis.net/gml': {
lineStringMember: N(Is.prototype.si),
curveMember: N(Is.prototype.si)
}
},
Ls = {
'http://www.opengis.net/gml': {
exterior: N(Is.prototype.xi),
interior: N(Is.prototype.xi)
}
},
Ps = {
'http://www.opengis.net/gml': {
Curve: N(Is.prototype.Pe),
MultiCurve: N(Is.prototype.ui),
Point: N(Is.prototype.wi),
MultiPoint: N(Is.prototype.gp),
LineString: N(Is.prototype.Pe),
MultiLineString: N(Is.prototype.ui),
LinearRing: N(Is.prototype.ti),
Polygon: N(Is.prototype.Ue),
MultiPolygon: N(Is.prototype.vi),
Surface: N(Is.prototype.Ue),
MultiSurface: N(Is.prototype.vi),
Envelope: N(Is.prototype.fp)
}
},
Qs = {
MultiLineString: 'lineStringMember',
MultiCurve: 'curveMember',
MultiPolygon: 'polygonMember',
MultiSurface: 'surfaceMember'
};
Is.prototype.f = function (b, c) {
return No('http://www.opengis.net/gml', Qs[c[c.length - 1].node.nodeName])
};
Is.prototype.b = function (b, c) {
var d = c[c.length - 1],
e = d.multiSurface,
f = d.surface,
g = d.curve,
d = d.multiCurve,
h;
ga(b) ? h = 'Envelope' : (h = b.V(), 'MultiPolygon' === h && !0 === e ? h = 'MultiSurface' : 'Polygon' === h && !0 === f ? h = 'Surface' : 'LineString' === h && !0 === g ? h = 'Curve' : 'MultiLineString' === h && !0 === d && (h = 'MultiCurve'));
return No('http://www.opengis.net/gml', h)
};
Is.prototype.B = function (b, c) {
c = Sr(this, c);
var d = No('http://www.opengis.net/gml', 'geom'),
e = {
node: d,
srsName: this.srsName,
curve: this.g,
surface: this.l,
multiSurface: this.i,
multiCurve: this.j
};
c && Xb(e, c);
this.Se(d, b, [
e
]);
return d
};
Is.prototype.c = function (b, c) {
c = Sr(this, c);
var d = No('http://www.opengis.net/gml', 'featureMembers');
gp(d, 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation', this.schemaLocation);
var e = {
srsName: this.srsName,
curve: this.g,
surface: this.l,
multiSurface: this.i,
multiCurve: this.j,
featureNS: this.featureNS,
featureType: this.featureType
};
c && Xb(e, c);
var e = [
e
],
f = e[e.length - 1],
g = f.featureType,
h = f.featureNS,
k = {
};
k[h] = {
};
k[h][g] = N(this.ni, this);
f = Ub(f);
f.node = d;
sp(f, k, np(g, h), b, e);
return d
};
function Rs(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.defaultDataProjection = Fe('EPSG:4326');
this.a = b.readExtensions
}
y(Rs, ss);
var Ss = [
null,
'http://www.topografix.com/GPX/1/0',
'http://www.topografix.com/GPX/1/1'
];
function Ts(b, c, d) {
b.push(parseFloat(c.getAttribute('lon')), parseFloat(c.getAttribute('lat')));
'ele' in d ? (b.push(d.ele), delete d.ele)  : b.push(0);
'time' in d ? (b.push(d.time), delete d.time)  : b.push(0);
return b
}
function Us(b, c) {
var d = c[c.length - 1],
e = b.getAttribute('href');
null !== e && (d.link = e);
rp(Vs, b, c)
}
function Ws(b, c) {
c[c.length - 1].extensionsNode_ = b
}
function Xs(b, c) {
var d = c[0],
e = Q({
flatCoordinates: [
]
}, Ys, b, c);
if (e) {
var f = e.flatCoordinates;
delete e.flatCoordinates;
var g = new T(null);
g.ba('XYZM', f);
Tr(g, !1, d);
d = new sn(g);
d.I(e);
return d
}
}
function Zs(b, c) {
var d = c[0],
e = Q({
flatCoordinates: [
],
ends: [
]
}, $s, b, c);
if (e) {
var f = e.flatCoordinates;
delete e.flatCoordinates;
var g = e.ends;
delete e.ends;
var h = new U(null);
h.ba('XYZM', f, g);
Tr(h, !1, d);
d = new sn(h);
d.I(e);
return d
}
}
function at(b, c) {
var d = c[0],
e = Q({
}, bt, b, c);
if (e) {
var f = Ts([], b, e),
f = new D(f, 'XYZM');
Tr(f, !1, d);
d = new sn(f);
d.I(e);
return d
}
}
var ct = {
rte: Xs,
trk: Zs,
wpt: at
},
dt = P(Ss, {
rte: jp(Xs),
trk: jp(Zs),
wpt: jp(at)
}),
Vs = P(Ss, {
text: M(W, 'linkText'),
type: M(W, 'linkType')
}),
Ys = P(Ss, {
name: M(W),
cmt: M(W),
desc: M(W),
src: M(W),
link: Us,
number: M(Bs),
extensions: Ws,
type: M(W),
rtept: function (b, c) {
var d = Q({
}, et, b, c);
d && Ts(c[c.length - 1].flatCoordinates, b, d)
}
}),
et = P(Ss, {
ele: M(zs),
time: M(ys)
}),
$s = P(Ss, {
name: M(W),
cmt: M(W),
desc: M(W),
src: M(W),
link: Us,
number: M(Bs),
type: M(W),
extensions: Ws,
trkseg: function (b, c) {
var d = c[c.length - 1];
rp(ft, b, c);
d.ends.push(d.flatCoordinates.length)
}
}),
ft = P(Ss, {
trkpt: function (b, c) {
var d = Q({
}, gt, b, c);
d && Ts(c[c.length - 1].flatCoordinates, b, d)
}
}),
gt = P(Ss, {
ele: M(zs),
time: M(ys)
}),
bt = P(Ss, {
ele: M(zs),
time: M(ys),
magvar: M(zs),
geoidheight: M(zs),
name: M(W),
cmt: M(W),
desc: M(W),
src: M(W),
link: Us,
sym: M(W),
type: M(W),
fix: M(W),
sat: M(Bs),
hdop: M(zs),
vdop: M(zs),
pdop: M(zs),
ageofdgpsdata: M(zs),
dgpsid: M(Bs),
extensions: Ws
});
function ht(b, c) {
c || (c = [
]);
for (var d = 0, e = c.length; d < e; ++d) {
var f = c[d];
if (b.a) {
var g = f.get('extensionsNode_') || null;
b.a(f, g)
}
f.set('extensionsNode_', void 0)
}
}
Rs.prototype.Bh = function (b, c) {
if (!vb(Ss, b.namespaceURI)) return null;
var d = ct[b.localName];
if (!d) return null;
d = d(b, [
Rr(this, b, c)
]);
if (!d) return null;
ht(this, [
d
]);
return d
};
Rs.prototype.hc = function (b, c) {
if (!vb(Ss, b.namespaceURI)) return [];
if ('gpx' == b.localName) {
var d = Q([], dt, b, [
Rr(this, b, c)
]);
if (d) return ht(this, d),
d
}
return []
};
function it(b, c, d) {
b.setAttribute('href', c);
c = d[d.length - 1].properties;
sp({
node: b
}, jt, pp, [
c.linkText,
c.linkType
], d, kt)
}
function lt(b, c, d) {
var e = d[d.length - 1],
f = e.node.namespaceURI,
g = e.properties;
gp(b, null, 'lat', c[1]);
gp(b, null, 'lon', c[0]);
switch (e.geometryLayout) {
case 'XYZM':
0 !== c[3] && (g.time = c[3]);
case 'XYZ':
0 !== c[2] && (g.ele = c[2]);
break;
case 'XYM':
0 !== c[2] && (g.time = c[2])
}
c = mt[f];
e = qp(g, c);
sp({
node: b,
properties: g
}, nt, pp, e, d, c)
}
var kt = [
'text',
'type'
],
jt = P(Ss, {
text: N(Es),
type: N(Es)
}),
ot = P(Ss, 'name cmt desc src link number type rtept'.split(' ')),
pt = P(Ss, {
name: N(Es),
cmt: N(Es),
desc: N(Es),
src: N(Es),
link: N(it),
number: N(Gs),
type: N(Es),
rtept: mp(N(lt))
}),
qt = P(Ss, 'name cmt desc src link number type trkseg'.split(' ')),
tt = P(Ss, {
name: N(Es),
cmt: N(Es),
desc: N(Es),
src: N(Es),
link: N(it),
number: N(Gs),
type: N(Es),
trkseg: mp(N(function (b, c, d) {
sp({
node: b,
geometryLayout: c.b,
properties: {
}
}, rt, st, c.Y(), d)
}))
}),
st = np('trkpt'),
rt = P(Ss, {
trkpt: N(lt)
}),
mt = P(Ss, 'ele time magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid'.split(' ')),
nt = P(Ss, {
ele: N(Fs),
time: N(function (b, c) {
var d = new Date(1000 * c),
d = d.getUTCFullYear() + '-' + Oa(d.getUTCMonth() + 1) + '-' + Oa(d.getUTCDate()) + 'T' + Oa(d.getUTCHours()) + ':' + Oa(d.getUTCMinutes()) + ':' + Oa(d.getUTCSeconds()) + 'Z';
b.appendChild(Ko.createTextNode(d))
}),
magvar: N(Fs),
geoidheight: N(Fs),
name: N(Es),
cmt: N(Es),
desc: N(Es),
src: N(Es),
link: N(it),
sym: N(Es),
type: N(Es),
fix: N(Es),
sat: N(Gs),
hdop: N(Fs),
vdop: N(Fs),
pdop: N(Fs),
ageofdgpsdata: N(Fs),
dgpsid: N(Gs)
}),
ut = {
Point: 'wpt',
LineString: 'rte',
MultiLineString: 'trk'
};
function vt(b, c) {
var d = b.W();
if (d && (d = ut[d.V()])) return No(c[c.length - 1].node.namespaceURI, d)
}
var wt = P(Ss, {
rte: N(function (b, c, d) {
var e = d[0],
f = c.P();
b = {
node: b,
properties: f
};
if (c = c.W()) c = Tr(c, !0, e),
b.geometryLayout = c.b,
f.rtept = c.Y();
e = ot[d[d.length - 1].node.namespaceURI];
f = qp(f, e);
sp(b, pt, pp, f, d, e)
}),
trk: N(function (b, c, d) {
var e = d[0],
f = c.P();
b = {
node: b,
properties: f
};
if (c = c.W()) c = Tr(c, !0, e),
f.trkseg = c.rd();
e = qt[d[d.length - 1].node.namespaceURI];
f = qp(f, e);
sp(b, tt, pp, f, d, e)
}),
wpt: N(function (b, c, d) {
var e = d[0],
f = d[d.length - 1];
f.properties = c.P();
if (c = c.W()) c = Tr(c, !0, e),
f.geometryLayout = c.b,
lt(b, c.Y(), d)
})
});
Rs.prototype.c = function (b, c) {
c = Sr(this, c);
var d = No('http://www.topografix.com/GPX/1/1', 'gpx');
sp({
node: d
}, wt, vt, b, [
c
]);
return d
};
function xt(b) {
b = yt(b);
return db(b, function (b) {
return b.b.substring(b.c, b.a)
})
}
function zt(b, c, d) {
this.b = b;
this.c = c;
this.a = d
}
function yt(b) {
for (var c = RegExp('\r\n|\r|\n', 'g'), d = 0, e, f = [
]; e = c.exec(b); ) d = new zt(b, d, e.index),
f.push(d),
d = c.lastIndex;
d < b.length && (d = new zt(b, d, b.length), f.push(d));
return f
};
function At() {
this.defaultDataProjection = null
}
y(At, Qr);
l = At.prototype;
l.V = function () {
return 'text'
};
l.Tb = function (b, c) {
return this.Cd(ia(b) ? b : '', Sr(this, c))
};
l.Ba = function (b, c) {
return this.Kf(ia(b) ? b : '', Sr(this, c))
};
l.Sc = function (b, c) {
return this.Ed(ia(b) ? b : '', Sr(this, c))
};
l.Ia = function () {
return this.defaultDataProjection
};
l.Jd = function (b, c) {
return this.Qe(b, Sr(this, c))
};
l.Vb = function (b, c) {
return this.oi(b, Sr(this, c))
};
l.Wc = function (b, c) {
return this.Kd(b, Sr(this, c))
};
function Bt(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.defaultDataProjection = Fe('EPSG:4326');
this.a = b.altitudeMode ? b.altitudeMode : 'none'
}
y(Bt, At);
var Ct = /^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,
Dt = /^H.([A-Z]{3}).*?:(.*)/,
Et = /^HFDTE(\d{2})(\d{2})(\d{2})/;
Bt.prototype.Cd = function (b, c) {
var d = this.a,
e = xt(b),
f = {
},
g = [
],
h = 2000,
k = 0,
m = 1,
n,
p;
n = 0;
for (p = e.length; n < p; ++n) {
var q = e[n],
r;
if ('B' == q.charAt(0)) {
if (r = Ct.exec(q)) {
var q = parseInt(r[1], 10),
t = parseInt(r[2], 10),
x = parseInt(r[3], 10),
z = parseInt(r[4], 10) + parseInt(r[5], 10) / 60000;
'S' == r[6] && (z = - z);
var B = parseInt(r[7], 10) + parseInt(r[8], 10) / 60000;
'W' == r[9] && (B = - B);
g.push(B, z);
'none' != d && g.push('gps' == d ? parseInt(r[11], 10)  : 'barometric' == d ? parseInt(r[12], 10)  : 0);
g.push(Date.UTC(h, k, m, q, t, x) / 1000)
}
} else if ('H' == q.charAt(0)) if (r =
Et.exec(q)) m = parseInt(r[1], 10),
k = parseInt(r[2], 10) - 1,
h = 2000 + parseInt(r[3], 10);
 else if (r = Dt.exec(q)) f[r[1]] = r[2].trim(),
Et.exec(q)
}
if (0 === g.length) return null;
e = new T(null);
e.ba('none' == d ? 'XYM' : 'XYZM', g);
d = new sn(Tr(e, !1, c));
d.I(f);
return d
};
Bt.prototype.Kf = function (b, c) {
var d = this.Cd(b, c);
return d ? [
d
] : [
]
};
function Ft(b, c) {
this.c = this.i = this.f = '';
this.l = null;
this.g = this.a = '';
this.j = !1;
var d;
b instanceof Ft ? (this.j = ca(c) ? c : b.j, Gt(this, b.f), this.i = b.i, this.c = b.c, Ht(this, b.l), this.a = b.a, It(this, b.b.clone()), this.g = b.g)  : b && (d = String(b).match(jo)) ? (this.j = !!c, Gt(this, d[1] || '', !0), this.i = Jt(d[2] || ''), this.c = Jt(d[3] || '', !0), Ht(this, d[4]), this.a = Jt(d[5] || '', !0), It(this, d[6] || '', !0), this.g = Jt(d[7] || ''))  : (this.j = !!c, this.b = new Kt(null, 0, this.j))
}
Ft.prototype.toString = function () {
var b = [
],
c = this.f;
c && b.push(Lt(c, Mt, !0), ':');
var d = this.c;
if (d || 'file' == c) b.push('//'),
(c = this.i) && b.push(Lt(c, Mt, !0), '@'),
b.push(encodeURIComponent(String(d)).replace(/%25([0-9a-fA-F]{2})/g, '%$1')),
d = this.l,
null != d && b.push(':', String(d));
if (d = this.a) this.c && '/' != d.charAt(0) && b.push('/'),
b.push(Lt(d, '/' == d.charAt(0) ? Nt : Ot, !0));
(d = this.b.toString()) && b.push('?', d);
(d = this.g) && b.push('#', Lt(d, Pt));
return b.join('')
};
Ft.prototype.clone = function () {
return new Ft(this)
};
function Gt(b, c, d) {
b.f = d ? Jt(c, !0)  : c;
b.f && (b.f = b.f.replace(/:$/, ''))
}
function Ht(b, c) {
if (c) {
c = Number(c);
if (isNaN(c) || 0 > c) throw Error('Bad port number ' + c);
b.l = c
} else b.l = null
}
function It(b, c, d) {
c instanceof Kt ? (b.b = c, Qt(b.b, b.j))  : (d || (c = Lt(c, Rt)), b.b = new Kt(c, 0, b.j))
}
function St(b) {
return b instanceof Ft ? b.clone()  : new Ft(b, void 0)
}
function Tt(b, c) {
b instanceof Ft || (b = St(b));
c instanceof Ft || (c = St(c));
var d = b,
e = c,
f = d.clone(),
g = !!e.f;
g ? Gt(f, e.f)  : g = !!e.i;
g ? f.i = e.i : g = !!e.c;
g ? f.c = e.c : g = null != e.l;
var h = e.a;
if (g) Ht(f, e.l);
 else if (g = !!e.a) if ('/' != h.charAt(0) && (d.c && !d.a ? h = '/' + h : (d = f.a.lastIndexOf('/'), - 1 != d && (h = f.a.substr(0, d + 1) + h))), d = h, '..' == d || '.' == d) h = '';
 else if ( - 1 != d.indexOf('./') || - 1 != d.indexOf('/.')) {
for (var h = 0 == d.lastIndexOf('/', 0), d = d.split('/'), k = [
], m = 0; m < d.length; ) {
var n = d[m++];
'.' == n ? h && m == d.length && k.push('')  : '..' == n ? ((1 < k.length || 1 == k.length && '' != k[0]) && k.pop(), h && m == d.length && k.push(''))  : (k.push(n), h = !0)
}
h = k.join('/')
} else h = d;
g ? f.a = h : g = '' !== e.b.toString();
g ? It(f, Jt(e.b.toString()))  : g = !!e.g;
g && (f.g = e.g);
return f
}
function Jt(b, c) {
return b ? c ? decodeURI(b.replace(/%25/g, '%2525'))  : decodeURIComponent(b)  : ''
}
function Lt(b, c, d) {
return ia(b) ? (b = encodeURI(b).replace(c, Ut), d && (b = b.replace(/%25([0-9a-fA-F]{2})/g, '%$1')), b)  : null
}
function Ut(b) {
b = b.charCodeAt(0);
return '%' + (b >> 4 & 15).toString(16) + (b & 15).toString(16)
}
var Mt = /[#\/\?@]/g,
Ot = /[\#\?:]/g,
Nt = /[\#\?]/g,
Rt = /[\#\?@]/g,
Pt = /#/g;
function Kt(b, c, d) {
this.c = this.a = null;
this.b = b || null;
this.f = !!d
}
function Vt(b) {
b.a || (b.a = new ri, b.c = 0, b.b && ko(b.b, function (c, d) {
b.add(decodeURIComponent(c.replace(/\+/g, ' ')), d)
}))
}
l = Kt.prototype;
l.nc = function () {
Vt(this);
return this.c
};
l.add = function (b, c) {
Vt(this);
this.b = null;
b = Wt(this, b);
var d = this.a.get(b);
d || this.a.set(b, d = [
]);
d.push(c);
this.c++;
return this
};
l.remove = function (b) {
Vt(this);
b = Wt(this, b);
return ti(this.a.c, b) ? (this.b = null, this.c -= this.a.get(b).length, this.a.remove(b))  : !1
};
l.clear = function () {
this.a = this.b = null;
this.c = 0
};
l.Ka = function () {
Vt(this);
return 0 == this.c
};
function Xt(b, c) {
Vt(b);
c = Wt(b, c);
return ti(b.a.c, c)
}
l.O = function () {
Vt(this);
for (var b = this.a.pc(), c = this.a.O(), d = [
], e = 0; e < c.length; e++) for (var f = b[e], g = 0; g < f.length; g++) d.push(c[e]);
return d
};
l.pc = function (b) {
Vt(this);
var c = [
];
if (ia(b)) Xt(this, b) && (c = ib(c, this.a.get(Wt(this, b))));
 else {
b = this.a.pc();
for (var d = 0; d < b.length; d++) c = ib(c, b[d])
}
return c
};
l.set = function (b, c) {
Vt(this);
this.b = null;
b = Wt(this, b);
Xt(this, b) && (this.c -= this.a.get(b).length);
this.a.set(b, [
c
]);
this.c++;
return this
};
l.get = function (b, c) {
var d = b ? this.pc(b)  : [
];
return 0 < d.length ? String(d[0])  : c
};
function Yt(b, c, d) {
b.remove(c);
0 < d.length && (b.b = null, b.a.set(Wt(b, c), jb(d)), b.c += d.length)
}
l.toString = function () {
if (this.b) return this.b;
if (!this.a) return '';
for (var b = [
], c = this.a.O(), d = 0; d < c.length; d++) for (var e = c[d], f = encodeURIComponent(String(e)), e = this.pc(e), g = 0; g < e.length; g++) {
var h = f;
'' !== e[g] && (h += '=' + encodeURIComponent(String(e[g])));
b.push(h)
}
return this.b = b.join('&')
};
l.clone = function () {
var b = new Kt;
b.b = this.b;
this.a && (b.a = this.a.clone(), b.c = this.c);
return b
};
function Wt(b, c) {
var d = String(c);
b.f && (d = d.toLowerCase());
return d
}
function Qt(b, c) {
c && !b.f && (Vt(b), b.b = null, b.a.forEach(function (b, c) {
var f = c.toLowerCase();
c != f && (this.remove(c), Yt(this, f, b))
}, b));
b.f = c
};
function Zt(b) {
b = b || {
};
this.f = b.font;
this.i = b.rotation;
this.c = b.scale;
this.b = b.text;
this.B = b.textAlign;
this.u = b.textBaseline;
this.a = void 0 !== b.fill ? b.fill : new Wl({
color: '#333'
});
this.l = void 0 !== b.stroke ? b.stroke : null;
this.g = void 0 !== b.offsetX ? b.offsetX : 0;
this.j = void 0 !== b.offsetY ? b.offsetY : 0
}
l = Zt.prototype;
l.Jj = function () {
return this.f
};
l.Xj = function () {
return this.g
};
l.Yj = function () {
return this.j
};
l.zn = function () {
return this.a
};
l.An = function () {
return this.i
};
l.Bn = function () {
return this.c
};
l.Cn = function () {
return this.l
};
l.Dn = function () {
return this.b
};
l.jk = function () {
return this.B
};
l.kk = function () {
return this.u
};
l.Lo = function (b) {
this.f = b
};
l.$h = function (b) {
this.g = b
};
l.ai = function (b) {
this.j = b
};
l.Ko = function (b) {
this.a = b
};
l.En = function (b) {
this.i = b
};
l.Fn = function (b) {
this.c = b
};
l.Ro = function (b) {
this.l = b
};
l.ci = function (b) {
this.b = b
};
l.di = function (b) {
this.B = b
};
l.So = function (b) {
this.u = b
};
function $t(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.defaultDataProjection = Fe('EPSG:4326');
this.b = b.defaultStyle ? b.defaultStyle : au;
this.f = void 0 !== b.extractStyles ? b.extractStyles : !0;
this.j = void 0 !== b.writeStyles ? b.writeStyles : !0;
this.a = {
};
this.g = void 0 !== b.showPointNames ? b.showPointNames : !0
}
y($t, ss);
var bu = [
'http://www.google.com/kml/ext/2.2'
],
cu = [
null,
'http://earth.google.com/kml/2.0',
'http://earth.google.com/kml/2.1',
'http://earth.google.com/kml/2.2',
'http://www.opengis.net/kml/2.2'
],
du = [
255,
255,
255,
1
],
eu = new Wl({
color: du
}),
fu = [
20,
2
],
gu = [
64,
64
],
hu = new wk({
anchor: fu,
anchorOrigin: 'bottom-left',
anchorXUnits: 'pixels',
anchorYUnits: 'pixels',
crossOrigin: 'anonymous',
rotation: 0,
scale: 0.5,
size: gu,
src: 'https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png'
}),
iu = new am({
color: du,
width: 1
}),
ju = new Zt({
font: 'bold 16px Helvetica',
fill: eu,
stroke: new am({
color: [
51,
51,
51,
1
],
width: 2
}),
scale: 0.8
}),
au = [
new cm({
fill: eu,
image: hu,
text: ju,
stroke: iu,
zIndex: 0
})
],
ku = {
fraction: 'fraction',
pixels: 'pixels'
};
function lu(b, c) {
var d = null,
e = [
0,
0
],
f = 'start';
b.b && (d = b.b.qd()) && 2 == d.length && (e[0] = b.b.i * d[0] / 2, e[1] = - b.b.i * d[1] / 2, f = 'left');
Qb(b.c) ? d = new Zt({
text: c,
offsetX: e[0],
offsetY: e[1],
textAlign: f
})  : (d = Ub(b.c), d.ci(c), d.di(f), d.$h(e[0]), d.ai(e[1]));
return new cm({
text: d
})
}
function mu(b, c, d, e, f) {
return function () {
var g = f,
h = '';
g && this.W() && (g = 'Point' === this.W().V());
g && (h = this.P().name, g = g && h);
if (b) return g ? (g = lu(b[0], h), b.concat(g))  : b;
if (c) {
var k = nu(c, d, e);
return g ? (g = lu(k[0], h), k.concat(g))  : k
}
return g ? (g = lu(d[0], h), d.concat(g))  : d
}
}
function nu(b, c, d) {
return ga(b) ? b : ia(b) ? (!(b in d) && '#' + b in d && (b = '#' + b), nu(d[b], c, d))  : c
}
function ou(b) {
b = Oo(b, !1);
if (b = /^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(b)) return b = b[1],
[
parseInt(b.substr(6, 2), 16),
parseInt(b.substr(4, 2), 16),
parseInt(b.substr(2, 2), 16),
parseInt(b.substr(0, 2), 16) / 255
]
}
function pu(b) {
b = Oo(b, !1);
for (var c = [
], d = /^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i, e; e = d.exec(b); ) c.push(parseFloat(e[1]), parseFloat(e[2]), e[3] ? parseFloat(e[3])  : 0),
b = b.substr(e[0].length);
return '' !== b ? void 0 : c
}
function qu(b) {
var c = Oo(b, !1);
return b.baseURI ? Tt(b.baseURI, c.trim()).toString()  : c.trim()
}
function ru(b) {
b = zs(b);
if (void 0 !== b) return Math.sqrt(b)
}
function su(b, c) {
return Q(null, tu, b, c)
}
function uu(b, c) {
var d = Q({
v: [
],
li: [
]
}, vu, b, c);
if (d) {
var e = d.v,
d = d.li,
f,
g;
f = 0;
for (g = Math.min(e.length, d.length); f < g; ++f) e[4 * f + 3] = d[f];
d = new T(null);
d.ba('XYZM', e);
return d
}
}
function wu(b, c) {
var d = Q({
}, xu, b, c),
e = Q(null, yu, b, c);
if (e) {
var f = new T(null);
f.ba('XYZ', e);
f.I(d);
return f
}
}
function zu(b, c) {
var d = Q({
}, xu, b, c),
e = Q(null, yu, b, c);
if (e) {
var f = new E(null);
f.ba('XYZ', e, [
e.length
]);
f.I(d);
return f
}
}
function Au(b, c) {
var d = Q([], Bu, b, c);
if (!d) return null;
if (0 === d.length) return new js(d);
var e = !0,
f = d[0].V(),
g,
h,
k;
h = 1;
for (k = d.length; h < k; ++h) if (g = d[h], g.V() != f) {
e = !1;
break
}
if (e) {
if ('Point' == f) {
g = d[0];
e = g.b;
f = g.ja();
h = 1;
for (k = d.length; h < k; ++h) g = d[h],
lb(f, g.ja());
g = new $r(null);
g.ba(e, f);
Cu(g, d);
return g
}
return 'LineString' == f ? (g = new U(null), Zr(g, d), Cu(g, d), g)  : 'Polygon' == f ? (g = new V(null), bs(g, d), Cu(g, d), g)  : 'GeometryCollection' == f ? new js(d)  : null
}
return new js(d)
}
function Du(b, c) {
var d = Q({
}, xu, b, c),
e = Q(null, yu, b, c);
if (e) {
var f = new D(null);
f.ba('XYZ', e);
f.I(d);
return f
}
}
function Eu(b, c) {
var d = Q({
}, xu, b, c),
e = Q([null], Fu, b, c);
if (e && e[0]) {
var f = new E(null),
g = e[0],
h = [
g.length
],
k,
m;
k = 1;
for (m = e.length; k < m; ++k) lb(g, e[k]),
h.push(g.length);
f.ba('XYZ', g, h);
f.I(d);
return f
}
}
function Gu(b, c) {
var d = Q({
}, Hu, b, c);
if (!d) return null;
var e = 'fillStyle' in d ? d.fillStyle : eu,
f = d.fill;
void 0 === f || f || (e = null);
var f = 'imageStyle' in d ? d.imageStyle : hu,
g = 'textStyle' in d ? d.textStyle : ju,
h = 'strokeStyle' in d ? d.strokeStyle : iu,
d = d.outline;
void 0 === d || d || (h = null);
return [new cm({
fill: e,
image: f,
stroke: h,
text: g,
zIndex: void 0
})]
}
function Cu(b, c) {
var d = c.length,
e = Array(c.length),
f = Array(c.length),
g,
h,
k,
m;
k = m = !1;
for (h = 0; h < d; ++h) g = c[h],
e[h] = g.get('extrude'),
f[h] = g.get('altitudeMode'),
k = k || void 0 !== e[h],
m = m || f[h];
k && b.set('extrude', e);
m && b.set('altitudeMode', f)
}
function Iu(b, c) {
rp(Ju, b, c)
}
var Ku = P(cu, {
value: kp(W)
}),
Ju = P(cu, {
Data: function (b, c) {
var d = b.getAttribute('name');
if (null !== d) {
var e = Q(void 0, Ku, b, c);
e && (c[c.length - 1][d] = e)
}
},
SchemaData: function (b, c) {
rp(Lu, b, c)
}
}),
xu = P(cu, {
extrude: M(ws),
altitudeMode: M(W)
}),
tu = P(cu, {
coordinates: kp(pu)
}),
Fu = P(cu, {
innerBoundaryIs: function (b, c) {
var d = Q(void 0, Mu, b, c);
d && c[c.length - 1].push(d)
},
outerBoundaryIs: function (b, c) {
var d = Q(void 0, Nu, b, c);
d && (c[c.length - 1][0] = d)
}
}),
vu = P(cu, {
when: function (b, c) {
var d = c[c.length - 1].li,
e = Oo(b, !1);
if (e = /^\s*(\d{4})($|-(\d{2})($|-(\d{2})($|T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?)))))\s*$/.exec(e)) {
var f =
Date.UTC(parseInt(e[1], 10), e[3] ? parseInt(e[3], 10) - 1 : 0, e[5] ? parseInt(e[5], 10)  : 1, e[7] ? parseInt(e[7], 10)  : 0, e[8] ? parseInt(e[8], 10)  : 0, e[9] ? parseInt(e[9], 10)  : 0);
if (e[10] && 'Z' != e[10]) {
var g = '-' == e[11] ? - 1 : 1,
f = f + 60 * g * parseInt(e[12], 10);
e[13] && (f += 3600 * g * parseInt(e[13], 10))
}
d.push(f)
} else d.push(0)
}
}, P(bu, {
coord: function (b, c) {
var d = c[c.length - 1].v,
e = Oo(b, !1);
(e = /^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(e)) ? d.push(parseFloat(e[1]), parseFloat(e[2]), parseFloat(e[3]), 0)  : d.push(0, 0, 0, 0)
}
})),
yu = P(cu, {
coordinates: kp(pu)
}),
Ou = P(cu, {
href: M(qu)
}, P(bu, {
x: M(zs),
y: M(zs),
w: M(zs),
h: M(zs)
})),
Pu = P(cu, {
Icon: M(function (b, c) {
var d = Q({
}, Ou, b, c);
return d ? d : null
}),
heading: M(zs),
hotSpot: M(function (b) {
var c = b.getAttribute('xunits'),
d = b.getAttribute('yunits');
return {
x: parseFloat(b.getAttribute('x')),
Zf: ku[c],
y: parseFloat(b.getAttribute('y')),
$f: ku[d]
}
}),
scale: M(ru)
}),
Mu = P(cu, {
LinearRing: kp(su)
}),
Qu = P(cu, {
color: M(ou),
scale: M(ru)
}),
Ru = P(cu, {
color: M(ou),
width: M(zs)
}),
Bu = P(cu, {
LineString: jp(wu),
LinearRing: jp(zu),
MultiGeometry: jp(Au),
Point: jp(Du),
Polygon: jp(Eu)
}),
Su = P(bu, {
Track: jp(uu)
}),
Uu = P(cu, {
ExtendedData: Iu,
Link: function (b, c) {
rp(Tu, b, c)
},
address: M(W),
description: M(W),
name: M(W),
open: M(ws),
phoneNumber: M(W),
visibility: M(ws)
}),
Tu = P(cu, {
href: M(qu)
}),
Nu = P(cu, {
LinearRing: kp(su)
}),
Vu = P(cu, {
Style: M(Gu),
key: M(W),
styleUrl: M(function (b) {
var c = Oo(b, !1).trim();
return b.baseURI ? Tt(b.baseURI, c).toString()  : c
})
}),
Xu = P(cu, {
ExtendedData: Iu,
MultiGeometry: M(Au, 'geometry'),
LineString: M(wu, 'geometry'),
LinearRing: M(zu, 'geometry'),
Point: M(Du, 'geometry'),
Polygon: M(Eu, 'geometry'),
Style: M(Gu),
StyleMap: function (b, c) {
var d = Q(void 0, Wu, b, c);
if (d) {
var e = c[c.length - 1];
ga(d) ? e.Style = d : ia(d) && (e.styleUrl = d)
}
},
address: M(W),
description: M(W),
name: M(W),
open: M(ws),
phoneNumber: M(W),
styleUrl: M(qu),
visibility: M(ws)
}, P(bu, {
MultiTrack: M(function (b, c) {
var d = Q([], Su, b, c);
if (d) {
var e = new U(null);
Zr(e, d);
return e
}
}, 'geometry'),
Track: M(uu, 'geometry')
})),
Yu = P(cu, {
color: M(ou),
fill: M(ws),
outline: M(ws)
}),
Lu = P(cu, {
SimpleData: function (b, c) {
var d = b.getAttribute('name');
if (null !== d) {
var e = W(b);
c[c.length - 1][d] = e
}
}
}),
Hu = P(cu, {
IconStyle: function (b, c) {
var d = Q({
}, Pu, b, c);
if (d) {
var e = c[c.length - 1],
f = 'Icon' in d ? d.Icon : {
},
g;
g = (g = f.href) ? g : 'https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png';
var h,
k,
m,
n = d.hotSpot;
n ? (h = [
n.x,
n.y
], k = n.Zf, m = n.$f)  : 'https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png' === g ? (h = fu, m = k = 'pixels')  : /^http:\/\/maps\.(?:google|gstatic)\.com\//.test(g) && (h = [
0.5,
0
], m = k = 'fraction');
var p,
n = f.x,
q = f.y;
void 0 !== n && void 0 !== q && (p = [
n,
q
]);
var r,
n = f.w,
f = f.h;
void 0 !== n && void 0 !== f && (r = [
n,
f
]);
var t,
f = d.heading;
void 0 !== f && (t = Wa(f));
d = d.scale;
'https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png' == g && (r = gu, void 0 === d && (d = 0.5));
h = new wk({
anchor: h,
anchorOrigin: 'bottom-left',
anchorXUnits: k,
anchorYUnits: m,
crossOrigin: 'anonymous',
offset: p,
offsetOrigin: 'bottom-left',
rotation: t,
scale: d,
size: r,
src: g
});
e.imageStyle = h
}
},
LabelStyle: function (b, c) {
var d = Q({
}, Qu, b, c);
d && (c[c.length - 1].textStyle =
new Zt({
fill: new Wl({
color: 'color' in d ? d.color : du
}),
scale: d.scale
}))
},
LineStyle: function (b, c) {
var d = Q({
}, Ru, b, c);
d && (c[c.length - 1].strokeStyle = new am({
color: 'color' in d ? d.color : du,
width: 'width' in d ? d.width : 1
}))
},
PolyStyle: function (b, c) {
var d = Q({
}, Yu, b, c);
if (d) {
var e = c[c.length - 1];
e.fillStyle = new Wl({
color: 'color' in d ? d.color : du
});
var f = d.fill;
void 0 !== f && (e.fill = f);
d = d.outline;
void 0 !== d && (e.outline = d)
}
}
}),
Wu = P(cu, {
Pair: function (b, c) {
var d = Q({
}, Vu, b, c);
if (d) {
var e = d.key;
e && 'normal' == e && ((e = d.styleUrl) && (c[c.length - 1] = e), (d = d.Style) && (c[c.length - 1] = d))
}
}
});
l = $t.prototype;
l.Gf = function (b, c) {
So(b);
var d = P(cu, {
Document: ip(this.Gf, this),
Folder: ip(this.Gf, this),
Placemark: jp(this.Of, this),
Style: ra(this.vo, this),
StyleMap: ra(this.uo, this)
});
if (d = Q([], d, b, c, this)) return d
};
l.Of = function (b, c) {
var d = Q({
geometry: null
}, Xu, b, c);
if (d) {
var e = new sn,
f = b.getAttribute('id');
null !== f && e.ic(f);
var f = c[0],
g = d.geometry;
g && Tr(g, !1, f);
e.La(g);
delete d.geometry;
this.f && e.vf(mu(d.Style, d.styleUrl, this.b, this.a, this.g));
delete d.Style;
e.I(d);
return e
}
};
l.vo = function (b, c) {
var d = b.getAttribute('id');
if (null !== d) {
var e = Gu(b, c);
e && (d = b.baseURI ? Tt(b.baseURI, '#' + d).toString()  : '#' + d, this.a[d] = e)
}
};
l.uo = function (b, c) {
var d = b.getAttribute('id');
if (null !== d) {
var e = Q(void 0, Wu, b, c);
e && (d = b.baseURI ? Tt(b.baseURI, '#' + d).toString()  : '#' + d, this.a[d] = e)
}
};
l.Bh = function (b, c) {
if (!vb(cu, b.namespaceURI)) return null;
var d = this.Of(b, [
Rr(this, b, c)
]);
return d ? d : null
};
l.hc = function (b, c) {
if (!vb(cu, b.namespaceURI)) return [];
var d;
d = So(b);
if ('Document' == d || 'Folder' == d) return (d = this.Gf(b, [
Rr(this, b, c)
])) ? d : [
];
if ('Placemark' == d) return (d = this.Of(b, [
Rr(this, b, c)
])) ? [
d
] : [
];
if ('kml' == d) {
d = [
];
var e;
for (e = b.firstElementChild; e; e = e.nextElementSibling) {
var f = this.hc(e, c);
f && lb(d, f)
}
return d
}
return []
};
l.po = function (b) {
if (Vo(b)) return Zu(this, b);
if (Yo(b)) return $u(this, b);
if (ia(b)) return b = hp(b),
Zu(this, b)
};
function Zu(b, c) {
var d;
for (d = c.firstChild; d; d = d.nextSibling) if (1 == d.nodeType) {
var e = $u(b, d);
if (e) return e
}
}
function $u(b, c) {
var d;
for (d = c.firstElementChild; d; d = d.nextElementSibling) if (vb(cu, d.namespaceURI) && 'name' == d.localName) return W(d);
for (d = c.firstElementChild; d; d = d.nextElementSibling) {
var e = So(d);
if (vb(cu, d.namespaceURI) && ('Document' == e || 'Folder' == e || 'Placemark' == e || 'kml' == e) && (e = $u(b, d))) return e
}
}
l.qo = function (b) {
var c = [
];
Vo(b) ? lb(c, av(this, b))  : Yo(b) ? lb(c, bv(this, b))  : ia(b) && (b = hp(b), lb(c, av(this, b)));
return c
};
function av(b, c) {
var d,
e = [
];
for (d = c.firstChild; d; d = d.nextSibling) 1 == d.nodeType && lb(e, bv(b, d));
return e
}
function bv(b, c) {
var d,
e = [
];
for (d = c.firstElementChild; d; d = d.nextElementSibling) if (vb(cu, d.namespaceURI) && 'NetworkLink' == d.localName) {
var f = Q({
}, Uu, d, [
]);
e.push(f)
}
for (d = c.firstElementChild; d; d = d.nextElementSibling) f = So(d),
!vb(cu, d.namespaceURI) || 'Document' != f && 'Folder' != f && 'kml' != f || lb(e, bv(b, d));
return e
}
function cv(b, c) {
var d = tg(c),
d = [
255 * (4 == d.length ? d[3] : 1),
d[2],
d[1],
d[0]
],
e;
for (e = 0; 4 > e; ++e) {
var f = parseInt(d[e], 10).toString(16);
d[e] = 1 == f.length ? '0' + f : f
}
Es(b, d.join(''))
}
function dv(b, c, d) {
sp({
node: b
}, ev, fv, [
c
], d)
}
function gv(b, c, d) {
var e = {
node: b
};
c.Na() && b.setAttribute('id', c.Na());
b = c.P();
var f = c.Qb();
if (f && (f = f.call(c, 0)) && 0 < f.length) {
var g = f[0];
this.j && (b.Style = f[0]);
(f = g.c) && (b.name = f.b)
}
f = hv[d[d.length - 1].node.namespaceURI];
b = qp(b, f);
sp(e, iv, pp, b, d, f);
b = d[0];
(c = c.W()) && (c = Tr(c, !0, b));
sp(e, iv, jv, [
c
], d)
}
function kv(b, c, d) {
var e = c.ja();
b = {
node: b
};
b.layout = c.b;
b.stride = c.ra();
sp(b, lv, mv, [
e
], d)
}
function nv(b, c, d) {
c = c.ae();
var e = c.shift();
b = {
node: b
};
sp(b, ov, pv, c, d);
sp(b, ov, qv, [
e
], d)
}
function rv(b, c) {
Fs(b, c * c)
}
var sv = P(cu, [
'Document',
'Placemark'
]),
vv = P(cu, {
Document: N(function (b, c, d) {
sp({
node: b
}, tv, uv, c, d)
}),
Placemark: N(gv)
}),
tv = P(cu, {
Placemark: N(gv)
}),
wv = {
Point: 'Point',
LineString: 'LineString',
LinearRing: 'LinearRing',
Polygon: 'Polygon',
MultiPoint: 'MultiGeometry',
MultiLineString: 'MultiGeometry',
MultiPolygon: 'MultiGeometry'
},
xv = P(cu, [
'href'
], P(bu, [
'x',
'y',
'w',
'h'
])),
yv = P(cu, {
href: N(Es)
}, P(bu, {
x: N(Fs),
y: N(Fs),
w: N(Fs),
h: N(Fs)
})),
zv = P(cu, [
'scale',
'heading',
'Icon',
'hotSpot'
]),
Bv = P(cu, {
Icon: N(function (b, c, d) {
b =
{
node: b
};
var e = xv[d[d.length - 1].node.namespaceURI],
f = qp(c, e);
sp(b, yv, pp, f, d, e);
e = xv[bu[0]];
f = qp(c, e);
sp(b, yv, Av, f, d, e)
}),
heading: N(Fs),
hotSpot: N(function (b, c) {
b.setAttribute('x', c.x);
b.setAttribute('y', c.y);
b.setAttribute('xunits', c.Zf);
b.setAttribute('yunits', c.$f)
}),
scale: N(rv)
}),
Cv = P(cu, [
'color',
'scale'
]),
Dv = P(cu, {
color: N(cv),
scale: N(rv)
}),
Ev = P(cu, [
'color',
'width'
]),
Fv = P(cu, {
color: N(cv),
width: N(Fs)
}),
ev = P(cu, {
LinearRing: N(kv)
}),
Gv = P(cu, {
LineString: N(kv),
Point: N(kv),
Polygon: N(nv)
}),
hv = P(cu, 'name open visibility address phoneNumber description styleUrl Style'.split(' ')),
iv = P(cu, {
MultiGeometry: N(function (b, c, d) {
b = {
node: b
};
var e = c.V(),
f,
g;
'MultiPoint' == e ? (f = c.ue(), g = Hv)  : 'MultiLineString' == e ? (f = c.rd(), g = Iv)  : 'MultiPolygon' == e && (f = c.be(), g = Jv);
sp(b, Gv, g, f, d)
}),
LineString: N(kv),
LinearRing: N(kv),
Point: N(kv),
Polygon: N(nv),
Style: N(function (b, c, d) {
b = {
node: b
};
var e = {
},
f = c.j,
g = c.f,
h = c.b;
c = c.c;
h instanceof wk && (e.IconStyle = h);
c && (e.LabelStyle = c);
g && (e.LineStyle = g);
f && (e.PolyStyle = f);
c = Kv[d[d.length - 1].node.namespaceURI];
e = qp(e, c);
sp(b, Lv, pp, e, d, c)
}),
address: N(Es),
description: N(Es),
name: N(Es),
open: N(Ds),
phoneNumber: N(Es),
styleUrl: N(Es),
visibility: N(Ds)
}),
lv = P(cu, {
coordinates: N(function (b, c, d) {
d = d[d.length - 1];
var e = d.layout;
d = d.stride;
var f;
'XY' == e || 'XYM' == e ? f = 2 : ('XYZ' == e || 'XYZM' == e) && (f = 3);
var g,
h = c.length,
k = '';
if (0 < h) {
k += c[0];
for (e = 1; e < f; ++e) k += ',' + c[e];
for (g = d; g < h; g += d) for (k += ' ' + c[g], e = 1; e < f; ++e) k += ',' + c[g + e]
}
Es(b, k)
})
}),
ov = P(cu, {
outerBoundaryIs: N(dv),
innerBoundaryIs: N(dv)
}),
Mv = P(cu, {
color: N(cv)
}),
Kv = P(cu, [
'IconStyle',
'LabelStyle',
'LineStyle',
'PolyStyle'
]),
Lv = P(cu, {
IconStyle: N(function (b, c, d) {
b = {
node: b
};
var e = {
},
f = c.Bb(),
g = c.qd(),
h = {
href: c.a.j
};
if (f) {
h.w = f[0];
h.h = f[1];
var k = c.Xb(),
m = c.Ca();
m && g && 0 !== m[0] && m[1] !== f[1] && (h.x = m[0], h.y = g[1] - (m[1] + f[1]));
k && 0 !== k[0] && k[1] !== f[1] && (e.hotSpot = {
x: k[0],
Zf: 'pixels',
y: f[1] - k[1],
$f: 'pixels'
})
}
e.Icon = h;
f = c.i;
1 !== f && (e.scale = f);
c = c.u;
0 !== c && (e.heading = c);
c = zv[d[d.length - 1].node.namespaceURI];
e = qp(e, c);
sp(b, Bv, pp, e, d, c)
}),
LabelStyle: N(function (b, c, d) {
b = {
node: b
};
var e = {
},
f = c.a;
f && (e.color = f.a);
(c = c.c) && 1 !== c && (e.scale = c);
c = Cv[d[d.length - 1].node.namespaceURI];
e = qp(e, c);
sp(b, Dv, pp, e, d, c)
}),
LineStyle: N(function (b, c, d) {
b = {
node: b
};
var e = Ev[d[d.length - 1].node.namespaceURI];
c = qp({
color: c.a,
width: c.c
}, e);
sp(b, Fv, pp, c, d, e)
}),
PolyStyle: N(function (b, c, d) {
sp({
node: b
}, Mv, Nv, [
c.a
], d)
})
});
function Av(b, c, d) {
return No(bu[0], 'gx:' + d)
}
function uv(b, c) {
return No(c[c.length - 1].node.namespaceURI, 'Placemark')
}
function jv(b, c) {
if (b) return No(c[c.length - 1].node.namespaceURI, wv[b.V()])
}
var Nv = np('color'),
mv = np('coordinates'),
pv = np('innerBoundaryIs'),
Hv = np('Point'),
Iv = np('LineString'),
fv = np('LinearRing'),
Jv = np('Polygon'),
qv = np('outerBoundaryIs');
$t.prototype.c = function (b, c) {
c = Sr(this, c);
var d = No(cu[4], 'kml');
gp(d, 'http://www.w3.org/2000/xmlns/', 'xmlns:gx', bu[0]);
gp(d, 'http://www.w3.org/2000/xmlns/', 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
gp(d, 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation', 'http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd');
var e = {
node: d
},
f = {
};
1 < b.length ? f.Document = b : 1 == b.length && (f.Placemark = b[0]);
var g = sv[d.namespaceURI],
f = qp(f, g);
sp(e, vv, pp, f, [
c
], g, this);
return d
};
(function () {
var b = {
},
c = {
ka: b
};
(function (d) {
if ('object' === typeof b && 'undefined' !== typeof c) c.ka = d();
 else {
var e;
'undefined' !== typeof window ? e = window : 'undefined' !== typeof global ? e = global : 'undefined' !== typeof self ? e = self : e = this;
e.Ap = d()
}
}) (function () {
return function e(b, c, h) {
function k(n, q) {
if (!c[n]) {
if (!b[n]) {
var r = 'function' == typeof require && require;
if (!q && r) return r(n, !0);
if (m) return m(n, !0);
r = Error('Cannot find module \'' + n + '\'');
throw r.code = 'MODULE_NOT_FOUND',
r;
}
r = c[n] = {
ka: {
}
};
b[n][0].call(r.ka, function (c) {
var e =
b[n][1][c];
return k(e ? e : c)
}, r, r.ka, e, b, c, h)
}
return c[n].ka
}
for (var m = 'function' == typeof require && require, n = 0; n < h.length; n++) k(h[n]);
return k
}({
1: [
function (b, c, g) {
g.read = function (b, c, e, f, g) {
var q;
q = 8 * g - f - 1;
var r = (1 << q) - 1,
t = r >> 1,
x = - 7;
g = e ? g - 1 : 0;
var z = e ? - 1 : 1,
B = b[c + g];
g += z;
e = B & (1 << - x) - 1;
B >>= - x;
for (x += q; 0 < x; e = 256 * e + b[c + g], g += z, x -= 8);
q = e & (1 << - x) - 1;
e >>= - x;
for (x += f; 0 < x; q = 256 * q + b[c + g], g += z, x -= 8);
if (0 === e) e = 1 - t;
 else {
if (e === r) return q ? NaN : Infinity * (B ? - 1 : 1);
q += Math.pow(2, f);
e = e - t
}
return (B ? - 1 : 1) * q * Math.pow(2, e -
f)
};
g.write = function (b, c, e, f, g, q) {
var r,
t = 8 * q - g - 1,
x = (1 << t) - 1,
z = x >> 1,
B = 23 === g ? Math.pow(2, - 24) - Math.pow(2, - 77)  : 0;
q = f ? 0 : q - 1;
var A = f ? 1 : - 1,
v = 0 > c || 0 === c && 0 > 1 / c ? 1 : 0;
c = Math.abs(c);
isNaN(c) || Infinity === c ? (c = isNaN(c) ? 1 : 0, f = x)  : (f = Math.floor(Math.log(c) / Math.LN2), 1 > c * (r = Math.pow(2, - f)) && (f--, r *= 2), c = 1 <= f + z ? c + B / r : c + B * Math.pow(2, 1 - z), 2 <= c * r && (f++, r /= 2), f + z >= x ? (c = 0, f = x)  : 1 <= f + z ? (c = (c * r - 1) * Math.pow(2, g), f += z)  : (c = c * Math.pow(2, z - 1) * Math.pow(2, g), f = 0));
for (; 8 <= g; b[e + q] = c & 255, q += A, c /= 256, g -= 8);
f = f << g | c;
for (t += g; 0 < t; b[e +
q] = f & 255, q += A, f /= 256, t -= 8);
b[e + q - A] |= 128 * v
}
},
{
}
],
2: [
function (b, c) {
function g(b) {
var c;
b && b.length && (c = b, b = c.length);
b = new Uint8Array(b || 0);
c && b.set(c);
b.Mh = m.Mh;
b.Yf = m.Yf;
b.Eh = m.Eh;
b.ri = m.ri;
b.Nf = m.Nf;
b.pi = m.pi;
b.Hf = m.Hf;
b.mi = m.mi;
b.toString = m.toString;
b.write = m.write;
b.slice = m.slice;
b.og = m.og;
b.aj = !0;
return b
}
function h(b) {
for (var c = b.length, e = [
], f = 0, g, h; f < c; f++) {
g = b.charCodeAt(f);
if (55295 < g && 57344 > g) if (h) if (56320 > g) {
e.push(239, 191, 189);
h = g;
continue
} else g = h - 55296 << 10 | g - 56320 | 65536,
h = null;
 else {
56319 <
g || f + 1 === c ? e.push(239, 191, 189)  : h = g;
continue
} else h && (e.push(239, 191, 189), h = null);
128 > g ? e.push(g)  : 2048 > g ? e.push(g >> 6 | 192, g & 63 | 128)  : 65536 > g ? e.push(g >> 12 | 224, g >> 6 & 63 | 128, g & 63 | 128)  : e.push(g >> 18 | 240, g >> 12 & 63 | 128, g >> 6 & 63 | 128, g & 63 | 128)
}
return e
}
c.ka = g;
var k = b('ieee754'),
m,
n,
p;
m = {
Mh: function (b) {
return (this[b] | this[b + 1] << 8 | this[b + 2] << 16) + 16777216 * this[b + 3]
},
Yf: function (b, c) {
this[c] = b;
this[c + 1] = b >>> 8;
this[c + 2] = b >>> 16;
this[c + 3] = b >>> 24
},
Eh: function (b) {
return (this[b] | this[b + 1] << 8 | this[b + 2] << 16) + (this[b + 3] << 24)
},
Nf: function (b) {
return k.read(this, b, !0, 23, 4)
},
Hf: function (b) {
return k.read(this, b, !0, 52, 8)
},
pi: function (b, c) {
return k.write(this, b, c, !0, 23, 4)
},
mi: function (b, c) {
return k.write(this, b, c, !0, 52, 8)
},
toString: function (b, c, e) {
var f = b = '';
e = Math.min(this.length, e || this.length);
for (c = c || 0; c < e; c++) {
var g = this[c];
127 >= g ? (b += decodeURIComponent(f) + String.fromCharCode(g), f = '')  : f += '%' + g.toString(16)
}
return b += decodeURIComponent(f)
},
write: function (b, c) {
for (var e = b === n ? p : h(b), f = 0; f < e.length; f++) this[c + f] = e[f]
},
slice: function (b, c) {
return this.subarray(b, c)
},
og: function (b, c) {
c = c || 0;
for (var e = 0; e < this.length; e++) b[c + e] = this[e]
}
};
m.ri = m.Yf;
g.byteLength = function (b) {
n = b;
p = h(b);
return p.length
};
g.isBuffer = function (b) {
return !(!b || !b.aj)
}
},
{
ieee754: 1
}
],
3: [
function (b, c) {
(function (g) {
function h(b) {
this.Eb = k.isBuffer(b) ? b : new k(b || 0);
this.ca = 0;
this.length = this.Eb.length
}
c.ka = h;
var k = g.ip || b('./buffer');
h.f = 0;
h.b = 1;
h.a = 2;
h.c = 5;
var m = Math.pow(2, 63);
h.prototype = {
Lf: function (b, c, e) {
for (e = e || this.length; this.ca < e; ) {
  var f = this.za(),
  g = this.ca;
  b(f >> 3, c, this);
  this.ca === g && this.Xo(f)
}
return c
},
lo: function () {
var b = this.Eb.Nf(this.ca);
this.ca += 4;
return b
},
ho: function () {
var b = this.Eb.Hf(this.ca);
this.ca += 8;
return b
},
za: function () {
var b = this.Eb,
c,
e,
f,
g,
h;
c = b[this.ca++];
if (128 > c) return c;
c = c & 127;
f = b[this.ca++];
if (128 > f) return c | f << 7;
f = (f & 127) << 7;
g = b[this.ca++];
if (128 > g) return c | f | g << 14;
g = (g & 127) << 14;
h = b[this.ca++];
if (128 > h) return c | f | g | h << 21;
e = b[this.ca++];
c = (c | f | g | (h & 127) << 21) + 268435456 * (e & 127);
if (128 > e) return c;
e = b[this.ca++];
c += 34359738368 * (e & 127);
if (128 > e) return c;
e = b[this.ca++];
c += 4398046511104 * (e & 127);
if (128 > e) return c;
e = b[this.ca++];
c += 562949953421312 * (e & 127);
if (128 > e) return c;
e = b[this.ca++];
c += 72057594037927940 * (e & 127);
if (128 > e) return c;
e = b[this.ca++];
c += 9223372036854776000 * (e & 127);
if (128 > e) return c;
throw Error('Expected varint not more than 10 bytes');
},
wo: function () {
var b = this.ca,
c = this.za();
if (c < m) return c;
for (var e = this.ca - 2; 255 === this.Eb[e]; ) e--;
e < b && (e = b);
for (var f = c = 0; f < e - b + 1; f++) var g = ~this.Eb[b + f] & 127,
c = c + (4 > f ? g << 7 * f : g *
Math.pow(2, 7 * f));
return - c - 1
},
Fd: function () {
var b = this.za();
return 1 === b % 2 ? (b + 1) / - 2 : b / 2
},
eo: function () {
return Boolean(this.za())
},
Qf: function () {
var b = this.za() + this.ca,
c = this.Eb.toString('utf8', this.ca, b);
this.ca = b;
return c
},
Xo: function (b) {
b = b & 7;
if (b === h.f) for (; 127 < this.Eb[this.ca++]; );
 else if (b === h.a) this.ca = this.za() + this.ca;
 else if (b === h.c) this.ca += 4;
 else if (b === h.b) this.ca += 8;
 else throw Error('Unimplemented type: ' + b);
}
}
}).call(this, 'undefined' !== typeof global ? global : 'undefined' !== typeof self ?
self : 'undefined' !== typeof window ? window : {
})
},
{
'./buffer': 2
}
]
}, {
}, [
3
]) (3)
});
yp = c.ka
}) ();
(function () {
var b = {
},
c = {
ka: b
};
(function (d) {
if ('object' === typeof b && 'undefined' !== typeof c) c.ka = d();
 else {
var e;
'undefined' !== typeof window ? e = window : 'undefined' !== typeof global ? e = global : 'undefined' !== typeof self ? e = self : e = this;
e.Cp = d()
}
}) (function () {
return function e(b, c, h) {
function k(n, q) {
if (!c[n]) {
if (!b[n]) {
var r = 'function' == typeof require && require;
if (!q && r) return r(n, !0);
if (m) return m(n, !0);
r = Error('Cannot find module \'' + n + '\'');
throw r.code = 'MODULE_NOT_FOUND',
r;
}
r = c[n] = {
ka: {
}
};
b[n][0].call(r.ka, function (c) {
var e =
b[n][1][c];
return k(e ? e : c)
}, r, r.ka, e, b, c, h)
}
return c[n].ka
}
for (var m = 'function' == typeof require && require, n = 0; n < h.length; n++) k(h[n]);
return k
}({
1: [
function (b, c) {
function g(b, c) {
this.x = b;
this.y = c
}
c.ka = g;
g.prototype = {
clone: function () {
return new g(this.x, this.y)
},
add: function (b) {
return this.clone().Ti(b)
},
rotate: function (b) {
return this.clone().dj(b)
},
round: function () {
return this.clone().ej()
},
angle: function () {
return Math.atan2(this.y, this.x)
},
Ti: function (b) {
this.x += b.x;
this.y += b.y;
return this
},
dj: function (b) {
var c =
Math.cos(b);
b = Math.sin(b);
var e = b * this.x + c * this.y;
this.x = c * this.x - b * this.y;
this.y = e;
return this
},
ej: function () {
this.x = Math.round(this.x);
this.y = Math.round(this.y);
return this
}
};
g.a = function (b) {
return b instanceof g ? b : Array.isArray(b) ? new g(b[0], b[1])  : b
}
},
{
}
],
2: [
function (b, c) {
c.ka.Si = b('./lib/vectortile.js');
c.ka.vp = b('./lib/vectortilefeature.js');
c.ka.wp = b('./lib/vectortilelayer.js')
},
{
'./lib/vectortile.js': 3,
'./lib/vectortilefeature.js': 4,
'./lib/vectortilelayer.js': 5
}
],
3: [
function (b, c) {
function g(b, c, e) {
3 === b && (b = new h(e, e.za() + e.ca), b.length && (c[b.name] = b))
}
var h = b('./vectortilelayer');
c.ka = function (b, c) {
this.layers = b.Lf(g, {
}, c)
}
},
{
'./vectortilelayer': 5
}
],
4: [
function (b, c) {
function g(b, c, e, f, g) {
this.properties = {
};
this.extent = e;
this.type = 0;
this.lc = b;
this.Ye = - 1;
this.Pd = f;
this.Rd = g;
b.Lf(h, this, c)
}
function h(b, c, e) {
if (1 == b) c.yp = e.za();
 else if (2 == b) for (b = e.za() + e.ca; e.ca < b; ) {
var f = c.Pd[e.za()],
g = c.Rd[e.za()];
c.properties[f] = g
} else 3 == b ? c.type = e.za()  : 4 == b && (c.Ye = e.ca)
}
var k = b('point-geometry');
c.ka =
g;
g.types = [
'Unknown',
'Point',
'LineString',
'Polygon'
];
g.prototype.Pg = function () {
var b = this.lc;
b.ca = this.Ye;
for (var c = b.za() + b.ca, e = 1, f = 0, g = 0, h = 0, x = [
], z; b.ca < c; ) if (f || (f = b.za(), e = f & 7, f = f >> 3), f--, 1 === e || 2 === e) g += b.Fd(),
h += b.Fd(),
1 === e && (z && x.push(z), z = [
]),
z.push(new k(g, h));
 else if (7 === e) z && z.push(z[0].clone());
 else throw Error('unknown command ' + e);
z && x.push(z);
return x
};
g.prototype.bbox = function () {
var b = this.lc;
b.ca = this.Ye;
for (var c = b.za() + b.ca, e = 1, f = 0, g = 0, h = 0, k = Infinity, z = - Infinity, B = Infinity, A =
- Infinity; b.ca < c; ) if (f || (f = b.za(), e = f & 7, f = f >> 3), f--, 1 === e || 2 === e) g += b.Fd(),
h += b.Fd(),
g < k && (k = g),
g > z && (z = g),
h < B && (B = h),
h > A && (A = h);
 else if (7 !== e) throw Error('unknown command ' + e);
return [k,
B,
z,
A]
}
},
{
'point-geometry': 1
}
],
5: [
function (b, c) {
function g(b, c) {
this.version = 1;
this.name = null;
this.extent = 4096;
this.length = 0;
this.lc = b;
this.Pd = [
];
this.Rd = [
];
this.Od = [
];
b.Lf(h, this, c);
this.length = this.Od.length
}
function h(b, c, e) {
15 === b ? c.version = e.za()  : 1 === b ? c.name = e.Qf()  : 5 === b ? c.extent = e.za()  : 2 === b ? c.Od.push(e.ca)  :
3 === b ? c.Pd.push(e.Qf())  : 4 === b && c.Rd.push(k(e))
}
function k(b) {
for (var c = null, e = b.za() + b.ca; b.ca < e; ) c = b.za() >> 3,
c = 1 === c ? b.Qf()  : 2 === c ? b.lo()  : 3 === c ? b.ho()  : 4 === c ? b.wo()  : 5 === c ? b.za()  : 6 === c ? b.Fd()  : 7 === c ? b.eo()  : null;
return c
}
var m = b('./vectortilefeature.js');
c.ka = g;
g.prototype.feature = function (b) {
if (0 > b || b >= this.Od.length) throw Error('feature index out of bounds');
this.lc.ca = this.Od[b];
b = this.lc.za() + this.lc.ca;
return new m(this.lc, b, this.extent, this.Pd, this.Rd)
}
},
{
'./vectortilefeature.js': 4
}
]
}, {
}, [
2
]) (2)
});
zp = c.ka
}) ();
function Ov(b) {
this.defaultDataProjection = null;
b = b ? b : {
};
this.defaultDataProjection = new De({
code: 'EPSG:3857',
units: 'tile-pixels'
});
this.a = b.featureClass ? b.featureClass : Vm;
this.f = b.geometryName ? b.geometryName : 'geometry';
this.c = b.layerName ? b.layerName : 'layer';
this.b = b.layers ? b.layers : null
}
y(Ov, Qr);
Ov.prototype.V = function () {
return 'arraybuffer'
};
Ov.prototype.Ba = function (b, c) {
var d = this.b,
e = new yp(b),
e = new zp.Si(e),
f = [
],
g = this.a,
h,
k,
m;
for (m in e.layers) if (!d || - 1 != d.indexOf(m)) {
h = e.layers[m];
for (var n = 0, p = h.length; n < p; ++n) {
if (g === Vm) {
var q = h.feature(n);
k = m;
var r = q.Pg(),
t = [
],
x = [
];
Pv(r, x, t);
var z = q.type,
B = void 0;
1 === z ? B = 1 === r.length ? 'Point' : 'MultiPoint' : 2 === z ? B = 1 === r.length ? 'LineString' : 'MultiLineString' : 3 === z && (B = 'Polygon');
q = q.properties;
q[this.c] = k;
k = new this.a(B, x, t, q)
} else {
q = h.feature(n);
B = m;
x = c;
k = new this.a;
t = q.properties;
t[this.c] = B;
B =
q.type;
if (0 === B) B = null;
 else {
q = q.Pg();
r = [
];
z = [
];
Pv(q, z, r);
var A = void 0;
1 === B ? A = 1 === q.length ? new D(null)  : new $r(null)  : 2 === B ? 1 === q.length ? A = new T(null)  : A = new U(null)  : 3 === B && (A = new E(null));
A.ba('XY', z, r);
B = A
}(x = Tr(B, !1, Sr(this, x))) && (t[this.f] = x);
k.I(t);
k.vc(this.f)
}
f.push(k)
}
}
return f
};
Ov.prototype.Ia = function () {
return this.defaultDataProjection
};
Ov.prototype.g = function (b) {
this.b = b
};
function Pv(b, c, d) {
for (var e = 0, f, g, h = 0, k = b.length; h < k; ++h) {
f = b[h];
for (var m = 0, n = f.length; m < n; ++m) g = f[m],
c.push(g.x, g.y);
e += 2 * m;
d.push(e)
}
};
function Qv() {
this.defaultDataProjection = null;
this.defaultDataProjection = Fe('EPSG:4326')
}
y(Qv, ss);
function Rv(b, c) {
c[c.length - 1].Id[b.getAttribute('k')] = b.getAttribute('v')
}
var Sv = [
null
],
Tv = P(Sv, {
nd: function (b, c) {
c[c.length - 1].Nc.push(b.getAttribute('ref'))
},
tag: Rv
}),
Vv = P(Sv, {
node: function (b, c) {
var d = c[0],
e = c[c.length - 1],
f = b.getAttribute('id'),
g = [
parseFloat(b.getAttribute('lon')),
parseFloat(b.getAttribute('lat'))
];
e.Sg[f] = g;
var h = Q({
Id: {
}
}, Uv, b, c);
Qb(h.Id) || (g = new D(g), Tr(g, !1, d), d = new sn(g), d.ic(f), d.I(h.Id), e.features.push(d))
},
way: function (b, c) {
for (var d = c[0], e = b.getAttribute('id'), f = Q({
Nc: [
],
Id: {
}
}, Tv, b, c), g = c[c.length - 1], h = [
], k = 0, m = f.Nc.length; k < m; k++) lb(h, g.Sg[f.Nc[k]]);
f.Nc[0] == f.Nc[f.Nc.length - 1] ? (k = new E(null), k.ba('XY', h, [
h.length
]))  : (k = new T(null), k.ba('XY', h));
Tr(k, !1, d);
d = new sn(k);
d.ic(e);
d.I(f.Id);
g.features.push(d)
}
}),
Uv = P(Sv, {
tag: Rv
});
Qv.prototype.hc = function (b, c) {
var d = Rr(this, b, c);
return 'osm' == b.localName && (d = Q({
Sg: {
},
features: [
]
}, Vv, b, [
d
]), d.features) ? d.features : [
]
};
function Wv(b) {
return b.getAttributeNS('http://www.w3.org/1999/xlink', 'href')
};
function Xv() {
}
Xv.prototype.read = function (b) {
return Vo(b) ? this.c(b)  : Yo(b) ? this.a(b)  : ia(b) ? (b = hp(b), this.c(b))  : null
};
function Yv() {
}
y(Yv, Xv);
Yv.prototype.c = function (b) {
for (b = b.firstChild; b; b = b.nextSibling) if (1 == b.nodeType) return this.a(b);
return null
};
Yv.prototype.a = function (b) {
return (b = Q({
}, Zv, b, [
])) ? b : null
};
var $v = [
null,
'http://www.opengis.net/ows/1.1'
],
Zv = P($v, {
ServiceIdentification: M(function (b, c) {
return Q({
}, aw, b, c)
}),
ServiceProvider: M(function (b, c) {
return Q({
}, bw, b, c)
}),
OperationsMetadata: M(function (b, c) {
return Q({
}, cw, b, c)
})
}),
dw = P($v, {
DeliveryPoint: M(W),
City: M(W),
AdministrativeArea: M(W),
PostalCode: M(W),
Country: M(W),
ElectronicMailAddress: M(W)
}),
ew = P($v, {
Value: lp(function (b) {
return W(b)
})
}),
fw = P($v, {
AllowedValues: M(function (b, c) {
return Q({
}, ew, b, c)
})
}),
hw = P($v, {
Phone: M(function (b, c) {
return Q({
}, gw, b, c)
}),
Address: M(function (b, c) {
return Q({
}, dw, b, c)
})
}),
jw = P($v, {
HTTP: M(function (b, c) {
return Q({
}, iw, b, c)
})
}),
iw = P($v, {
Get: lp(function (b, c) {
var d = Wv(b);
return d ? Q({
href: d
}, kw, b, c)  : void 0
}),
Post: void 0
}),
lw = P($v, {
DCP: M(function (b, c) {
return Q({
}, jw, b, c)
})
}),
cw = P($v, {
Operation: function (b, c) {
var d = b.getAttribute('name'),
e = Q({
}, lw, b, c);
e && (c[c.length - 1][d] = e)
}
}),
gw = P($v, {
Voice: M(W),
Facsimile: M(W)
}),
kw = P($v, {
Constraint: lp(function (b, c) {
var d = b.getAttribute('name');
return d ? Q({
name: d
}, fw, b, c)  : void 0
})
}),
mw = P($v, {
IndividualName: M(W),
PositionName: M(W),
ContactInfo: M(function (b, c) {
return Q({
}, hw, b, c)
})
}),
aw = P($v, {
Title: M(W),
ServiceTypeVersion: M(W),
ServiceType: M(W)
}),
bw = P($v, {
ProviderName: M(W),
ProviderSite: M(Wv),
ServiceContact: M(function (b, c) {
return Q({
}, mw, b, c)
})
});
function nw(b, c, d, e) {
var f;
void 0 !== e ? f = e : f = [
];
e = 0;
var g,
h;
for (g = 0; g < c; ) for (h = b[g++], f[e++] = b[g++], f[e++] = h, h = 2; h < d; ++h) f[e++] = b[g++];
f.length = e
};
function ow(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.defaultDataProjection = Fe('EPSG:4326');
this.a = b.factor ? b.factor : 100000;
this.c = b.geometryLayout ? b.geometryLayout : 'XY'
}
y(ow, At);
function pw(b, c, d) {
var e,
f = Array(c);
for (e = 0; e < c; ++e) f[e] = 0;
var g,
h;
g = 0;
for (h = b.length; g < h; ) for (e = 0; e < c; ++e, ++g) {
var k = b[g],
m = k - f[e];
f[e] = k;
b[g] = m
}
return qw(b, d ? d : 100000)
}
function rw(b, c, d) {
var e,
f = Array(c);
for (e = 0; e < c; ++e) f[e] = 0;
b = sw(b, d ? d : 100000);
var g;
d = 0;
for (g = b.length; d < g; ) for (e = 0; e < c; ++e, ++d) f[e] += b[d],
b[d] = f[e];
return b
}
function qw(b, c) {
var d = c ? c : 100000,
e,
f;
e = 0;
for (f = b.length; e < f; ++e) b[e] = Math.round(b[e] * d);
d = 0;
for (e = b.length; d < e; ++d) f = b[d],
b[d] = 0 > f ? ~(f << 1)  : f << 1;
d = '';
e = 0;
for (f = b.length; e < f; ++e) {
for (var g = b[e], h = void 0, k = ''; 32 <= g; ) h = (32 | g & 31) + 63,
k += String.fromCharCode(h),
g >>= 5;
h = g + 63;
k += String.fromCharCode(h);
d += k
}
return d
}
function sw(b, c) {
var d = c ? c : 100000,
e = [
],
f = 0,
g = 0,
h,
k;
h = 0;
for (k = b.length; h < k; ++h) {
var m = b.charCodeAt(h) - 63,
f = f | (m & 31) << g;
32 > m ? (e.push(f), g = f = 0)  : g += 5
}
f = 0;
for (g = e.length; f < g; ++f) h = e[f],
e[f] = h & 1 ? ~(h >> 1)  : h >> 1;
f = 0;
for (g = e.length; f < g; ++f) e[f] /= d;
return e
}
l = ow.prototype;
l.Cd = function (b, c) {
var d = this.Ed(b, c);
return new sn(d)
};
l.Kf = function (b, c) {
return [this.Cd(b, c)]
};
l.Ed = function (b, c) {
var d = ef(this.c),
e = rw(b, d, this.a);
nw(e, e.length, d, e);
d = sf(e, 0, e.length, d);
return Tr(new T(d, this.c), !1, Sr(this, c))
};
l.Qe = function (b, c) {
var d = b.W();
return d ? this.Kd(d, c)  : ''
};
l.oi = function (b, c) {
return this.Qe(b[0], c)
};
l.Kd = function (b, c) {
b = Tr(b, !0, Sr(this, c));
var d = b.ja(),
e = b.ra();
nw(d, d.length, e, d);
return pw(d, e, this.a)
};
function tw(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.defaultDataProjection = Fe(b.defaultDataProjection ? b.defaultDataProjection : 'EPSG:4326')
}
y(tw, Ur);
function uw(b, c) {
var d = [
],
e,
f,
g,
h;
g = 0;
for (h = b.length; g < h; ++g) e = b[g],
0 < g && d.pop(),
0 <= e ? f = c[e] : f = c[~e].slice().reverse(),
d.push.apply(d, f);
e = 0;
for (f = d.length; e < f; ++e) d[e] = d[e].slice();
return d
}
function vw(b, c, d, e, f) {
b = b.geometries;
var g = [
],
h,
k;
h = 0;
for (k = b.length; h < k; ++h) g[h] = ww(b[h], c, d, e, f);
return g
}
function ww(b, c, d, e, f) {
var g = b.type,
h = xw[g];
c = 'Point' === g || 'MultiPoint' === g ? h(b, d, e)  : h(b, c);
d = new sn;
d.La(Tr(c, !1, f));
void 0 !== b.id && d.ic(b.id);
b.properties && d.I(b.properties);
return d
}
tw.prototype.Jf = function (b, c) {
if ('Topology' == b.type) {
var d,
e = null,
f = null;
b.transform && (d = b.transform, e = d.scale, f = d.translate);
var g = b.arcs;
if (d) {
d = e;
var h = f,
k,
m;
k = 0;
for (m = g.length; k < m; ++k) for (var n = g[k], p = d, q = h, r = 0, t = 0, x = void 0, z = void 0, B = void 0, z = 0, B = n.length; z < B; ++z) x = n[z],
r += x[0],
t += x[1],
x[0] = r,
x[1] = t,
yw(x, p, q)
}
d = [
];
h = Lb(b.objects);
k = 0;
for (m = h.length; k < m; ++k) 'GeometryCollection' === h[k].type ? (n = h[k], d.push.apply(d, vw(n, g, e, f, c)))  : (n = h[k], d.push(ww(n, g, e, f, c)));
return d
}
return []
};
function yw(b, c, d) {
b[0] = b[0] * c[0] + d[0];
b[1] = b[1] * c[1] + d[1]
}
tw.prototype.Ia = function () {
return this.defaultDataProjection
};
var xw = {
Point: function (b, c, d) {
b = b.coordinates;
c && d && yw(b, c, d);
return new D(b)
},
LineString: function (b, c) {
var d = uw(b.arcs, c);
return new T(d)
},
Polygon: function (b, c) {
var d = [
],
e,
f;
e = 0;
for (f = b.arcs.length; e < f; ++e) d[e] = uw(b.arcs[e], c);
return new E(d)
},
MultiPoint: function (b, c, d) {
b = b.coordinates;
var e,
f;
if (c && d) for (e = 0, f = b.length; e < f; ++e) yw(b[e], c, d);
return new $r(b)
},
MultiLineString: function (b, c) {
var d = [
],
e,
f;
e = 0;
for (f = b.arcs.length; e < f; ++e) d[e] = uw(b.arcs[e], c);
return new U(d)
},
MultiPolygon: function (b, c) {
var d =
[
],
e,
f,
g,
h,
k,
m;
k = 0;
for (m = b.arcs.length; k < m; ++k) {
e = b.arcs[k];
f = [
];
g = 0;
for (h = e.length; g < h; ++g) f[g] = uw(e[g], c);
d[k] = f
}
return new V(d)
}
};
function zw(b) {
b = b ? b : {
};
this.g = b.featureType;
this.b = b.featureNS;
this.a = b.gmlFormat ? b.gmlFormat : new Is;
this.f = b.schemaLocation ? b.schemaLocation : 'http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd';
this.defaultDataProjection = null
}
y(zw, ss);
zw.prototype.hc = function (b, c) {
var d = {
featureType: this.g,
featureNS: this.b
};
Xb(d, Rr(this, b, c ? c : {
}));
d = [
d
];
this.a.a['http://www.opengis.net/gml'].featureMember = jp(vs.prototype.Dd);
(d = Q([], this.a.a, b, d, this.a)) || (d = [
]);
return d
};
zw.prototype.i = function (b) {
if (Vo(b)) return Aw(b);
if (Yo(b)) return Q({
}, Bw, b, [
]);
if (ia(b)) return b = hp(b),
Aw(b)
};
zw.prototype.j = function (b) {
if (Vo(b)) return Cw(this, b);
if (Yo(b)) return Dw(this, b);
if (ia(b)) return b = hp(b),
Cw(this, b)
};
function Cw(b, c) {
for (var d = c.firstChild; d; d = d.nextSibling) if (1 == d.nodeType) return Dw(b, d)
}
var Ew = {
'http://www.opengis.net/gml': {
boundedBy: M(vs.prototype.Ie, 'bounds')
}
};
function Dw(b, c) {
var d = {
},
e = Cs(c.getAttribute('numberOfFeatures'));
d.numberOfFeatures = e;
return Q(d, Ew, c, [
], b.a)
}
var Fw = {
'http://www.opengis.net/wfs': {
totalInserted: M(Bs),
totalUpdated: M(Bs),
totalDeleted: M(Bs)
}
},
Gw = {
'http://www.opengis.net/ogc': {
FeatureId: jp(function (b) {
return b.getAttribute('fid')
})
}
},
Hw = {
'http://www.opengis.net/wfs': {
Feature: function (b, c) {
rp(Gw, b, c)
}
}
},
Bw = {
'http://www.opengis.net/wfs': {
TransactionSummary: M(function (b, c) {
return Q({
}, Fw, b, c)
}, 'transactionSummary'),
InsertResults: M(function (b, c) {
return Q([], Hw, b, c)
}, 'insertIds')
}
};
function Aw(b) {
for (b = b.firstChild; b; b = b.nextSibling) if (1 == b.nodeType) return Q({
}, Bw, b, [
])
}
var Iw = {
'http://www.opengis.net/wfs': {
PropertyName: N(Es)
}
};
function Jw(b, c) {
var d = No('http://www.opengis.net/ogc', 'Filter'),
e = No('http://www.opengis.net/ogc', 'FeatureId');
d.appendChild(e);
e.setAttribute('fid', c);
b.appendChild(d)
}
var Kw = {
'http://www.opengis.net/wfs': {
Insert: N(function (b, c, d) {
var e = d[d.length - 1],
e = No(e.featureNS, e.featureType);
b.appendChild(e);
Is.prototype.ni(e, c, d)
}),
Update: N(function (b, c, d) {
var e = d[d.length - 1],
f = e.featureType,
g = e.featurePrefix,
g = g ? g : 'feature',
h = e.featureNS;
b.setAttribute('typeName', g + ':' + f);
gp(b, 'http://www.w3.org/2000/xmlns/', 'xmlns:' + g, h);
if (f = c.Na()) {
for (var g = c.O(), h = [
], k = 0, m = g.length; k < m; k++) {
var n = c.get(g[k]);
void 0 !== n && h.push({
name: g[k],
value: n
})
}
sp({
node: b,
srsName: e.srsName
}, Kw, np('Property'), h, d);
Jw(b, f)
}
}),
Delete: N(function (b, c, d) {
var e = d[d.length - 1];
d = e.featureType;
var f = e.featurePrefix,
f = f ? f : 'feature',
e = e.featureNS;
b.setAttribute('typeName', f + ':' + d);
gp(b, 'http://www.w3.org/2000/xmlns/', 'xmlns:' + f, e);
(c = c.Na()) && Jw(b, c)
}),
Property: N(function (b, c, d) {
var e = No('http://www.opengis.net/wfs', 'Name');
b.appendChild(e);
Es(e, c.name);
void 0 !== c.value && null !== c.value && (e = No('http://www.opengis.net/wfs', 'Value'), b.appendChild(e), c.value instanceof bf ? Is.prototype.Se(e, c.value, d)  :
Es(e, c.value))
}),
Native: N(function (b, c) {
c.ep && b.setAttribute('vendorId', c.ep);
void 0 !== c.Io && b.setAttribute('safeToIgnore', c.Io);
void 0 !== c.value && Es(b, c.value)
})
}
},
Lw = {
'http://www.opengis.net/wfs': {
Query: N(function (b, c, d) {
var e = d[d.length - 1],
f = e.featurePrefix,
g = e.featureNS,
h = e.propertyNames,
k = e.srsName;
b.setAttribute('typeName', (f ? f + ':' : '') + c);
k && b.setAttribute('srsName', k);
g && gp(b, 'http://www.w3.org/2000/xmlns/', 'xmlns:' + f, g);
c = Ub(e);
c.node = b;
sp(c, Iw, np('PropertyName'), h, d);
if (e = e.bbox) h = No('http://www.opengis.net/ogc', 'Filter'),
c = d[d.length - 1].geometryName,
f = No('http://www.opengis.net/ogc', 'BBOX'),
h.appendChild(f),
g = No('http://www.opengis.net/ogc', 'PropertyName'),
Es(g, c),
f.appendChild(g),
Is.prototype.Se(f, e, d),
b.appendChild(h)
})
}
};
zw.prototype.l = function (b) {
var c = No('http://www.opengis.net/wfs', 'GetFeature');
c.setAttribute('service', 'WFS');
c.setAttribute('version', '1.1.0');
b && (b.handle && c.setAttribute('handle', b.handle), b.outputFormat && c.setAttribute('outputFormat', b.outputFormat), void 0 !== b.maxFeatures && c.setAttribute('maxFeatures', b.maxFeatures), b.resultType && c.setAttribute('resultType', b.resultType), void 0 !== b.startIndex && c.setAttribute('startIndex', b.startIndex), void 0 !== b.count && c.setAttribute('count', b.count));
gp(c, 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation', this.f);
var d = b.featureTypes;
b = [
{
node: c,
srsName: b.srsName,
featureNS: b.featureNS ? b.featureNS : this.b,
featurePrefix: b.featurePrefix,
geometryName: b.geometryName,
bbox: b.bbox,
propertyNames: b.propertyNames ? b.propertyNames : [
]
}
];
var e = Ub(b[b.length - 1]);
e.node = c;
sp(e, Lw, np('Query'), d, b);
return c
};
zw.prototype.A = function (b, c, d, e) {
var f = [
],
g = No('http://www.opengis.net/wfs', 'Transaction');
g.setAttribute('service', 'WFS');
g.setAttribute('version', '1.1.0');
var h,
k;
e && (h = e.gmlOptions ? e.gmlOptions : {
}, e.handle && g.setAttribute('handle', e.handle));
gp(g, 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation', this.f);
b && (k = {
node: g,
featureNS: e.featureNS,
featureType: e.featureType,
featurePrefix: e.featurePrefix
}, Xb(k, h), sp(k, Kw, np('Insert'), b, f));
c && (k = {
node: g,
featureNS: e.featureNS,
featureType: e.featureType,
featurePrefix: e.featurePrefix
}, Xb(k, h), sp(k, Kw, np('Update'), c, f));
d && sp({
node: g,
featureNS: e.featureNS,
featureType: e.featureType,
featurePrefix: e.featurePrefix
}, Kw, np('Delete'), d, f);
e.nativeElements && sp({
node: g,
featureNS: e.featureNS,
featureType: e.featureType,
featurePrefix: e.featurePrefix
}, Kw, np('Native'), e.nativeElements, f);
return g
};
zw.prototype.Pf = function (b) {
for (b = b.firstChild; b; b = b.nextSibling) if (1 == b.nodeType) return this.Le(b);
return null
};
zw.prototype.Le = function (b) {
if (b.firstElementChild && b.firstElementChild.firstElementChild) for (b = b.firstElementChild.firstElementChild, b = b.firstElementChild; b; b = b.nextElementSibling) if (0 !== b.childNodes.length && (1 !== b.childNodes.length || 3 !== b.firstChild.nodeType)) {
var c = [
{
}
];
this.a.Ie(b, c);
return Fe(c.pop().srsName)
}
return null
};
function Mw(b) {
b = b ? b : {
};
this.defaultDataProjection = null;
this.a = void 0 !== b.splitCollection ? b.splitCollection : !1
}
y(Mw, At);
function Nw(b) {
b = b.Y();
return 0 === b.length ? '' : b[0] + ' ' + b[1]
}
function Ow(b) {
b = b.Y();
for (var c = [
], d = 0, e = b.length; d < e; ++d) c.push(b[d][0] + ' ' + b[d][1]);
return c.join(',')
}
function Pw(b) {
var c = [
];
b = b.ae();
for (var d = 0, e = b.length; d < e; ++d) c.push('(' + Ow(b[d]) + ')');
return c.join(',')
}
function Qw(b) {
var c = b.V();
b = (0, Rw[c]) (b);
c = c.toUpperCase();
return 0 === b.length ? c + ' EMPTY' : c + '(' + b + ')'
}
var Rw = {
Point: Nw,
LineString: Ow,
Polygon: Pw,
MultiPoint: function (b) {
var c = [
];
b = b.ue();
for (var d = 0, e = b.length; d < e; ++d) c.push('(' + Nw(b[d]) + ')');
return c.join(',')
},
MultiLineString: function (b) {
var c = [
];
b = b.rd();
for (var d = 0, e = b.length; d < e; ++d) c.push('(' + Ow(b[d]) + ')');
return c.join(',')
},
MultiPolygon: function (b) {
var c = [
];
b = b.be();
for (var d = 0, e = b.length; d < e; ++d) c.push('(' + Pw(b[d]) + ')');
return c.join(',')
},
GeometryCollection: function (b) {
var c = [
];
b = b.zg();
for (var d = 0, e = b.length; d < e; ++d) c.push(Qw(b[d]));
return c.join(',')
}
};
l = Mw.prototype;
l.Cd = function (b, c) {
var d = this.Ed(b, c);
if (d) {
var e = new sn;
e.La(d);
return e
}
return null
};
l.Kf = function (b, c) {
var d = [
],
e = this.Ed(b, c);
this.a && 'GeometryCollection' == e.V() ? d = e.f : d = [
e
];
for (var f = [
], g = 0, h = d.length; g < h; ++g) e = new sn,
e.La(d[g]),
f.push(e);
return f
};
l.Ed = function (b, c) {
var d;
d = new Sw(new Tw(b));
d.a = Uw(d.c);
return (d = Vw(d)) ? Tr(d, !1, c)  : null
};
l.Qe = function (b, c) {
var d = b.W();
return d ? this.Kd(d, c)  : ''
};
l.oi = function (b, c) {
if (1 == b.length) return this.Qe(b[0], c);
for (var d = [
], e = 0, f = b.length; e < f; ++e) d.push(b[e].W());
d = new js(d);
return this.Kd(d, c)
};
l.Kd = function (b, c) {
return Qw(Tr(b, !0, c))
};
function Tw(b) {
this.c = b;
this.a = - 1
}
function Ww(b, c) {
return '0' <= b && '9' >= b || '.' == b && !(void 0 !== c && c)
}
function Uw(b) {
var c = b.c.charAt(++b.a),
d = {
position: b.a,
value: c
};
if ('(' == c) d.type = 2;
 else if (',' == c) d.type = 5;
 else if (')' == c) d.type = 3;
 else if (Ww(c) || '-' == c) {
d.type = 4;
var e,
c = b.a,
f = !1,
g = !1;
do {
if ('.' == e) f = !0;
 else if ('e' == e || 'E' == e) g = !0;
e = b.c.charAt(++b.a)
} while (Ww(e, f) || !g && ('e' == e || 'E' == e) || g && ('-' == e || '+' == e));
b = parseFloat(b.c.substring(c, b.a--));
d.value = b
} else if ('a' <= c && 'z' >= c || 'A' <= c && 'Z' >= c) {
d.type = 1;
c = b.a;
do e = b.c.charAt(++b.a);
while ('a' <= e && 'z' >= e || 'A' <= e && 'Z' >= e);
b = b.c.substring(c, b.a--).toUpperCase();
d.value = b
} else {
if (' ' == c || '\t' == c || '\r' == c || '\n' == c) return Uw(b);
if ('' === c) d.type = 6;
 else throw Error('Unexpected character: ' + c);
}
return d
}
function Sw(b) {
this.c = b
}
l = Sw.prototype;
l.match = function (b) {
if (b = this.a.type == b) this.a = Uw(this.c);
return b
};
function Vw(b) {
var c = b.a;
if (b.match(1)) {
var d = c.value;
if ('GEOMETRYCOLLECTION' == d) {
a: {
if (b.match(2)) {
c = [
];
do c.push(Vw(b));
while (b.match(5));
if (b.match(3)) {
b = c;
break a
}
} else if (Xw(b)) {
b = [
];
break a
}
throw Error(Yw(b));
}
return new js(b)
}
var e = Zw[d],
c = $w[d];
if (!e || !c) throw Error('Invalid geometry type: ' + d);
b = e.call(b);
return new c(b)
}
throw Error(Yw(b));
}
l.Ef = function () {
if (this.match(2)) {
var b = ax(this);
if (this.match(3)) return b
} else if (Xw(this)) return null;
throw Error(Yw(this));
};
l.Df = function () {
if (this.match(2)) {
var b = bx(this);
if (this.match(3)) return b
} else if (Xw(this)) return [];
throw Error(Yw(this));
};
l.Ff = function () {
if (this.match(2)) {
var b = cx(this);
if (this.match(3)) return b
} else if (Xw(this)) return [];
throw Error(Yw(this));
};
l.Sn = function () {
if (this.match(2)) {
var b;
if (2 == this.a.type) for (b = [
this.Ef()
]; this.match(5); ) b.push(this.Ef());
 else b = bx(this);
if (this.match(3)) return b
} else if (Xw(this)) return [];
throw Error(Yw(this));
};
l.Rn = function () {
if (this.match(2)) {
var b = cx(this);
if (this.match(3)) return b
} else if (Xw(this)) return [];
throw Error(Yw(this));
};
l.Tn = function () {
if (this.match(2)) {
for (var b = [
this.Ff()
]; this.match(5); ) b.push(this.Ff());
if (this.match(3)) return b
} else if (Xw(this)) return [];
throw Error(Yw(this));
};
function ax(b) {
for (var c = [
], d = 0; 2 > d; ++d) {
var e = b.a;
if (b.match(4)) c.push(e.value);
 else break
}
if (2 == c.length) return c;
throw Error(Yw(b));
}
function bx(b) {
for (var c = [
ax(b)
]; b.match(5); ) c.push(ax(b));
return c
}
function cx(b) {
for (var c = [
b.Df()
]; b.match(5); ) c.push(b.Df());
return c
}
function Xw(b) {
var c = 1 == b.a.type && 'EMPTY' == b.a.value;
c && (b.a = Uw(b.c));
return c
}
function Yw(b) {
return 'Unexpected `' + b.a.value + '` at position ' + b.a.position + ' in `' + b.c.c + '`'
}
var $w = {
POINT: D,
LINESTRING: T,
POLYGON: E,
MULTIPOINT: $r,
MULTILINESTRING: U,
MULTIPOLYGON: V
},
Zw = {
POINT: Sw.prototype.Ef,
LINESTRING: Sw.prototype.Df,
POLYGON: Sw.prototype.Ff,
MULTIPOINT: Sw.prototype.Sn,
MULTILINESTRING: Sw.prototype.Rn,
MULTIPOLYGON: Sw.prototype.Tn
};
function dx() {
this.version = void 0
}
y(dx, Xv);
dx.prototype.c = function (b) {
for (b = b.firstChild; b; b = b.nextSibling) if (1 == b.nodeType) return this.a(b);
return null
};
dx.prototype.a = function (b) {
this.version = b.getAttribute('version').trim();
return (b = Q({
version: this.version
}, ex, b, [
])) ? b : null
};
function fx(b, c) {
return Q({
}, gx, b, c)
}
function hx(b, c) {
return Q({
}, ix, b, c)
}
function jx(b, c) {
var d = fx(b, c);
if (d) {
var e = [
Cs(b.getAttribute('width')),
Cs(b.getAttribute('height'))
];
d.size = e;
return d
}
}
function kx(b, c) {
return Q([], lx, b, c)
}
var mx = [
null,
'http://www.opengis.net/wms'
],
ex = P(mx, {
Service: M(function (b, c) {
return Q({
}, nx, b, c)
}),
Capability: M(function (b, c) {
return Q({
}, ox, b, c)
})
}),
ox = P(mx, {
Request: M(function (b, c) {
return Q({
}, px, b, c)
}),
Exception: M(function (b, c) {
return Q([], qx, b, c)
}),
Layer: M(function (b, c) {
return Q({
}, rx, b, c)
})
}),
nx = P(mx, {
Name: M(W),
Title: M(W),
Abstract: M(W),
KeywordList: M(kx),
OnlineResource: M(Wv),
ContactInformation: M(function (b, c) {
return Q({
}, sx, b, c)
}),
Fees: M(W),
AccessConstraints: M(W),
LayerLimit: M(Bs),
MaxWidth: M(Bs),
MaxHeight: M(Bs)
}),
sx = P(mx, {
ContactPersonPrimary: M(function (b, c) {
return Q({
}, tx, b, c)
}),
ContactPosition: M(W),
ContactAddress: M(function (b, c) {
return Q({
}, ux, b, c)
}),
ContactVoiceTelephone: M(W),
ContactFacsimileTelephone: M(W),
ContactElectronicMailAddress: M(W)
}),
tx = P(mx, {
ContactPerson: M(W),
ContactOrganization: M(W)
}),
ux = P(mx, {
AddressType: M(W),
Address: M(W),
City: M(W),
StateOrProvince: M(W),
PostCode: M(W),
Country: M(W)
}),
qx = P(mx, {
Format: jp(W)
}),
rx = P(mx, {
Name: M(W),
Title: M(W),
Abstract: M(W),
KeywordList: M(kx),
CRS: lp(W),
EX_GeographicBoundingBox: M(function (b, c) {
var d = Q({
}, vx, b, c);
if (d) {
var e = d.westBoundLongitude,
f = d.southBoundLatitude,
g = d.eastBoundLongitude,
d = d.northBoundLatitude;
return void 0 === e || void 0 === f || void 0 === g || void 0 === d ? void 0 : [
e,
f,
g,
d
]
}
}),
BoundingBox: lp(function (b) {
var c = [
As(b.getAttribute('minx')),
As(b.getAttribute('miny')),
As(b.getAttribute('maxx')),
As(b.getAttribute('maxy'))
],
d = [
As(b.getAttribute('resx')),
As(b.getAttribute('resy'))
];
return {
crs: b.getAttribute('CRS'),
extent: c,
res: d
}
}),
Dimension: lp(function (b) {
return {
name: b.getAttribute('name'),
units: b.getAttribute('units'),
unitSymbol: b.getAttribute('unitSymbol'),
'default': b.getAttribute('default'),
multipleValues: xs(b.getAttribute('multipleValues')),
nearestValue: xs(b.getAttribute('nearestValue')),
current: xs(b.getAttribute('current')),
values: W(b)
}
}),
Attribution: M(function (b, c) {
return Q({
}, wx, b, c)
}),
AuthorityURL: lp(function (b, c) {
var d = fx(b, c);
if (d) return d.name = b.getAttribute('name'),
d
}),
Identifier: lp(W),
MetadataURL: lp(function (b, c) {
var d = fx(b, c);
if (d) return d.type = b.getAttribute('type'),
d
}),
DataURL: lp(fx),
FeatureListURL: lp(fx),
Style: lp(function (b, c) {
return Q({
}, xx, b, c)
}),
MinScaleDenominator: M(zs),
MaxScaleDenominator: M(zs),
Layer: lp(function (b, c) {
var d = c[c.length - 1],
e = Q({
}, rx, b, c);
if (e) {
var f = xs(b.getAttribute('queryable'));
void 0 === f && (f = d.queryable);
e.queryable = void 0 !== f ? f : !1;
f = Cs(b.getAttribute('cascaded'));
void 0 === f && (f = d.cascaded);
e.cascaded = f;
f = xs(b.getAttribute('opaque'));
void 0 === f && (f = d.opaque);
e.opaque = void 0 !== f ? f : !1;
f = xs(b.getAttribute('noSubsets'));
void 0 === f && (f = d.noSubsets);
e.noSubsets = void 0 !== f ? f : !1;
(f = As(b.getAttribute('fixedWidth'))) || (f = d.fixedWidth);
e.fixedWidth = f;
(f = As(b.getAttribute('fixedHeight'))) || (f = d.fixedHeight);
e.fixedHeight = f;
[
'Style',
'CRS',
'AuthorityURL'
].forEach(function (b) {
if (b in d) {
var c = Tb(e, b),
c = c.concat(d[b]);
e[b] = c
}
});
'EX_GeographicBoundingBox BoundingBox Dimension Attribution MinScaleDenominator MaxScaleDenominator'.split(' ').forEach(function (b) {
b in e || (e[b] = d[b])
});
return e
}
})
}),
wx = P(mx, {
Title: M(W),
OnlineResource: M(Wv),
LogoURL: M(jx)
}),
vx =
P(mx, {
westBoundLongitude: M(zs),
eastBoundLongitude: M(zs),
southBoundLatitude: M(zs),
northBoundLatitude: M(zs)
}),
px = P(mx, {
GetCapabilities: M(hx),
GetMap: M(hx),
GetFeatureInfo: M(hx)
}),
ix = P(mx, {
Format: lp(W),
DCPType: lp(function (b, c) {
return Q({
}, yx, b, c)
})
}),
yx = P(mx, {
HTTP: M(function (b, c) {
return Q({
}, zx, b, c)
})
}),
zx = P(mx, {
Get: M(fx),
Post: M(fx)
}),
xx = P(mx, {
Name: M(W),
Title: M(W),
Abstract: M(W),
LegendURL: lp(jx),
StyleSheetURL: M(fx),
StyleURL: M(fx)
}),
gx = P(mx, {
Format: M(W),
OnlineResource: M(Wv)
}),
lx = P(mx, {
Keyword: jp(W)
});
function Ax() {
this.b = 'http://mapserver.gis.umn.edu/mapserver';
this.a = new Hs;
this.defaultDataProjection = null
}
y(Ax, ss);
Ax.prototype.hc = function (b, c) {
var d = {
featureType: this.featureType,
featureNS: this.featureNS
};
c && Xb(d, Rr(this, b, c));
var e = [
d
];
b.namespaceURI = this.b;
var f = So(b),
d = [
];
if (0 !== b.childNodes.length) {
if ('msGMLOutput' == f) for (var g = 0, h = b.childNodes.length; g < h; g++) {
var k = b.childNodes[g];
if (1 === k.nodeType) {
var m = e[0],
n = k.localName.replace('_layer', '') + '_feature';
m.featureType = n;
m.featureNS = this.b;
var p = {
};
p[n] = jp(this.a.If, this.a);
m = P([m.featureNS,
null], p);
k.namespaceURI = this.b;
(k = Q([], m, k, e, this.a)) && lb(d, k)
}
}
'FeatureCollection' ==
f && (e = Q([], this.a.a, b, [
{
}
], this.a)) && (d = e)
}
return d
};
function Bx() {
this.b = new Yv
}
y(Bx, Xv);
Bx.prototype.c = function (b) {
for (b = b.firstChild; b; b = b.nextSibling) if (1 == b.nodeType) return this.a(b);
return null
};
Bx.prototype.a = function (b) {
this.version = b.getAttribute('version').trim();
var c = this.b.a(b);
if (!c) return null;
c.version = this.version;
return (c = Q(c, Cx, b, [
])) ? c : null
};
function Dx(b) {
var c = W(b).split(' ');
if (c && 2 == c.length) return b = + c[0],
c = + c[1],
isNaN(b) || isNaN(c) ? void 0 : [
b,
c
]
}
var Ex = [
null,
'http://www.opengis.net/wmts/1.0'
],
Fx = [
null,
'http://www.opengis.net/ows/1.1'
],
Cx = P(Ex, {
Contents: M(function (b, c) {
return Q({
}, Gx, b, c)
})
}),
Gx = P(Ex, {
Layer: lp(function (b, c) {
return Q({
}, Hx, b, c)
}),
TileMatrixSet: lp(function (b, c) {
return Q({
}, Ix, b, c)
})
}),
Hx = P(Ex, {
Style: lp(function (b, c) {
var d = Q({
}, Jx, b, c);
if (d) {
var e = 'true' === b.getAttribute('isDefault');
d.isDefault = e;
return d
}
}),
Format: lp(W),
TileMatrixSetLink: lp(function (b, c) {
return Q({
}, Kx, b, c)
}),
Dimension: lp(function (b, c) {
return Q({
}, Lx, b, c)
}),
ResourceURL: lp(function (b) {
var c = b.getAttribute('format'),
d = b.getAttribute('template');
b = b.getAttribute('resourceType');
var e = {
};
c && (e.format = c);
d && (e.template = d);
b && (e.resourceType = b);
return e
})
}, P(Fx, {
Title: M(W),
Abstract: M(W),
WGS84BoundingBox: M(function (b, c) {
var d = Q([], Mx, b, c);
return 2 != d.length ? void 0 : Nd(d)
}),
Identifier: M(W)
})),
Jx = P(Ex, {
LegendURL: lp(function (b) {
var c = {
};
c.format = b.getAttribute('format');
c.href = Wv(b);
return c
})
}, P(Fx, {
Title: M(W),
Identifier: M(W)
})),
Kx = P(Ex, {
TileMatrixSet: M(W)
}),
Lx = P(Ex, {
Default: M(W),
Value: lp(W)
}, P(Fx, {
Identifier: M(W)
})),
Mx = P(Fx, {
LowerCorner: jp(Dx),
UpperCorner: jp(Dx)
}),
Ix = P(Ex, {
WellKnownScaleSet: M(W),
TileMatrix: lp(function (b, c) {
return Q({
}, Nx, b, c)
})
}, P(Fx, {
SupportedCRS: M(W),
Identifier: M(W)
})),
Nx = P(Ex, {
TopLeftCorner: M(Dx),
ScaleDenominator: M(zs),
TileWidth: M(Bs),
TileHeight: M(Bs),
MatrixWidth: M(Bs),
MatrixHeight: M(Bs)
}, P(Fx, {
Identifier: M(W)
}));
var Ox = new Ae(6378137);
function Px(b) {
id.call(this);
b = b || {
};
this.a = null;
this.f = Ze;
this.b = void 0;
C(this, kd('projection'), this.zl, !1, this);
C(this, kd('tracking'), this.Al, !1, this);
void 0 !== b.projection && this.Wg(Fe(b.projection));
void 0 !== b.trackingOptions && this.ei(b.trackingOptions);
this.qe(void 0 !== b.tracking ? b.tracking : !1)
}
y(Px, id);
l = Px.prototype;
l.X = function () {
this.qe(!1);
Px.da.X.call(this)
};
l.zl = function () {
var b = this.Ug();
b && (this.f = Je(Fe('EPSG:4326'), b), this.a && this.set('position', this.f(this.a)))
};
l.Al = function () {
if (aj) {
var b = this.Vg();
b && void 0 === this.b ? this.b = ba.navigator.geolocation.watchPosition(ra(this.$n, this), ra(this.ao, this), this.Gg())  : b || void 0 === this.b || (ba.navigator.geolocation.clearWatch(this.b), this.b = void 0)
}
};
l.$n = function (b) {
b = b.coords;
this.set('accuracy', b.accuracy);
this.set('altitude', null === b.altitude ? void 0 : b.altitude);
this.set('altitudeAccuracy', null === b.altitudeAccuracy ? void 0 : b.altitudeAccuracy);
this.set('heading', null === b.heading ? void 0 : Wa(b.heading));
this.a ? (this.a[0] = b.longitude, this.a[1] = b.latitude)  : this.a = [
b.longitude,
b.latitude
];
var c = this.f(this.a);
this.set('position', c);
this.set('speed', null === b.speed ? void 0 : b.speed);
b = Kf(Ox, this.a, b.accuracy);
b.mc(this.f);
this.set('accuracyGeometry', b);
this.s()
};
l.ao = function (b) {
b.type = 'error';
this.qe(!1);
this.o(b)
};
l.zj = function () {
return this.get('accuracy')
};
l.Aj = function () {
return this.get('accuracyGeometry') || null
};
l.Cj = function () {
return this.get('altitude')
};
l.Dj = function () {
return this.get('altitudeAccuracy')
};
l.xl = function () {
return this.get('heading')
};
l.yl = function () {
return this.get('position')
};
l.Ug = function () {
return this.get('projection')
};
l.hk = function () {
return this.get('speed')
};
l.Vg = function () {
return this.get('tracking')
};
l.Gg = function () {
return this.get('trackingOptions')
};
l.Wg = function (b) {
this.set('projection', b)
};
l.qe = function (b) {
this.set('tracking', b)
};
l.ei = function (b) {
this.set('trackingOptions', b)
};
function Qx(b, c, d) {
df.call(this);
this.Tf(b, c ? c : 0, d)
}
y(Qx, df);
l = Qx.prototype;
l.clone = function () {
var b = new Qx(null),
c = this.v.slice();
ff(b, this.b, c);
b.s();
return b
};
l.mb = function (b, c, d, e) {
var f = this.v;
b -= f[0];
var g = c - f[1];
c = b * b + g * g;
if (c < e) {
if (0 === c) for (e = 0; e < this.a; ++e) d[e] = f[e];
 else for (e = this.yf() / Math.sqrt(c), d[0] = f[0] + e * b, d[1] = f[1] + e * g, e = 2; e < this.a; ++e) d[e] = f[e];
d.length = this.a;
return c
}
return e
};
l.rc = function (b, c) {
var d = this.v,
e = b - d[0],
d = c - d[1];
return e * e + d * d <= Rx(this)
};
l.vd = function () {
return this.v.slice(0, this.a)
};
l.Vd = function (b) {
var c = this.v,
d = c[this.a] - c[0];
return Rd(c[0] - d, c[1] - d, c[0] + d, c[1] + d, b)
};
l.yf = function () {
return Math.sqrt(Rx(this))
};
function Rx(b) {
var c = b.v[b.a] - b.v[0];
b = b.v[b.a + 1] - b.v[1];
return c * c + b * b
}
l.V = function () {
return 'Circle'
};
l.Da = function (b) {
var c = this.J();
return pe(b, c) ? (c = this.vd(), b[0] <= c[0] && b[2] >= c[0] || b[1] <= c[1] && b[3] >= c[1] ? !0 : de(b, this.ng, this))  : !1
};
l.Ul = function (b) {
var c = this.a,
d = this.v[c] - this.v[0],
e = b.slice();
e[c] = e[0] + d;
for (d = 1; d < c; ++d) e[c + d] = b[d];
ff(this, this.b, e);
this.s()
};
l.Tf = function (b, c, d) {
if (b) {
gf(this, d, b, 0);
this.v || (this.v = [
]);
d = this.v;
b = pf(d, b);
d[b++] = d[0] + c;
var e;
c = 1;
for (e = this.a; c < e; ++c) d[b++] = d[c];
d.length = b
} else ff(this, 'XY', null);
this.s()
};
l.Vl = function (b) {
this.v[this.a] = this.v[0] + b;
this.s()
};
function Sx(b, c, d) {
for (var e = [
], f = b(0), g = b(1), h = c(f), k = c(g), m = [
g,
f
], n = [
k,
h
], p = [
1,
0
], q = {
}, r = 100000, t, x, z, B, A; 0 < --r && 0 < p.length; ) z = p.pop(),
f = m.pop(),
h = n.pop(),
g = z.toString(),
g in q || (e.push(h[0], h[1]), q[g] = !0),
B = p.pop(),
g = m.pop(),
k = n.pop(),
A = (z + B) / 2,
t = b(A),
x = c(t),
Ua(x[0], x[1], h[0], h[1], k[0], k[1]) < d ? (e.push(k[0], k[1]), g = B.toString(), q[g] = !0)  : (p.push(B, A, A, z), n.push(k, x, x, h), m.push(g, t, t, f));
return e
}
function Tx(b, c, d, e, f) {
var g = Fe('EPSG:4326');
return Sx(function (e) {
return [b,
c + (d - c) * e]
}, Ye(g, e), f)
}
function Ux(b, c, d, e, f) {
var g = Fe('EPSG:4326');
return Sx(function (e) {
return [c + (d - c) * e,
b]
}, Ye(g, e), f)
};
function Vx(b) {
b = b || {
};
this.g = this.l = null;
this.b = this.j = Infinity;
this.f = this.i = - Infinity;
this.D = this.C = Infinity;
this.ia = this.G = - Infinity;
this.U = void 0 !== b.targetSize ? b.targetSize : 100;
this.oa = void 0 !== b.maxLines ? b.maxLines : 100;
this.a = [
];
this.c = [
];
this.S = void 0 !== b.strokeStyle ? b.strokeStyle : Wx;
this.A = this.B = void 0;
this.u = null;
this.setMap(void 0 !== b.map ? b.map : null)
}
var Wx = new am({
color: 'rgba(0,0,0,0.2)'
}),
Xx = [
90,
45,
30,
20,
10,
5,
2,
1,
0.5,
0.2,
0.1,
0.05,
0.01,
0.005,
0.002,
0.001
];
function Yx(b, c, d, e, f, g, h) {
var k = h;
c = Tx(c, d, e, b.g, f);
k = void 0 !== b.a[k] ? b.a[k] : new T(null);
k.ba('XY', c);
pe(k.J(), g) && (b.a[h++] = k);
return h
}
function Zx(b, c, d, e, f) {
var g = f;
c = Ux(c, b.f, b.b, b.g, d);
g = void 0 !== b.c[g] ? b.c[g] : new T(null);
g.ba('XY', c);
pe(g.J(), e) && (b.c[f++] = g);
return f
}
l = Vx.prototype;
l.Bl = function () {
return this.l
};
l.Vj = function () {
return this.a
};
l.bk = function () {
return this.c
};
l.Kg = function (b) {
var c = b.vectorContext,
d = b.frameState,
e = d.extent;
b = d.viewState;
var f = b.center,
g = b.projection,
h = b.resolution;
b = d.pixelRatio;
b = h * h / (4 * b * b);
if (!this.g || !Xe(this.g, g)) {
var k = Fe('EPSG:4326'),
m = g.J(),
n = g.i,
p = af(n, k, g),
q = n[2],
r = n[1],
t = n[0],
x = p[3],
z = p[2],
B = p[1],
p = p[0];
this.j = n[3];
this.b = q;
this.i = r;
this.f = t;
this.C = x;
this.D = z;
this.G = B;
this.ia = p;
this.B = Ye(k, g);
this.A = Ye(g, k);
this.u = this.A(me(m));
this.g = g
}
k = 0;
g.b && (g = g.J(), k = ke(g), d = d.focus[0], d < g[0] || d > g[2]) && (k *= Math.ceil((g[0] - d) / k), e = [
e[0] +
k,
e[1],
e[2] + k,
e[3]
]);
d = this.u[0];
g = this.u[1];
k = - 1;
n = Math.pow(this.U * h, 2);
q = [
];
r = [
];
h = 0;
for (m = Xx.length; h < m; ++h) {
t = Xx[h] / 2;
q[0] = d - t;
q[1] = g - t;
r[0] = d + t;
r[1] = g + t;
this.B(q, q);
this.B(r, r);
t = Math.pow(r[0] - q[0], 2) + Math.pow(r[1] - q[1], 2);
if (t <= n) break;
k = Xx[h]
}
h = k;
if ( - 1 == h) this.a.length = this.c.length = 0;
 else {
d = this.A(f);
f = d[0];
d = d[1];
g = this.oa;
k = [
Math.max(e[0], this.ia),
Math.max(e[1], this.G),
Math.min(e[2], this.D),
Math.min(e[3], this.C)
];
k = af(k, this.g, 'EPSG:4326');
n = k[3];
r = k[1];
f = Math.floor(f / h) * h;
q = Sa(f, this.f, this.b);
m = Yx(this, q, r, n, b, e, 0);
for (k = 0; q != this.f && k++ < g; ) q = Math.max(q - h, this.f),
m = Yx(this, q, r, n, b, e, m);
q = Sa(f, this.f, this.b);
for (k = 0; q != this.b && k++ < g; ) q = Math.min(q + h, this.b),
m = Yx(this, q, r, n, b, e, m);
this.a.length = m;
d = Math.floor(d / h) * h;
f = Sa(d, this.i, this.j);
m = Zx(this, f, b, e, 0);
for (k = 0; f != this.i && k++ < g; ) f = Math.max(f - h, this.i),
m = Zx(this, f, b, e, m);
f = Sa(d, this.i, this.j);
for (k = 0; f != this.j && k++ < g; ) f = Math.min(f + h, this.j),
m = Zx(this, f, b, e, m);
this.c.length = m
}
c.$a(null, this.S);
b = 0;
for (f = this.a.length; b < f; ++b) h = this.a[b],
c.Wb(h, null);
b = 0;
for (f = this.c.length; b < f; ++b) h = this.c[b],
c.Wb(h, null)
};
l.setMap = function (b) {
this.l && (this.l.K('postcompose', this.Kg, this), this.l.render());
b && (b.H('postcompose', this.Kg, this), b.render());
this.l = b
};
function $x(b, c, d, e, f, g, h) {
gk.call(this, b, c, d, 0, e);
this.l = f;
this.c = new Image;
null !== g && (this.c.crossOrigin = g);
this.g = {
};
this.f = null;
this.state = 0;
this.i = h
}
y($x, gk);
$x.prototype.a = function (b) {
if (void 0 !== b) {
var c = w(b);
if (c in this.g) return this.g[c];
b = Qb(this.g) ? this.c : this.c.cloneNode(!1);
return this.g[c] = b
}
return this.c
};
$x.prototype.B = function () {
this.state = 3;
this.f.forEach(Zc);
this.f = null;
hk(this)
};
$x.prototype.u = function () {
void 0 === this.resolution && (this.resolution = le(this.extent) / this.c.height);
this.state = 2;
this.f.forEach(Zc);
this.f = null;
hk(this)
};
$x.prototype.load = function () {
0 == this.state && (this.state = 1, hk(this), this.f = [
Xc(this.c, 'error', this.B, !1, this),
Xc(this.c, 'load', this.u, !1, this)
], this.i(this, this.l))
};
function ay(b, c, d, e, f) {
wh.call(this, b, c);
this.i = d;
this.c = new Image;
null !== e && (this.c.crossOrigin = e);
this.b = {
};
this.j = null;
this.l = f
}
y(ay, wh);
l = ay.prototype;
l.X = function () {
1 == this.state && by(this);
ay.da.X.call(this)
};
l.Sa = function (b) {
if (void 0 !== b) {
var c = w(b);
if (c in this.b) return this.b[c];
b = Qb(this.b) ? this.c : this.c.cloneNode(!1);
return this.b[c] = b
}
return this.c
};
l.tb = function () {
return this.i
};
l.Cl = function () {
this.state = 3;
by(this);
xh(this)
};
l.Dl = function () {
this.state = this.c.naturalWidth && this.c.naturalHeight ? 2 : 4;
by(this);
xh(this)
};
l.load = function () {
0 == this.state && (this.state = 1, xh(this), this.j = [
Xc(this.c, 'error', this.Cl, !1, this),
Xc(this.c, 'load', this.Dl, !1, this)
], this.l(this, this.i))
};
function by(b) {
b.j.forEach(Zc);
b.j = null
};
function cy(b, c, d) {
return function (e, f, g) {
return d(b, c, e, f, g)
}
}
function dy() {
};
function ey(b, c) {
cd.call(this);
this.a = new zr(this);
var d = b;
c && (d = Cg(b));
this.a.Qa(d, 'dragenter', this.Jn);
d != b && this.a.Qa(d, 'dragover', this.Kn);
this.a.Qa(b, 'dragover', this.Ln);
this.a.Qa(b, 'drop', this.Mn)
}
y(ey, cd);
l = ey.prototype;
l.kd = !1;
l.X = function () {
ey.da.X.call(this);
this.a.Ec()
};
l.Jn = function (b) {
var c = b.a.dataTransfer;
(this.kd = !(!c || !(c.types && (0 <= $a(c.types, 'Files') || 0 <= $a(c.types, 'public.file-url')) || c.files && 0 < c.files.length))) && b.preventDefault()
};
l.Kn = function (b) {
this.kd && (b.preventDefault(), b.a.dataTransfer.dropEffect = 'none')
};
l.Ln = function (b) {
if (this.kd) {
b.preventDefault();
b.b();
b = b.a.dataTransfer;
try {
b.effectAllowed = 'all'
} catch (c) {
}
b.dropEffect = 'copy'
}
};
l.Mn = function (b) {
this.kd && (b.preventDefault(), b.b(), b = new Ac(b.a), b.type = 'drop', this.o(b))
}; /*
 Portions of this code are from MochiKit, received by
 The Closure Authors under the MIT license. All other code is Copyright
 2005-2009 The Closure Authors. All Rights Reserved.
*/
function fy(b, c) {
this.g = [
];
this.C = b;
this.A = c || null;
this.f = this.a = !1;
this.b = void 0;
this.B = this.D = this.i = !1;
this.j = 0;
this.c = null;
this.l = 0
}
fy.prototype.cancel = function (b) {
if (this.a) this.b instanceof fy && this.b.cancel();
 else {
if (this.c) {
var c = this.c;
delete this.c;
b ? c.cancel(b)  : (c.l--, 0 >= c.l && c.cancel())
}
this.C ? this.C.call(this.A, this)  : this.B = !0;
this.a || (b = new gy, hy(this), iy(this, !1, b))
}
};
fy.prototype.u = function (b, c) {
this.i = !1;
iy(this, b, c)
};
function iy(b, c, d) {
b.a = !0;
b.b = d;
b.f = !c;
jy(b)
}
function hy(b) {
if (b.a) {
if (!b.B) throw new ky;
b.B = !1
}
}
fy.prototype.$c = function (b) {
hy(this);
iy(this, !0, b)
};
function ly(b, c, d, e) {
b.g.push([c,
d,
e]);
b.a && jy(b)
}
fy.prototype.then = function (b, c, d) {
var e,
f,
g = new Hn(function (b, c) {
e = b;
f = c
});
ly(this, e, function (b) {
b instanceof gy ? g.cancel()  : f(b)
});
return g.then(b, c, d)
};
un(fy);
function my(b) {
return eb(b.g, function (b) {
return ka(b[1])
})
}
function jy(b) {
if (b.j && b.a && my(b)) {
var c = b.j,
d = ny[c];
d && (ba.clearTimeout(d.wa), delete ny[c]);
b.j = 0
}
b.c && (b.c.l--, delete b.c);
for (var c = b.b, e = d = !1; b.g.length && !b.i; ) {
var f = b.g.shift(),
g = f[0],
h = f[1],
f = f[2];
if (g = b.f ? h : g) try {
var k = g.call(f || b.A, c);
ca(k) && (b.f = b.f && (k == c || k instanceof Error), b.b = c = k);
if (vn(c) || 'function' === typeof ba.Promise && c instanceof ba.Promise) e = !0,
b.i = !0
} catch (m) {
c = m,
b.f = !0,
my(b) || (d = !0)
}
}
b.b = c;
e && (k = ra(b.u, b, !0), e = ra(b.u, b, !1), c instanceof fy ? (ly(c, k, e), c.D = !0)  : c.then(k, e));
d && (c = new oy(c), ny[c.wa] = c, b.j = c.wa)
}
function ky() {
xa.call(this)
}
y(ky, xa);
ky.prototype.message = 'Deferred has already fired';
ky.prototype.name = 'AlreadyCalledError';
function gy() {
xa.call(this)
}
y(gy, xa);
gy.prototype.message = 'Deferred was canceled';
gy.prototype.name = 'CanceledError';
function oy(b) {
this.wa = ba.setTimeout(ra(this.c, this), 0);
this.a = b
}
oy.prototype.c = function () {
delete ny[this.wa];
throw this.a;
};
var ny = {
};
function py(b, c) {
ca(b.name) ? (this.name = b.name, this.code = qy[b.name])  : (this.code = b.code, this.name = ry(b.code));
xa.call(this, Ba('%s %s', this.name, c))
}
y(py, xa);
function ry(b) {
var c = Pb(qy, function (c) {
return b == c
});
if (!ca(c)) throw Error('Invalid code: ' + b);
return c
}
var qy = {
AbortError: 3,
EncodingError: 5,
InvalidModificationError: 9,
InvalidStateError: 7,
NotFoundError: 1,
NotReadableError: 4,
NoModificationAllowedError: 6,
PathExistsError: 12,
QuotaExceededError: 10,
SecurityError: 2,
SyntaxError: 8,
TypeMismatchError: 11
};
function sy(b, c) {
vc.call(this, b.type, c)
}
y(sy, vc);
function ty() {
cd.call(this);
this.ub = new FileReader;
this.ub.onloadstart = ra(this.a, this);
this.ub.onprogress = ra(this.a, this);
this.ub.onload = ra(this.a, this);
this.ub.onabort = ra(this.a, this);
this.ub.onerror = ra(this.a, this);
this.ub.onloadend = ra(this.a, this)
}
y(ty, cd);
ty.prototype.getError = function () {
return this.ub.error && new py(this.ub.error, 'reading file')
};
ty.prototype.a = function (b) {
this.o(new sy(b, this))
};
ty.prototype.X = function () {
ty.da.X.call(this);
delete this.ub
};
function uy(b) {
var c = new fy;
b.Qa('loadend', sa(function (b, c) {
var f = c.ub.result,
g = c.getError();
null == f || g ? (hy(b), iy(b, !1, g))  : b.$c(f);
c.Ec()
}, c, b));
return c
};
function vy(b) {
b = b ? b : {
};
Ok.call(this, {
handleEvent: ue
});
this.j = b.formatConstructors ? b.formatConstructors : [
];
this.A = b.projection ? Fe(b.projection)  : null;
this.f = null;
this.a = void 0
}
y(vy, Ok);
vy.prototype.X = function () {
this.a && Zc(this.a);
vy.da.X.call(this)
};
vy.prototype.i = function (b) {
b = b.a.dataTransfer.files;
var c,
d,
e;
c = 0;
for (d = b.length; c < d; ++c) {
e = b[c];
var f;
f = e;
var g = new ty,
h = uy(g);
g.ub.readAsText(f, '');
f = h;
e = sa(this.l, e);
ly(f, e, null, this)
}
};
vy.prototype.l = function (b, c) {
var d = this.u,
e = this.A;
e || (e = d.aa().g);
var d = this.j,
f = [
],
g,
h;
g = 0;
for (h = d.length; g < h; ++g) {
var k = new d[g],
m;
try {
m = k.Ba(c)
} catch (t) {
m = null
}
if (m) {
var k = k.Ia(c),
k = Ye(k, e),
n,
p;
n = 0;
for (p = m.length; n < p; ++n) {
var q = m[n],
r = q.W();
r && r.mc(k);
f.push(q)
}
}
}
this.o(new wy(xy, this, b, f, e))
};
vy.prototype.setMap = function (b) {
this.a && (Zc(this.a), this.a = void 0);
this.f && (uc(this.f), this.f = null);
vy.da.setMap.call(this, b);
b && (this.f = new ey(b.a), this.a = C(this.f, 'drop', this.i, !1, this))
};
var xy = 'addfeatures';
function wy(b, c, d, e, f) {
vc.call(this, b, c);
this.features = e;
this.file = d;
this.projection = f
}
y(wy, vc);
function yy(b, c) {
this.x = b;
this.y = c
}
y(yy, yg);
yy.prototype.clone = function () {
return new yy(this.x, this.y)
};
yy.prototype.scale = yg.prototype.scale;
yy.prototype.add = function (b) {
this.x += b.x;
this.y += b.y;
return this
};
yy.prototype.rotate = function (b) {
var c = Math.cos(b);
b = Math.sin(b);
var d = this.y * c + this.x * b;
this.x = this.x * c - this.y * b;
this.y = d;
return this
};
function zy(b) {
b = b ? b : {
};
al.call(this, {
handleDownEvent: Ay,
handleDragEvent: By,
handleUpEvent: Cy
});
this.l = b.condition ? b.condition : Yk;
this.a = this.f = void 0;
this.i = 0;
this.A = b.duration ? b.duration : 400
}
y(zy, al);
function By(b) {
if ($k(b)) {
var c = b.map,
d = c.Ra();
b = b.pixel;
b = new yy(b[0] - d[0] / 2, d[1] / 2 - b[1]);
d = Math.atan2(b.y, b.x);
b = Math.sqrt(b.x * b.x + b.y * b.y);
var e = c.aa();
c.render();
if (void 0 !== this.f) {
var f = d - this.f;
Pk(c, e, e.Ea() - f)
}
this.f = d;
void 0 !== this.a && (d = this.a * (e.$() / b), Rk(c, e, d));
void 0 !== this.a && (this.i = this.a / b);
this.a = b
}
}
function Cy(b) {
if (!$k(b)) return !0;
b = b.map;
var c = b.aa();
Tf(c, - 1);
var d = this.i - 1,
e = c.Ea(),
e = c.constrainRotation(e, 0);
Pk(b, c, e, void 0, void 0);
var e = c.$(),
f = this.A,
e = c.constrainResolution(e, 0, d);
Rk(b, c, e, void 0, f);
this.i = 0;
return !1
}
function Ay(b) {
return $k(b) && this.l(b) ? (Tf(b.map.aa(), 1), this.a = this.f = void 0, !0)  : !1
};
function Dy(b, c) {
vc.call(this, b);
this.feature = c
}
y(Dy, vc);
function Ey(b) {
al.call(this, {
handleDownEvent: Fy,
handleEvent: Gy,
handleUpEvent: Hy
});
this.ea = null;
this.U = !1;
this.Db = b.source ? b.source : null;
this.fb = b.features ? b.features : null;
this.zi = b.snapTolerance ? b.snapTolerance : 12;
this.T = b.type;
this.f = Iy(this.T);
this.xa = b.minPoints ? b.minPoints : this.f === Jy ? 3 : 2;
this.pa = b.maxPoints ? b.maxPoints : Infinity;
var c = b.geometryFunction;
if (!c) if ('Circle' === this.T) c = function (b, c) {
var d = c ? c : new Qx([NaN,
NaN]);
d.Tf(b[0], Math.sqrt(xd(b[0], b[1])));
return d
};
 else {
var d,
c = this.f;
c ===
Ky ? d = D : c === Ly ? d = T : c === Jy && (d = E);
c = function (b, c) {
var g = c;
g ? g.ma(b)  : g = new d(b);
return g
}
}
this.D = c;
this.S = this.A = this.a = this.G = this.i = this.l = null;
this.gj = b.clickTolerance ? b.clickTolerance * b.clickTolerance : 36;
this.ga = new H({
source: new R({
useSpatialIndex: !1,
wrapX: b.wrapX ? b.wrapX : !1
}),
style: b.style ? b.style : My()
});
this.Cb = b.geometryName;
this.Xe = b.condition ? b.condition : Xk;
this.va = b.freehandCondition ? b.freehandCondition : Yk;
C(this, kd('active'), this.ki, !1, this)
}
y(Ey, al);
function My() {
var b = hm();
return function (c) {
return b[c.W().V()]
}
}
l = Ey.prototype;
l.setMap = function (b) {
Ey.da.setMap.call(this, b);
this.ki()
};
function Gy(b) {
var c = !this.U;
this.U && b.type === Yj ? (Ny(this, b), c = !1)  : b.type === Xj ? c = Oy(this, b)  : b.type === Rj && (c = !1);
return bl.call(this, b) && c
}
function Fy(b) {
if (this.Xe(b)) return this.ea = b.pixel,
!0;
if (this.f !== Ly && this.f !== Jy || !this.va(b)) return !1;
this.ea = b.pixel;
this.U = !0;
this.l || Py(this, b);
return !0
}
function Hy(b) {
this.U = !1;
var c = this.ea,
d = b.pixel,
e = c[0] - d[0],
c = c[1] - d[1],
d = !0;
e * e + c * c <= this.gj && (Oy(this, b), this.l ? this.f === Qy ? this.md()  : Ry(this, b) ? this.md()  : Ny(this, b)  : (Py(this, b), this.f === Ky && this.md()), d = !1);
return d
}
function Oy(b, c) {
if (b.l) {
var d = c.coordinate,
e = b.i.W(),
f;
b.f === Ky ? f = b.a : b.f === Jy ? (f = b.a[0], f = f[f.length - 1], Ry(b, c) && (d = b.l.slice()))  : (f = b.a, f = f[f.length - 1]);
f[0] = d[0];
f[1] = d[1];
b.D(b.a, e);
b.G && b.G.W().ma(d);
e instanceof E && b.f !== Jy ? (b.A || (b.A = new sn(new T(null))), e = e.Bg(0), d = b.A.W(), d.ba(e.b, e.ja()))  : b.S && (d = b.A.W(), d.ma(b.S));
Sy(b)
} else d = c.coordinate.slice(),
b.G ? b.G.W().ma(d)  : (b.G = new sn(new D(d)), Sy(b));
return !0
}
function Ry(b, c) {
var d = !1;
if (b.i) {
var e = !1,
f = [
b.l
];
b.f === Ly ? e = b.a.length > b.xa : b.f === Jy && (e = b.a[0].length > b.xa, f = [
b.a[0][0],
b.a[0][b.a[0].length - 2]
]);
if (e) for (var e = c.map, g = 0, h = f.length; g < h; g++) {
var k = f[g],
m = e.Oa(k),
n = c.pixel,
d = n[0] - m[0],
m = n[1] - m[1],
n = b.U && b.va(c) ? 1 : b.zi;
if (d = Math.sqrt(d * d + m * m) <= n) {
b.l = k;
break
}
}
}
return d
}
function Py(b, c) {
var d = c.coordinate;
b.l = d;
b.f === Ky ? b.a = d.slice()  : b.f === Jy ? (b.a = [
[d.slice(),
d.slice()]
], b.S = b.a[0])  : (b.a = [
d.slice(),
d.slice()
], b.f === Qy && (b.S = b.a));
b.S && (b.A = new sn(new T(b.S)));
d = b.D(b.a);
b.i = new sn;
b.Cb && b.i.vc(b.Cb);
b.i.La(d);
Sy(b);
b.o(new Dy('drawstart', b.i))
}
function Ny(b, c) {
var d = c.coordinate,
e = b.i.W(),
f,
g;
if (b.f === Ly) b.l = d.slice(),
g = b.a,
g.push(d.slice()),
f = g.length > b.pa,
b.D(g, e);
 else if (b.f === Jy) {
g = b.a[0];
g.push(d.slice());
if (f = g.length > b.pa) b.l = g[0];
b.D(b.a, e)
}
Sy(b);
f && b.md()
}
l.Ao = function () {
var b = this.i.W(),
c,
d;
this.f === Ly ? (c = this.a, c.splice( - 2, 1), this.D(c, b))  : this.f === Jy && (c = this.a[0], c.splice( - 2, 1), d = this.A.W(), d.ma(c), this.D(this.a, b));
0 === c.length && (this.l = null);
Sy(this)
};
l.md = function () {
var b = Ty(this),
c = this.a,
d = b.W();
this.f === Ly ? (c.pop(), this.D(c, d))  : this.f === Jy && (c[0].pop(), c[0].push(c[0][0]), this.D(c, d));
'MultiPoint' === this.T ? b.La(new $r([c]))  : 'MultiLineString' === this.T ? b.La(new U([c]))  : 'MultiPolygon' === this.T && b.La(new V([c]));
this.o(new Dy('drawend', b));
this.fb && this.fb.push(b);
this.Db && this.Db.Ad(b)
};
function Ty(b) {
b.l = null;
var c = b.i;
c && (b.i = null, b.G = null, b.A = null, b.ga.fa().clear(!0));
return c
}
l.bm = function (b) {
var c = b.W();
this.i = b;
this.a = c.Y();
b = this.a[this.a.length - 1];
this.l = b.slice();
this.a.push(b.slice());
Sy(this);
this.o(new Dy('drawstart', this.i))
};
l.xc = te;
function Sy(b) {
var c = [
];
b.i && c.push(b.i);
b.A && c.push(b.A);
b.G && c.push(b.G);
b = b.ga.fa();
b.clear(!0);
b.Dc(c)
}
l.ki = function () {
var b = this.u,
c = this.b();
b && c || Ty(this);
this.ga.setMap(c ? b : null)
};
function Iy(b) {
var c;
'Point' === b || 'MultiPoint' === b ? c = Ky : 'LineString' === b || 'MultiLineString' === b ? c = Ly : 'Polygon' === b || 'MultiPolygon' === b ? c = Jy : 'Circle' === b && (c = Qy);
return c
}
var Ky = 'Point',
Ly = 'LineString',
Jy = 'Polygon',
Qy = 'Circle';
function Uy(b, c, d) {
vc.call(this, b);
this.features = c;
this.mapBrowserPointerEvent = d
}
y(Uy, vc);
function Vy(b) {
al.call(this, {
handleDownEvent: Wy,
handleDragEvent: Xy,
handleEvent: Yy,
handleUpEvent: Zy
});
this.pa = b.deleteCondition ? b.deleteCondition : ze(Xk, Wk);
this.va = this.f = null;
this.ea = [
0,
0
];
this.D = this.U = !1;
this.a = new Bp;
this.G = void 0 !== b.pixelTolerance ? b.pixelTolerance : 10;
this.l = this.ga = !1;
this.i = null;
this.S = new H({
source: new R({
useSpatialIndex: !1,
wrapX: !!b.wrapX
}),
style: b.style ? b.style : $y(),
updateWhileAnimating: !0,
updateWhileInteracting: !0
});
this.T = {
Point: this.im,
LineString: this.bh,
LinearRing: this.bh,
Polygon: this.jm,
MultiPoint: this.gm,
MultiLineString: this.fm,
MultiPolygon: this.hm,
GeometryCollection: this.em
};
this.A = b.features;
this.A.forEach(this.zf, this);
C(this.A, 'add', this.cm, !1, this);
C(this.A, 'remove', this.dm, !1, this)
}
y(Vy, al);
l = Vy.prototype;
l.zf = function (b) {
var c = b.W();
c.V() in this.T && this.T[c.V()].call(this, b, c);
(c = this.u) && az(this, this.ea, c);
C(b, 'change', this.ah, !1, this)
};
function bz(b, c) {
b.D || (b.D = !0, b.o(new Uy('modifystart', b.A, c)))
}
function cz(b, c) {
dz(b, c);
b.f && 0 === b.A.$b() && (b.S.fa().Qc(b.f), b.f = null);
Yc(c, 'change', b.ah, !1, b)
}
function dz(b, c) {
var d = b.a,
e = [
];
d.forEach(function (b) {
c === b.feature && e.push(b)
});
for (var f = e.length - 1; 0 <= f; --f) d.remove(e[f])
}
l.setMap = function (b) {
this.S.setMap(b);
Vy.da.setMap.call(this, b)
};
l.cm = function (b) {
this.zf(b.element)
};
l.ah = function (b) {
this.l || (b = b.target, cz(this, b), this.zf(b))
};
l.dm = function (b) {
cz(this, b.element)
};
l.im = function (b, c) {
var d = c.Y(),
d = {
feature: b,
geometry: c,
la: [
d,
d
]
};
this.a.ya(c.J(), d)
};
l.gm = function (b, c) {
var d = c.Y(),
e,
f,
g;
f = 0;
for (g = d.length; f < g; ++f) e = d[f],
e = {
feature: b,
geometry: c,
depth: [
f
],
index: f,
la: [
e,
e
]
},
this.a.ya(c.J(), e)
};
l.bh = function (b, c) {
var d = c.Y(),
e,
f,
g,
h;
e = 0;
for (f = d.length - 1; e < f; ++e) g = d.slice(e, e + 2),
h = {
feature: b,
geometry: c,
index: e,
la: g
},
this.a.ya(Nd(g), h)
};
l.fm = function (b, c) {
var d = c.Y(),
e,
f,
g,
h,
k,
m,
n;
h = 0;
for (k = d.length; h < k; ++h) for (e = d[h], f = 0, g = e.length - 1; f < g; ++f) m = e.slice(f, f + 2),
n = {
feature: b,
geometry: c,
depth: [
h
],
index: f,
la: m
},
this.a.ya(Nd(m), n)
};
l.jm = function (b, c) {
var d = c.Y(),
e,
f,
g,
h,
k,
m,
n;
h = 0;
for (k = d.length; h < k; ++h) for (e = d[h], f = 0, g = e.length - 1; f < g; ++f) m = e.slice(f, f + 2),
n = {
feature: b,
geometry: c,
depth: [
h
],
index: f,
la: m
},
this.a.ya(Nd(m), n)
};
l.hm = function (b, c) {
var d = c.Y(),
e,
f,
g,
h,
k,
m,
n,
p,
q,
r;
m = 0;
for (n = d.length; m < n; ++m) for (p = d[m], h = 0, k = p.length; h < k; ++h) for (e = p[h], f = 0, g = e.length - 1; f < g; ++f) q = e.slice(f, f + 2),
r = {
feature: b,
geometry: c,
depth: [
h,
m
],
index: f,
la: q
},
this.a.ya(Nd(q), r)
};
l.em = function (b, c) {
var d,
e = c.f;
for (d = 0; d < e.length; ++d) this.T[e[d].V()].call(this, b, e[d])
};
function ez(b, c) {
var d = b.f;
d ? d.W().ma(c)  : (d = new sn(new D(c)), b.f = d, b.S.fa().Ad(d))
}
function fz(b, c) {
return b.index - c.index
}
function Wy(b) {
az(this, b.pixel, b.map);
this.i = [
];
this.D = !1;
var c = this.f;
if (c) {
var d = [
],
c = c.W().Y(),
e = Nd([c]),
e = Ep(this.a, e),
f = {
};
e.sort(fz);
for (var g = 0, h = e.length; g < h; ++g) {
var k = e[g],
m = k.la,
n = w(k.feature),
p = k.depth;
p && (n += '-' + p.join('-'));
f[n] || (f[n] = Array(2));
if (vd(m[0], c) && !f[n][0]) this.i.push([k,
0]),
f[n][0] = k;
 else if (vd(m[1], c) && !f[n][1]) {
if ('LineString' !== k.geometry.V() && 'MultiLineString' !== k.geometry.V() || !f[n][0] || 0 !== f[n][0].index) this.i.push([k,
1]),
f[n][1] = k
} else w(m) in this.va && !f[n][0] &&
!f[n][1] && d.push([k,
c])
}
d.length && bz(this, b);
for (g = d.length - 1; 0 <= g; --g) this.al.apply(this, d[g])
}
return !!this.f
}
function Xy(b) {
this.U = !1;
bz(this, b);
b = b.coordinate;
for (var c = 0, d = this.i.length; c < d; ++c) {
for (var e = this.i[c], f = e[0], g = f.depth, h = f.geometry, k = h.Y(), m = f.la, e = e[1]; b.length < h.ra(); ) b.push(0);
switch (h.V()) {
case 'Point':
k = b;
m[0] = m[1] = b;
break;
case 'MultiPoint':
k[f.index] = b;
m[0] = m[1] = b;
break;
case 'LineString':
k[f.index + e] = b;
m[e] = b;
break;
case 'MultiLineString':
k[g[0]][f.index + e] = b;
m[e] = b;
break;
case 'Polygon':
k[g[0]][f.index + e] = b;
m[e] = b;
break;
case 'MultiPolygon':
k[g[1]][g[0]][f.index + e] = b,
m[e] = b
}
f = h;
this.l =
!0;
f.ma(k);
this.l = !1
}
ez(this, b)
}
function Zy(b) {
for (var c, d = this.i.length - 1; 0 <= d; --d) c = this.i[d][0],
Cp(this.a, Nd(c.la), c);
this.D && (this.o(new Uy('modifyend', this.A, b)), this.D = !1);
return !1
}
function Yy(b) {
if (!(b instanceof Nj)) return !0;
var c;
b.map.aa().b.slice() [1] || b.type != Xj || this.C || (this.ea = b.pixel, az(this, b.pixel, b.map));
if (this.f && this.pa(b)) if (b.type == Sj && this.U) c = !0;
 else {
this.f.W();
bz(this, b);
c = this.i;
var d = {
},
e,
f,
g,
h,
k,
m,
n,
p,
q;
for (k = c.length - 1; 0 <= k; --k) if (g = c[k], p = g[0], h = p.geometry, f = h.Y(), q = w(p.feature), p.depth && (q += '-' + p.depth.join('-')), n = e = m = void 0, 0 === g[1] ? (e = p, m = p.index)  : 1 == g[1] && (n = p, m = p.index + 1), q in d || (d[q] = [
n,
e,
m
]), g = d[q], void 0 !== n && (g[0] = n), void 0 !== e && (g[1] = e), void 0 !== g[0] && void 0 !== g[1]) {
e = f;
q = !1;
n = m - 1;
switch (h.V()) {
case 'MultiLineString':
f[p.depth[0]].splice(m, 1);
q = !0;
break;
case 'LineString':
f.splice(m, 1);
q = !0;
break;
case 'MultiPolygon':
e = e[p.depth[1]];
case 'Polygon':
e = e[p.depth[0]],
4 < e.length && (m == e.length - 1 && (m = 0), e.splice(m, 1), q = !0, 0 === m && (e.pop(), e.push(e[0]), n = e.length - 1))
}
q && (this.a.remove(g[0]), this.a.remove(g[1]), e = h, this.l = !0, e.ma(f), this.l = !1, f = {
depth: p.depth,
feature: p.feature,
geometry: p.geometry,
index: n,
la: [
g[0].la[0],
g[1].la[1]
]
}, this.a.ya(Nd(f.la), f), gz(this, h, m, p.depth, - 1), this.f && (this.S.fa().Qc(this.f), this.f = null))
}
c = !0;
this.o(new Uy('modifyend', this.A, b));
this.D = !1
}
b.type == Sj && (this.U = !1);
return bl.call(this, b) && !c
}
function az(b, c, d) {
function e(b, c) {
return yd(f, b.la) - yd(f, c.la)
}
var f = d.Fa(c),
g = d.Fa([c[0] - b.G,
c[1] + b.G]),
h = d.Fa([c[0] + b.G,
c[1] - b.G]),
g = Nd([g,
h]),
g = Ep(b.a, g);
if (0 < g.length) {
g.sort(e);
var h = g[0].la,
k = sd(f, h),
m = d.Oa(k);
if (Math.sqrt(xd(c, m)) <= b.G) {
c = d.Oa(h[0]);
d = d.Oa(h[1]);
c = xd(m, c);
d = xd(m, d);
b.ga = Math.sqrt(Math.min(c, d)) <= b.G;
b.ga && (k = c > d ? h[1] : h[0]);
ez(b, k);
d = {
};
d[w(h)] = !0;
c = 1;
for (m = g.length; c < m; ++c) if (k = g[c].la, vd(h[0], k[0]) && vd(h[1], k[1]) || vd(h[0], k[1]) && vd(h[1], k[0])) d[w(k)] = !0;
 else break;
b.va = d;
return
}
}
b.f && (b.S.fa().Qc(b.f), b.f = null)
}
l.al = function (b, c) {
for (var d = b.la, e = b.feature, f = b.geometry, g = b.depth, h = b.index, k; c.length < f.ra(); ) c.push(0);
switch (f.V()) {
case 'MultiLineString':
k = f.Y();
k[g[0]].splice(h + 1, 0, c);
break;
case 'Polygon':
k = f.Y();
k[g[0]].splice(h + 1, 0, c);
break;
case 'MultiPolygon':
k = f.Y();
k[g[1]][g[0]].splice(h + 1, 0, c);
break;
case 'LineString':
k = f.Y();
k.splice(h + 1, 0, c);
break;
default:
return
}
this.l = !0;
f.ma(k);
this.l = !1;
k = this.a;
k.remove(b);
gz(this, f, h, g, 1);
var m = {
la: [
d[0],
c
],
feature: e,
geometry: f,
depth: g,
index: h
};
k.ya(Nd(m.la), m);
this.i.push([m,
1]);
d = {
la: [
c,
d[1]
],
feature: e,
geometry: f,
depth: g,
index: h + 1
};
k.ya(Nd(d.la), d);
this.i.push([d,
0]);
this.U = !0
};
function gz(b, c, d, e, f) {
Gp(b.a, c.J(), function (b) {
b.geometry === c && (void 0 === e || void 0 === b.depth || sb(b.depth, e)) && b.index > d && (b.index += f)
})
}
function $y() {
var b = hm();
return function () {
return b.Point
}
};
function hz(b, c, d, e) {
vc.call(this, b);
this.selected = c;
this.deselected = d;
this.mapBrowserEvent = e
}
y(hz, vc);
function iz(b) {
Ok.call(this, {
handleEvent: jz
});
b = b ? b : {
};
this.C = b.condition ? b.condition : Wk;
this.l = b.addCondition ? b.addCondition : te;
this.D = b.removeCondition ? b.removeCondition : te;
this.G = b.toggleCondition ? b.toggleCondition : Yk;
this.A = b.multi ? b.multi : !1;
this.j = b.filter ? b.filter : ue;
var c;
if (b.layers) if (ka(b.layers)) c = b.layers;
 else {
var d = b.layers;
c = function (b) {
return vb(d, b)
}
} else c = ue;
this.i = c;
this.a = {
};
this.f = new H({
source: new R({
useSpatialIndex: !1,
features: b.features,
wrapX: b.wrapX
}),
style: b.style ? b.style :
kz(),
updateWhileAnimating: !0,
updateWhileInteracting: !0
});
b = this.f.fa().b;
C(b, 'add', this.km, !1, this);
C(b, 'remove', this.nm, !1, this)
}
y(iz, Ok);
l = iz.prototype;
l.lm = function () {
return this.f.fa().b
};
l.mm = function (b) {
b = w(b);
return this.a[b]
};
function jz(b) {
if (!this.C(b)) return !0;
var c = this.l(b),
d = this.D(b),
e = this.G(b),
f = !c && !d && !e,
g = b.map,
h = this.f.fa().b,
k = [
],
m = [
],
n = !1;
if (f) g.od(b.pixel, function (b, c) {
if (!c || this.j(b, c)) {
m.push(b);
var d = w(b);
this.a[d] = c;
return !this.A
}
}, this, this.i),
0 < m.length && 1 == h.$b() && h.item(0) == m[0] || (n = !0, 0 !== h.$b() && (k = Array.prototype.concat(h.a), h.clear()), h.tf(m), 0 === m.length ? Rb(this.a)  : 0 < k.length && k.forEach(function (b) {
b = w(b);
delete this.a[b]
}, this));
 else {
g.od(b.pixel, function (b, f) {
if (!vb(h.a, b)) {
if ((c || e) && this.j(b, f)) {
m.push(b);
var g = w(b);
this.a[g] = f
}
} else if (d || e) k.push(b),
g = w(b),
delete this.a[g]
}, this, this.i);
for (f = k.length - 1; 0 <= f; --f) h.remove(k[f]);
h.tf(m);
if (0 < m.length || 0 < k.length) n = !0
}
n && this.o(new hz('select', m, k, b));
return Vk(b)
}
l.setMap = function (b) {
var c = this.u,
d = this.f.fa().b;
null === c || d.forEach(c.ii, c);
iz.da.setMap.call(this, b);
this.f.setMap(b);
null === b || d.forEach(b.fi, b)
};
function kz() {
var b = hm();
lb(b.Polygon, b.LineString);
lb(b.GeometryCollection, b.LineString);
return function (c) {
return b[c.W().V()]
}
}
l.km = function (b) {
b = b.element;
var c = this.u;
null === c || c.fi(b)
};
l.nm = function (b) {
b = b.element;
var c = this.u;
null === c || c.ii(b)
};
function lz(b) {
al.call(this, {
handleEvent: mz,
handleDownEvent: ue,
handleUpEvent: nz
});
b = b ? b : {
};
this.l = b.source ? b.source : null;
this.i = b.features ? b.features : null;
this.ea = [
];
this.D = {
};
this.G = {
};
this.U = {
};
this.A = {
};
this.S = null;
this.f = void 0 !== b.pixelTolerance ? b.pixelTolerance : 10;
this.ga = ra(oz, this);
this.a = new Bp;
this.T = {
Point: this.tm,
LineString: this.fh,
LinearRing: this.fh,
Polygon: this.um,
MultiPoint: this.rm,
MultiLineString: this.qm,
MultiPolygon: this.sm,
GeometryCollection: this.pm
}
}
y(lz, al);
l = lz.prototype;
l.wd = function (b, c) {
var d = void 0 !== c ? c : !0,
e = b.W(),
f = this.T[e.V()];
if (f) {
var g = w(b);
this.U[g] = e.J(Od());
f.call(this, b, e);
d && (this.G[g] = e.H('change', ra(this.yk, this, b), this), this.D[g] = b.H(kd(b.a), this.om, this))
}
};
l.wj = function (b) {
this.wd(b)
};
l.xj = function (b) {
this.xd(b)
};
l.dh = function (b) {
var c;
b instanceof Lp ? c = b.feature : b instanceof ng && (c = b.element);
this.wd(c)
};
l.eh = function (b) {
var c;
b instanceof Lp ? c = b.feature : b instanceof ng && (c = b.element);
this.xd(c)
};
l.om = function (b) {
b = b.g;
this.xd(b, !0);
this.wd(b, !0)
};
l.yk = function (b) {
if (this.C) {
var c = w(b);
c in this.A || (this.A[c] = b)
} else this.ji(b)
};
l.xd = function (b, c) {
var d = void 0 !== c ? c : !0,
e = w(b),
f = this.U[e];
if (f) {
var g = this.a,
h = [
];
Gp(g, f, function (c) {
b === c.feature && h.push(c)
});
for (f = h.length - 1; 0 <= f; --f) g.remove(h[f]);
d && (Zc(this.G[e]), delete this.G[e], Zc(this.D[e]), delete this.D[e])
}
};
l.setMap = function (b) {
var c = this.u,
d = this.ea,
e;
this.i ? e = this.i : this.l && (e = this.l.ye());
c && (d.forEach(gd), d.length = 0, e.forEach(this.xj, this));
lz.da.setMap.call(this, b);
b && (this.i ? (d.push(this.i.H('add', this.dh, this)), d.push(this.i.H('remove', this.eh, this)))  : this.l && (d.push(this.l.H('addfeature', this.dh, this)), d.push(this.l.H('removefeature', this.eh, this))), e.forEach(this.wj, this))
};
l.xc = te;
l.ji = function (b) {
this.xd(b, !1);
this.wd(b, !1)
};
l.pm = function (b, c) {
var d,
e = c.f;
for (d = 0; d < e.length; ++d) this.T[e[d].V()].call(this, b, e[d])
};
l.fh = function (b, c) {
var d = c.Y(),
e,
f,
g,
h;
e = 0;
for (f = d.length - 1; e < f; ++e) g = d.slice(e, e + 2),
h = {
feature: b,
la: g
},
this.a.ya(Nd(g), h)
};
l.qm = function (b, c) {
var d = c.Y(),
e,
f,
g,
h,
k,
m,
n;
h = 0;
for (k = d.length; h < k; ++h) for (e = d[h], f = 0, g = e.length - 1; f < g; ++f) m = e.slice(f, f + 2),
n = {
feature: b,
la: m
},
this.a.ya(Nd(m), n)
};
l.rm = function (b, c) {
var d = c.Y(),
e,
f,
g;
f = 0;
for (g = d.length; f < g; ++f) e = d[f],
e = {
feature: b,
la: [
e,
e
]
},
this.a.ya(c.J(), e)
};
l.sm = function (b, c) {
var d = c.Y(),
e,
f,
g,
h,
k,
m,
n,
p,
q,
r;
m = 0;
for (n = d.length; m < n; ++m) for (p = d[m], h = 0, k = p.length; h < k; ++h) for (e = p[h], f = 0, g = e.length - 1; f < g; ++f) q = e.slice(f, f + 2),
r = {
feature: b,
la: q
},
this.a.ya(Nd(q), r)
};
l.tm = function (b, c) {
var d = c.Y(),
d = {
feature: b,
la: [
d,
d
]
};
this.a.ya(c.J(), d)
};
l.um = function (b, c) {
var d = c.Y(),
e,
f,
g,
h,
k,
m,
n;
h = 0;
for (k = d.length; h < k; ++h) for (e = d[h], f = 0, g = e.length - 1; f < g; ++f) m = e.slice(f, f + 2),
n = {
feature: b,
la: m
},
this.a.ya(Nd(m), n)
};
function mz(b) {
var c,
d,
e = b.pixel,
f = b.coordinate;
c = b.map;
var g = c.Fa([e[0] - this.f,
e[1] + this.f]);
d = c.Fa([e[0] + this.f,
e[1] - this.f]);
var g = Nd([g,
d]),
h = Ep(this.a, g),
k = !1,
g = !1,
m = null;
d = null;
0 < h.length && (this.S = f, h.sort(this.ga), h = h[0].la, m = sd(f, h), d = c.Oa(m), Math.sqrt(xd(e, d)) <= this.f && (g = !0, e = c.Oa(h[0]), f = c.Oa(h[1]), e = xd(d, e), f = xd(d, f), k = Math.sqrt(Math.min(e, f)) <= this.f)) && (m = e > f ? h[1] : h[0], d = c.Oa(m), d = [
Math.round(d[0]),
Math.round(d[1])
]);
c = m;
g && (b.coordinate = c.slice(0, 2), b.pixel = d);
return bl.call(this, b)
}
function nz() {
var b = Lb(this.A);
b.length && (b.forEach(this.ji, this), this.A = {
});
return !1
}
function oz(b, c) {
return yd(this.S, b.la) - yd(this.S, c.la)
};
function pz(b, c, d) {
vc.call(this, b);
this.features = c;
this.coordinate = d
}
y(pz, vc);
function qz(b) {
al.call(this, {
handleDownEvent: rz,
handleDragEvent: sz,
handleMoveEvent: tz,
handleUpEvent: uz
});
this.l = void 0;
this.a = null;
this.f = void 0 !== b.features ? b.features : null;
this.i = null
}
y(qz, al);
function rz(b) {
this.i = vz(this, b.pixel, b.map);
return !this.a && this.i ? (this.a = b.coordinate, tz.call(this, b), this.o(new pz('translatestart', this.f, b.coordinate)), !0)  : !1
}
function uz(b) {
return this.a ? (this.a = null, tz.call(this, b), this.o(new pz('translateend', this.f, b.coordinate)), !0)  : !1
}
function sz(b) {
if (this.a) {
b = b.coordinate;
var c = b[0] - this.a[0],
d = b[1] - this.a[1];
if (this.f) this.f.forEach(function (b) {
var e = b.W();
e.Oc(c, d);
b.La(e)
});
 else if (this.i) {
var e = this.i.W();
e.Oc(c, d);
this.i.La(e)
}
this.a = b;
this.o(new pz('translating', this.f, b))
}
}
function tz(b) {
var c = b.map.Lc();
if (b = b.map.od(b.pixel, function (b) {
return b
})) {
var d = !1;
this.f && vb(this.f.a, b) && (d = !0);
this.l = c.style.cursor;
c.style.cursor = this.a ? '-webkit-grabbing' : d ? '-webkit-grab' : 'pointer';
c.style.cursor = this.a ? d ? 'grab' : 'pointer' : 'grabbing'
} else c.style.cursor = void 0 !== this.l ? this.l : '',
this.l = void 0
}
function vz(b, c, d) {
var e = null;
c = d.od(c, function (b) {
return b
});
b.f && vb(b.f.a, c) && (e = c);
return e
};
function X(b) {
b = b ? b : {
};
var c = Ub(b);
delete c.gradient;
delete c.radius;
delete c.blur;
delete c.shadow;
delete c.weight;
H.call(this, c);
this.g = null;
this.Z = void 0 !== b.shadow ? b.shadow : 250;
this.T = void 0;
this.U = null;
C(this, kd('gradient'), this.zk, !1, this);
this.Wh(b.gradient ? b.gradient : wz);
this.Sh(void 0 !== b.blur ? b.blur : 15);
this.ih(void 0 !== b.radius ? b.radius : 8);
C(this, [
kd('blur'),
kd('radius')
], this.Lg, !1, this);
this.Lg();
var d = b.weight ? b.weight : 'weight',
e;
ia(d) ? e = function (b) {
return b.get(d)
}
 : e = d;
this.f(ra(function (b) {
b =
e(b);
b = void 0 !== b ? Sa(b, 0, 1)  : 1;
var c = 255 * b | 0,
d = this.U[c];
d || (d = [
new cm({
image: new wk({
opacity: b,
src: this.T
})
})
], this.U[c] = d);
return d
}, this));
this.set('renderOrder', null);
C(this, 'render', this.Rk, !1, this)
}
y(X, H);
var wz = [
'#00f',
'#0ff',
'#0f0',
'#ff0',
'#f00'
];
l = X.prototype;
l.tg = function () {
return this.get('blur')
};
l.Ag = function () {
return this.get('gradient')
};
l.hh = function () {
return this.get('radius')
};
l.zk = function () {
for (var b = this.Ag(), c = Pi(1, 256), d = c.createLinearGradient(0, 0, 1, 256), e = 1 / (b.length - 1), f = 0, g = b.length; f < g; ++f) d.addColorStop(f * e, b[f]);
c.fillStyle = d;
c.fillRect(0, 0, 1, 256);
this.g = c.getImageData(0, 0, 1, 256).data
};
l.Lg = function () {
var b = this.hh(),
c = this.tg(),
d = b + c + 1,
e = 2 * d,
e = Pi(e, e);
e.shadowOffsetX = e.shadowOffsetY = this.Z;
e.shadowBlur = c;
e.shadowColor = '#000';
e.beginPath();
c = d - this.Z;
e.arc(c, c, b, 0, 2 * Math.PI, !0);
e.fill();
this.T = e.canvas.toDataURL();
this.U = Array(256);
this.s()
};
l.Rk = function (b) {
b = b.context;
var c = b.canvas,
c = b.getImageData(0, 0, c.width, c.height),
d = c.data,
e,
f,
g;
e = 0;
for (f = d.length; e < f; e += 4) if (g = 4 * d[e + 3]) d[e] = this.g[g],
d[e + 1] = this.g[g + 1],
d[e + 2] = this.g[g + 2];
b.putImageData(c, 0, 0)
};
l.Sh = function (b) {
this.set('blur', b)
};
l.Wh = function (b) {
this.set('gradient', b)
};
l.ih = function (b) {
this.set('radius', b)
};
function xz(b, c, d, e, f, g, h, k, m, n, p) {
wh.call(this, [
f,
g,
h
], 0);
this.C = void 0 !== p ? p : !1;
this.A = k;
this.j = null;
this.g = {
};
this.i = c;
this.B = e;
this.c = [
];
this.b = null;
this.l = 0;
h = e.Aa(this.a);
p = this.B.J();
g = this.i.J();
h = p ? oe(h, p)  : h;
if (0 === ie(h)) this.state = 4;
 else if ((p = b.J()) && (g ? g = oe(g, p)  : g = p), e = e.$(f), e = bn(b, d, me(h), e), !isFinite(e) || isNaN(e) || 0 >= e) this.state = 4;
 else if (this.u = new en(b, d, h, g, e * (void 0 !== n ? n : 0.5)), 0 === this.u.f.length) this.state = 4;
 else if (this.l = Kh(c, e), d = gn(this.u), g && (b.b ? (d[1] = Sa(d[1], g[1], g[3]), d[3] = Sa(d[3], g[1], g[3]))  : d = oe(d, g)), ie(d)) if (b = Fh(c, d, this.l), 100 > kg(b) * jg(b)) {
for (c = b.a; c <= b.f; c++) for (d = b.c; d <= b.b; d++) (n = m(this.l, c, d, k)) && this.c.push(n);
0 === this.c.length && (this.state = 4)
} else this.state = 3;
 else this.state = 4
}
y(xz, wh);
xz.prototype.X = function () {
1 == this.state && (this.b.forEach(Zc), this.b = null);
xz.da.X.call(this)
};
xz.prototype.Sa = function (b) {
if (void 0 !== b) {
var c = w(b);
if (c in this.g) return this.g[c];
b = Qb(this.g) ? this.j : this.j.cloneNode(!1);
return this.g[c] = b
}
return this.j
};
function yz(b) {
var c = [
];
b.c.forEach(function (b) {
b && 2 == b.state && c.push({
extent: this.i.Aa(b.a),
image: b.Sa()
})
}, b);
b.c.length = 0;
var d = b.a,
e = d[0],
f = b.B.Ha(e),
g = ja(f) ? f : f[0],
f = ja(f) ? f : f[1],
e = b.B.$(e),
h = b.i.$(b.l),
d = b.B.Aa(d);
b.j = dn(g, f, b.A, h, b.i.J(), e, d, b.u, c, b.C);
b.state = 2;
xh(b)
}
xz.prototype.load = function () {
if (0 == this.state) {
this.state = 1;
xh(this);
var b = 0;
this.b = [
];
this.c.forEach(function (c) {
var d = c.state;
if (0 == d || 1 == d) {
b++;
var e;
e = c.Qa('change', function () {
var d = c.state;
if (2 == d || 3 == d || 4 == d) Zc(e),
b--,
0 === b && (this.b.forEach(Zc), this.b = null, yz(this))
}, !1, this);
this.b.push(e)
}
}, this);
this.c.forEach(function (b) {
0 == b.state && b.load()
});
0 === b && yz(this)
}
};
function zz(b, c) {
var d = c || {
},
e = d.document || document,
f = Kg('SCRIPT'),
g = {
Rh: f,
yc: void 0
},
h = new fy(Az, g),
k = null,
m = null != d.timeout ? d.timeout : 5000;
0 < m && (k = window.setTimeout(function () {
Bz(f, !0);
var c = new Cz(Dz, 'Timeout reached for loading script ' + b);
hy(h);
iy(h, !1, c)
}, m), g.yc = k);
f.onload = f.onreadystatechange = function () {
f.readyState && 'loaded' != f.readyState && 'complete' != f.readyState || (Bz(f, d.rj || !1, k), h.$c(null))
};
f.onerror = function () {
Bz(f, !0, k);
var c = new Cz(Ez, 'Error while loading script ' + b);
hy(h);
iy(h, !1, c)
};
g = d.attributes || {
};
Xb(g, {
type: 'text/javascript',
charset: 'UTF-8',
src: b
});
Eg(f, g);
Fz(e).appendChild(f);
return h
}
function Fz(b) {
var c = b.getElementsByTagName('HEAD');
return c && 0 != c.length ? c[0] : b.documentElement
}
function Az() {
if (this && this.Rh) {
var b = this.Rh;
b && 'SCRIPT' == b.tagName && Bz(b, !0, this.yc)
}
}
function Bz(b, c, d) {
null != d && ba.clearTimeout(d);
b.onload = da;
b.onerror = da;
b.onreadystatechange = da;
c && window.setTimeout(function () {
Og(b)
}, 0)
}
var Ez = 0,
Dz = 1;
function Cz(b, c) {
var d = 'Jsloader error (code #' + b + ')';
c && (d += ': ' + c);
xa.call(this, d);
this.code = b
}
y(Cz, xa);
function Gz(b, c) {
this.c = new Ft(b);
this.a = c ? c : 'callback';
this.yc = 5000
}
var Hz = 0;
function Iz(b, c, d, e) {
c = c || null;
var f = '_' + (Hz++).toString(36) + ta().toString(36);
ba._callbacks_ || (ba._callbacks_ = {
});
var g = b.c.clone();
if (c) for (var h in c) if (!c.hasOwnProperty || c.hasOwnProperty(h)) {
var k = g,
m = h,
n = c[h];
ga(n) || (n = [
String(n)
]);
Yt(k.b, m, n)
}
d && (ba._callbacks_[f] = Jz(f, d), d = b.a, h = '_callbacks_.' + f, ga(h) || (h = [
String(h)
]), Yt(g.b, d, h));
b = zz(g.toString(), {
timeout: b.yc,
rj: !0
});
ly(b, null, Kz(f, c, e), void 0)
}
Gz.prototype.cancel = function (b) {
b && (b.sj && b.sj.cancel(), b.wa && Lz(b.wa, !1))
};
function Kz(b, c, d) {
return function () {
Lz(b, !1);
d && d(c)
}
}
function Jz(b, c) {
return function (d) {
Lz(b, !0);
c.apply(void 0, arguments)
}
}
function Lz(b, c) {
ba._callbacks_[b] && (c ? delete ba._callbacks_[b] : ba._callbacks_[b] = da)
};
function Y(b) {
Zp.call(this, {
attributions: b.attributions,
extent: b.extent,
logo: b.logo,
opaque: b.opaque,
projection: b.projection,
state: void 0 !== b.state ? b.state : void 0,
tileGrid: b.tileGrid,
tileLoadFunction: b.tileLoadFunction ? b.tileLoadFunction : Mz,
tilePixelRatio: b.tilePixelRatio,
tileUrlFunction: b.tileUrlFunction,
url: b.url,
urls: b.urls,
wrapX: b.wrapX
});
this.crossOrigin = void 0 !== b.crossOrigin ? b.crossOrigin : null;
this.tileClass = void 0 !== b.tileClass ? b.tileClass : ay;
this.i = {
};
this.u = {
};
this.xa = b.reprojectionErrorThreshold;
this.T = !1
}
y(Y, Zp);
l = Y.prototype;
l.nh = function () {
return uh(this.a) ? !0 : Jb(this.i, function (b) {
return uh(b)
})
};
l.oh = function (b, c) {
var d = this.td(b);
vh(this.a, this.a == d ? c : {
});
Ib(this.i, function (b) {
vh(b, b == d ? c : {
})
})
};
l.hb = function (b) {
var c = this.f;
return !this.tileGrid || c && !Xe(c, b) ? (c = w(b).toString(), c in this.u || (this.u[c] = Lh(b)), this.u[c])  : this.tileGrid
};
l.td = function (b) {
var c = this.f;
if (!c || Xe(c, b)) return this.a;
b = w(b).toString();
b in this.i || (this.i[b] = new th);
return this.i[b]
};
l.Ob = function (b, c, d, e, f) {
if (this.f && f && !Xe(this.f, f)) {
e = this.td(f);
var g = this.gb(b, c, d);
if (sh(e, g)) return e.get(g);
var h = this.f,
k = this.hb(h),
m = this.hb(f);
b = new xz(h, k, f, m, b, c, d, this.C, ra(function (b, c, d, e) {
return Nz(this, b, c, d, e, h)
}, this), this.xa, this.T);
e.set(g, b);
return b
}
return Nz(this, b, c, d, e, f)
};
function Nz(b, c, d, e, f, g) {
var h = b.gb(c, d, e);
if (sh(b.a, h)) return b.a.get(h);
c = [
c,
d,
e
];
f = (d = Rh(b, c, g)) ? b.tileUrlFunction(d, f, g)  : void 0;
f = new b.tileClass(c, void 0 !== f ? 0 : 4, void 0 !== f ? f : '', b.crossOrigin, b.tileLoadFunction);
C(f, 'change', b.ph, !1, b);
b.a.set(h, f);
return f
}
l.wb = function (b) {
this.T != b && (this.T = b, Ib(this.i, function (b) {
b.clear()
}), this.s())
};
l.xb = function (b, c) {
var d = Fe(b);
d && (d = w(d).toString(), d in this.u || (this.u[d] = c))
};
function Mz(b, c) {
b.Sa().src = c
};
function Oz(b) {
Y.call(this, {
crossOrigin: 'anonymous',
opaque: !0,
projection: Fe('EPSG:3857'),
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
state: 'loading',
tileLoadFunction: b.tileLoadFunction,
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
});
this.l = void 0 !== b.culture ? b.culture : 'en-us';
this.g = void 0 !== b.maxZoom ? b.maxZoom : - 1;
var c = new Ft('https://dev.virtualearth.net/REST/v1/Imagery/Metadata/' + b.imagerySet);
Iz(new Gz(c, 'jsonp'), {
include: 'ImageryProviders',
uriScheme: 'https',
key: b.key
}, ra(this.D, this))
}
y(Oz, Y);
var Pz = new mg({
html: '<a class="ol-attribution-bing-tos" href="http://www.microsoft.com/maps/product/terms.html">Terms of Use</a>'
});
Oz.prototype.D = function (b) {
if (200 != b.statusCode || 'OK' != b.statusDescription || 'ValidCredentials' != b.authenticationResultCode || 1 != b.resourceSets.length || 1 != b.resourceSets[0].resources.length) Ah(this, 'error');
 else {
var c = b.brandLogoUri;
- 1 == c.indexOf('https') && (c = c.replace('http', 'https'));
var d = b.resourceSets[0].resources[0],
e = - 1 == this.g ? d.zoomMax : this.g;
b = Mh(this.f);
var f = Oh({
extent: b,
minZoom: d.zoomMin,
maxZoom: e,
tileSize: d.imageWidth == d.imageHeight ? d.imageWidth : [
d.imageWidth,
d.imageHeight
]
});
this.tileGrid =
f;
var g = this.l;
this.tileUrlFunction = Wp(d.imageUrlSubdomains.map(function (b) {
var c = [
0,
0,
0
],
e = d.imageUrl.replace('{subdomain}', b).replace('{culture}', g);
return function (b) {
if (b) return cg(b[0], b[1], - b[2] - 1, c),
e.replace('{quadkey}', eg(c))
}
}));
if (d.imageryProviders) {
var h = Je(Fe('EPSG:4326'), this.f);
b = d.imageryProviders.map(function (b) {
var c = b.attribution,
d = {
};
b.coverageAreas.forEach(function (b) {
var c = b.zoomMin,
g = Math.min(b.zoomMax, e);
b = b.bbox;
b = re([b[1],
b[0],
b[3],
b[2]], h);
var k,
m;
for (k = c; k <= g; ++k) m = k.toString(),
c = Fh(f, b, k),
m in d ? d[m].push(c)  : d[m] = [
c
]
});
return new mg({
html: c,
tileRanges: d
})
});
b.push(Pz);
this.na(b)
}
this.U = c;
Ah(this, 'ready')
}
};
function Qz(b) {
R.call(this, {
attributions: b.attributions,
extent: b.extent,
logo: b.logo,
projection: b.projection,
wrapX: b.wrapX
});
this.G = void 0;
this.ea = void 0 !== b.distance ? b.distance : 20;
this.D = [
];
this.C = b.source;
this.C.H('change', Qz.prototype.va, this)
}
y(Qz, R);
Qz.prototype.ga = function () {
return this.C
};
Qz.prototype.Mc = function (b, c, d) {
this.C.Mc(b, c, d);
c !== this.G && (this.clear(), this.G = c, Rz(this), this.Dc(this.D))
};
Qz.prototype.va = function () {
this.clear();
Rz(this);
this.Dc(this.D);
this.s()
};
function Rz(b) {
if (void 0 !== b.G) {
b.D.length = 0;
for (var c = Od(), d = b.ea * b.G, e = b.C.ye(), f = {
}, g = 0, h = e.length; g < h; g++) {
var k = e[g];
Nb(f, w(k).toString()) || (k = k.W().Y(), Zd(k, c), Sd(c, d, c), k = b.C.lf(c), k = k.filter(function (b) {
b = w(b).toString();
return b in f ? !1 : f[b] = !0
}), b.D.push(Sz(k)))
}
}
}
function Sz(b) {
for (var c = b.length, d = [
0,
0
], e = 0; e < c; e++) {
var f = b[e].W().Y();
rd(d, f)
}
c = 1 / c;
d[0] *= c;
d[1] *= c;
d = new sn(new D(d));
d.set('features', b);
return d
};
function Tz(b) {
kn.call(this, {
projection: b.projection,
resolutions: b.resolutions
});
this.ga = void 0 !== b.crossOrigin ? b.crossOrigin : null;
this.l = void 0 !== b.displayDpi ? b.displayDpi : 96;
this.i = void 0 !== b.params ? b.params : {
};
var c;
void 0 !== b.url ? c = cy(b.url, this.i, ra(this.Fm, this))  : c = dy;
this.Z = c;
this.b = void 0 !== b.imageLoadFunction ? b.imageLoadFunction : qn;
this.pa = void 0 !== b.hidpi ? b.hidpi : !0;
this.ea = void 0 !== b.metersPerUnit ? b.metersPerUnit : 1;
this.u = void 0 !== b.ratio ? b.ratio : 1;
this.xa = void 0 !== b.useOverlay ? b.useOverlay :
!1;
this.g = null;
this.T = 0
}
y(Tz, kn);
l = Tz.prototype;
l.Em = function () {
return this.i
};
l.pd = function (b, c, d, e) {
c = ln(this, c);
d = this.pa ? d : 1;
var f = this.g;
if (f && this.T == this.c && f.$() == c && f.b == d && Xd(f.J(), b)) return f;
1 != this.u && (b = b.slice(), qe(b, this.u));
e = this.Z(b, [
ke(b) / c * d,
le(b) / c * d
], e);
void 0 !== e ? (f = new $x(b, c, d, this.j, e, this.ga, this.b), C(f, 'change', this.D, !1, this))  : f = null;
this.g = f;
this.T = this.c;
return f
};
l.Dm = function () {
return this.b
};
l.Hm = function (b) {
Xb(this.i, b);
this.s()
};
l.Fm = function (b, c, d, e) {
var f = me(d),
g = this.ea,
h = ke(d);
d = le(d);
var k = e[0],
m = e[1],
n = 0.0254 / this.l;
e = {
OPERATION: this.xa ? 'GETDYNAMICMAPOVERLAYIMAGE' : 'GETMAPIMAGE',
VERSION: '2.0.0',
LOCALE: 'en',
CLIENTAGENT: 'ol.source.ImageMapGuide source',
CLIP: '1',
SETDISPLAYDPI: this.l,
SETDISPLAYWIDTH: Math.round(e[0]),
SETDISPLAYHEIGHT: Math.round(e[1]),
SETVIEWSCALE: m * h > k * d ? h * g / (k * n)  : d * g / (m * n),
SETVIEWCENTERX: f[0],
SETVIEWCENTERY: f[1]
};
Xb(e, c);
return lo(no([b], e))
};
l.Gm = function (b) {
this.g = null;
this.b = b;
this.s()
};
function Uz(b) {
var c = void 0 !== b.attributions ? b.attributions : null,
d = b.imageExtent,
e,
f;
void 0 !== b.imageSize && (e = le(d) / b.imageSize[1], f = [
e
]);
var g = void 0 !== b.crossOrigin ? b.crossOrigin : null,
h = void 0 !== b.imageLoadFunction ? b.imageLoadFunction : qn;
kn.call(this, {
attributions: c,
logo: b.logo,
projection: Fe(b.projection),
resolutions: f
});
this.b = new $x(d, e, 1, c, b.url, g, h);
C(this.b, 'change', this.D, !1, this)
}
y(Uz, kn);
Uz.prototype.pd = function (b) {
return pe(b, this.b.J()) ? this.b : null
};
function Vz(b) {
b = b || {
};
kn.call(this, {
attributions: b.attributions,
logo: b.logo,
projection: b.projection,
resolutions: b.resolutions
});
this.pa = void 0 !== b.crossOrigin ? b.crossOrigin : null;
this.i = b.url;
this.T = void 0 !== b.imageLoadFunction ? b.imageLoadFunction : qn;
this.g = b.params;
this.u = !0;
Wz(this);
this.ga = b.serverType;
this.xa = void 0 !== b.hidpi ? b.hidpi : !0;
this.b = null;
this.Z = [
0,
0
];
this.ea = 0;
this.l = void 0 !== b.ratio ? b.ratio : 1.5
}
y(Vz, kn);
var Xz = [
101,
101
];
l = Vz.prototype;
l.Nm = function (b, c, d, e) {
if (void 0 !== this.i) {
var f = ne(b, c, 0, Xz),
g = {
SERVICE: 'WMS',
VERSION: '1.3.0',
REQUEST: 'GetFeatureInfo',
FORMAT: 'image/png',
TRANSPARENT: !0,
QUERY_LAYERS: this.g.LAYERS
};
Xb(g, this.g, e);
e = Math.floor((f[3] - b[1]) / c);
g[this.u ? 'I' : 'X'] = Math.floor((b[0] - f[0]) / c);
g[this.u ? 'J' : 'Y'] = e;
return Yz(this, f, Xz, 1, Fe(d), g)
}
};
l.Pm = function () {
return this.g
};
l.pd = function (b, c, d, e) {
if (void 0 === this.i) return null;
c = ln(this, c);
1 == d || this.xa && void 0 !== this.ga || (d = 1);
b = b.slice();
var f = (b[0] + b[2]) / 2,
g = (b[1] + b[3]) / 2,
h = c / d,
k = ke(b) / h,
h = le(b) / h,
m = this.b;
if (m && this.ea == this.c && m.$() == c && m.b == d && Xd(m.J(), b)) return m;
if (1 != this.l) {
var m = this.l * ke(b) / 2,
n = this.l * le(b) / 2;
b[0] = f - m;
b[1] = g - n;
b[2] = f + m;
b[3] = g + n
}
f = {
SERVICE: 'WMS',
VERSION: '1.3.0',
REQUEST: 'GetMap',
FORMAT: 'image/png',
TRANSPARENT: !0
};
Xb(f, this.g);
this.Z[0] = Math.ceil(k * this.l);
this.Z[1] = Math.ceil(h * this.l);
e = Yz(this, b, this.Z, d, e, f);
this.b = new $x(b, c, d, this.j, e, this.pa, this.T);
this.ea = this.c;
C(this.b, 'change', this.D, !1, this);
return this.b
};
l.Om = function () {
return this.T
};
function Yz(b, c, d, e, f, g) {
g[b.u ? 'CRS' : 'SRS'] = f.a;
'STYLES' in b.g || (g.STYLES = new String(''));
if (1 != e) switch (b.ga) {
case 'geoserver':
e = 90 * e + 0.5 | 0;
g.FORMAT_OPTIONS = 'FORMAT_OPTIONS' in g ? g.FORMAT_OPTIONS + (';dpi:' + e)  : 'dpi:' + e;
break;
case 'mapserver':
g.MAP_RESOLUTION = 90 * e;
break;
case 'carmentaserver':
case 'qgis':
g.DPI = 90 * e
}
g.WIDTH = d[0];
g.HEIGHT = d[1];
d = f.g;
var h;
b.u && 'ne' == d.substr(0, 2) ? h = [
c[1],
c[0],
c[3],
c[2]
] : h = c;
g.BBOX = h.join(',');
return lo(no([b.i], g))
}
l.Qm = function () {
return this.i
};
l.Rm = function (b) {
this.b = null;
this.T = b;
this.s()
};
l.Sm = function (b) {
b != this.i && (this.i = b, this.b = null, this.s())
};
l.Tm = function (b) {
Xb(this.g, b);
Wz(this);
this.b = null;
this.s()
};
function Wz(b) {
b.u = 0 <= Pa(Sb(b.g, 'VERSION', '1.3.0'), '1.3')
};
function Zz(b) {
var c = void 0 !== b.projection ? b.projection : 'EPSG:3857',
d = void 0 !== b.tileGrid ? b.tileGrid : Oh({
extent: Mh(c),
maxZoom: b.maxZoom,
tileSize: b.tileSize
});
Y.call(this, {
attributions: b.attributions,
crossOrigin: b.crossOrigin,
logo: b.logo,
projection: c,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileGrid: d,
tileLoadFunction: b.tileLoadFunction,
tilePixelRatio: b.tilePixelRatio,
tileUrlFunction: b.tileUrlFunction,
url: b.url,
urls: b.urls,
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
})
}
y(Zz, Y);
function $z(b) {
b = b || {
};
var c;
void 0 !== b.attributions ? c = b.attributions : c = [
aA
];
Zz.call(this, {
attributions: c,
crossOrigin: void 0 !== b.crossOrigin ? b.crossOrigin : 'anonymous',
opaque: !0,
maxZoom: void 0 !== b.maxZoom ? b.maxZoom : 19,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileLoadFunction: b.tileLoadFunction,
url: void 0 !== b.url ? b.url : 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png',
wrapX: b.wrapX
})
}
y($z, Zz);
var aA = new mg({
html: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'
});
function bA(b) {
b = b || {
};
var c = cA[b.layer];
this.g = b.layer;
Zz.call(this, {
attributions: c.attributions,
crossOrigin: 'anonymous',
logo: 'https://developer.mapquest.com/content/osm/mq_logo.png',
maxZoom: c.maxZoom,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
opaque: !0,
tileLoadFunction: b.tileLoadFunction,
url: void 0 !== b.url ? b.url : 'https://otile{1-4}-s.mqcdn.com/tiles/1.0.0/' + this.g + '/{z}/{x}/{y}.jpg'
})
}
y(bA, Zz);
var dA = new mg({
html: 'Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a>'
}),
cA = {
osm: {
maxZoom: 19,
attributions: [
dA,
aA
]
},
sat: {
maxZoom: 18,
attributions: [
dA,
new mg({
html: 'Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency'
})
]
},
hyb: {
maxZoom: 18,
attributions: [
dA,
aA
]
}
};
bA.prototype.l = function () {
return this.g
};
(function () {
var b = {
},
c = {
ka: b
};
(function (d) {
if ('object' === typeof b && 'undefined' !== typeof c) c.ka = d();
 else {
var e;
'undefined' !== typeof window ? e = window : 'undefined' !== typeof global ? e = global : 'undefined' !== typeof self ? e = self : e = this;
e.Bp = d()
}
}) (function () {
return function e(b, c, h) {
function k(n, q) {
if (!c[n]) {
if (!b[n]) {
var r = 'function' == typeof require && require;
if (!q && r) return r(n, !0);
if (m) return m(n, !0);
r = Error('Cannot find module \'' + n + '\'');
throw r.code = 'MODULE_NOT_FOUND',
r;
}
r = c[n] = {
ka: {
}
};
b[n][0].call(r.ka, function (c) {
var e =
b[n][1][c];
return k(e ? e : c)
}, r, r.ka, e, b, c, h)
}
return c[n].ka
}
for (var m = 'function' == typeof require && require, n = 0; n < h.length; n++) k(h[n]);
return k
}({
1: [
function (b, c, g) {
b = b('./processor');
g.Ni = b
},
{
'./processor': 2
}
],
2: [
function (b, c) {
function g(b) {
return function (c) {
var e = c.buffers,
f = c.meta,
g = c.width,
h = c.height,
k = e.length,
m = e[0].byteLength,
A;
if (c.imageOps) {
m = Array(k);
for (A = 0; A < k; ++A) m[A] = new ImageData(new Uint8ClampedArray(e[A]), g, h);
g = b(m, f).data
} else {
g = new Uint8ClampedArray(m);
h = Array(k);
c = Array(k);
for (A =
0; A < k; ++A) h[A] = new Uint8ClampedArray(e[A]),
c[A] = [
0,
0,
0,
0
];
for (e = 0; e < m; e += 4) {
for (A = 0; A < k; ++A) {
var v = h[A];
c[A][0] = v[e];
c[A][1] = v[e + 1];
c[A][2] = v[e + 2];
c[A][3] = v[e + 3]
}
A = b(c, f);
g[e] = A[0];
g[e + 1] = A[1];
g[e + 2] = A[2];
g[e + 3] = A[3]
}
}
return g.buffer
}
}
function h(b, c) {
var e = Object.keys(b.lib || {
}).map(function (c) {
return 'var ' + c + ' = ' + b.lib[c].toString() + ';'
}).concat(['var __minion__ = (' + g.toString() + ')(',
b.operation.toString(),
');',
'self.addEventListener("message", function(__event__) {',
'var buffer = __minion__(__event__.data);',
'self.postMessage({buffer: buffer, meta: __event__.data.meta}, [buffer]);',
'});']),
e = URL.createObjectURL(new Blob(e, {
type: 'text/javascript'
})),
e = new Worker(e);
e.addEventListener('message', c);
return e
}
function k(b, c) {
var e = g(b.operation);
return {
postMessage: function (b) {
setTimeout(function () {
c({
data: {
  buffer: e(b),
  pe: b.pe
}
})
}, 0)
}
}
}
function m(b) {
this.Ze = !!b.Zk;
var c;
0 === b.threads ? c = 0 : this.Ze ? c = 1 : c = b.threads || 1;
var e = [
];
if (c) for (var f = 0; f < c; ++f) e[f] = h(b, this.hg.bind(this, f));
 else e[0] = k(b, this.hg.bind(this, 0));
this.Sd = e;
this.Yc = [
];
this.bj = b.co || Infinity;
this.Qd = 0;
this.Cc = {
};
this.$e = null
}
m.prototype.bo = function (b, c, e) {
this.Zi({
qc: b,
pe: c,
$c: e
});
this.eg()
};
m.prototype.Zi = function (b) {
for (this.Yc.push(b); this.Yc.length > this.bj; ) this.Yc.shift().$c(null, null)
};
m.prototype.eg = function () {
if (0 === this.Qd && 0 < this.Yc.length) {
var b = this.$e = this.Yc.shift(),
c = b.qc[0].width,
e = b.qc[0].height,
f = b.qc.map(function (b) {
return b.data.buffer
}),
g = this.Sd.length;
this.Qd = g;
if (1 === g) this.Sd[0].postMessage({
buffers: f,
meta: b.pe,
imageOps: this.Ze,
width: c,
height: e
}, f);
 else for (var h = 4 * Math.ceil(b.qc[0].data.length / 4 / g), k = 0; k < g; ++k) {
for (var m = k * h, A = [
], v = 0, O = f.length; v < O; ++v) A.push(f[k].slice(m, m + h));
this.Sd[k].postMessage({
buffers: A,
meta: b.pe,
imageOps: this.Ze,
width: c,
height: e
}, A)
}
}
};
m.prototype.hg = function (b, c) {
this.xp || (this.Cc[b] = c.data, --this.Qd, 0 === this.Qd && this.cj())
};
m.prototype.cj = function () {
var b = this.$e,
c = this.Sd.length,
e,
f;
if (1 === c) e = new Uint8ClampedArray(this.Cc[0].buffer),
f = this.Cc[0].meta;
 else {
var g = b.qc[0].data.length;
e = new Uint8ClampedArray(g);
f = Array(g);
for (var g = 4 * Math.ceil(g / 4 / c), h = 0; h < c; ++h) {
var k = h * g;
e.set(new Uint8ClampedArray(this.Cc[h].buffer), k);
f[h] = this.Cc[h].meta
}
}
this.$e = null;
this.Cc = {
};
b.$c(null, new ImageData(e, b.qc[0].width, b.qc[0].height), f);
this.eg()
};
c.ka = m
},
{
}
]
}, {
}, [
1
]) (1)
});
Ap = c.ka
}) ();
function eA(b) {
this.T = null;
this.xa = void 0 !== b.operationType ? b.operationType : 'pixel';
this.fb = void 0 !== b.threads ? b.threads : 1;
this.b = fA(b.sources);
for (var c = 0, d = this.b.length; c < d; ++c) C(this.b[c], 'change', this.s, !1, this);
this.g = Pi();
this.ga = new Kk(function () {
return 1
}, ra(this.s, this));
for (var c = gA(this.b), d = {
}, e = 0, f = c.length; e < f; ++e) d[w(c[e].layer)] = c[e];
this.i = this.l = null;
this.ea = {
animate: !1,
attributions: {
},
coordinateToPixelMatrix: Dd(),
extent: null,
focus: null,
index: 0,
layerStates: d,
layerStatesArray: c,
logos: {
},
pixelRatio: 1,
pixelToCoordinateMatrix: Dd(),
postRenderFunctions: [
],
size: [
0,
0
],
skippedFeatureUids: {
},
tileQueue: this.ga,
time: Date.now(),
usedTiles: {
},
viewState: {
rotation: 0
},
viewHints: [
],
wantedTiles: {
}
};
kn.call(this, {
});
void 0 !== b.operation && this.u(b.operation, b.lib)
}
y(eA, kn);
eA.prototype.u = function (b, c) {
this.T = new Ap.Ni({
operation: b,
Zk: 'image' === this.xa,
co: 1,
lib: c,
threads: this.fb
});
this.s()
};
function hA(b, c, d) {
var e = b.l;
return !e || b.c !== e.Ho || d !== e.resolution || !be(c, e.extent)
}
eA.prototype.C = function (b, c, d, e) {
d = !0;
for (var f, g = 0, h = this.b.length; g < h; ++g) if (f = this.b[g].a.fa(), 'ready' !== f.A) {
d = !1;
break
}
if (!d) return null;
if (!hA(this, b, c)) return this.i;
d = this.g.canvas;
f = Math.round(ke(b) / c);
g = Math.round(le(b) / c);
if (f !== d.width || g !== d.height) d.width = f,
d.height = g;
f = Ub(this.ea);
f.viewState = Ub(f.viewState);
var g = me(b),
h = Math.round(ke(b) / c),
k = Math.round(le(b) / c);
f.extent = b;
f.focus = me(b);
f.size[0] = h;
f.size[1] = k;
h = f.viewState;
h.center = g;
h.projection = e;
h.resolution = c;
this.i = e = new $m(b, c, 1, this.j, d, this.Z.bind(this, f));
this.l = {
extent: b,
resolution: c,
Ho: this.c
};
return e
};
eA.prototype.Z = function (b, c) {
for (var d = this.b.length, e = Array(d), f = 0; f < d; ++f) {
var g;
var h = this.b[f],
k = b;
h.zd(k, b.layerStatesArray[f]);
if (g = h.yd()) {
var h = h.mf(),
m = Math.round(h[12]),
n = Math.round(h[13]),
p = k.size[0],
k = k.size[1];
if (g instanceof Image) {
if (iA) {
var q = iA.canvas;
q.width !== p || q.height !== k ? iA = Pi(p, k)  : iA.clearRect(0, 0, p, k)
} else iA = Pi(p, k);
iA.drawImage(g, m, n, Math.round(g.width * h[0]), Math.round(g.height * h[5]));
g = iA.getImageData(0, 0, p, k)
} else g = g.getContext('2d').getImageData( - m, - n, p, k)
} else g = null;
if (g) e[f] = g;
 else return
}
d = {
};
this.o(new jA(kA, b, d));
this.T.bo(e, d, this.pa.bind(this, b, c));
Lk(b.tileQueue, 16, 16)
};
eA.prototype.pa = function (b, c, d, e, f) {
d ? c(d)  : e && (this.o(new jA(lA, b, f)), hA(this, b.extent, b.viewState.resolution / b.pixelRatio) || this.g.putImageData(e, 0, 0), c(null))
};
var iA = null;
function gA(b) {
return b.map(function (b) {
return bk(b.a)
})
}
function fA(b) {
for (var c = b.length, d = Array(c), e = 0; e < c; ++e) {
var f = e,
g = b[e],
h = null;
g instanceof Ph ? (g = new F({
source: g
}), h = new Rp(g))  : g instanceof kn && (g = new Sl({
source: g
}), h = new Qp(g));
d[f] = h
}
return d
}
function jA(b, c, d) {
vc.call(this, b);
this.extent = c.extent;
this.resolution = c.viewState.resolution / c.pixelRatio;
this.data = d
}
y(jA, vc);
var kA = 'beforeoperations',
lA = 'afteroperations';
var mA = {
terrain: {
nb: 'jpg',
opaque: !0
},
'terrain-background': {
nb: 'jpg',
opaque: !0
},
'terrain-labels': {
nb: 'png',
opaque: !1
},
'terrain-lines': {
nb: 'png',
opaque: !1
},
'toner-background': {
nb: 'png',
opaque: !0
},
toner: {
nb: 'png',
opaque: !0
},
'toner-hybrid': {
nb: 'png',
opaque: !1
},
'toner-labels': {
nb: 'png',
opaque: !1
},
'toner-lines': {
nb: 'png',
opaque: !1
},
'toner-lite': {
nb: 'png',
opaque: !0
},
watercolor: {
nb: 'jpg',
opaque: !0
}
},
nA = {
terrain: {
minZoom: 4,
maxZoom: 18
},
toner: {
minZoom: 0,
maxZoom: 20
},
watercolor: {
minZoom: 3,
maxZoom: 16
}
};
function oA(b) {
var c = b.layer.indexOf('-'),
c = - 1 == c ? b.layer : b.layer.slice(0, c),
d = mA[b.layer];
Zz.call(this, {
attributions: pA,
crossOrigin: 'anonymous',
maxZoom: nA[c].maxZoom,
opaque: d.opaque,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileLoadFunction: b.tileLoadFunction,
url: void 0 !== b.url ? b.url : 'https://stamen-tiles-{a-d}.a.ssl.fastly.net/' + b.layer + '/{z}/{x}/{y}.' + d.nb
})
}
y(oA, Zz);
var pA = [
new mg({
html: 'Map tiles by <a href="http://stamen.com/">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.'
}),
aA
];
function qA(b) {
b = b || {
};
var c = void 0 !== b.params ? b.params : {
};
Y.call(this, {
attributions: b.attributions,
crossOrigin: b.crossOrigin,
logo: b.logo,
projection: b.projection,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileGrid: b.tileGrid,
tileLoadFunction: b.tileLoadFunction,
tileUrlFunction: ra(this.G, this),
url: b.url,
urls: b.urls,
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
});
this.g = c;
this.l = Od()
}
y(qA, Y);
qA.prototype.D = function () {
return this.g
};
qA.prototype.Pb = function (b, c, d) {
b = qA.da.Pb.call(this, b, c, d);
return 1 == c ? b : nd(b, c, this.b)
};
qA.prototype.G = function (b, c, d) {
var e = this.tileGrid;
e || (e = this.hb(d));
if (!(e.a.length <= b[0])) {
var f = e.Aa(b, this.l),
g = od(e.Ha(b[0]), this.b);
1 != c && (g = nd(g, c, this.b));
e = {
F: 'image',
FORMAT: 'PNG32',
TRANSPARENT: !0
};
Xb(e, this.g);
var h = this.urls;
h ? (d = d.a.split(':').pop(), e.SIZE = g[0] + ',' + g[1], e.BBOX = f.join(','), e.BBOXSR = d, e.IMAGESR = d, e.DPI = Math.round(90 * c), b = 1 == h.length ? h[0] : h[pd((b[1] << b[0]) + b[2], h.length)], Aa(b, '/') || (b += '/'), Aa(b, 'MapServer/') ? b += 'export' : Aa(b, 'ImageServer/') && (b += 'exportImage'), b = lo(no([b], e)))  : b = void 0;
return b
}
};
qA.prototype.Z = function (b) {
Xb(this.g, b);
this.s()
};
function rA(b, c, d) {
wh.call(this, b, 2);
this.g = c;
this.b = d;
this.c = {
}
}
y(rA, wh);
rA.prototype.Sa = function (b) {
b = void 0 !== b ? w(b)  : - 1;
if (b in this.c) return this.c[b];
var c = this.g,
d = Pi(c[0], c[1]);
d.strokeStyle = 'black';
d.strokeRect(0.5, 0.5, c[0] + 0.5, c[1] + 0.5);
d.fillStyle = 'black';
d.textAlign = 'center';
d.textBaseline = 'middle';
d.font = '24px sans-serif';
d.fillText(this.b, c[0] / 2, c[1] / 2);
return this.c[b] = d.canvas
};
function sA(b) {
Ph.call(this, {
opaque: !1,
projection: b.projection,
tileGrid: b.tileGrid,
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
})
}
y(sA, Ph);
sA.prototype.Ob = function (b, c, d) {
var e = this.gb(b, c, d);
if (sh(this.a, e)) return this.a.get(e);
var f = od(this.tileGrid.Ha(b));
b = [
b,
c,
d
];
c = (c = Rh(this, b)) ? fg(Rh(this, c))  : '';
f = new rA(b, f, c);
this.a.set(e, f);
return f
};
function tA(b) {
Y.call(this, {
attributions: b.attributions,
crossOrigin: b.crossOrigin,
projection: Fe('EPSG:3857'),
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
state: 'loading',
tileLoadFunction: b.tileLoadFunction,
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
});
Iz(new Gz(b.url), void 0, ra(this.l, this), ra(this.g, this))
}
y(tA, Y);
tA.prototype.l = function (b) {
var c = Fe('EPSG:4326'),
d = this.f,
e;
void 0 !== b.bounds && (e = re(b.bounds, Je(c, d)));
var f = b.minzoom || 0,
g = b.maxzoom || 22;
this.tileGrid = d = Oh({
extent: Mh(d),
maxZoom: g,
minZoom: f
});
this.tileUrlFunction = Vp(b.tiles, d);
if (void 0 !== b.attribution && !this.j) {
c = void 0 !== e ? e : c.J();
e = {
};
for (var h; f <= g; ++f) h = f.toString(),
e[h] = [
Fh(d, c, f)
];
this.na([new mg({
html: b.attribution,
tileRanges: e
})])
}
Ah(this, 'ready')
};
tA.prototype.g = function () {
Ah(this, 'error')
};
function uA(b) {
Ph.call(this, {
projection: Fe('EPSG:3857'),
state: 'loading'
});
this.l = void 0 !== b.preemptive ? b.preemptive : !0;
this.g = Xp;
this.i = void 0;
Iz(new Gz(b.url), void 0, ra(this.Vm, this))
}
y(uA, Ph);
l = uA.prototype;
l.ik = function () {
return this.i
};
l.vj = function (b, c, d, e, f) {
this.tileGrid ? (c = this.tileGrid.ee(b, c), vA(this.Ob(c[0], c[1], c[2], 1, this.f), b, d, e, f))  : !0 === f ? ni(function () {
d.call(e, null)
})  : d.call(e, null)
};
l.Vm = function (b) {
var c = Fe('EPSG:4326'),
d = this.f,
e;
void 0 !== b.bounds && (e = re(b.bounds, Je(c, d)));
var f = b.minzoom || 0,
g = b.maxzoom || 22;
this.tileGrid = d = Oh({
extent: Mh(d),
maxZoom: g,
minZoom: f
});
this.i = b.template;
var h = b.grids;
if (h) {
this.g = Vp(h, d);
if (void 0 !== b.attribution) {
c = void 0 !== e ? e : c.J();
for (e = {
}; f <= g; ++f) h = f.toString(),
e[h] = [
Fh(d, c, f)
];
this.na([new mg({
html: b.attribution,
tileRanges: e
})])
}
Ah(this, 'ready')
} else Ah(this, 'error')
};
l.Ob = function (b, c, d, e, f) {
var g = this.gb(b, c, d);
if (sh(this.a, g)) return this.a.get(g);
b = [
b,
c,
d
];
c = Rh(this, b, f);
e = this.g(c, e, f);
e = new wA(b, void 0 !== e ? 0 : 4, void 0 !== e ? e : '', this.tileGrid.Aa(b), this.l);
this.a.set(g, e);
return e
};
l.Xf = function (b, c, d) {
b = this.gb(b, c, d);
sh(this.a, b) && this.a.get(b)
};
function wA(b, c, d, e, f) {
wh.call(this, b, c);
this.i = d;
this.c = e;
this.l = f;
this.j = this.g = this.b = null
}
y(wA, wh);
l = wA.prototype;
l.Sa = function () {
return null
};
function xA(b, c) {
if (!b.b || !b.g || !b.j) return null;
var d = b.b[Math.floor((1 - (c[1] - b.c[1]) / (b.c[3] - b.c[1])) * b.b.length)];
if (!ia(d)) return null;
d = d.charCodeAt(Math.floor((c[0] - b.c[0]) / (b.c[2] - b.c[0]) * d.length));
93 <= d && d--;
35 <= d && d--;
d -= 32;
return d in b.g ? b.j[b.g[d]] : null
}
function vA(b, c, d, e, f) {
0 == b.state && !0 === f ? (Xc(b, 'change', function () {
d.call(e, xA(this, c))
}, !1, b), yA(b))  : !0 === f ? ni(function () {
d.call(e, xA(this, c))
}, b)  : d.call(e, xA(b, c))
}
l.tb = function () {
return this.i
};
l.xk = function () {
this.state = 3;
xh(this)
};
l.Um = function (b) {
this.b = b.grid;
this.g = b.keys;
this.j = b.data;
this.state = 4;
xh(this)
};
function yA(b) {
0 == b.state && (b.state = 1, Iz(new Gz(b.i), void 0, ra(b.Um, b), ra(b.xk, b)))
}
l.load = function () {
this.l && yA(this)
};
function zA(b) {
b = b || {
};
var c = void 0 !== b.params ? b.params : {
};
Y.call(this, {
attributions: b.attributions,
crossOrigin: b.crossOrigin,
logo: b.logo,
opaque: !Sb(c, 'TRANSPARENT', !0),
projection: b.projection,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileGrid: b.tileGrid,
tileLoadFunction: b.tileLoadFunction,
tileUrlFunction: ra(this.Ym, this),
url: b.url,
urls: b.urls,
wrapX: void 0 !== b.wrapX ? b.wrapX : !0
});
this.D = void 0 !== b.gutter ? b.gutter : 0;
this.g = c;
this.l = !0;
this.G = b.serverType;
this.ea = void 0 !== b.hidpi ? b.hidpi :
!0;
this.Z = '';
AA(this);
this.ga = Od();
BA(this)
}
y(zA, Y);
l = zA.prototype;
l.Wm = function (b, c, d, e) {
d = Fe(d);
var f = this.tileGrid;
f || (f = this.hb(d));
c = f.ee(b, c);
if (!(f.a.length <= c[0])) {
var g = f.$(c[0]),
h = f.Aa(c, this.ga),
f = od(f.Ha(c[0]), this.b),
k = this.D;
0 !== k && (f = md(f, k, this.b), h = Sd(h, g * k, h));
k = {
SERVICE: 'WMS',
VERSION: '1.3.0',
REQUEST: 'GetFeatureInfo',
FORMAT: 'image/png',
TRANSPARENT: !0,
QUERY_LAYERS: this.g.LAYERS
};
Xb(k, this.g, e);
e = Math.floor((h[3] - b[1]) / g);
k[this.l ? 'I' : 'X'] = Math.floor((b[0] - h[0]) / g);
k[this.l ? 'J' : 'Y'] = e;
return CA(this, c, f, h, 1, d, k)
}
};
l.$d = function () {
return this.D
};
l.gb = function (b, c, d) {
return this.Z + zA.da.gb.call(this, b, c, d)
};
l.Xm = function () {
return this.g
};
function CA(b, c, d, e, f, g, h) {
var k = b.urls;
if (k) {
h.WIDTH = d[0];
h.HEIGHT = d[1];
h[b.l ? 'CRS' : 'SRS'] = g.a;
'STYLES' in b.g || (h.STYLES = new String(''));
if (1 != f) switch (b.G) {
case 'geoserver':
d = 90 * f + 0.5 | 0;
h.FORMAT_OPTIONS = 'FORMAT_OPTIONS' in h ? h.FORMAT_OPTIONS + (';dpi:' + d)  : 'dpi:' + d;
break;
case 'mapserver':
h.MAP_RESOLUTION = 90 * f;
break;
case 'carmentaserver':
case 'qgis':
h.DPI = 90 * f
}
g = g.g;
b.l && 'ne' == g.substr(0, 2) && (b = e[0], e[0] = e[1], e[1] = b, b = e[2], e[2] = e[3], e[3] = b);
h.BBOX = e.join(',');
return lo(no([1 == k.length ? k[0] : k[pd((c[1] <<
c[0]) + c[2], k.length)]], h))
}
}
l.Pb = function (b, c, d) {
b = zA.da.Pb.call(this, b, c, d);
return 1 != c && this.ea && void 0 !== this.G ? nd(b, c, this.b)  : b
};
function AA(b) {
var c = 0,
d = [
];
if (b.urls) {
var e,
f;
e = 0;
for (f = b.urls.length; e < f; ++e) d[c++] = b.urls[e]
}
for (var g in b.g) d[c++] = g + '-' + b.g[g];
b.Z = d.join('#')
}
l.Ym = function (b, c, d) {
var e = this.tileGrid;
e || (e = this.hb(d));
if (!(e.a.length <= b[0])) {
1 == c || this.ea && void 0 !== this.G || (c = 1);
var f = e.$(b[0]),
g = e.Aa(b, this.ga),
e = od(e.Ha(b[0]), this.b),
h = this.D;
0 !== h && (e = md(e, h, this.b), g = Sd(g, f * h, g));
1 != c && (e = nd(e, c, this.b));
f = {
SERVICE: 'WMS',
VERSION: '1.3.0',
REQUEST: 'GetMap',
FORMAT: 'image/png',
TRANSPARENT: !0
};
Xb(f, this.g);
return CA(this, b, e, g, c, d, f)
}
};
l.Zm = function (b) {
Xb(this.g, b);
AA(this);
BA(this);
this.s()
};
function BA(b) {
b.l = 0 <= Pa(Sb(b.g, 'VERSION', '1.3.0'), '1.3')
};
function DA(b) {
this.i = b.matrixIds;
Bh.call(this, {
extent: b.extent,
origin: b.origin,
origins: b.origins,
resolutions: b.resolutions,
tileSize: b.tileSize,
tileSizes: b.tileSizes,
sizes: b.sizes
})
}
y(DA, Bh);
DA.prototype.B = function () {
return this.i
};
function EA(b, c) {
var d = [
],
e = [
],
f = [
],
g = [
],
h = [
],
k;
k = Fe(b.SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, '$1:$3'));
var m = k.Jc(),
n = 'ne' == k.g.substr(0, 2);
ob(b.TileMatrix, function (b, c) {
return c.ScaleDenominator - b.ScaleDenominator
});
b.TileMatrix.forEach(function (b) {
e.push(b.Identifier);
var c = 0.00028 * b.ScaleDenominator / m,
k = b.TileWidth,
t = b.TileHeight;
n ? f.push([b.TopLeftCorner[1],
b.TopLeftCorner[0]])  : f.push(b.TopLeftCorner);
d.push(c);
g.push(k == t ? k : [
k,
t
]);
h.push([b.MatrixWidth,
- b.MatrixHeight])
});
return new DA({
extent: c,
origins: f,
resolutions: d,
matrixIds: e,
tileSizes: g,
sizes: h
})
};
function Z(b) {
function c(b) {
b = 'KVP' == e ? lo(no([b], g))  : b.replace(/\{(\w+?)\}/g, function (b, c) {
return c.toLowerCase() in g ? g[c.toLowerCase()] : b
});
return function (c) {
if (c) {
var d = {
TileMatrix: f.i[c[0]],
TileCol: c[1],
TileRow: - c[2] - 1
};
Xb(d, h);
c = b;
return c = 'KVP' == e ? lo(no([c], d))  : c.replace(/\{(\w+?)\}/g, function (b, c) {
return d[c]
})
}
}
}
this.ga = void 0 !== b.version ? b.version : '1.0.0';
this.G = void 0 !== b.format ? b.format : 'image/jpeg';
this.g = void 0 !== b.dimensions ? b.dimensions : {
};
this.D = '';
FA(this);
this.Z = b.layer;
this.l = b.matrixSet;
this.ea = b.style;
var d = b.urls;
void 0 === d && void 0 !== b.url && (d = Yp(b.url));
var e = this.va = void 0 !== b.requestEncoding ? b.requestEncoding : 'KVP',
f = b.tileGrid,
g = {
layer: this.Z,
style: this.ea,
tilematrixset: this.l
};
'KVP' == e && Xb(g, {
Service: 'WMTS',
Request: 'GetTile',
Version: this.ga,
Format: this.G
});
var h = this.g,
k = d && 0 < d.length ? Wp(d.map(c))  : Xp;
Y.call(this, {
attributions: b.attributions,
crossOrigin: b.crossOrigin,
logo: b.logo,
projection: b.projection,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileClass: b.tileClass,
tileGrid: f,
tileLoadFunction: b.tileLoadFunction,
tilePixelRatio: b.tilePixelRatio,
tileUrlFunction: k,
urls: d,
wrapX: void 0 !== b.wrapX ? b.wrapX : !1
})
}
y(Z, Y);
l = Z.prototype;
l.Hj = function () {
return this.g
};
l.$m = function () {
return this.G
};
l.gb = function (b, c, d) {
return this.D + Z.da.gb.call(this, b, c, d)
};
l.an = function () {
return this.Z
};
l.Uj = function () {
return this.l
};
l.gk = function () {
return this.va
};
l.bn = function () {
return this.ea
};
l.mk = function () {
return this.ga
};
function FA(b) {
var c = 0,
d = [
],
e;
for (e in b.g) d[c++] = e + '-' + b.g[e];
b.D = d.join('/')
}
l.cp = function (b) {
Xb(this.g, b);
FA(this);
this.s()
};
function GA(b) {
b = b || {
};
var c = b.size,
d = c[0],
e = c[1],
f = [
],
g = 256;
switch (void 0 !== b.tierSizeCalculation ? b.tierSizeCalculation : 'default') {
case 'default':
for (; d > g || e > g; ) f.push([Math.ceil(d / g),
Math.ceil(e / g)]),
g += g;
break;
case 'truncated':
for (; d > g || e > g; ) f.push([Math.ceil(d / g),
Math.ceil(e / g)]),
d >>= 1,
e >>= 1
}
f.push([1,
1]);
f.reverse();
for (var g = [
1
], h = [
0
], e = 1, d = f.length; e < d; e++) g.push(1 << e),
h.push(f[e - 1][0] * f[e - 1][1] + h[e - 1]);
g.reverse();
var c = [
0,
- c[1],
c[0],
0
],
c = new Bh({
extent: c,
origin: he(c),
resolutions: g
}),
k = b.url;
Y.call(this, {
attributions: b.attributions,
crossOrigin: b.crossOrigin,
logo: b.logo,
reprojectionErrorThreshold: b.reprojectionErrorThreshold,
tileClass: HA,
tileGrid: c,
tileUrlFunction: function (b) {
if (b) {
var c = b[0],
d = b[1];
b = - b[2] - 1;
return k + 'TileGroup' + ((d + b * f[c][0] + h[c]) / 256 | 0) + '/' + c + '-' + d + '-' + b + '.jpg'
}
}
})
}
y(GA, Y);
function HA(b, c, d, e, f) {
ay.call(this, b, c, d, e, f);
this.g = {
}
}
y(HA, ay);
HA.prototype.Sa = function (b) {
var c = void 0 !== b ? w(b).toString()  : '';
if (c in this.g) return this.g[c];
b = HA.da.Sa.call(this, b);
if (2 == this.state) {
if (256 == b.width && 256 == b.height) return this.g[c] = b;
var d = Pi(256, 256);
d.drawImage(b, 0, 0);
return this.g[c] = d.canvas
}
return b
};
function IA(b) {
b = b || {
};
this.c = void 0 !== b.initialSize ? b.initialSize : 256;
this.b = void 0 !== b.maxSize ? b.maxSize : void 0 !== ua ? ua : 2048;
this.a = void 0 !== b.space ? b.space : 1;
this.g = [
new JA(this.c, this.a)
];
this.f = this.c;
this.j = [
new JA(this.f, this.a)
]
}
IA.prototype.add = function (b, c, d, e, f, g) {
if (c + this.a > this.b || d + this.a > this.b) return null;
e = KA(this, !1, b, c, d, e, g);
if (!e) return null;
b = KA(this, !0, b, c, d, void 0 !== f ? f : ve, g);
return {
offsetX: e.offsetX,
offsetY: e.offsetY,
image: e.image,
Mg: b.image
}
};
function KA(b, c, d, e, f, g, h) {
var k = c ? b.j : b.g,
m,
n,
p;
n = 0;
for (p = k.length; n < p; ++n) {
m = k[n];
if (m = m.add(d, e, f, g, h)) return m;
m || n !== p - 1 || (c ? (m = Math.min(2 * b.f, b.b), b.f = m)  : (m = Math.min(2 * b.c, b.b), b.c = m), m = new JA(m, b.a), k.push(m), ++p)
}
}
function JA(b, c) {
this.a = c;
this.c = [
{
x: 0,
y: 0,
width: b,
height: b
}
];
this.f = {
};
this.b = Kg('CANVAS');
this.b.width = b;
this.b.height = b;
this.g = this.b.getContext('2d')
}
JA.prototype.get = function (b) {
return Sb(this.f, b, null)
};
JA.prototype.add = function (b, c, d, e, f) {
var g,
h,
k;
h = 0;
for (k = this.c.length; h < k; ++h) if (g = this.c[h], g.width >= c + this.a && g.height >= d + this.a) return k = {
offsetX: g.x + this.a,
offsetY: g.y + this.a,
image: this.b
},
this.f[b] = k,
e.call(f, this.g, g.x + this.a, g.y + this.a),
b = h,
c = c + this.a,
d = d + this.a,
f = e = void 0,
g.width - c > g.height - d ? (e = {
x: g.x + c,
y: g.y,
width: g.width - c,
height: g.height
}, f = {
x: g.x,
y: g.y + d,
width: c,
height: g.height - d
}, LA(this, b, e, f))  : (e = {
x: g.x + c,
y: g.y,
width: g.width - c,
height: d
}, f = {
x: g.x,
y: g.y + d,
width: g.width,
height: g.height -
d
}, LA(this, b, e, f)),
k;
return null
};
function LA(b, c, d, e) {
c = [
c,
1
];
0 < d.width && 0 < d.height && c.push(d);
0 < e.width && 0 < e.height && c.push(e);
b.c.splice.apply(b.c, c)
};
function MA(b) {
this.C = this.f = this.g = null;
this.B = void 0 !== b.fill ? b.fill : null;
this.S = [
0,
0
];
this.a = b.points;
this.b = void 0 !== b.radius ? b.radius : b.radius1;
this.j = void 0 !== b.radius2 ? b.radius2 : this.b;
this.l = void 0 !== b.angle ? b.angle : 0;
this.c = void 0 !== b.stroke ? b.stroke : null;
this.oa = this.U = this.ia = null;
var c = b.atlasManager,
d = '',
e = '',
f = 0,
g = null,
h,
k = 0;
this.c && (h = vg(this.c.a), k = this.c.c, void 0 === k && (k = 1), g = this.c.b, Yi || (g = null), e = this.c.g, void 0 === e && (e = 'round'), d = this.c.f, void 0 === d && (d = 'round'), f = this.c.j, void 0 ===
f && (f = 10));
var m = 2 * (this.b + k) + 1,
d = {
strokeStyle: h,
Hd: k,
size: m,
lineCap: d,
lineDash: g,
lineJoin: e,
miterLimit: f
};
if (void 0 === c) {
this.f = Kg('CANVAS');
this.f.height = m;
this.f.width = m;
var c = m = this.f.width,
n = this.f.getContext('2d');
this.uh(d, n, 0, 0);
this.B ? this.C = this.f : (n = this.C = Kg('CANVAS'), n.height = d.size, n.width = d.size, n = n.getContext('2d'), this.th(d, n, 0, 0))
} else m = Math.round(m),
(e = !this.B) && (n = ra(this.th, this, d)),
f = this.Ib(),
n = c.add(f, m, m, ra(this.uh, this, d), n),
this.f = n.image,
this.S = [
n.offsetX,
n.offsetY
],
c =
n.image.width,
this.C = e ? n.Mg : this.f;
this.ia = [
m / 2,
m / 2
];
this.U = [
m,
m
];
this.oa = [
c,
c
];
vk.call(this, {
opacity: 1,
rotateWithView: !1,
rotation: void 0 !== b.rotation ? b.rotation : 0,
scale: 1,
snapToPixel: void 0 !== b.snapToPixel ? b.snapToPixel : !0
})
}
y(MA, vk);
l = MA.prototype;
l.Xb = function () {
return this.ia
};
l.gn = function () {
return this.l
};
l.hn = function () {
return this.B
};
l.ze = function () {
return this.C
};
l.fc = function () {
return this.f
};
l.qd = function () {
return this.oa
};
l.Bd = function () {
return 2
};
l.Ca = function () {
return this.S
};
l.jn = function () {
return this.a
};
l.kn = function () {
return this.b
};
l.fk = function () {
return this.j
};
l.Bb = function () {
return this.U
};
l.ln = function () {
return this.c
};
l.sf = wa;
l.load = wa;
l.Wf = wa;
l.uh = function (b, c, d, e) {
var f;
c.setTransform(1, 0, 0, 1, 0, 0);
c.translate(d, e);
c.beginPath();
this.j !== this.b && (this.a *= 2);
for (d = 0; d <= this.a; d++) e = 2 * d * Math.PI / this.a - Math.PI / 2 + this.l,
f = 0 === d % 2 ? this.b : this.j,
c.lineTo(b.size / 2 + f * Math.cos(e), b.size / 2 + f * Math.sin(e));
this.B && (c.fillStyle = vg(this.B.a), c.fill());
this.c && (c.strokeStyle = b.strokeStyle, c.lineWidth = b.Hd, b.lineDash && c.setLineDash(b.lineDash), c.lineCap = b.lineCap, c.lineJoin = b.lineJoin, c.miterLimit = b.miterLimit, c.stroke());
c.closePath()
};
l.th = function (b, c, d, e) {
c.setTransform(1, 0, 0, 1, 0, 0);
c.translate(d, e);
c.beginPath();
this.j !== this.b && (this.a *= 2);
var f;
for (d = 0; d <= this.a; d++) f = 2 * d * Math.PI / this.a - Math.PI / 2 + this.l,
e = 0 === d % 2 ? this.b : this.j,
c.lineTo(b.size / 2 + e * Math.cos(f), b.size / 2 + e * Math.sin(f));
c.fillStyle = Tl;
c.fill();
this.c && (c.strokeStyle = b.strokeStyle, c.lineWidth = b.Hd, b.lineDash && c.setLineDash(b.lineDash), c.stroke());
c.closePath()
};
l.Ib = function () {
var b = this.c ? this.c.Ib()  : '-',
c = this.B ? this.B.Ib()  : '-';
this.g && b == this.g[1] && c == this.g[2] && this.b == this.g[3] && this.j == this.g[4] && this.l == this.g[5] && this.a == this.g[6] || (this.g = [
'r' + b + c + (void 0 !== this.b ? this.b.toString()  : '-') + (void 0 !== this.j ? this.j.toString()  : '-') + (void 0 !== this.l ? this.l.toString()  : '-') + (void 0 !== this.a ? this.a.toString()  : '-'),
b,
c,
this.b,
this.j,
this.l,
this.a
]);
return this.g[0]
};
u('ol.animation.bounce', function (b) {
var c = b.resolution,
d = b.start ? b.start : Date.now(),
e = void 0 !== b.duration ? b.duration : 1000,
f = b.easing ? b.easing : Yf;
return function (b, h) {
if (h.time < d) return h.animate = !0,
h.viewHints[0] += 1,
!0;
if (h.time < d + e) {
var k = f((h.time - d) / e),
m = c - h.viewState.resolution;
h.animate = !0;
h.viewState.resolution += k * m;
h.viewHints[0] += 1;
return !0
}
return !1
}
}, OPENLAYERS);
u('ol.animation.pan', Zf, OPENLAYERS);
u('ol.animation.rotate', ag, OPENLAYERS);
u('ol.animation.zoom', bg, OPENLAYERS);
u('ol.Attribution', mg, OPENLAYERS);
mg.prototype.getHTML = mg.prototype.b;
ng.prototype.element = ng.prototype.element;
u('ol.Collection', og, OPENLAYERS);
og.prototype.clear = og.prototype.clear;
og.prototype.extend = og.prototype.tf;
og.prototype.forEach = og.prototype.forEach;
og.prototype.getArray = og.prototype.sl;
og.prototype.item = og.prototype.item;
og.prototype.getLength = og.prototype.$b;
og.prototype.insertAt = og.prototype.ke;
og.prototype.pop = og.prototype.pop;
og.prototype.push = og.prototype.push;
og.prototype.remove = og.prototype.remove;
og.prototype.removeAt = og.prototype.Rf;
og.prototype.setAt = og.prototype.Jo;
u('ol.coordinate.add', rd, OPENLAYERS);
u('ol.coordinate.createStringXY', function (b) {
return function (c) {
return zd(c, b)
}
}, OPENLAYERS);
u('ol.coordinate.format', ud, OPENLAYERS);
u('ol.coordinate.rotate', wd, OPENLAYERS);
u('ol.coordinate.toStringHDMS', function (b) {
return b ? td(b[1], 'NS') + ' ' + td(b[0], 'EW')  : ''
}, OPENLAYERS);
u('ol.coordinate.toStringXY', zd, OPENLAYERS);
u('ol.DeviceOrientation', Pr, OPENLAYERS);
Pr.prototype.getAlpha = Pr.prototype.Bj;
Pr.prototype.getBeta = Pr.prototype.Ej;
Pr.prototype.getGamma = Pr.prototype.Kj;
Pr.prototype.getHeading = Pr.prototype.tl;
Pr.prototype.getTracking = Pr.prototype.Tg;
Pr.prototype.setTracking = Pr.prototype.uf;
u('ol.easing.easeIn', Uf, OPENLAYERS);
u('ol.easing.easeOut', Vf, OPENLAYERS);
u('ol.easing.inAndOut', Wf, OPENLAYERS);
u('ol.easing.linear', Xf, OPENLAYERS);
u('ol.easing.upAndDown', Yf, OPENLAYERS);
u('ol.extent.boundingExtent', Nd, OPENLAYERS);
u('ol.extent.buffer', Sd, OPENLAYERS);
u('ol.extent.containsCoordinate', Vd, OPENLAYERS);
u('ol.extent.containsExtent', Xd, OPENLAYERS);
u('ol.extent.containsXY', Wd, OPENLAYERS);
u('ol.extent.createEmpty', Od, OPENLAYERS);
u('ol.extent.equals', be, OPENLAYERS);
u('ol.extent.extend', ce, OPENLAYERS);
u('ol.extent.getBottomLeft', ee, OPENLAYERS);
u('ol.extent.getBottomRight', fe, OPENLAYERS);
u('ol.extent.getCenter', me, OPENLAYERS);
u('ol.extent.getHeight', le, OPENLAYERS);
u('ol.extent.getIntersection', oe, OPENLAYERS);
u('ol.extent.getSize', function (b) {
return [b[2] - b[0],
b[3] - b[1]]
}, OPENLAYERS);
u('ol.extent.getTopLeft', he, OPENLAYERS);
u('ol.extent.getTopRight', ge, OPENLAYERS);
u('ol.extent.getWidth', ke, OPENLAYERS);
u('ol.extent.intersects', pe, OPENLAYERS);
u('ol.extent.isEmpty', je, OPENLAYERS);
u('ol.extent.applyTransform', re, OPENLAYERS);
u('ol.Feature', sn, OPENLAYERS);
sn.prototype.clone = sn.prototype.clone;
sn.prototype.getGeometry = sn.prototype.W;
sn.prototype.getId = sn.prototype.Na;
sn.prototype.getGeometryName = sn.prototype.Mj;
sn.prototype.getStyle = sn.prototype.vl;
sn.prototype.getStyleFunction = sn.prototype.Qb;
sn.prototype.setGeometry = sn.prototype.La;
sn.prototype.setStyle = sn.prototype.vf;
sn.prototype.setId = sn.prototype.ic;
sn.prototype.setGeometryName = sn.prototype.vc;
u('ol.featureloader.tile', up, OPENLAYERS);
u('ol.featureloader.xhr', vp, OPENLAYERS);
u('ol.Geolocation', Px, OPENLAYERS);
Px.prototype.getAccuracy = Px.prototype.zj;
Px.prototype.getAccuracyGeometry = Px.prototype.Aj;
Px.prototype.getAltitude = Px.prototype.Cj;
Px.prototype.getAltitudeAccuracy = Px.prototype.Dj;
Px.prototype.getHeading = Px.prototype.xl;
Px.prototype.getPosition = Px.prototype.yl;
Px.prototype.getProjection = Px.prototype.Ug;
Px.prototype.getSpeed = Px.prototype.hk;
Px.prototype.getTracking = Px.prototype.Vg;
Px.prototype.getTrackingOptions = Px.prototype.Gg;
Px.prototype.setProjection = Px.prototype.Wg;
Px.prototype.setTracking = Px.prototype.qe;
Px.prototype.setTrackingOptions = Px.prototype.ei;
u('ol.Graticule', Vx, OPENLAYERS);
Vx.prototype.getMap = Vx.prototype.Bl;
Vx.prototype.getMeridians = Vx.prototype.Vj;
Vx.prototype.getParallels = Vx.prototype.bk;
Vx.prototype.setMap = Vx.prototype.setMap;
u('ol.has.DEVICE_PIXEL_RATIO', Xi, OPENLAYERS);
u('ol.has.CANVAS', Zi, OPENLAYERS);
u('ol.has.DEVICE_ORIENTATION', $i, OPENLAYERS);
u('ol.has.GEOLOCATION', aj, OPENLAYERS);
u('ol.has.TOUCH', bj, OPENLAYERS);
u('ol.has.WEBGL', Wi, OPENLAYERS);
$x.prototype.getImage = $x.prototype.a;
ay.prototype.getImage = ay.prototype.Sa;
u('ol.Kinetic', Mk, OPENLAYERS);
u('ol.loadingstrategy.all', wp, OPENLAYERS);
u('ol.loadingstrategy.bbox', function (b) {
return [b]
}, OPENLAYERS);
u('ol.loadingstrategy.tile', function (b) {
return function (c, d) {
var e = Kh(b, d),
f = Fh(b, c, e),
g = [
],
e = [
e,
0,
0
];
for (e[1] = f.a; e[1] <= f.f; ++e[1]) for (e[2] = f.c; e[2] <= f.b; ++e[2]) g.push(b.Aa(e));
return g
}
}, OPENLAYERS);
u('ol.Map', S, OPENLAYERS);
S.prototype.addControl = S.prototype.hj;
S.prototype.addInteraction = S.prototype.ij;
S.prototype.addLayer = S.prototype.jg;
S.prototype.addOverlay = S.prototype.kg;
S.prototype.beforeRender = S.prototype.Ma;
S.prototype.forEachFeatureAtPixel = S.prototype.od;
S.prototype.forEachLayerAtPixel = S.prototype.Fl;
S.prototype.hasFeatureAtPixel = S.prototype.Yk;
S.prototype.getEventCoordinate = S.prototype.Ij;
S.prototype.getEventPixel = S.prototype.Zd;
S.prototype.getTarget = S.prototype.wf;
S.prototype.getTargetElement = S.prototype.Lc;
S.prototype.getCoordinateFromPixel = S.prototype.Fa;
S.prototype.getControls = S.prototype.Gj;
S.prototype.getOverlays = S.prototype.$j;
S.prototype.getOverlayById = S.prototype.Zj;
S.prototype.getInteractions = S.prototype.Nj;
S.prototype.getLayerGroup = S.prototype.oc;
S.prototype.getLayers = S.prototype.Xg;
S.prototype.getPixelFromCoordinate = S.prototype.Oa;
S.prototype.getSize = S.prototype.Ra;
S.prototype.getView = S.prototype.aa;
S.prototype.getViewport = S.prototype.nk;
S.prototype.renderSync = S.prototype.Fo;
S.prototype.render = S.prototype.render;
S.prototype.removeControl = S.prototype.yo;
S.prototype.removeInteraction = S.prototype.zo;
S.prototype.removeLayer = S.prototype.Bo;
S.prototype.removeOverlay = S.prototype.Co;
S.prototype.setLayerGroup = S.prototype.Xh;
S.prototype.setSize = S.prototype.Uf;
S.prototype.setTarget = S.prototype.Gl;
S.prototype.setView = S.prototype.To;
S.prototype.updateSize = S.prototype.Uc;
Mj.prototype.originalEvent = Mj.prototype.originalEvent;
Mj.prototype.pixel = Mj.prototype.pixel;
Mj.prototype.coordinate = Mj.prototype.coordinate;
Mj.prototype.dragging = Mj.prototype.dragging;
Mj.prototype.preventDefault = Mj.prototype.preventDefault;
Mj.prototype.stopPropagation = Mj.prototype.b;
ph.prototype.map = ph.prototype.map;
ph.prototype.frameState = ph.prototype.frameState;
hd.prototype.key = hd.prototype.key;
hd.prototype.oldValue = hd.prototype.oldValue;
u('ol.Object', id, OPENLAYERS);
id.prototype.get = id.prototype.get;
id.prototype.getKeys = id.prototype.O;
id.prototype.getProperties = id.prototype.P;
id.prototype.set = id.prototype.set;
id.prototype.setProperties = id.prototype.I;
id.prototype.unset = id.prototype.R;
u('ol.Observable', fd, OPENLAYERS);
u('ol.Observable.unByKey', gd, OPENLAYERS);
fd.prototype.changed = fd.prototype.s;
fd.prototype.dispatchEvent = fd.prototype.o;
fd.prototype.getRevision = fd.prototype.L;
fd.prototype.on = fd.prototype.H;
fd.prototype.once = fd.prototype.M;
fd.prototype.un = fd.prototype.K;
fd.prototype.unByKey = fd.prototype.N;
u('ol.inherits', y, OPENLAYERS);
u('ol.Overlay', mr, OPENLAYERS);
mr.prototype.getElement = mr.prototype.re;
mr.prototype.getId = mr.prototype.Na;
mr.prototype.getMap = mr.prototype.se;
mr.prototype.getOffset = mr.prototype.Eg;
mr.prototype.getPosition = mr.prototype.Yg;
mr.prototype.getPositioning = mr.prototype.Fg;
mr.prototype.setElement = mr.prototype.Uh;
mr.prototype.setMap = mr.prototype.setMap;
mr.prototype.setOffset = mr.prototype.Zh;
mr.prototype.setPosition = mr.prototype.xf;
mr.prototype.setPositioning = mr.prototype.bi;
u('ol.size.toSize', od, OPENLAYERS);
wh.prototype.getTileCoord = wh.prototype.f;
Tp.prototype.getFormat = Tp.prototype.Hl;
Tp.prototype.setLoader = Tp.prototype.Yh;
u('ol.View', Of, OPENLAYERS);
Of.prototype.constrainCenter = Of.prototype.Wd;
Of.prototype.constrainResolution = Of.prototype.constrainResolution;
Of.prototype.constrainRotation = Of.prototype.constrainRotation;
Of.prototype.getCenter = Of.prototype.Ta;
Of.prototype.calculateExtent = Of.prototype.Zc;
Of.prototype.getProjection = Of.prototype.Il;
Of.prototype.getResolution = Of.prototype.$;
Of.prototype.getRotation = Of.prototype.Ea;
Of.prototype.getZoom = Of.prototype.qk;
Of.prototype.fit = Of.prototype.jf;
Of.prototype.centerOn = Of.prototype.qj;
Of.prototype.rotate = Of.prototype.rotate;
Of.prototype.setCenter = Of.prototype.jb;
Of.prototype.setResolution = Of.prototype.Ub;
Of.prototype.setRotation = Of.prototype.te;
Of.prototype.setZoom = Of.prototype.Wo;
u('ol.xml.getAllTextContent', Oo, OPENLAYERS);
u('ol.xml.parse', hp, OPENLAYERS);
uq.prototype.getGL = uq.prototype.Gn;
uq.prototype.useProgram = uq.prototype.Ge;
u('ol.tilegrid.TileGrid', Bh, OPENLAYERS);
Bh.prototype.getMaxZoom = Bh.prototype.Cg;
Bh.prototype.getMinZoom = Bh.prototype.Dg;
Bh.prototype.getOrigin = Bh.prototype.Ca;
Bh.prototype.getResolution = Bh.prototype.$;
Bh.prototype.getResolutions = Bh.prototype.wh;
Bh.prototype.getTileCoordExtent = Bh.prototype.Aa;
Bh.prototype.getTileCoordForCoordAndResolution = Bh.prototype.ee;
Bh.prototype.getTileCoordForCoordAndZ = Bh.prototype.fe;
Bh.prototype.getTileSize = Bh.prototype.Ha;
u('ol.tilegrid.createXYZ', Oh, OPENLAYERS);
u('ol.tilegrid.WMTS', DA, OPENLAYERS);
DA.prototype.getMatrixIds = DA.prototype.B;
u('ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet', EA, OPENLAYERS);
u('ol.style.AtlasManager', IA, OPENLAYERS);
u('ol.style.Circle', bm, OPENLAYERS);
bm.prototype.getFill = bm.prototype.cn;
bm.prototype.getImage = bm.prototype.fc;
bm.prototype.getRadius = bm.prototype.dn;
bm.prototype.getStroke = bm.prototype.en;
u('ol.style.Fill', Wl, OPENLAYERS);
Wl.prototype.getColor = Wl.prototype.b;
Wl.prototype.setColor = Wl.prototype.f;
u('ol.style.Icon', wk, OPENLAYERS);
wk.prototype.getAnchor = wk.prototype.Xb;
wk.prototype.getImage = wk.prototype.fc;
wk.prototype.getOrigin = wk.prototype.Ca;
wk.prototype.getSrc = wk.prototype.fn;
wk.prototype.getSize = wk.prototype.Bb;
wk.prototype.load = wk.prototype.load;
u('ol.style.Image', vk, OPENLAYERS);
vk.prototype.getOpacity = vk.prototype.Ae;
vk.prototype.getRotateWithView = vk.prototype.ce;
vk.prototype.getRotation = vk.prototype.Be;
vk.prototype.getScale = vk.prototype.Ce;
vk.prototype.getSnapToPixel = vk.prototype.de;
vk.prototype.setOpacity = vk.prototype.De;
vk.prototype.setRotation = vk.prototype.Ee;
vk.prototype.setScale = vk.prototype.Fe;
u('ol.style.RegularShape', MA, OPENLAYERS);
MA.prototype.getAnchor = MA.prototype.Xb;
MA.prototype.getAngle = MA.prototype.gn;
MA.prototype.getFill = MA.prototype.hn;
MA.prototype.getImage = MA.prototype.fc;
MA.prototype.getOrigin = MA.prototype.Ca;
MA.prototype.getPoints = MA.prototype.jn;
MA.prototype.getRadius = MA.prototype.kn;
MA.prototype.getRadius2 = MA.prototype.fk;
MA.prototype.getSize = MA.prototype.Bb;
MA.prototype.getStroke = MA.prototype.ln;
u('ol.style.Stroke', am, OPENLAYERS);
am.prototype.getColor = am.prototype.mn;
am.prototype.getLineCap = am.prototype.Qj;
am.prototype.getLineDash = am.prototype.nn;
am.prototype.getLineJoin = am.prototype.Rj;
am.prototype.getMiterLimit = am.prototype.Wj;
am.prototype.getWidth = am.prototype.pn;
am.prototype.setColor = am.prototype.qn;
am.prototype.setLineCap = am.prototype.Oo;
am.prototype.setLineDash = am.prototype.rn;
am.prototype.setLineJoin = am.prototype.Po;
am.prototype.setMiterLimit = am.prototype.Qo;
am.prototype.setWidth = am.prototype.Uo;
u('ol.style.Style', cm, OPENLAYERS);
cm.prototype.getGeometry = cm.prototype.W;
cm.prototype.getGeometryFunction = cm.prototype.Lj;
cm.prototype.getFill = cm.prototype.sn;
cm.prototype.getImage = cm.prototype.tn;
cm.prototype.getStroke = cm.prototype.vn;
cm.prototype.getText = cm.prototype.wn;
cm.prototype.getZIndex = cm.prototype.xn;
cm.prototype.setGeometry = cm.prototype.vh;
cm.prototype.setZIndex = cm.prototype.yn;
u('ol.style.Text', Zt, OPENLAYERS);
Zt.prototype.getFont = Zt.prototype.Jj;
Zt.prototype.getOffsetX = Zt.prototype.Xj;
Zt.prototype.getOffsetY = Zt.prototype.Yj;
Zt.prototype.getFill = Zt.prototype.zn;
Zt.prototype.getRotation = Zt.prototype.An;
Zt.prototype.getScale = Zt.prototype.Bn;
Zt.prototype.getStroke = Zt.prototype.Cn;
Zt.prototype.getText = Zt.prototype.Dn;
Zt.prototype.getTextAlign = Zt.prototype.jk;
Zt.prototype.getTextBaseline = Zt.prototype.kk;
Zt.prototype.setFont = Zt.prototype.Lo;
Zt.prototype.setOffsetX = Zt.prototype.$h;
Zt.prototype.setOffsetY = Zt.prototype.ai;
Zt.prototype.setFill = Zt.prototype.Ko;
Zt.prototype.setRotation = Zt.prototype.En;
Zt.prototype.setScale = Zt.prototype.Fn;
Zt.prototype.setStroke = Zt.prototype.Ro;
Zt.prototype.setText = Zt.prototype.ci;
Zt.prototype.setTextAlign = Zt.prototype.di;
Zt.prototype.setTextBaseline = Zt.prototype.So;
u('ol.Sphere', Ae, OPENLAYERS);
Ae.prototype.geodesicArea = Ae.prototype.c;
Ae.prototype.haversineDistance = Ae.prototype.a;
u('ol.source.BingMaps', Oz, OPENLAYERS);
u('ol.source.BingMaps.TOS_ATTRIBUTION', Pz, OPENLAYERS);
u('ol.source.Cluster', Qz, OPENLAYERS);
Qz.prototype.getSource = Qz.prototype.ga;
u('ol.source.ImageCanvas', rn, OPENLAYERS);
u('ol.source.ImageMapGuide', Tz, OPENLAYERS);
Tz.prototype.getParams = Tz.prototype.Em;
Tz.prototype.getImageLoadFunction = Tz.prototype.Dm;
Tz.prototype.updateParams = Tz.prototype.Hm;
Tz.prototype.setImageLoadFunction = Tz.prototype.Gm;
u('ol.source.Image', kn, OPENLAYERS);
mn.prototype.image = mn.prototype.image;
u('ol.source.ImageStatic', Uz, OPENLAYERS);
u('ol.source.ImageVector', Op, OPENLAYERS);
Op.prototype.getSource = Op.prototype.Im;
Op.prototype.getStyle = Op.prototype.Jm;
Op.prototype.getStyleFunction = Op.prototype.Km;
Op.prototype.setStyle = Op.prototype.mh;
u('ol.source.ImageWMS', Vz, OPENLAYERS);
Vz.prototype.getGetFeatureInfoUrl = Vz.prototype.Nm;
Vz.prototype.getParams = Vz.prototype.Pm;
Vz.prototype.getImageLoadFunction = Vz.prototype.Om;
Vz.prototype.getUrl = Vz.prototype.Qm;
Vz.prototype.setImageLoadFunction = Vz.prototype.Rm;
Vz.prototype.setUrl = Vz.prototype.Sm;
Vz.prototype.updateParams = Vz.prototype.Tm;
u('ol.source.MapQuest', bA, OPENLAYERS);
bA.prototype.getLayer = bA.prototype.l;
u('ol.source.OSM', $z, OPENLAYERS);
u('ol.source.OSM.ATTRIBUTION', aA, OPENLAYERS);
u('ol.source.Raster', eA, OPENLAYERS);
eA.prototype.setOperation = eA.prototype.u;
jA.prototype.extent = jA.prototype.extent;
jA.prototype.resolution = jA.prototype.resolution;
jA.prototype.data = jA.prototype.data;
u('ol.source.Source', yh, OPENLAYERS);
yh.prototype.getAttributions = yh.prototype.sa;
yh.prototype.getLogo = yh.prototype.qa;
yh.prototype.getProjection = yh.prototype.ta;
yh.prototype.getState = yh.prototype.ua;
yh.prototype.setAttributions = yh.prototype.na;
u('ol.source.Stamen', oA, OPENLAYERS);
u('ol.source.TileArcGISRest', qA, OPENLAYERS);
qA.prototype.getParams = qA.prototype.D;
qA.prototype.updateParams = qA.prototype.Z;
u('ol.source.TileDebug', sA, OPENLAYERS);
u('ol.source.TileImage', Y, OPENLAYERS);
Y.prototype.setRenderReprojectionEdges = Y.prototype.wb;
Y.prototype.setTileGridForProjection = Y.prototype.xb;
u('ol.source.TileJSON', tA, OPENLAYERS);
u('ol.source.Tile', Ph, OPENLAYERS);
Ph.prototype.getTileGrid = Ph.prototype.Ga;
Sh.prototype.tile = Sh.prototype.tile;
u('ol.source.TileUTFGrid', uA, OPENLAYERS);
uA.prototype.getTemplate = uA.prototype.ik;
uA.prototype.forDataAtCoordinateAndResolution = uA.prototype.vj;
u('ol.source.TileWMS', zA, OPENLAYERS);
zA.prototype.getGetFeatureInfoUrl = zA.prototype.Wm;
zA.prototype.getParams = zA.prototype.Xm;
zA.prototype.updateParams = zA.prototype.Zm;
Zp.prototype.getTileLoadFunction = Zp.prototype.Wa;
Zp.prototype.getTileUrlFunction = Zp.prototype.Xa;
Zp.prototype.getUrls = Zp.prototype.Ya;
Zp.prototype.setTileLoadFunction = Zp.prototype.bb;
Zp.prototype.setTileUrlFunction = Zp.prototype.Ja;
Zp.prototype.setUrl = Zp.prototype.Ua;
Zp.prototype.setUrls = Zp.prototype.Va;
u('ol.source.Vector', R, OPENLAYERS);
R.prototype.addFeature = R.prototype.Ad;
R.prototype.addFeatures = R.prototype.Dc;
R.prototype.clear = R.prototype.clear;
R.prototype.forEachFeature = R.prototype.rg;
R.prototype.forEachFeatureInExtent = R.prototype.ob;
R.prototype.forEachFeatureIntersectingExtent = R.prototype.sg;
R.prototype.getFeaturesCollection = R.prototype.yg;
R.prototype.getFeatures = R.prototype.ye;
R.prototype.getFeaturesAtCoordinate = R.prototype.xg;
R.prototype.getFeaturesInExtent = R.prototype.lf;
R.prototype.getClosestFeatureToCoordinate = R.prototype.ug;
R.prototype.getExtent = R.prototype.J;
R.prototype.getFeatureById = R.prototype.wg;
R.prototype.removeFeature = R.prototype.Qc;
Lp.prototype.feature = Lp.prototype.feature;
u('ol.source.VectorTile', $p, OPENLAYERS);
u('ol.source.WMTS', Z, OPENLAYERS);
Z.prototype.getDimensions = Z.prototype.Hj;
Z.prototype.getFormat = Z.prototype.$m;
Z.prototype.getLayer = Z.prototype.an;
Z.prototype.getMatrixSet = Z.prototype.Uj;
Z.prototype.getRequestEncoding = Z.prototype.gk;
Z.prototype.getStyle = Z.prototype.bn;
Z.prototype.getVersion = Z.prototype.mk;
Z.prototype.updateDimensions = Z.prototype.cp;
u('ol.source.WMTS.optionsFromCapabilities', function (b, c) {
var d = fb(b.Contents.Layer, function (b) {
return b.Identifier == c.layer
}),
e = b.Contents.TileMatrixSet,
f,
g;
f = 1 < d.TileMatrixSetLink.length ? 'projection' in c ? gb(d.TileMatrixSetLink, function (b) {
return fb(e, function (c) {
return c.Identifier == b.TileMatrixSet
}).SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, '$1:$3') == c.projection
})  : gb(d.TileMatrixSetLink, function (b) {
return b.TileMatrixSet == c.matrixSet
})  : 0;
0 > f && (f = 0);
g = d.TileMatrixSetLink[f].TileMatrixSet;
var h = d.Format[0];
'format' in c && (h = c.format);
f = gb(d.Style, function (b) {
return 'style' in c ? b.Title == c.style : b.isDefault
});
0 > f && (f = 0);
f = d.Style[f].Identifier;
var k = {
};
'Dimension' in d && d.Dimension.forEach(function (b) {
var c = b.Identifier,
d = b.Default;
void 0 === d && (d = b.Value[0]);
k[c] = d
});
var m = fb(b.Contents.TileMatrixSet, function (b) {
return b.Identifier == g
}),
n;
n = 'projection' in c ? Fe(c.projection)  : Fe(m.SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, '$1:$3'));
var p = d.WGS84BoundingBox,
q,
r;
void 0 !== p && (r = Fe('EPSG:4326').J(), r = p[0] == r[0] && p[2] == r[2], q = af(p, 'EPSG:4326', n), (p = n.J()) && (Xd(p, q) || (q = void 0)));
var m = EA(m, q),
t = [
];
q = c.requestEncoding;
q = void 0 !== q ? q : '';
if (b.hasOwnProperty('OperationsMetadata') && b.OperationsMetadata.hasOwnProperty('GetTile') && 0 !== q.indexOf('REST')) for (var d = b.OperationsMetadata.GetTile.DCP.HTTP.Get, p = 0, x = d.length; p < x; ++p) {
var z = fb(d[p].Constraint, function (b) {
return 'GetEncoding' == b.name
}).AllowedValues.Value;
0 < z.length && vb(z, 'KVP') && (q = 'KVP', t.push(d[p].href))
} else q = 'REST',
d.ResourceURL.forEach(function (b) {
'tile' == b.resourceType && (h = b.format, t.push(b.template))
});
return {
urls: t,
layer: c.layer,
matrixSet: g,
format: h,
projection: n,
requestEncoding: q,
tileGrid: m,
style: f,
dimensions: k,
wrapX: r
}
}, OPENLAYERS);
u('ol.source.XYZ', Zz, OPENLAYERS);
u('ol.source.Zoomify', GA, OPENLAYERS);
dk.prototype.vectorContext = dk.prototype.vectorContext;
dk.prototype.frameState = dk.prototype.frameState;
dk.prototype.context = dk.prototype.context;
dk.prototype.glContext = dk.prototype.glContext;
Vm.prototype.get = Vm.prototype.get;
Vm.prototype.getExtent = Vm.prototype.J;
Vm.prototype.getGeometry = Vm.prototype.W;
Vm.prototype.getProperties = Vm.prototype.ym;
Vm.prototype.getType = Vm.prototype.V;
u('ol.render.VectorContext', ck, OPENLAYERS);
Rq.prototype.drawAsync = Rq.prototype.ld;
Rq.prototype.drawCircleGeometry = Rq.prototype.Fc;
Rq.prototype.drawFeature = Rq.prototype.hf;
Rq.prototype.drawGeometryCollectionGeometry = Rq.prototype.Xd;
Rq.prototype.drawPointGeometry = Rq.prototype.Gb;
Rq.prototype.drawLineStringGeometry = Rq.prototype.Wb;
Rq.prototype.drawMultiLineStringGeometry = Rq.prototype.Gc;
Rq.prototype.drawMultiPointGeometry = Rq.prototype.Fb;
Rq.prototype.drawMultiPolygonGeometry = Rq.prototype.Hc;
Rq.prototype.drawPolygonGeometry = Rq.prototype.Ic;
Rq.prototype.drawText = Rq.prototype.Hb;
Rq.prototype.setFillStrokeStyle = Rq.prototype.$a;
Rq.prototype.setImageStyle = Rq.prototype.vb;
Rq.prototype.setTextStyle = Rq.prototype.ab;
jm.prototype.drawAsync = jm.prototype.ld;
jm.prototype.drawCircleGeometry = jm.prototype.Fc;
jm.prototype.drawFeature = jm.prototype.hf;
jm.prototype.drawPointGeometry = jm.prototype.Gb;
jm.prototype.drawMultiPointGeometry = jm.prototype.Fb;
jm.prototype.drawLineStringGeometry = jm.prototype.Wb;
jm.prototype.drawMultiLineStringGeometry = jm.prototype.Gc;
jm.prototype.drawPolygonGeometry = jm.prototype.Ic;
jm.prototype.drawMultiPolygonGeometry = jm.prototype.Hc;
jm.prototype.setFillStrokeStyle = jm.prototype.$a;
jm.prototype.setImageStyle = jm.prototype.vb;
jm.prototype.setTextStyle = jm.prototype.ab;
u('ol.proj.common.add', Rl, OPENLAYERS);
u('ol.proj.METERS_PER_UNIT', Ce, OPENLAYERS);
u('ol.proj.Projection', De, OPENLAYERS);
De.prototype.getCode = De.prototype.Fj;
De.prototype.getExtent = De.prototype.J;
De.prototype.getUnits = De.prototype.wm;
De.prototype.getMetersPerUnit = De.prototype.Jc;
De.prototype.getWorldExtent = De.prototype.pk;
De.prototype.isGlobal = De.prototype.cl;
De.prototype.setGlobal = De.prototype.No;
De.prototype.setExtent = De.prototype.xm;
De.prototype.setWorldExtent = De.prototype.Vo;
De.prototype.setGetPointResolution = De.prototype.Mo;
De.prototype.getPointResolution = De.prototype.getPointResolution;
u('ol.proj.addEquivalentProjections', Ge, OPENLAYERS);
u('ol.proj.addProjection', Ue, OPENLAYERS);
u('ol.proj.addCoordinateTransforms', He, OPENLAYERS);
u('ol.proj.fromLonLat', function (b, c) {
return $e(b, 'EPSG:4326', void 0 !== c ? c : 'EPSG:3857')
}, OPENLAYERS);
u('ol.proj.toLonLat', function (b, c) {
return $e(b, void 0 !== c ? c : 'EPSG:3857', 'EPSG:4326')
}, OPENLAYERS);
u('ol.proj.get', Fe, OPENLAYERS);
u('ol.proj.getTransform', Ye, OPENLAYERS);
u('ol.proj.transform', $e, OPENLAYERS);
u('ol.proj.transformExtent', af, OPENLAYERS);
u('ol.layer.Heatmap', X, OPENLAYERS);
X.prototype.getBlur = X.prototype.tg;
X.prototype.getGradient = X.prototype.Ag;
X.prototype.getRadius = X.prototype.hh;
X.prototype.setBlur = X.prototype.Sh;
X.prototype.setGradient = X.prototype.Wh;
X.prototype.setRadius = X.prototype.ih;
u('ol.layer.Image', Sl, OPENLAYERS);
Sl.prototype.getSource = Sl.prototype.fa;
u('ol.layer.Layer', ek, OPENLAYERS);
ek.prototype.getSource = ek.prototype.fa;
ek.prototype.setMap = ek.prototype.setMap;
ek.prototype.setSource = ek.prototype.wc;
u('ol.layer.Base', ak, OPENLAYERS);
ak.prototype.getExtent = ak.prototype.J;
ak.prototype.getMaxResolution = ak.prototype.Mb;
ak.prototype.getMinResolution = ak.prototype.Nb;
ak.prototype.getOpacity = ak.prototype.Rb;
ak.prototype.getVisible = ak.prototype.qb;
ak.prototype.getZIndex = ak.prototype.Sb;
ak.prototype.setExtent = ak.prototype.bc;
ak.prototype.setMaxResolution = ak.prototype.jc;
ak.prototype.setMinResolution = ak.prototype.kc;
ak.prototype.setOpacity = ak.prototype.cc;
ak.prototype.setVisible = ak.prototype.dc;
ak.prototype.setZIndex = ak.prototype.ec;
u('ol.layer.Group', Kl, OPENLAYERS);
Kl.prototype.getLayers = Kl.prototype.Pc;
Kl.prototype.setLayers = Kl.prototype.gh;
u('ol.layer.Tile', F, OPENLAYERS);
F.prototype.getPreload = F.prototype.a;
F.prototype.getSource = F.prototype.fa;
F.prototype.setPreload = F.prototype.f;
F.prototype.getUseInterimTilesOnError = F.prototype.b;
F.prototype.setUseInterimTilesOnError = F.prototype.g;
u('ol.layer.Vector', H, OPENLAYERS);
H.prototype.getSource = H.prototype.fa;
H.prototype.getStyle = H.prototype.D;
H.prototype.getStyleFunction = H.prototype.G;
H.prototype.setStyle = H.prototype.f;
u('ol.layer.VectorTile', J, OPENLAYERS);
J.prototype.getPreload = J.prototype.g;
J.prototype.getSource = J.prototype.fa;
J.prototype.getUseInterimTilesOnError = J.prototype.U;
J.prototype.setPreload = J.prototype.T;
J.prototype.setUseInterimTilesOnError = J.prototype.Z;
u('ol.interaction.DoubleClickZoom', Sk, OPENLAYERS);
u('ol.interaction.DoubleClickZoom.handleEvent', Tk, OPENLAYERS);
u('ol.interaction.DragAndDrop', vy, OPENLAYERS);
u('ol.interaction.DragAndDrop.handleEvent', ue, OPENLAYERS);
wy.prototype.features = wy.prototype.features;
wy.prototype.file = wy.prototype.file;
wy.prototype.projection = wy.prototype.projection;
pl.prototype.coordinate = pl.prototype.coordinate;
u('ol.interaction.DragBox', ql, OPENLAYERS);
ql.prototype.getGeometry = ql.prototype.W;
u('ol.interaction.DragPan', dl, OPENLAYERS);
u('ol.interaction.DragRotateAndZoom', zy, OPENLAYERS);
u('ol.interaction.DragRotate', hl, OPENLAYERS);
u('ol.interaction.DragZoom', ul, OPENLAYERS);
Dy.prototype.feature = Dy.prototype.feature;
u('ol.interaction.Draw', Ey, OPENLAYERS);
u('ol.interaction.Draw.handleEvent', Gy, OPENLAYERS);
Ey.prototype.removeLastPoint = Ey.prototype.Ao;
Ey.prototype.finishDrawing = Ey.prototype.md;
Ey.prototype.extend = Ey.prototype.bm;
u('ol.interaction.Draw.createRegularPolygon', function (b, c) {
return function (d, e) {
var f = d[0],
g = d[1],
h = Math.sqrt(xd(f, g)),
k = e ? e : Mf(new Qx(f), b);
Nf(k, f, h, c ? c : Math.atan((g[1] - f[1]) / (g[0] - f[0])));
return k
}
}, OPENLAYERS);
u('ol.interaction.Interaction', Ok, OPENLAYERS);
Ok.prototype.getActive = Ok.prototype.b;
Ok.prototype.setActive = Ok.prototype.g;
u('ol.interaction.defaults', Jl, OPENLAYERS);
u('ol.interaction.KeyboardPan', vl, OPENLAYERS);
u('ol.interaction.KeyboardPan.handleEvent', wl, OPENLAYERS);
u('ol.interaction.KeyboardZoom', xl, OPENLAYERS);
u('ol.interaction.KeyboardZoom.handleEvent', yl, OPENLAYERS);
Uy.prototype.features = Uy.prototype.features;
Uy.prototype.mapBrowserPointerEvent = Uy.prototype.mapBrowserPointerEvent;
u('ol.interaction.Modify', Vy, OPENLAYERS);
u('ol.interaction.Modify.handleEvent', Yy, OPENLAYERS);
u('ol.interaction.MouseWheelZoom', zl, OPENLAYERS);
u('ol.interaction.MouseWheelZoom.handleEvent', Al, OPENLAYERS);
zl.prototype.setMouseAnchor = zl.prototype.D;
u('ol.interaction.PinchRotate', Bl, OPENLAYERS);
u('ol.interaction.PinchZoom', Fl, OPENLAYERS);
u('ol.interaction.Pointer', al, OPENLAYERS);
u('ol.interaction.Pointer.handleEvent', bl, OPENLAYERS);
hz.prototype.selected = hz.prototype.selected;
hz.prototype.deselected = hz.prototype.deselected;
hz.prototype.mapBrowserEvent = hz.prototype.mapBrowserEvent;
u('ol.interaction.Select', iz, OPENLAYERS);
iz.prototype.getFeatures = iz.prototype.lm;
iz.prototype.getLayer = iz.prototype.mm;
u('ol.interaction.Select.handleEvent', jz, OPENLAYERS);
iz.prototype.setMap = iz.prototype.setMap;
u('ol.interaction.Snap', lz, OPENLAYERS);
lz.prototype.addFeature = lz.prototype.wd;
lz.prototype.removeFeature = lz.prototype.xd;
pz.prototype.features = pz.prototype.features;
pz.prototype.coordinate = pz.prototype.coordinate;
u('ol.interaction.Translate', qz, OPENLAYERS);
u('ol.geom.Circle', Qx, OPENLAYERS);
Qx.prototype.clone = Qx.prototype.clone;
Qx.prototype.getCenter = Qx.prototype.vd;
Qx.prototype.getRadius = Qx.prototype.yf;
Qx.prototype.getType = Qx.prototype.V;
Qx.prototype.intersectsExtent = Qx.prototype.Da;
Qx.prototype.setCenter = Qx.prototype.Ul;
Qx.prototype.setCenterAndRadius = Qx.prototype.Tf;
Qx.prototype.setRadius = Qx.prototype.Vl;
Qx.prototype.transform = Qx.prototype.kb;
u('ol.geom.Geometry', bf, OPENLAYERS);
bf.prototype.getClosestPoint = bf.prototype.pb;
bf.prototype.getExtent = bf.prototype.J;
bf.prototype.simplify = bf.prototype.yb;
bf.prototype.transform = bf.prototype.kb;
u('ol.geom.GeometryCollection', js, OPENLAYERS);
js.prototype.clone = js.prototype.clone;
js.prototype.getGeometries = js.prototype.zg;
js.prototype.getType = js.prototype.V;
js.prototype.intersectsExtent = js.prototype.Da;
js.prototype.setGeometries = js.prototype.Vh;
js.prototype.applyTransform = js.prototype.mc;
js.prototype.translate = js.prototype.Oc;
u('ol.geom.LinearRing', wf, OPENLAYERS);
wf.prototype.clone = wf.prototype.clone;
wf.prototype.getArea = wf.prototype.Yl;
wf.prototype.getCoordinates = wf.prototype.Y;
wf.prototype.getType = wf.prototype.V;
wf.prototype.setCoordinates = wf.prototype.ma;
u('ol.geom.LineString', T, OPENLAYERS);
T.prototype.appendCoordinate = T.prototype.jj;
T.prototype.clone = T.prototype.clone;
T.prototype.forEachSegment = T.prototype.yj;
T.prototype.getCoordinateAtM = T.prototype.Wl;
T.prototype.getCoordinates = T.prototype.Y;
T.prototype.getLength = T.prototype.Xl;
T.prototype.getType = T.prototype.V;
T.prototype.intersectsExtent = T.prototype.Da;
T.prototype.setCoordinates = T.prototype.ma;
u('ol.geom.MultiLineString', U, OPENLAYERS);
U.prototype.appendLineString = U.prototype.kj;
U.prototype.clone = U.prototype.clone;
U.prototype.getCoordinateAtM = U.prototype.Zl;
U.prototype.getCoordinates = U.prototype.Y;
U.prototype.getLineString = U.prototype.Sj;
U.prototype.getLineStrings = U.prototype.rd;
U.prototype.getType = U.prototype.V;
U.prototype.intersectsExtent = U.prototype.Da;
U.prototype.setCoordinates = U.prototype.ma;
u('ol.geom.MultiPoint', $r, OPENLAYERS);
$r.prototype.appendPoint = $r.prototype.mj;
$r.prototype.clone = $r.prototype.clone;
$r.prototype.getCoordinates = $r.prototype.Y;
$r.prototype.getPoint = $r.prototype.ck;
$r.prototype.getPoints = $r.prototype.ue;
$r.prototype.getType = $r.prototype.V;
$r.prototype.intersectsExtent = $r.prototype.Da;
$r.prototype.setCoordinates = $r.prototype.ma;
u('ol.geom.MultiPolygon', V, OPENLAYERS);
V.prototype.appendPolygon = V.prototype.nj;
V.prototype.clone = V.prototype.clone;
V.prototype.getArea = V.prototype.$l;
V.prototype.getCoordinates = V.prototype.Y;
V.prototype.getInteriorPoints = V.prototype.Pj;
V.prototype.getPolygon = V.prototype.ek;
V.prototype.getPolygons = V.prototype.be;
V.prototype.getType = V.prototype.V;
V.prototype.intersectsExtent = V.prototype.Da;
V.prototype.setCoordinates = V.prototype.ma;
u('ol.geom.Point', D, OPENLAYERS);
D.prototype.clone = D.prototype.clone;
D.prototype.getCoordinates = D.prototype.Y;
D.prototype.getType = D.prototype.V;
D.prototype.intersectsExtent = D.prototype.Da;
D.prototype.setCoordinates = D.prototype.ma;
u('ol.geom.Polygon', E, OPENLAYERS);
E.prototype.appendLinearRing = E.prototype.lj;
E.prototype.clone = E.prototype.clone;
E.prototype.getArea = E.prototype.am;
E.prototype.getCoordinates = E.prototype.Y;
E.prototype.getInteriorPoint = E.prototype.Oj;
E.prototype.getLinearRingCount = E.prototype.Tj;
E.prototype.getLinearRing = E.prototype.Bg;
E.prototype.getLinearRings = E.prototype.ae;
E.prototype.getType = E.prototype.V;
E.prototype.intersectsExtent = E.prototype.Da;
E.prototype.setCoordinates = E.prototype.ma;
u('ol.geom.Polygon.circular', Kf, OPENLAYERS);
u('ol.geom.Polygon.fromExtent', Lf, OPENLAYERS);
u('ol.geom.Polygon.fromCircle', Mf, OPENLAYERS);
u('ol.geom.SimpleGeometry', df, OPENLAYERS);
df.prototype.getFirstCoordinate = df.prototype.Jb;
df.prototype.getLastCoordinate = df.prototype.Kb;
df.prototype.getLayout = df.prototype.Lb;
df.prototype.applyTransform = df.prototype.mc;
df.prototype.translate = df.prototype.Oc;
u('ol.format.EsriJSON', cs, OPENLAYERS);
cs.prototype.readFeature = cs.prototype.Tb;
cs.prototype.readFeatures = cs.prototype.Ba;
cs.prototype.readGeometry = cs.prototype.Sc;
cs.prototype.readProjection = cs.prototype.Ia;
cs.prototype.writeGeometry = cs.prototype.Wc;
cs.prototype.writeGeometryObject = cs.prototype.Te;
cs.prototype.writeFeature = cs.prototype.Jd;
cs.prototype.writeFeatureObject = cs.prototype.Vc;
cs.prototype.writeFeatures = cs.prototype.Vb;
cs.prototype.writeFeaturesObject = cs.prototype.Re;
u('ol.format.Feature', Qr, OPENLAYERS);
u('ol.format.GeoJSON', ns, OPENLAYERS);
ns.prototype.readFeature = ns.prototype.Tb;
ns.prototype.readFeatures = ns.prototype.Ba;
ns.prototype.readGeometry = ns.prototype.Sc;
ns.prototype.readProjection = ns.prototype.Ia;
ns.prototype.writeFeature = ns.prototype.Jd;
ns.prototype.writeFeatureObject = ns.prototype.Vc;
ns.prototype.writeFeatures = ns.prototype.Vb;
ns.prototype.writeFeaturesObject = ns.prototype.Re;
ns.prototype.writeGeometry = ns.prototype.Wc;
ns.prototype.writeGeometryObject = ns.prototype.Te;
u('ol.format.GPX', Rs, OPENLAYERS);
Rs.prototype.readFeature = Rs.prototype.Tb;
Rs.prototype.readFeatures = Rs.prototype.Ba;
Rs.prototype.readProjection = Rs.prototype.Ia;
Rs.prototype.writeFeatures = Rs.prototype.Vb;
Rs.prototype.writeFeaturesNode = Rs.prototype.c;
u('ol.format.IGC', Bt, OPENLAYERS);
Bt.prototype.readFeature = Bt.prototype.Tb;
Bt.prototype.readFeatures = Bt.prototype.Ba;
Bt.prototype.readProjection = Bt.prototype.Ia;
u('ol.format.KML', $t, OPENLAYERS);
$t.prototype.readFeature = $t.prototype.Tb;
$t.prototype.readFeatures = $t.prototype.Ba;
$t.prototype.readName = $t.prototype.po;
$t.prototype.readNetworkLinks = $t.prototype.qo;
$t.prototype.readProjection = $t.prototype.Ia;
$t.prototype.writeFeatures = $t.prototype.Vb;
$t.prototype.writeFeaturesNode = $t.prototype.c;
u('ol.format.MVT', Ov, OPENLAYERS);
Ov.prototype.setLayers = Ov.prototype.g;
u('ol.format.OSMXML', Qv, OPENLAYERS);
Qv.prototype.readFeatures = Qv.prototype.Ba;
Qv.prototype.readProjection = Qv.prototype.Ia;
u('ol.format.Polyline', ow, OPENLAYERS);
u('ol.format.Polyline.encodeDeltas', pw, OPENLAYERS);
u('ol.format.Polyline.decodeDeltas', rw, OPENLAYERS);
u('ol.format.Polyline.encodeFloats', qw, OPENLAYERS);
u('ol.format.Polyline.decodeFloats', sw, OPENLAYERS);
ow.prototype.readFeature = ow.prototype.Tb;
ow.prototype.readFeatures = ow.prototype.Ba;
ow.prototype.readGeometry = ow.prototype.Sc;
ow.prototype.readProjection = ow.prototype.Ia;
ow.prototype.writeGeometry = ow.prototype.Wc;
u('ol.format.TopoJSON', tw, OPENLAYERS);
tw.prototype.readFeatures = tw.prototype.Ba;
tw.prototype.readProjection = tw.prototype.Ia;
u('ol.format.WFS', zw, OPENLAYERS);
zw.prototype.readFeatures = zw.prototype.Ba;
zw.prototype.readTransactionResponse = zw.prototype.i;
zw.prototype.readFeatureCollectionMetadata = zw.prototype.j;
zw.prototype.writeGetFeature = zw.prototype.l;
zw.prototype.writeTransaction = zw.prototype.A;
zw.prototype.readProjection = zw.prototype.Ia;
u('ol.format.WKT', Mw, OPENLAYERS);
Mw.prototype.readFeature = Mw.prototype.Tb;
Mw.prototype.readFeatures = Mw.prototype.Ba;
Mw.prototype.readGeometry = Mw.prototype.Sc;
Mw.prototype.writeFeature = Mw.prototype.Jd;
Mw.prototype.writeFeatures = Mw.prototype.Vb;
Mw.prototype.writeGeometry = Mw.prototype.Wc;
u('ol.format.WMSCapabilities', dx, OPENLAYERS);
dx.prototype.read = dx.prototype.read;
u('ol.format.WMSGetFeatureInfo', Ax, OPENLAYERS);
Ax.prototype.readFeatures = Ax.prototype.Ba;
u('ol.format.WMTSCapabilities', Bx, OPENLAYERS);
Bx.prototype.read = Bx.prototype.read;
u('ol.format.GML2', Hs, OPENLAYERS);
u('ol.format.GML3', Is, OPENLAYERS);
Is.prototype.writeGeometryNode = Is.prototype.B;
Is.prototype.writeFeatures = Is.prototype.Vb;
Is.prototype.writeFeaturesNode = Is.prototype.c;
u('ol.format.GML', Is, OPENLAYERS);
Is.prototype.writeFeatures = Is.prototype.Vb;
Is.prototype.writeFeaturesNode = Is.prototype.c;
vs.prototype.readFeatures = vs.prototype.Ba;
u('ol.events.condition.altKeyOnly', function (b) {
b = b.a;
return b.c && !b.l && !b.f
}, OPENLAYERS);
u('ol.events.condition.altShiftKeysOnly', Uk, OPENLAYERS);
u('ol.events.condition.always', ue, OPENLAYERS);
u('ol.events.condition.click', function (b) {
return b.type == Qj
}, OPENLAYERS);
u('ol.events.condition.never', te, OPENLAYERS);
u('ol.events.condition.pointerMove', Vk, OPENLAYERS);
u('ol.events.condition.singleClick', Wk, OPENLAYERS);
u('ol.events.condition.doubleClick', function (b) {
return b.type == Rj
}, OPENLAYERS);
u('ol.events.condition.noModifierKeys', Xk, OPENLAYERS);
u('ol.events.condition.platformModifierKeyOnly', function (b) {
b = b.a;
return !b.c && b.l && !b.f
}, OPENLAYERS);
u('ol.events.condition.shiftKeyOnly', Yk, OPENLAYERS);
u('ol.events.condition.targetNotEditable', Zk, OPENLAYERS);
u('ol.events.condition.mouseOnly', $k, OPENLAYERS);
u('ol.control.Attribution', Th, OPENLAYERS);
u('ol.control.Attribution.render', Uh, OPENLAYERS);
Th.prototype.getCollapsible = Th.prototype.Kl;
Th.prototype.setCollapsible = Th.prototype.Nl;
Th.prototype.setCollapsed = Th.prototype.Ml;
Th.prototype.getCollapsed = Th.prototype.Jl;
u('ol.control.Control', qh, OPENLAYERS);
qh.prototype.getMap = qh.prototype.g;
qh.prototype.setMap = qh.prototype.setMap;
qh.prototype.setTarget = qh.prototype.f;
u('ol.control.defaults', Zh, OPENLAYERS);
u('ol.control.FullScreen', ei, OPENLAYERS);
u('ol.control.MousePosition', fi, OPENLAYERS);
u('ol.control.MousePosition.render', gi, OPENLAYERS);
fi.prototype.getCoordinateFormat = fi.prototype.vg;
fi.prototype.getProjection = fi.prototype.Zg;
fi.prototype.setCoordinateFormat = fi.prototype.Th;
fi.prototype.setProjection = fi.prototype.$g;
u('ol.control.OverviewMap', qr, OPENLAYERS);
u('ol.control.OverviewMap.render', rr, OPENLAYERS);
qr.prototype.getCollapsible = qr.prototype.Ql;
qr.prototype.setCollapsible = qr.prototype.Tl;
qr.prototype.setCollapsed = qr.prototype.Sl;
qr.prototype.getCollapsed = qr.prototype.Pl;
qr.prototype.getOverviewMap = qr.prototype.ak;
u('ol.control.Rotate', Wh, OPENLAYERS);
u('ol.control.Rotate.render', Xh, OPENLAYERS);
u('ol.control.ScaleLine', vr, OPENLAYERS);
vr.prototype.getUnits = vr.prototype.G;
u('ol.control.ScaleLine.render', wr, OPENLAYERS);
vr.prototype.setUnits = vr.prototype.T;
u('ol.control.Zoom', Yh, OPENLAYERS);
u('ol.control.ZoomSlider', Jr, OPENLAYERS);
u('ol.control.ZoomSlider.render', Lr, OPENLAYERS);
u('ol.control.ZoomToExtent', Or, OPENLAYERS);
u('ol.color.asArray', tg, OPENLAYERS);
u('ol.color.asString', vg, OPENLAYERS);
id.prototype.changed = id.prototype.s;
id.prototype.dispatchEvent = id.prototype.o;
id.prototype.getRevision = id.prototype.L;
id.prototype.on = id.prototype.H;
id.prototype.once = id.prototype.M;
id.prototype.un = id.prototype.K;
id.prototype.unByKey = id.prototype.N;
og.prototype.get = og.prototype.get;
og.prototype.getKeys = og.prototype.O;
og.prototype.getProperties = og.prototype.P;
og.prototype.set = og.prototype.set;
og.prototype.setProperties = og.prototype.I;
og.prototype.unset = og.prototype.R;
og.prototype.changed = og.prototype.s;
og.prototype.dispatchEvent = og.prototype.o;
og.prototype.getRevision = og.prototype.L;
og.prototype.on = og.prototype.H;
og.prototype.once = og.prototype.M;
og.prototype.un = og.prototype.K;
og.prototype.unByKey = og.prototype.N;
Pr.prototype.get = Pr.prototype.get;
Pr.prototype.getKeys = Pr.prototype.O;
Pr.prototype.getProperties = Pr.prototype.P;
Pr.prototype.set = Pr.prototype.set;
Pr.prototype.setProperties = Pr.prototype.I;
Pr.prototype.unset = Pr.prototype.R;
Pr.prototype.changed = Pr.prototype.s;
Pr.prototype.dispatchEvent = Pr.prototype.o;
Pr.prototype.getRevision = Pr.prototype.L;
Pr.prototype.on = Pr.prototype.H;
Pr.prototype.once = Pr.prototype.M;
Pr.prototype.un = Pr.prototype.K;
Pr.prototype.unByKey = Pr.prototype.N;
sn.prototype.get = sn.prototype.get;
sn.prototype.getKeys = sn.prototype.O;
sn.prototype.getProperties = sn.prototype.P;
sn.prototype.set = sn.prototype.set;
sn.prototype.setProperties = sn.prototype.I;
sn.prototype.unset = sn.prototype.R;
sn.prototype.changed = sn.prototype.s;
sn.prototype.dispatchEvent = sn.prototype.o;
sn.prototype.getRevision = sn.prototype.L;
sn.prototype.on = sn.prototype.H;
sn.prototype.once = sn.prototype.M;
sn.prototype.un = sn.prototype.K;
sn.prototype.unByKey = sn.prototype.N;
Px.prototype.get = Px.prototype.get;
Px.prototype.getKeys = Px.prototype.O;
Px.prototype.getProperties = Px.prototype.P;
Px.prototype.set = Px.prototype.set;
Px.prototype.setProperties = Px.prototype.I;
Px.prototype.unset = Px.prototype.R;
Px.prototype.changed = Px.prototype.s;
Px.prototype.dispatchEvent = Px.prototype.o;
Px.prototype.getRevision = Px.prototype.L;
Px.prototype.on = Px.prototype.H;
Px.prototype.once = Px.prototype.M;
Px.prototype.un = Px.prototype.K;
Px.prototype.unByKey = Px.prototype.N;
ay.prototype.getTileCoord = ay.prototype.f;
S.prototype.get = S.prototype.get;
S.prototype.getKeys = S.prototype.O;
S.prototype.getProperties = S.prototype.P;
S.prototype.set = S.prototype.set;
S.prototype.setProperties = S.prototype.I;
S.prototype.unset = S.prototype.R;
S.prototype.changed = S.prototype.s;
S.prototype.dispatchEvent = S.prototype.o;
S.prototype.getRevision = S.prototype.L;
S.prototype.on = S.prototype.H;
S.prototype.once = S.prototype.M;
S.prototype.un = S.prototype.K;
S.prototype.unByKey = S.prototype.N;
Mj.prototype.map = Mj.prototype.map;
Mj.prototype.frameState = Mj.prototype.frameState;
Nj.prototype.originalEvent = Nj.prototype.originalEvent;
Nj.prototype.pixel = Nj.prototype.pixel;
Nj.prototype.coordinate = Nj.prototype.coordinate;
Nj.prototype.dragging = Nj.prototype.dragging;
Nj.prototype.preventDefault = Nj.prototype.preventDefault;
Nj.prototype.stopPropagation = Nj.prototype.b;
Nj.prototype.map = Nj.prototype.map;
Nj.prototype.frameState = Nj.prototype.frameState;
mr.prototype.get = mr.prototype.get;
mr.prototype.getKeys = mr.prototype.O;
mr.prototype.getProperties = mr.prototype.P;
mr.prototype.set = mr.prototype.set;
mr.prototype.setProperties = mr.prototype.I;
mr.prototype.unset = mr.prototype.R;
mr.prototype.changed = mr.prototype.s;
mr.prototype.dispatchEvent = mr.prototype.o;
mr.prototype.getRevision = mr.prototype.L;
mr.prototype.on = mr.prototype.H;
mr.prototype.once = mr.prototype.M;
mr.prototype.un = mr.prototype.K;
mr.prototype.unByKey = mr.prototype.N;
Tp.prototype.getTileCoord = Tp.prototype.f;
Of.prototype.get = Of.prototype.get;
Of.prototype.getKeys = Of.prototype.O;
Of.prototype.getProperties = Of.prototype.P;
Of.prototype.set = Of.prototype.set;
Of.prototype.setProperties = Of.prototype.I;
Of.prototype.unset = Of.prototype.R;
Of.prototype.changed = Of.prototype.s;
Of.prototype.dispatchEvent = Of.prototype.o;
Of.prototype.getRevision = Of.prototype.L;
Of.prototype.on = Of.prototype.H;
Of.prototype.once = Of.prototype.M;
Of.prototype.un = Of.prototype.K;
Of.prototype.unByKey = Of.prototype.N;
DA.prototype.getMaxZoom = DA.prototype.Cg;
DA.prototype.getMinZoom = DA.prototype.Dg;
DA.prototype.getOrigin = DA.prototype.Ca;
DA.prototype.getResolution = DA.prototype.$;
DA.prototype.getResolutions = DA.prototype.wh;
DA.prototype.getTileCoordExtent = DA.prototype.Aa;
DA.prototype.getTileCoordForCoordAndResolution = DA.prototype.ee;
DA.prototype.getTileCoordForCoordAndZ = DA.prototype.fe;
DA.prototype.getTileSize = DA.prototype.Ha;
bm.prototype.getOpacity = bm.prototype.Ae;
bm.prototype.getRotateWithView = bm.prototype.ce;
bm.prototype.getRotation = bm.prototype.Be;
bm.prototype.getScale = bm.prototype.Ce;
bm.prototype.getSnapToPixel = bm.prototype.de;
bm.prototype.setOpacity = bm.prototype.De;
bm.prototype.setRotation = bm.prototype.Ee;
bm.prototype.setScale = bm.prototype.Fe;
wk.prototype.getOpacity = wk.prototype.Ae;
wk.prototype.getRotateWithView = wk.prototype.ce;
wk.prototype.getRotation = wk.prototype.Be;
wk.prototype.getScale = wk.prototype.Ce;
wk.prototype.getSnapToPixel = wk.prototype.de;
wk.prototype.setOpacity = wk.prototype.De;
wk.prototype.setRotation = wk.prototype.Ee;
wk.prototype.setScale = wk.prototype.Fe;
MA.prototype.getOpacity = MA.prototype.Ae;
MA.prototype.getRotateWithView = MA.prototype.ce;
MA.prototype.getRotation = MA.prototype.Be;
MA.prototype.getScale = MA.prototype.Ce;
MA.prototype.getSnapToPixel = MA.prototype.de;
MA.prototype.setOpacity = MA.prototype.De;
MA.prototype.setRotation = MA.prototype.Ee;
MA.prototype.setScale = MA.prototype.Fe;
yh.prototype.get = yh.prototype.get;
yh.prototype.getKeys = yh.prototype.O;
yh.prototype.getProperties = yh.prototype.P;
yh.prototype.set = yh.prototype.set;
yh.prototype.setProperties = yh.prototype.I;
yh.prototype.unset = yh.prototype.R;
yh.prototype.changed = yh.prototype.s;
yh.prototype.dispatchEvent = yh.prototype.o;
yh.prototype.getRevision = yh.prototype.L;
yh.prototype.on = yh.prototype.H;
yh.prototype.once = yh.prototype.M;
yh.prototype.un = yh.prototype.K;
yh.prototype.unByKey = yh.prototype.N;
Ph.prototype.getAttributions = Ph.prototype.sa;
Ph.prototype.getLogo = Ph.prototype.qa;
Ph.prototype.getProjection = Ph.prototype.ta;
Ph.prototype.getState = Ph.prototype.ua;
Ph.prototype.setAttributions = Ph.prototype.na;
Ph.prototype.get = Ph.prototype.get;
Ph.prototype.getKeys = Ph.prototype.O;
Ph.prototype.getProperties = Ph.prototype.P;
Ph.prototype.set = Ph.prototype.set;
Ph.prototype.setProperties = Ph.prototype.I;
Ph.prototype.unset = Ph.prototype.R;
Ph.prototype.changed = Ph.prototype.s;
Ph.prototype.dispatchEvent = Ph.prototype.o;
Ph.prototype.getRevision = Ph.prototype.L;
Ph.prototype.on = Ph.prototype.H;
Ph.prototype.once = Ph.prototype.M;
Ph.prototype.un = Ph.prototype.K;
Ph.prototype.unByKey = Ph.prototype.N;
Zp.prototype.getTileGrid = Zp.prototype.Ga;
Zp.prototype.getAttributions = Zp.prototype.sa;
Zp.prototype.getLogo = Zp.prototype.qa;
Zp.prototype.getProjection = Zp.prototype.ta;
Zp.prototype.getState = Zp.prototype.ua;
Zp.prototype.setAttributions = Zp.prototype.na;
Zp.prototype.get = Zp.prototype.get;
Zp.prototype.getKeys = Zp.prototype.O;
Zp.prototype.getProperties = Zp.prototype.P;
Zp.prototype.set = Zp.prototype.set;
Zp.prototype.setProperties = Zp.prototype.I;
Zp.prototype.unset = Zp.prototype.R;
Zp.prototype.changed = Zp.prototype.s;
Zp.prototype.dispatchEvent = Zp.prototype.o;
Zp.prototype.getRevision = Zp.prototype.L;
Zp.prototype.on = Zp.prototype.H;
Zp.prototype.once = Zp.prototype.M;
Zp.prototype.un = Zp.prototype.K;
Zp.prototype.unByKey = Zp.prototype.N;
Y.prototype.getTileLoadFunction = Y.prototype.Wa;
Y.prototype.getTileUrlFunction = Y.prototype.Xa;
Y.prototype.getUrls = Y.prototype.Ya;
Y.prototype.setTileLoadFunction = Y.prototype.bb;
Y.prototype.setTileUrlFunction = Y.prototype.Ja;
Y.prototype.setUrl = Y.prototype.Ua;
Y.prototype.setUrls = Y.prototype.Va;
Y.prototype.getTileGrid = Y.prototype.Ga;
Y.prototype.getAttributions = Y.prototype.sa;
Y.prototype.getLogo = Y.prototype.qa;
Y.prototype.getProjection = Y.prototype.ta;
Y.prototype.getState = Y.prototype.ua;
Y.prototype.setAttributions = Y.prototype.na;
Y.prototype.get = Y.prototype.get;
Y.prototype.getKeys = Y.prototype.O;
Y.prototype.getProperties = Y.prototype.P;
Y.prototype.set = Y.prototype.set;
Y.prototype.setProperties = Y.prototype.I;
Y.prototype.unset = Y.prototype.R;
Y.prototype.changed = Y.prototype.s;
Y.prototype.dispatchEvent = Y.prototype.o;
Y.prototype.getRevision = Y.prototype.L;
Y.prototype.on = Y.prototype.H;
Y.prototype.once = Y.prototype.M;
Y.prototype.un = Y.prototype.K;
Y.prototype.unByKey = Y.prototype.N;
Oz.prototype.setRenderReprojectionEdges = Oz.prototype.wb;
Oz.prototype.setTileGridForProjection = Oz.prototype.xb;
Oz.prototype.getTileLoadFunction = Oz.prototype.Wa;
Oz.prototype.getTileUrlFunction = Oz.prototype.Xa;
Oz.prototype.getUrls = Oz.prototype.Ya;
Oz.prototype.setTileLoadFunction = Oz.prototype.bb;
Oz.prototype.setTileUrlFunction = Oz.prototype.Ja;
Oz.prototype.setUrl = Oz.prototype.Ua;
Oz.prototype.setUrls = Oz.prototype.Va;
Oz.prototype.getTileGrid = Oz.prototype.Ga;
Oz.prototype.getAttributions = Oz.prototype.sa;
Oz.prototype.getLogo = Oz.prototype.qa;
Oz.prototype.getProjection = Oz.prototype.ta;
Oz.prototype.getState = Oz.prototype.ua;
Oz.prototype.setAttributions = Oz.prototype.na;
Oz.prototype.get = Oz.prototype.get;
Oz.prototype.getKeys = Oz.prototype.O;
Oz.prototype.getProperties = Oz.prototype.P;
Oz.prototype.set = Oz.prototype.set;
Oz.prototype.setProperties = Oz.prototype.I;
Oz.prototype.unset = Oz.prototype.R;
Oz.prototype.changed = Oz.prototype.s;
Oz.prototype.dispatchEvent = Oz.prototype.o;
Oz.prototype.getRevision = Oz.prototype.L;
Oz.prototype.on = Oz.prototype.H;
Oz.prototype.once = Oz.prototype.M;
Oz.prototype.un = Oz.prototype.K;
Oz.prototype.unByKey = Oz.prototype.N;
R.prototype.getAttributions = R.prototype.sa;
R.prototype.getLogo = R.prototype.qa;
R.prototype.getProjection = R.prototype.ta;
R.prototype.getState = R.prototype.ua;
R.prototype.setAttributions = R.prototype.na;
R.prototype.get = R.prototype.get;
R.prototype.getKeys = R.prototype.O;
R.prototype.getProperties = R.prototype.P;
R.prototype.set = R.prototype.set;
R.prototype.setProperties = R.prototype.I;
R.prototype.unset = R.prototype.R;
R.prototype.changed = R.prototype.s;
R.prototype.dispatchEvent = R.prototype.o;
R.prototype.getRevision = R.prototype.L;
R.prototype.on = R.prototype.H;
R.prototype.once = R.prototype.M;
R.prototype.un = R.prototype.K;
R.prototype.unByKey = R.prototype.N;
Qz.prototype.addFeature = Qz.prototype.Ad;
Qz.prototype.addFeatures = Qz.prototype.Dc;
Qz.prototype.clear = Qz.prototype.clear;
Qz.prototype.forEachFeature = Qz.prototype.rg;
Qz.prototype.forEachFeatureInExtent = Qz.prototype.ob;
Qz.prototype.forEachFeatureIntersectingExtent = Qz.prototype.sg;
Qz.prototype.getFeaturesCollection = Qz.prototype.yg;
Qz.prototype.getFeatures = Qz.prototype.ye;
Qz.prototype.getFeaturesAtCoordinate = Qz.prototype.xg;
Qz.prototype.getFeaturesInExtent = Qz.prototype.lf;
Qz.prototype.getClosestFeatureToCoordinate = Qz.prototype.ug;
Qz.prototype.getExtent = Qz.prototype.J;
Qz.prototype.getFeatureById = Qz.prototype.wg;
Qz.prototype.removeFeature = Qz.prototype.Qc;
Qz.prototype.getAttributions = Qz.prototype.sa;
Qz.prototype.getLogo = Qz.prototype.qa;
Qz.prototype.getProjection = Qz.prototype.ta;
Qz.prototype.getState = Qz.prototype.ua;
Qz.prototype.setAttributions = Qz.prototype.na;
Qz.prototype.get = Qz.prototype.get;
Qz.prototype.getKeys = Qz.prototype.O;
Qz.prototype.getProperties = Qz.prototype.P;
Qz.prototype.set = Qz.prototype.set;
Qz.prototype.setProperties = Qz.prototype.I;
Qz.prototype.unset = Qz.prototype.R;
Qz.prototype.changed = Qz.prototype.s;
Qz.prototype.dispatchEvent = Qz.prototype.o;
Qz.prototype.getRevision = Qz.prototype.L;
Qz.prototype.on = Qz.prototype.H;
Qz.prototype.once = Qz.prototype.M;
Qz.prototype.un = Qz.prototype.K;
Qz.prototype.unByKey = Qz.prototype.N;
kn.prototype.getAttributions = kn.prototype.sa;
kn.prototype.getLogo = kn.prototype.qa;
kn.prototype.getProjection = kn.prototype.ta;
kn.prototype.getState = kn.prototype.ua;
kn.prototype.setAttributions = kn.prototype.na;
kn.prototype.get = kn.prototype.get;
kn.prototype.getKeys = kn.prototype.O;
kn.prototype.getProperties = kn.prototype.P;
kn.prototype.set = kn.prototype.set;
kn.prototype.setProperties = kn.prototype.I;
kn.prototype.unset = kn.prototype.R;
kn.prototype.changed = kn.prototype.s;
kn.prototype.dispatchEvent = kn.prototype.o;
kn.prototype.getRevision = kn.prototype.L;
kn.prototype.on = kn.prototype.H;
kn.prototype.once = kn.prototype.M;
kn.prototype.un = kn.prototype.K;
kn.prototype.unByKey = kn.prototype.N;
rn.prototype.getAttributions = rn.prototype.sa;
rn.prototype.getLogo = rn.prototype.qa;
rn.prototype.getProjection = rn.prototype.ta;
rn.prototype.getState = rn.prototype.ua;
rn.prototype.setAttributions = rn.prototype.na;
rn.prototype.get = rn.prototype.get;
rn.prototype.getKeys = rn.prototype.O;
rn.prototype.getProperties = rn.prototype.P;
rn.prototype.set = rn.prototype.set;
rn.prototype.setProperties = rn.prototype.I;
rn.prototype.unset = rn.prototype.R;
rn.prototype.changed = rn.prototype.s;
rn.prototype.dispatchEvent = rn.prototype.o;
rn.prototype.getRevision = rn.prototype.L;
rn.prototype.on = rn.prototype.H;
rn.prototype.once = rn.prototype.M;
rn.prototype.un = rn.prototype.K;
rn.prototype.unByKey = rn.prototype.N;
Tz.prototype.getAttributions = Tz.prototype.sa;
Tz.prototype.getLogo = Tz.prototype.qa;
Tz.prototype.getProjection = Tz.prototype.ta;
Tz.prototype.getState = Tz.prototype.ua;
Tz.prototype.setAttributions = Tz.prototype.na;
Tz.prototype.get = Tz.prototype.get;
Tz.prototype.getKeys = Tz.prototype.O;
Tz.prototype.getProperties = Tz.prototype.P;
Tz.prototype.set = Tz.prototype.set;
Tz.prototype.setProperties = Tz.prototype.I;
Tz.prototype.unset = Tz.prototype.R;
Tz.prototype.changed = Tz.prototype.s;
Tz.prototype.dispatchEvent = Tz.prototype.o;
Tz.prototype.getRevision = Tz.prototype.L;
Tz.prototype.on = Tz.prototype.H;
Tz.prototype.once = Tz.prototype.M;
Tz.prototype.un = Tz.prototype.K;
Tz.prototype.unByKey = Tz.prototype.N;
Uz.prototype.getAttributions = Uz.prototype.sa;
Uz.prototype.getLogo = Uz.prototype.qa;
Uz.prototype.getProjection = Uz.prototype.ta;
Uz.prototype.getState = Uz.prototype.ua;
Uz.prototype.setAttributions = Uz.prototype.na;
Uz.prototype.get = Uz.prototype.get;
Uz.prototype.getKeys = Uz.prototype.O;
Uz.prototype.getProperties = Uz.prototype.P;
Uz.prototype.set = Uz.prototype.set;
Uz.prototype.setProperties = Uz.prototype.I;
Uz.prototype.unset = Uz.prototype.R;
Uz.prototype.changed = Uz.prototype.s;
Uz.prototype.dispatchEvent = Uz.prototype.o;
Uz.prototype.getRevision = Uz.prototype.L;
Uz.prototype.on = Uz.prototype.H;
Uz.prototype.once = Uz.prototype.M;
Uz.prototype.un = Uz.prototype.K;
Uz.prototype.unByKey = Uz.prototype.N;
Op.prototype.getAttributions = Op.prototype.sa;
Op.prototype.getLogo = Op.prototype.qa;
Op.prototype.getProjection = Op.prototype.ta;
Op.prototype.getState = Op.prototype.ua;
Op.prototype.setAttributions = Op.prototype.na;
Op.prototype.get = Op.prototype.get;
Op.prototype.getKeys = Op.prototype.O;
Op.prototype.getProperties = Op.prototype.P;
Op.prototype.set = Op.prototype.set;
Op.prototype.setProperties = Op.prototype.I;
Op.prototype.unset = Op.prototype.R;
Op.prototype.changed = Op.prototype.s;
Op.prototype.dispatchEvent = Op.prototype.o;
Op.prototype.getRevision = Op.prototype.L;
Op.prototype.on = Op.prototype.H;
Op.prototype.once = Op.prototype.M;
Op.prototype.un = Op.prototype.K;
Op.prototype.unByKey = Op.prototype.N;
Vz.prototype.getAttributions = Vz.prototype.sa;
Vz.prototype.getLogo = Vz.prototype.qa;
Vz.prototype.getProjection = Vz.prototype.ta;
Vz.prototype.getState = Vz.prototype.ua;
Vz.prototype.setAttributions = Vz.prototype.na;
Vz.prototype.get = Vz.prototype.get;
Vz.prototype.getKeys = Vz.prototype.O;
Vz.prototype.getProperties = Vz.prototype.P;
Vz.prototype.set = Vz.prototype.set;
Vz.prototype.setProperties = Vz.prototype.I;
Vz.prototype.unset = Vz.prototype.R;
Vz.prototype.changed = Vz.prototype.s;
Vz.prototype.dispatchEvent = Vz.prototype.o;
Vz.prototype.getRevision = Vz.prototype.L;
Vz.prototype.on = Vz.prototype.H;
Vz.prototype.once = Vz.prototype.M;
Vz.prototype.un = Vz.prototype.K;
Vz.prototype.unByKey = Vz.prototype.N;
Zz.prototype.setRenderReprojectionEdges = Zz.prototype.wb;
Zz.prototype.setTileGridForProjection = Zz.prototype.xb;
Zz.prototype.getTileLoadFunction = Zz.prototype.Wa;
Zz.prototype.getTileUrlFunction = Zz.prototype.Xa;
Zz.prototype.getUrls = Zz.prototype.Ya;
Zz.prototype.setTileLoadFunction = Zz.prototype.bb;
Zz.prototype.setTileUrlFunction = Zz.prototype.Ja;
Zz.prototype.setUrl = Zz.prototype.Ua;
Zz.prototype.setUrls = Zz.prototype.Va;
Zz.prototype.getTileGrid = Zz.prototype.Ga;
Zz.prototype.getAttributions = Zz.prototype.sa;
Zz.prototype.getLogo = Zz.prototype.qa;
Zz.prototype.getProjection = Zz.prototype.ta;
Zz.prototype.getState = Zz.prototype.ua;
Zz.prototype.setAttributions = Zz.prototype.na;
Zz.prototype.get = Zz.prototype.get;
Zz.prototype.getKeys = Zz.prototype.O;
Zz.prototype.getProperties = Zz.prototype.P;
Zz.prototype.set = Zz.prototype.set;
Zz.prototype.setProperties = Zz.prototype.I;
Zz.prototype.unset = Zz.prototype.R;
Zz.prototype.changed = Zz.prototype.s;
Zz.prototype.dispatchEvent = Zz.prototype.o;
Zz.prototype.getRevision = Zz.prototype.L;
Zz.prototype.on = Zz.prototype.H;
Zz.prototype.once = Zz.prototype.M;
Zz.prototype.un = Zz.prototype.K;
Zz.prototype.unByKey = Zz.prototype.N;
bA.prototype.setRenderReprojectionEdges = bA.prototype.wb;
bA.prototype.setTileGridForProjection = bA.prototype.xb;
bA.prototype.getTileLoadFunction = bA.prototype.Wa;
bA.prototype.getTileUrlFunction = bA.prototype.Xa;
bA.prototype.getUrls = bA.prototype.Ya;
bA.prototype.setTileLoadFunction = bA.prototype.bb;
bA.prototype.setTileUrlFunction = bA.prototype.Ja;
bA.prototype.setUrl = bA.prototype.Ua;
bA.prototype.setUrls = bA.prototype.Va;
bA.prototype.getTileGrid = bA.prototype.Ga;
bA.prototype.getAttributions = bA.prototype.sa;
bA.prototype.getLogo = bA.prototype.qa;
bA.prototype.getProjection = bA.prototype.ta;
bA.prototype.getState = bA.prototype.ua;
bA.prototype.setAttributions = bA.prototype.na;
bA.prototype.get = bA.prototype.get;
bA.prototype.getKeys = bA.prototype.O;
bA.prototype.getProperties = bA.prototype.P;
bA.prototype.set = bA.prototype.set;
bA.prototype.setProperties = bA.prototype.I;
bA.prototype.unset = bA.prototype.R;
bA.prototype.changed = bA.prototype.s;
bA.prototype.dispatchEvent = bA.prototype.o;
bA.prototype.getRevision = bA.prototype.L;
bA.prototype.on = bA.prototype.H;
bA.prototype.once = bA.prototype.M;
bA.prototype.un = bA.prototype.K;
bA.prototype.unByKey = bA.prototype.N;
$z.prototype.setRenderReprojectionEdges = $z.prototype.wb;
$z.prototype.setTileGridForProjection = $z.prototype.xb;
$z.prototype.getTileLoadFunction = $z.prototype.Wa;
$z.prototype.getTileUrlFunction = $z.prototype.Xa;
$z.prototype.getUrls = $z.prototype.Ya;
$z.prototype.setTileLoadFunction = $z.prototype.bb;
$z.prototype.setTileUrlFunction = $z.prototype.Ja;
$z.prototype.setUrl = $z.prototype.Ua;
$z.prototype.setUrls = $z.prototype.Va;
$z.prototype.getTileGrid = $z.prototype.Ga;
$z.prototype.getAttributions = $z.prototype.sa;
$z.prototype.getLogo = $z.prototype.qa;
$z.prototype.getProjection = $z.prototype.ta;
$z.prototype.getState = $z.prototype.ua;
$z.prototype.setAttributions = $z.prototype.na;
$z.prototype.get = $z.prototype.get;
$z.prototype.getKeys = $z.prototype.O;
$z.prototype.getProperties = $z.prototype.P;
$z.prototype.set = $z.prototype.set;
$z.prototype.setProperties = $z.prototype.I;
$z.prototype.unset = $z.prototype.R;
$z.prototype.changed = $z.prototype.s;
$z.prototype.dispatchEvent = $z.prototype.o;
$z.prototype.getRevision = $z.prototype.L;
$z.prototype.on = $z.prototype.H;
$z.prototype.once = $z.prototype.M;
$z.prototype.un = $z.prototype.K;
$z.prototype.unByKey = $z.prototype.N;
eA.prototype.getAttributions = eA.prototype.sa;
eA.prototype.getLogo = eA.prototype.qa;
eA.prototype.getProjection = eA.prototype.ta;
eA.prototype.getState = eA.prototype.ua;
eA.prototype.setAttributions = eA.prototype.na;
eA.prototype.get = eA.prototype.get;
eA.prototype.getKeys = eA.prototype.O;
eA.prototype.getProperties = eA.prototype.P;
eA.prototype.set = eA.prototype.set;
eA.prototype.setProperties = eA.prototype.I;
eA.prototype.unset = eA.prototype.R;
eA.prototype.changed = eA.prototype.s;
eA.prototype.dispatchEvent = eA.prototype.o;
eA.prototype.getRevision = eA.prototype.L;
eA.prototype.on = eA.prototype.H;
eA.prototype.once = eA.prototype.M;
eA.prototype.un = eA.prototype.K;
eA.prototype.unByKey = eA.prototype.N;
oA.prototype.setRenderReprojectionEdges = oA.prototype.wb;
oA.prototype.setTileGridForProjection = oA.prototype.xb;
oA.prototype.getTileLoadFunction = oA.prototype.Wa;
oA.prototype.getTileUrlFunction = oA.prototype.Xa;
oA.prototype.getUrls = oA.prototype.Ya;
oA.prototype.setTileLoadFunction = oA.prototype.bb;
oA.prototype.setTileUrlFunction = oA.prototype.Ja;
oA.prototype.setUrl = oA.prototype.Ua;
oA.prototype.setUrls = oA.prototype.Va;
oA.prototype.getTileGrid = oA.prototype.Ga;
oA.prototype.getAttributions = oA.prototype.sa;
oA.prototype.getLogo = oA.prototype.qa;
oA.prototype.getProjection = oA.prototype.ta;
oA.prototype.getState = oA.prototype.ua;
oA.prototype.setAttributions = oA.prototype.na;
oA.prototype.get = oA.prototype.get;
oA.prototype.getKeys = oA.prototype.O;
oA.prototype.getProperties = oA.prototype.P;
oA.prototype.set = oA.prototype.set;
oA.prototype.setProperties = oA.prototype.I;
oA.prototype.unset = oA.prototype.R;
oA.prototype.changed = oA.prototype.s;
oA.prototype.dispatchEvent = oA.prototype.o;
oA.prototype.getRevision = oA.prototype.L;
oA.prototype.on = oA.prototype.H;
oA.prototype.once = oA.prototype.M;
oA.prototype.un = oA.prototype.K;
oA.prototype.unByKey = oA.prototype.N;
qA.prototype.setRenderReprojectionEdges = qA.prototype.wb;
qA.prototype.setTileGridForProjection = qA.prototype.xb;
qA.prototype.getTileLoadFunction = qA.prototype.Wa;
qA.prototype.getTileUrlFunction = qA.prototype.Xa;
qA.prototype.getUrls = qA.prototype.Ya;
qA.prototype.setTileLoadFunction = qA.prototype.bb;
qA.prototype.setTileUrlFunction = qA.prototype.Ja;
qA.prototype.setUrl = qA.prototype.Ua;
qA.prototype.setUrls = qA.prototype.Va;
qA.prototype.getTileGrid = qA.prototype.Ga;
qA.prototype.getAttributions = qA.prototype.sa;
qA.prototype.getLogo = qA.prototype.qa;
qA.prototype.getProjection = qA.prototype.ta;
qA.prototype.getState = qA.prototype.ua;
qA.prototype.setAttributions = qA.prototype.na;
qA.prototype.get = qA.prototype.get;
qA.prototype.getKeys = qA.prototype.O;
qA.prototype.getProperties = qA.prototype.P;
qA.prototype.set = qA.prototype.set;
qA.prototype.setProperties = qA.prototype.I;
qA.prototype.unset = qA.prototype.R;
qA.prototype.changed = qA.prototype.s;
qA.prototype.dispatchEvent = qA.prototype.o;
qA.prototype.getRevision = qA.prototype.L;
qA.prototype.on = qA.prototype.H;
qA.prototype.once = qA.prototype.M;
qA.prototype.un = qA.prototype.K;
qA.prototype.unByKey = qA.prototype.N;
sA.prototype.getTileGrid = sA.prototype.Ga;
sA.prototype.getAttributions = sA.prototype.sa;
sA.prototype.getLogo = sA.prototype.qa;
sA.prototype.getProjection = sA.prototype.ta;
sA.prototype.getState = sA.prototype.ua;
sA.prototype.setAttributions = sA.prototype.na;
sA.prototype.get = sA.prototype.get;
sA.prototype.getKeys = sA.prototype.O;
sA.prototype.getProperties = sA.prototype.P;
sA.prototype.set = sA.prototype.set;
sA.prototype.setProperties = sA.prototype.I;
sA.prototype.unset = sA.prototype.R;
sA.prototype.changed = sA.prototype.s;
sA.prototype.dispatchEvent = sA.prototype.o;
sA.prototype.getRevision = sA.prototype.L;
sA.prototype.on = sA.prototype.H;
sA.prototype.once = sA.prototype.M;
sA.prototype.un = sA.prototype.K;
sA.prototype.unByKey = sA.prototype.N;
tA.prototype.setRenderReprojectionEdges = tA.prototype.wb;
tA.prototype.setTileGridForProjection = tA.prototype.xb;
tA.prototype.getTileLoadFunction = tA.prototype.Wa;
tA.prototype.getTileUrlFunction = tA.prototype.Xa;
tA.prototype.getUrls = tA.prototype.Ya;
tA.prototype.setTileLoadFunction = tA.prototype.bb;
tA.prototype.setTileUrlFunction = tA.prototype.Ja;
tA.prototype.setUrl = tA.prototype.Ua;
tA.prototype.setUrls = tA.prototype.Va;
tA.prototype.getTileGrid = tA.prototype.Ga;
tA.prototype.getAttributions = tA.prototype.sa;
tA.prototype.getLogo = tA.prototype.qa;
tA.prototype.getProjection = tA.prototype.ta;
tA.prototype.getState = tA.prototype.ua;
tA.prototype.setAttributions = tA.prototype.na;
tA.prototype.get = tA.prototype.get;
tA.prototype.getKeys = tA.prototype.O;
tA.prototype.getProperties = tA.prototype.P;
tA.prototype.set = tA.prototype.set;
tA.prototype.setProperties = tA.prototype.I;
tA.prototype.unset = tA.prototype.R;
tA.prototype.changed = tA.prototype.s;
tA.prototype.dispatchEvent = tA.prototype.o;
tA.prototype.getRevision = tA.prototype.L;
tA.prototype.on = tA.prototype.H;
tA.prototype.once = tA.prototype.M;
tA.prototype.un = tA.prototype.K;
tA.prototype.unByKey = tA.prototype.N;
uA.prototype.getTileGrid = uA.prototype.Ga;
uA.prototype.getAttributions = uA.prototype.sa;
uA.prototype.getLogo = uA.prototype.qa;
uA.prototype.getProjection = uA.prototype.ta;
uA.prototype.getState = uA.prototype.ua;
uA.prototype.setAttributions = uA.prototype.na;
uA.prototype.get = uA.prototype.get;
uA.prototype.getKeys = uA.prototype.O;
uA.prototype.getProperties = uA.prototype.P;
uA.prototype.set = uA.prototype.set;
uA.prototype.setProperties = uA.prototype.I;
uA.prototype.unset = uA.prototype.R;
uA.prototype.changed = uA.prototype.s;
uA.prototype.dispatchEvent = uA.prototype.o;
uA.prototype.getRevision = uA.prototype.L;
uA.prototype.on = uA.prototype.H;
uA.prototype.once = uA.prototype.M;
uA.prototype.un = uA.prototype.K;
uA.prototype.unByKey = uA.prototype.N;
zA.prototype.setRenderReprojectionEdges = zA.prototype.wb;
zA.prototype.setTileGridForProjection = zA.prototype.xb;
zA.prototype.getTileLoadFunction = zA.prototype.Wa;
zA.prototype.getTileUrlFunction = zA.prototype.Xa;
zA.prototype.getUrls = zA.prototype.Ya;
zA.prototype.setTileLoadFunction = zA.prototype.bb;
zA.prototype.setTileUrlFunction = zA.prototype.Ja;
zA.prototype.setUrl = zA.prototype.Ua;
zA.prototype.setUrls = zA.prototype.Va;
zA.prototype.getTileGrid = zA.prototype.Ga;
zA.prototype.getAttributions = zA.prototype.sa;
zA.prototype.getLogo = zA.prototype.qa;
zA.prototype.getProjection = zA.prototype.ta;
zA.prototype.getState = zA.prototype.ua;
zA.prototype.setAttributions = zA.prototype.na;
zA.prototype.get = zA.prototype.get;
zA.prototype.getKeys = zA.prototype.O;
zA.prototype.getProperties = zA.prototype.P;
zA.prototype.set = zA.prototype.set;
zA.prototype.setProperties = zA.prototype.I;
zA.prototype.unset = zA.prototype.R;
zA.prototype.changed = zA.prototype.s;
zA.prototype.dispatchEvent = zA.prototype.o;
zA.prototype.getRevision = zA.prototype.L;
zA.prototype.on = zA.prototype.H;
zA.prototype.once = zA.prototype.M;
zA.prototype.un = zA.prototype.K;
zA.prototype.unByKey = zA.prototype.N;
$p.prototype.getTileLoadFunction = $p.prototype.Wa;
$p.prototype.getTileUrlFunction = $p.prototype.Xa;
$p.prototype.getUrls = $p.prototype.Ya;
$p.prototype.setTileLoadFunction = $p.prototype.bb;
$p.prototype.setTileUrlFunction = $p.prototype.Ja;
$p.prototype.setUrl = $p.prototype.Ua;
$p.prototype.setUrls = $p.prototype.Va;
$p.prototype.getTileGrid = $p.prototype.Ga;
$p.prototype.getAttributions = $p.prototype.sa;
$p.prototype.getLogo = $p.prototype.qa;
$p.prototype.getProjection = $p.prototype.ta;
$p.prototype.getState = $p.prototype.ua;
$p.prototype.setAttributions = $p.prototype.na;
$p.prototype.get = $p.prototype.get;
$p.prototype.getKeys = $p.prototype.O;
$p.prototype.getProperties = $p.prototype.P;
$p.prototype.set = $p.prototype.set;
$p.prototype.setProperties = $p.prototype.I;
$p.prototype.unset = $p.prototype.R;
$p.prototype.changed = $p.prototype.s;
$p.prototype.dispatchEvent = $p.prototype.o;
$p.prototype.getRevision = $p.prototype.L;
$p.prototype.on = $p.prototype.H;
$p.prototype.once = $p.prototype.M;
$p.prototype.un = $p.prototype.K;
$p.prototype.unByKey = $p.prototype.N;
Z.prototype.setRenderReprojectionEdges = Z.prototype.wb;
Z.prototype.setTileGridForProjection = Z.prototype.xb;
Z.prototype.getTileLoadFunction = Z.prototype.Wa;
Z.prototype.getTileUrlFunction = Z.prototype.Xa;
Z.prototype.getUrls = Z.prototype.Ya;
Z.prototype.setTileLoadFunction = Z.prototype.bb;
Z.prototype.setTileUrlFunction = Z.prototype.Ja;
Z.prototype.setUrl = Z.prototype.Ua;
Z.prototype.setUrls = Z.prototype.Va;
Z.prototype.getTileGrid = Z.prototype.Ga;
Z.prototype.getAttributions = Z.prototype.sa;
Z.prototype.getLogo = Z.prototype.qa;
Z.prototype.getProjection = Z.prototype.ta;
Z.prototype.getState = Z.prototype.ua;
Z.prototype.setAttributions = Z.prototype.na;
Z.prototype.get = Z.prototype.get;
Z.prototype.getKeys = Z.prototype.O;
Z.prototype.getProperties = Z.prototype.P;
Z.prototype.set = Z.prototype.set;
Z.prototype.setProperties = Z.prototype.I;
Z.prototype.unset = Z.prototype.R;
Z.prototype.changed = Z.prototype.s;
Z.prototype.dispatchEvent = Z.prototype.o;
Z.prototype.getRevision = Z.prototype.L;
Z.prototype.on = Z.prototype.H;
Z.prototype.once = Z.prototype.M;
Z.prototype.un = Z.prototype.K;
Z.prototype.unByKey = Z.prototype.N;
GA.prototype.setRenderReprojectionEdges = GA.prototype.wb;
GA.prototype.setTileGridForProjection = GA.prototype.xb;
GA.prototype.getTileLoadFunction = GA.prototype.Wa;
GA.prototype.getTileUrlFunction = GA.prototype.Xa;
GA.prototype.getUrls = GA.prototype.Ya;
GA.prototype.setTileLoadFunction = GA.prototype.bb;
GA.prototype.setTileUrlFunction = GA.prototype.Ja;
GA.prototype.setUrl = GA.prototype.Ua;
GA.prototype.setUrls = GA.prototype.Va;
GA.prototype.getTileGrid = GA.prototype.Ga;
GA.prototype.getAttributions = GA.prototype.sa;
GA.prototype.getLogo = GA.prototype.qa;
GA.prototype.getProjection = GA.prototype.ta;
GA.prototype.getState = GA.prototype.ua;
GA.prototype.setAttributions = GA.prototype.na;
GA.prototype.get = GA.prototype.get;
GA.prototype.getKeys = GA.prototype.O;
GA.prototype.getProperties = GA.prototype.P;
GA.prototype.set = GA.prototype.set;
GA.prototype.setProperties = GA.prototype.I;
GA.prototype.unset = GA.prototype.R;
GA.prototype.changed = GA.prototype.s;
GA.prototype.dispatchEvent = GA.prototype.o;
GA.prototype.getRevision = GA.prototype.L;
GA.prototype.on = GA.prototype.H;
GA.prototype.once = GA.prototype.M;
GA.prototype.un = GA.prototype.K;
GA.prototype.unByKey = GA.prototype.N;
xz.prototype.getTileCoord = xz.prototype.f;
lk.prototype.changed = lk.prototype.s;
lk.prototype.dispatchEvent = lk.prototype.o;
lk.prototype.getRevision = lk.prototype.L;
lk.prototype.on = lk.prototype.H;
lk.prototype.once = lk.prototype.M;
lk.prototype.un = lk.prototype.K;
lk.prototype.unByKey = lk.prototype.N;
Wq.prototype.changed = Wq.prototype.s;
Wq.prototype.dispatchEvent = Wq.prototype.o;
Wq.prototype.getRevision = Wq.prototype.L;
Wq.prototype.on = Wq.prototype.H;
Wq.prototype.once = Wq.prototype.M;
Wq.prototype.un = Wq.prototype.K;
Wq.prototype.unByKey = Wq.prototype.N;
Zq.prototype.changed = Zq.prototype.s;
Zq.prototype.dispatchEvent = Zq.prototype.o;
Zq.prototype.getRevision = Zq.prototype.L;
Zq.prototype.on = Zq.prototype.H;
Zq.prototype.once = Zq.prototype.M;
Zq.prototype.un = Zq.prototype.K;
Zq.prototype.unByKey = Zq.prototype.N;
er.prototype.changed = er.prototype.s;
er.prototype.dispatchEvent = er.prototype.o;
er.prototype.getRevision = er.prototype.L;
er.prototype.on = er.prototype.H;
er.prototype.once = er.prototype.M;
er.prototype.un = er.prototype.K;
er.prototype.unByKey = er.prototype.N;
gr.prototype.changed = gr.prototype.s;
gr.prototype.dispatchEvent = gr.prototype.o;
gr.prototype.getRevision = gr.prototype.L;
gr.prototype.on = gr.prototype.H;
gr.prototype.once = gr.prototype.M;
gr.prototype.un = gr.prototype.K;
gr.prototype.unByKey = gr.prototype.N;
fq.prototype.changed = fq.prototype.s;
fq.prototype.dispatchEvent = fq.prototype.o;
fq.prototype.getRevision = fq.prototype.L;
fq.prototype.on = fq.prototype.H;
fq.prototype.once = fq.prototype.M;
fq.prototype.un = fq.prototype.K;
fq.prototype.unByKey = fq.prototype.N;
gq.prototype.changed = gq.prototype.s;
gq.prototype.dispatchEvent = gq.prototype.o;
gq.prototype.getRevision = gq.prototype.L;
gq.prototype.on = gq.prototype.H;
gq.prototype.once = gq.prototype.M;
gq.prototype.un = gq.prototype.K;
gq.prototype.unByKey = gq.prototype.N;
hq.prototype.changed = hq.prototype.s;
hq.prototype.dispatchEvent = hq.prototype.o;
hq.prototype.getRevision = hq.prototype.L;
hq.prototype.on = hq.prototype.H;
hq.prototype.once = hq.prototype.M;
hq.prototype.un = hq.prototype.K;
hq.prototype.unByKey = hq.prototype.N;
jq.prototype.changed = jq.prototype.s;
jq.prototype.dispatchEvent = jq.prototype.o;
jq.prototype.getRevision = jq.prototype.L;
jq.prototype.on = jq.prototype.H;
jq.prototype.once = jq.prototype.M;
jq.prototype.un = jq.prototype.K;
jq.prototype.unByKey = jq.prototype.N;
xm.prototype.changed = xm.prototype.s;
xm.prototype.dispatchEvent = xm.prototype.o;
xm.prototype.getRevision = xm.prototype.L;
xm.prototype.on = xm.prototype.H;
xm.prototype.once = xm.prototype.M;
xm.prototype.un = xm.prototype.K;
xm.prototype.unByKey = xm.prototype.N;
Qp.prototype.changed = Qp.prototype.s;
Qp.prototype.dispatchEvent = Qp.prototype.o;
Qp.prototype.getRevision = Qp.prototype.L;
Qp.prototype.on = Qp.prototype.H;
Qp.prototype.once = Qp.prototype.M;
Qp.prototype.un = Qp.prototype.K;
Qp.prototype.unByKey = Qp.prototype.N;
Rp.prototype.changed = Rp.prototype.s;
Rp.prototype.dispatchEvent = Rp.prototype.o;
Rp.prototype.getRevision = Rp.prototype.L;
Rp.prototype.on = Rp.prototype.H;
Rp.prototype.once = Rp.prototype.M;
Rp.prototype.un = Rp.prototype.K;
Rp.prototype.unByKey = Rp.prototype.N;
Sp.prototype.changed = Sp.prototype.s;
Sp.prototype.dispatchEvent = Sp.prototype.o;
Sp.prototype.getRevision = Sp.prototype.L;
Sp.prototype.on = Sp.prototype.H;
Sp.prototype.once = Sp.prototype.M;
Sp.prototype.un = Sp.prototype.K;
Sp.prototype.unByKey = Sp.prototype.N;
bq.prototype.changed = bq.prototype.s;
bq.prototype.dispatchEvent = bq.prototype.o;
bq.prototype.getRevision = bq.prototype.L;
bq.prototype.on = bq.prototype.H;
bq.prototype.once = bq.prototype.M;
bq.prototype.un = bq.prototype.K;
bq.prototype.unByKey = bq.prototype.N;
ak.prototype.get = ak.prototype.get;
ak.prototype.getKeys = ak.prototype.O;
ak.prototype.getProperties = ak.prototype.P;
ak.prototype.set = ak.prototype.set;
ak.prototype.setProperties = ak.prototype.I;
ak.prototype.unset = ak.prototype.R;
ak.prototype.changed = ak.prototype.s;
ak.prototype.dispatchEvent = ak.prototype.o;
ak.prototype.getRevision = ak.prototype.L;
ak.prototype.on = ak.prototype.H;
ak.prototype.once = ak.prototype.M;
ak.prototype.un = ak.prototype.K;
ak.prototype.unByKey = ak.prototype.N;
ek.prototype.getExtent = ek.prototype.J;
ek.prototype.getMaxResolution = ek.prototype.Mb;
ek.prototype.getMinResolution = ek.prototype.Nb;
ek.prototype.getOpacity = ek.prototype.Rb;
ek.prototype.getVisible = ek.prototype.qb;
ek.prototype.getZIndex = ek.prototype.Sb;
ek.prototype.setExtent = ek.prototype.bc;
ek.prototype.setMaxResolution = ek.prototype.jc;
ek.prototype.setMinResolution = ek.prototype.kc;
ek.prototype.setOpacity = ek.prototype.cc;
ek.prototype.setVisible = ek.prototype.dc;
ek.prototype.setZIndex = ek.prototype.ec;
ek.prototype.get = ek.prototype.get;
ek.prototype.getKeys = ek.prototype.O;
ek.prototype.getProperties = ek.prototype.P;
ek.prototype.set = ek.prototype.set;
ek.prototype.setProperties = ek.prototype.I;
ek.prototype.unset = ek.prototype.R;
ek.prototype.changed = ek.prototype.s;
ek.prototype.dispatchEvent = ek.prototype.o;
ek.prototype.getRevision = ek.prototype.L;
ek.prototype.on = ek.prototype.H;
ek.prototype.once = ek.prototype.M;
ek.prototype.un = ek.prototype.K;
ek.prototype.unByKey = ek.prototype.N;
H.prototype.setMap = H.prototype.setMap;
H.prototype.setSource = H.prototype.wc;
H.prototype.getExtent = H.prototype.J;
H.prototype.getMaxResolution = H.prototype.Mb;
H.prototype.getMinResolution = H.prototype.Nb;
H.prototype.getOpacity = H.prototype.Rb;
H.prototype.getVisible = H.prototype.qb;
H.prototype.getZIndex = H.prototype.Sb;
H.prototype.setExtent = H.prototype.bc;
H.prototype.setMaxResolution = H.prototype.jc;
H.prototype.setMinResolution = H.prototype.kc;
H.prototype.setOpacity = H.prototype.cc;
H.prototype.setVisible = H.prototype.dc;
H.prototype.setZIndex = H.prototype.ec;
H.prototype.get = H.prototype.get;
H.prototype.getKeys = H.prototype.O;
H.prototype.getProperties = H.prototype.P;
H.prototype.set = H.prototype.set;
H.prototype.setProperties = H.prototype.I;
H.prototype.unset = H.prototype.R;
H.prototype.changed = H.prototype.s;
H.prototype.dispatchEvent = H.prototype.o;
H.prototype.getRevision = H.prototype.L;
H.prototype.on = H.prototype.H;
H.prototype.once = H.prototype.M;
H.prototype.un = H.prototype.K;
H.prototype.unByKey = H.prototype.N;
X.prototype.getSource = X.prototype.fa;
X.prototype.getStyle = X.prototype.D;
X.prototype.getStyleFunction = X.prototype.G;
X.prototype.setStyle = X.prototype.f;
X.prototype.setMap = X.prototype.setMap;
X.prototype.setSource = X.prototype.wc;
X.prototype.getExtent = X.prototype.J;
X.prototype.getMaxResolution = X.prototype.Mb;
X.prototype.getMinResolution = X.prototype.Nb;
X.prototype.getOpacity = X.prototype.Rb;
X.prototype.getVisible = X.prototype.qb;
X.prototype.getZIndex = X.prototype.Sb;
X.prototype.setExtent = X.prototype.bc;
X.prototype.setMaxResolution = X.prototype.jc;
X.prototype.setMinResolution = X.prototype.kc;
X.prototype.setOpacity = X.prototype.cc;
X.prototype.setVisible = X.prototype.dc;
X.prototype.setZIndex = X.prototype.ec;
X.prototype.get = X.prototype.get;
X.prototype.getKeys = X.prototype.O;
X.prototype.getProperties = X.prototype.P;
X.prototype.set = X.prototype.set;
X.prototype.setProperties = X.prototype.I;
X.prototype.unset = X.prototype.R;
X.prototype.changed = X.prototype.s;
X.prototype.dispatchEvent = X.prototype.o;
X.prototype.getRevision = X.prototype.L;
X.prototype.on = X.prototype.H;
X.prototype.once = X.prototype.M;
X.prototype.un = X.prototype.K;
X.prototype.unByKey = X.prototype.N;
Sl.prototype.setMap = Sl.prototype.setMap;
Sl.prototype.setSource = Sl.prototype.wc;
Sl.prototype.getExtent = Sl.prototype.J;
Sl.prototype.getMaxResolution = Sl.prototype.Mb;
Sl.prototype.getMinResolution = Sl.prototype.Nb;
Sl.prototype.getOpacity = Sl.prototype.Rb;
Sl.prototype.getVisible = Sl.prototype.qb;
Sl.prototype.getZIndex = Sl.prototype.Sb;
Sl.prototype.setExtent = Sl.prototype.bc;
Sl.prototype.setMaxResolution = Sl.prototype.jc;
Sl.prototype.setMinResolution = Sl.prototype.kc;
Sl.prototype.setOpacity = Sl.prototype.cc;
Sl.prototype.setVisible = Sl.prototype.dc;
Sl.prototype.setZIndex = Sl.prototype.ec;
Sl.prototype.get = Sl.prototype.get;
Sl.prototype.getKeys = Sl.prototype.O;
Sl.prototype.getProperties = Sl.prototype.P;
Sl.prototype.set = Sl.prototype.set;
Sl.prototype.setProperties = Sl.prototype.I;
Sl.prototype.unset = Sl.prototype.R;
Sl.prototype.changed = Sl.prototype.s;
Sl.prototype.dispatchEvent = Sl.prototype.o;
Sl.prototype.getRevision = Sl.prototype.L;
Sl.prototype.on = Sl.prototype.H;
Sl.prototype.once = Sl.prototype.M;
Sl.prototype.un = Sl.prototype.K;
Sl.prototype.unByKey = Sl.prototype.N;
Kl.prototype.getExtent = Kl.prototype.J;
Kl.prototype.getMaxResolution = Kl.prototype.Mb;
Kl.prototype.getMinResolution = Kl.prototype.Nb;
Kl.prototype.getOpacity = Kl.prototype.Rb;
Kl.prototype.getVisible = Kl.prototype.qb;
Kl.prototype.getZIndex = Kl.prototype.Sb;
Kl.prototype.setExtent = Kl.prototype.bc;
Kl.prototype.setMaxResolution = Kl.prototype.jc;
Kl.prototype.setMinResolution = Kl.prototype.kc;
Kl.prototype.setOpacity = Kl.prototype.cc;
Kl.prototype.setVisible = Kl.prototype.dc;
Kl.prototype.setZIndex = Kl.prototype.ec;
Kl.prototype.get = Kl.prototype.get;
Kl.prototype.getKeys = Kl.prototype.O;
Kl.prototype.getProperties = Kl.prototype.P;
Kl.prototype.set = Kl.prototype.set;
Kl.prototype.setProperties = Kl.prototype.I;
Kl.prototype.unset = Kl.prototype.R;
Kl.prototype.changed = Kl.prototype.s;
Kl.prototype.dispatchEvent = Kl.prototype.o;
Kl.prototype.getRevision = Kl.prototype.L;
Kl.prototype.on = Kl.prototype.H;
Kl.prototype.once = Kl.prototype.M;
Kl.prototype.un = Kl.prototype.K;
Kl.prototype.unByKey = Kl.prototype.N;
F.prototype.setMap = F.prototype.setMap;
F.prototype.setSource = F.prototype.wc;
F.prototype.getExtent = F.prototype.J;
F.prototype.getMaxResolution = F.prototype.Mb;
F.prototype.getMinResolution = F.prototype.Nb;
F.prototype.getOpacity = F.prototype.Rb;
F.prototype.getVisible = F.prototype.qb;
F.prototype.getZIndex = F.prototype.Sb;
F.prototype.setExtent = F.prototype.bc;
F.prototype.setMaxResolution = F.prototype.jc;
F.prototype.setMinResolution = F.prototype.kc;
F.prototype.setOpacity = F.prototype.cc;
F.prototype.setVisible = F.prototype.dc;
F.prototype.setZIndex = F.prototype.ec;
F.prototype.get = F.prototype.get;
F.prototype.getKeys = F.prototype.O;
F.prototype.getProperties = F.prototype.P;
F.prototype.set = F.prototype.set;
F.prototype.setProperties = F.prototype.I;
F.prototype.unset = F.prototype.R;
F.prototype.changed = F.prototype.s;
F.prototype.dispatchEvent = F.prototype.o;
F.prototype.getRevision = F.prototype.L;
F.prototype.on = F.prototype.H;
F.prototype.once = F.prototype.M;
F.prototype.un = F.prototype.K;
F.prototype.unByKey = F.prototype.N;
J.prototype.getStyle = J.prototype.D;
J.prototype.getStyleFunction = J.prototype.G;
J.prototype.setStyle = J.prototype.f;
J.prototype.setMap = J.prototype.setMap;
J.prototype.setSource = J.prototype.wc;
J.prototype.getExtent = J.prototype.J;
J.prototype.getMaxResolution = J.prototype.Mb;
J.prototype.getMinResolution = J.prototype.Nb;
J.prototype.getOpacity = J.prototype.Rb;
J.prototype.getVisible = J.prototype.qb;
J.prototype.getZIndex = J.prototype.Sb;
J.prototype.setExtent = J.prototype.bc;
J.prototype.setMaxResolution = J.prototype.jc;
J.prototype.setMinResolution = J.prototype.kc;
J.prototype.setOpacity = J.prototype.cc;
J.prototype.setVisible = J.prototype.dc;
J.prototype.setZIndex = J.prototype.ec;
J.prototype.get = J.prototype.get;
J.prototype.getKeys = J.prototype.O;
J.prototype.getProperties = J.prototype.P;
J.prototype.set = J.prototype.set;
J.prototype.setProperties = J.prototype.I;
J.prototype.unset = J.prototype.R;
J.prototype.changed = J.prototype.s;
J.prototype.dispatchEvent = J.prototype.o;
J.prototype.getRevision = J.prototype.L;
J.prototype.on = J.prototype.H;
J.prototype.once = J.prototype.M;
J.prototype.un = J.prototype.K;
J.prototype.unByKey = J.prototype.N;
Ok.prototype.get = Ok.prototype.get;
Ok.prototype.getKeys = Ok.prototype.O;
Ok.prototype.getProperties = Ok.prototype.P;
Ok.prototype.set = Ok.prototype.set;
Ok.prototype.setProperties = Ok.prototype.I;
Ok.prototype.unset = Ok.prototype.R;
Ok.prototype.changed = Ok.prototype.s;
Ok.prototype.dispatchEvent = Ok.prototype.o;
Ok.prototype.getRevision = Ok.prototype.L;
Ok.prototype.on = Ok.prototype.H;
Ok.prototype.once = Ok.prototype.M;
Ok.prototype.un = Ok.prototype.K;
Ok.prototype.unByKey = Ok.prototype.N;
Sk.prototype.getActive = Sk.prototype.b;
Sk.prototype.setActive = Sk.prototype.g;
Sk.prototype.get = Sk.prototype.get;
Sk.prototype.getKeys = Sk.prototype.O;
Sk.prototype.getProperties = Sk.prototype.P;
Sk.prototype.set = Sk.prototype.set;
Sk.prototype.setProperties = Sk.prototype.I;
Sk.prototype.unset = Sk.prototype.R;
Sk.prototype.changed = Sk.prototype.s;
Sk.prototype.dispatchEvent = Sk.prototype.o;
Sk.prototype.getRevision = Sk.prototype.L;
Sk.prototype.on = Sk.prototype.H;
Sk.prototype.once = Sk.prototype.M;
Sk.prototype.un = Sk.prototype.K;
Sk.prototype.unByKey = Sk.prototype.N;
vy.prototype.getActive = vy.prototype.b;
vy.prototype.setActive = vy.prototype.g;
vy.prototype.get = vy.prototype.get;
vy.prototype.getKeys = vy.prototype.O;
vy.prototype.getProperties = vy.prototype.P;
vy.prototype.set = vy.prototype.set;
vy.prototype.setProperties = vy.prototype.I;
vy.prototype.unset = vy.prototype.R;
vy.prototype.changed = vy.prototype.s;
vy.prototype.dispatchEvent = vy.prototype.o;
vy.prototype.getRevision = vy.prototype.L;
vy.prototype.on = vy.prototype.H;
vy.prototype.once = vy.prototype.M;
vy.prototype.un = vy.prototype.K;
vy.prototype.unByKey = vy.prototype.N;
al.prototype.getActive = al.prototype.b;
al.prototype.setActive = al.prototype.g;
al.prototype.get = al.prototype.get;
al.prototype.getKeys = al.prototype.O;
al.prototype.getProperties = al.prototype.P;
al.prototype.set = al.prototype.set;
al.prototype.setProperties = al.prototype.I;
al.prototype.unset = al.prototype.R;
al.prototype.changed = al.prototype.s;
al.prototype.dispatchEvent = al.prototype.o;
al.prototype.getRevision = al.prototype.L;
al.prototype.on = al.prototype.H;
al.prototype.once = al.prototype.M;
al.prototype.un = al.prototype.K;
al.prototype.unByKey = al.prototype.N;
ql.prototype.getActive = ql.prototype.b;
ql.prototype.setActive = ql.prototype.g;
ql.prototype.get = ql.prototype.get;
ql.prototype.getKeys = ql.prototype.O;
ql.prototype.getProperties = ql.prototype.P;
ql.prototype.set = ql.prototype.set;
ql.prototype.setProperties = ql.prototype.I;
ql.prototype.unset = ql.prototype.R;
ql.prototype.changed = ql.prototype.s;
ql.prototype.dispatchEvent = ql.prototype.o;
ql.prototype.getRevision = ql.prototype.L;
ql.prototype.on = ql.prototype.H;
ql.prototype.once = ql.prototype.M;
ql.prototype.un = ql.prototype.K;
ql.prototype.unByKey = ql.prototype.N;
dl.prototype.getActive = dl.prototype.b;
dl.prototype.setActive = dl.prototype.g;
dl.prototype.get = dl.prototype.get;
dl.prototype.getKeys = dl.prototype.O;
dl.prototype.getProperties = dl.prototype.P;
dl.prototype.set = dl.prototype.set;
dl.prototype.setProperties = dl.prototype.I;
dl.prototype.unset = dl.prototype.R;
dl.prototype.changed = dl.prototype.s;
dl.prototype.dispatchEvent = dl.prototype.o;
dl.prototype.getRevision = dl.prototype.L;
dl.prototype.on = dl.prototype.H;
dl.prototype.once = dl.prototype.M;
dl.prototype.un = dl.prototype.K;
dl.prototype.unByKey = dl.prototype.N;
zy.prototype.getActive = zy.prototype.b;
zy.prototype.setActive = zy.prototype.g;
zy.prototype.get = zy.prototype.get;
zy.prototype.getKeys = zy.prototype.O;
zy.prototype.getProperties = zy.prototype.P;
zy.prototype.set = zy.prototype.set;
zy.prototype.setProperties = zy.prototype.I;
zy.prototype.unset = zy.prototype.R;
zy.prototype.changed = zy.prototype.s;
zy.prototype.dispatchEvent = zy.prototype.o;
zy.prototype.getRevision = zy.prototype.L;
zy.prototype.on = zy.prototype.H;
zy.prototype.once = zy.prototype.M;
zy.prototype.un = zy.prototype.K;
zy.prototype.unByKey = zy.prototype.N;
hl.prototype.getActive = hl.prototype.b;
hl.prototype.setActive = hl.prototype.g;
hl.prototype.get = hl.prototype.get;
hl.prototype.getKeys = hl.prototype.O;
hl.prototype.getProperties = hl.prototype.P;
hl.prototype.set = hl.prototype.set;
hl.prototype.setProperties = hl.prototype.I;
hl.prototype.unset = hl.prototype.R;
hl.prototype.changed = hl.prototype.s;
hl.prototype.dispatchEvent = hl.prototype.o;
hl.prototype.getRevision = hl.prototype.L;
hl.prototype.on = hl.prototype.H;
hl.prototype.once = hl.prototype.M;
hl.prototype.un = hl.prototype.K;
hl.prototype.unByKey = hl.prototype.N;
ul.prototype.getGeometry = ul.prototype.W;
ul.prototype.getActive = ul.prototype.b;
ul.prototype.setActive = ul.prototype.g;
ul.prototype.get = ul.prototype.get;
ul.prototype.getKeys = ul.prototype.O;
ul.prototype.getProperties = ul.prototype.P;
ul.prototype.set = ul.prototype.set;
ul.prototype.setProperties = ul.prototype.I;
ul.prototype.unset = ul.prototype.R;
ul.prototype.changed = ul.prototype.s;
ul.prototype.dispatchEvent = ul.prototype.o;
ul.prototype.getRevision = ul.prototype.L;
ul.prototype.on = ul.prototype.H;
ul.prototype.once = ul.prototype.M;
ul.prototype.un = ul.prototype.K;
ul.prototype.unByKey = ul.prototype.N;
Ey.prototype.getActive = Ey.prototype.b;
Ey.prototype.setActive = Ey.prototype.g;
Ey.prototype.get = Ey.prototype.get;
Ey.prototype.getKeys = Ey.prototype.O;
Ey.prototype.getProperties = Ey.prototype.P;
Ey.prototype.set = Ey.prototype.set;
Ey.prototype.setProperties = Ey.prototype.I;
Ey.prototype.unset = Ey.prototype.R;
Ey.prototype.changed = Ey.prototype.s;
Ey.prototype.dispatchEvent = Ey.prototype.o;
Ey.prototype.getRevision = Ey.prototype.L;
Ey.prototype.on = Ey.prototype.H;
Ey.prototype.once = Ey.prototype.M;
Ey.prototype.un = Ey.prototype.K;
Ey.prototype.unByKey = Ey.prototype.N;
vl.prototype.getActive = vl.prototype.b;
vl.prototype.setActive = vl.prototype.g;
vl.prototype.get = vl.prototype.get;
vl.prototype.getKeys = vl.prototype.O;
vl.prototype.getProperties = vl.prototype.P;
vl.prototype.set = vl.prototype.set;
vl.prototype.setProperties = vl.prototype.I;
vl.prototype.unset = vl.prototype.R;
vl.prototype.changed = vl.prototype.s;
vl.prototype.dispatchEvent = vl.prototype.o;
vl.prototype.getRevision = vl.prototype.L;
vl.prototype.on = vl.prototype.H;
vl.prototype.once = vl.prototype.M;
vl.prototype.un = vl.prototype.K;
vl.prototype.unByKey = vl.prototype.N;
xl.prototype.getActive = xl.prototype.b;
xl.prototype.setActive = xl.prototype.g;
xl.prototype.get = xl.prototype.get;
xl.prototype.getKeys = xl.prototype.O;
xl.prototype.getProperties = xl.prototype.P;
xl.prototype.set = xl.prototype.set;
xl.prototype.setProperties = xl.prototype.I;
xl.prototype.unset = xl.prototype.R;
xl.prototype.changed = xl.prototype.s;
xl.prototype.dispatchEvent = xl.prototype.o;
xl.prototype.getRevision = xl.prototype.L;
xl.prototype.on = xl.prototype.H;
xl.prototype.once = xl.prototype.M;
xl.prototype.un = xl.prototype.K;
xl.prototype.unByKey = xl.prototype.N;
Vy.prototype.getActive = Vy.prototype.b;
Vy.prototype.setActive = Vy.prototype.g;
Vy.prototype.get = Vy.prototype.get;
Vy.prototype.getKeys = Vy.prototype.O;
Vy.prototype.getProperties = Vy.prototype.P;
Vy.prototype.set = Vy.prototype.set;
Vy.prototype.setProperties = Vy.prototype.I;
Vy.prototype.unset = Vy.prototype.R;
Vy.prototype.changed = Vy.prototype.s;
Vy.prototype.dispatchEvent = Vy.prototype.o;
Vy.prototype.getRevision = Vy.prototype.L;
Vy.prototype.on = Vy.prototype.H;
Vy.prototype.once = Vy.prototype.M;
Vy.prototype.un = Vy.prototype.K;
Vy.prototype.unByKey = Vy.prototype.N;
zl.prototype.getActive = zl.prototype.b;
zl.prototype.setActive = zl.prototype.g;
zl.prototype.get = zl.prototype.get;
zl.prototype.getKeys = zl.prototype.O;
zl.prototype.getProperties = zl.prototype.P;
zl.prototype.set = zl.prototype.set;
zl.prototype.setProperties = zl.prototype.I;
zl.prototype.unset = zl.prototype.R;
zl.prototype.changed = zl.prototype.s;
zl.prototype.dispatchEvent = zl.prototype.o;
zl.prototype.getRevision = zl.prototype.L;
zl.prototype.on = zl.prototype.H;
zl.prototype.once = zl.prototype.M;
zl.prototype.un = zl.prototype.K;
zl.prototype.unByKey = zl.prototype.N;
Bl.prototype.getActive = Bl.prototype.b;
Bl.prototype.setActive = Bl.prototype.g;
Bl.prototype.get = Bl.prototype.get;
Bl.prototype.getKeys = Bl.prototype.O;
Bl.prototype.getProperties = Bl.prototype.P;
Bl.prototype.set = Bl.prototype.set;
Bl.prototype.setProperties = Bl.prototype.I;
Bl.prototype.unset = Bl.prototype.R;
Bl.prototype.changed = Bl.prototype.s;
Bl.prototype.dispatchEvent = Bl.prototype.o;
Bl.prototype.getRevision = Bl.prototype.L;
Bl.prototype.on = Bl.prototype.H;
Bl.prototype.once = Bl.prototype.M;
Bl.prototype.un = Bl.prototype.K;
Bl.prototype.unByKey = Bl.prototype.N;
Fl.prototype.getActive = Fl.prototype.b;
Fl.prototype.setActive = Fl.prototype.g;
Fl.prototype.get = Fl.prototype.get;
Fl.prototype.getKeys = Fl.prototype.O;
Fl.prototype.getProperties = Fl.prototype.P;
Fl.prototype.set = Fl.prototype.set;
Fl.prototype.setProperties = Fl.prototype.I;
Fl.prototype.unset = Fl.prototype.R;
Fl.prototype.changed = Fl.prototype.s;
Fl.prototype.dispatchEvent = Fl.prototype.o;
Fl.prototype.getRevision = Fl.prototype.L;
Fl.prototype.on = Fl.prototype.H;
Fl.prototype.once = Fl.prototype.M;
Fl.prototype.un = Fl.prototype.K;
Fl.prototype.unByKey = Fl.prototype.N;
iz.prototype.getActive = iz.prototype.b;
iz.prototype.setActive = iz.prototype.g;
iz.prototype.get = iz.prototype.get;
iz.prototype.getKeys = iz.prototype.O;
iz.prototype.getProperties = iz.prototype.P;
iz.prototype.set = iz.prototype.set;
iz.prototype.setProperties = iz.prototype.I;
iz.prototype.unset = iz.prototype.R;
iz.prototype.changed = iz.prototype.s;
iz.prototype.dispatchEvent = iz.prototype.o;
iz.prototype.getRevision = iz.prototype.L;
iz.prototype.on = iz.prototype.H;
iz.prototype.once = iz.prototype.M;
iz.prototype.un = iz.prototype.K;
iz.prototype.unByKey = iz.prototype.N;
lz.prototype.getActive = lz.prototype.b;
lz.prototype.setActive = lz.prototype.g;
lz.prototype.get = lz.prototype.get;
lz.prototype.getKeys = lz.prototype.O;
lz.prototype.getProperties = lz.prototype.P;
lz.prototype.set = lz.prototype.set;
lz.prototype.setProperties = lz.prototype.I;
lz.prototype.unset = lz.prototype.R;
lz.prototype.changed = lz.prototype.s;
lz.prototype.dispatchEvent = lz.prototype.o;
lz.prototype.getRevision = lz.prototype.L;
lz.prototype.on = lz.prototype.H;
lz.prototype.once = lz.prototype.M;
lz.prototype.un = lz.prototype.K;
lz.prototype.unByKey = lz.prototype.N;
qz.prototype.getActive = qz.prototype.b;
qz.prototype.setActive = qz.prototype.g;
qz.prototype.get = qz.prototype.get;
qz.prototype.getKeys = qz.prototype.O;
qz.prototype.getProperties = qz.prototype.P;
qz.prototype.set = qz.prototype.set;
qz.prototype.setProperties = qz.prototype.I;
qz.prototype.unset = qz.prototype.R;
qz.prototype.changed = qz.prototype.s;
qz.prototype.dispatchEvent = qz.prototype.o;
qz.prototype.getRevision = qz.prototype.L;
qz.prototype.on = qz.prototype.H;
qz.prototype.once = qz.prototype.M;
qz.prototype.un = qz.prototype.K;
qz.prototype.unByKey = qz.prototype.N;
bf.prototype.get = bf.prototype.get;
bf.prototype.getKeys = bf.prototype.O;
bf.prototype.getProperties = bf.prototype.P;
bf.prototype.set = bf.prototype.set;
bf.prototype.setProperties = bf.prototype.I;
bf.prototype.unset = bf.prototype.R;
bf.prototype.changed = bf.prototype.s;
bf.prototype.dispatchEvent = bf.prototype.o;
bf.prototype.getRevision = bf.prototype.L;
bf.prototype.on = bf.prototype.H;
bf.prototype.once = bf.prototype.M;
bf.prototype.un = bf.prototype.K;
bf.prototype.unByKey = bf.prototype.N;
df.prototype.getClosestPoint = df.prototype.pb;
df.prototype.getExtent = df.prototype.J;
df.prototype.simplify = df.prototype.yb;
df.prototype.transform = df.prototype.kb;
df.prototype.get = df.prototype.get;
df.prototype.getKeys = df.prototype.O;
df.prototype.getProperties = df.prototype.P;
df.prototype.set = df.prototype.set;
df.prototype.setProperties = df.prototype.I;
df.prototype.unset = df.prototype.R;
df.prototype.changed = df.prototype.s;
df.prototype.dispatchEvent = df.prototype.o;
df.prototype.getRevision = df.prototype.L;
df.prototype.on = df.prototype.H;
df.prototype.once = df.prototype.M;
df.prototype.un = df.prototype.K;
df.prototype.unByKey = df.prototype.N;
Qx.prototype.getFirstCoordinate = Qx.prototype.Jb;
Qx.prototype.getLastCoordinate = Qx.prototype.Kb;
Qx.prototype.getLayout = Qx.prototype.Lb;
Qx.prototype.getClosestPoint = Qx.prototype.pb;
Qx.prototype.getExtent = Qx.prototype.J;
Qx.prototype.simplify = Qx.prototype.yb;
Qx.prototype.get = Qx.prototype.get;
Qx.prototype.getKeys = Qx.prototype.O;
Qx.prototype.getProperties = Qx.prototype.P;
Qx.prototype.set = Qx.prototype.set;
Qx.prototype.setProperties = Qx.prototype.I;
Qx.prototype.unset = Qx.prototype.R;
Qx.prototype.changed = Qx.prototype.s;
Qx.prototype.dispatchEvent = Qx.prototype.o;
Qx.prototype.getRevision = Qx.prototype.L;
Qx.prototype.on = Qx.prototype.H;
Qx.prototype.once = Qx.prototype.M;
Qx.prototype.un = Qx.prototype.K;
Qx.prototype.unByKey = Qx.prototype.N;
js.prototype.getClosestPoint = js.prototype.pb;
js.prototype.getExtent = js.prototype.J;
js.prototype.simplify = js.prototype.yb;
js.prototype.transform = js.prototype.kb;
js.prototype.get = js.prototype.get;
js.prototype.getKeys = js.prototype.O;
js.prototype.getProperties = js.prototype.P;
js.prototype.set = js.prototype.set;
js.prototype.setProperties = js.prototype.I;
js.prototype.unset = js.prototype.R;
js.prototype.changed = js.prototype.s;
js.prototype.dispatchEvent = js.prototype.o;
js.prototype.getRevision = js.prototype.L;
js.prototype.on = js.prototype.H;
js.prototype.once = js.prototype.M;
js.prototype.un = js.prototype.K;
js.prototype.unByKey = js.prototype.N;
wf.prototype.getFirstCoordinate = wf.prototype.Jb;
wf.prototype.getLastCoordinate = wf.prototype.Kb;
wf.prototype.getLayout = wf.prototype.Lb;
wf.prototype.getClosestPoint = wf.prototype.pb;
wf.prototype.getExtent = wf.prototype.J;
wf.prototype.simplify = wf.prototype.yb;
wf.prototype.transform = wf.prototype.kb;
wf.prototype.get = wf.prototype.get;
wf.prototype.getKeys = wf.prototype.O;
wf.prototype.getProperties = wf.prototype.P;
wf.prototype.set = wf.prototype.set;
wf.prototype.setProperties = wf.prototype.I;
wf.prototype.unset = wf.prototype.R;
wf.prototype.changed = wf.prototype.s;
wf.prototype.dispatchEvent = wf.prototype.o;
wf.prototype.getRevision = wf.prototype.L;
wf.prototype.on = wf.prototype.H;
wf.prototype.once = wf.prototype.M;
wf.prototype.un = wf.prototype.K;
wf.prototype.unByKey = wf.prototype.N;
T.prototype.getFirstCoordinate = T.prototype.Jb;
T.prototype.getLastCoordinate = T.prototype.Kb;
T.prototype.getLayout = T.prototype.Lb;
T.prototype.getClosestPoint = T.prototype.pb;
T.prototype.getExtent = T.prototype.J;
T.prototype.simplify = T.prototype.yb;
T.prototype.transform = T.prototype.kb;
T.prototype.get = T.prototype.get;
T.prototype.getKeys = T.prototype.O;
T.prototype.getProperties = T.prototype.P;
T.prototype.set = T.prototype.set;
T.prototype.setProperties = T.prototype.I;
T.prototype.unset = T.prototype.R;
T.prototype.changed = T.prototype.s;
T.prototype.dispatchEvent = T.prototype.o;
T.prototype.getRevision = T.prototype.L;
T.prototype.on = T.prototype.H;
T.prototype.once = T.prototype.M;
T.prototype.un = T.prototype.K;
T.prototype.unByKey = T.prototype.N;
U.prototype.getFirstCoordinate = U.prototype.Jb;
U.prototype.getLastCoordinate = U.prototype.Kb;
U.prototype.getLayout = U.prototype.Lb;
U.prototype.getClosestPoint = U.prototype.pb;
U.prototype.getExtent = U.prototype.J;
U.prototype.simplify = U.prototype.yb;
U.prototype.transform = U.prototype.kb;
U.prototype.get = U.prototype.get;
U.prototype.getKeys = U.prototype.O;
U.prototype.getProperties = U.prototype.P;
U.prototype.set = U.prototype.set;
U.prototype.setProperties = U.prototype.I;
U.prototype.unset = U.prototype.R;
U.prototype.changed = U.prototype.s;
U.prototype.dispatchEvent = U.prototype.o;
U.prototype.getRevision = U.prototype.L;
U.prototype.on = U.prototype.H;
U.prototype.once = U.prototype.M;
U.prototype.un = U.prototype.K;
U.prototype.unByKey = U.prototype.N;
$r.prototype.getFirstCoordinate = $r.prototype.Jb;
$r.prototype.getLastCoordinate = $r.prototype.Kb;
$r.prototype.getLayout = $r.prototype.Lb;
$r.prototype.getClosestPoint = $r.prototype.pb;
$r.prototype.getExtent = $r.prototype.J;
$r.prototype.simplify = $r.prototype.yb;
$r.prototype.transform = $r.prototype.kb;
$r.prototype.get = $r.prototype.get;
$r.prototype.getKeys = $r.prototype.O;
$r.prototype.getProperties = $r.prototype.P;
$r.prototype.set = $r.prototype.set;
$r.prototype.setProperties = $r.prototype.I;
$r.prototype.unset = $r.prototype.R;
$r.prototype.changed = $r.prototype.s;
$r.prototype.dispatchEvent = $r.prototype.o;
$r.prototype.getRevision = $r.prototype.L;
$r.prototype.on = $r.prototype.H;
$r.prototype.once = $r.prototype.M;
$r.prototype.un = $r.prototype.K;
$r.prototype.unByKey = $r.prototype.N;
V.prototype.getFirstCoordinate = V.prototype.Jb;
V.prototype.getLastCoordinate = V.prototype.Kb;
V.prototype.getLayout = V.prototype.Lb;
V.prototype.getClosestPoint = V.prototype.pb;
V.prototype.getExtent = V.prototype.J;
V.prototype.simplify = V.prototype.yb;
V.prototype.transform = V.prototype.kb;
V.prototype.get = V.prototype.get;
V.prototype.getKeys = V.prototype.O;
V.prototype.getProperties = V.prototype.P;
V.prototype.set = V.prototype.set;
V.prototype.setProperties = V.prototype.I;
V.prototype.unset = V.prototype.R;
V.prototype.changed = V.prototype.s;
V.prototype.dispatchEvent = V.prototype.o;
V.prototype.getRevision = V.prototype.L;
V.prototype.on = V.prototype.H;
V.prototype.once = V.prototype.M;
V.prototype.un = V.prototype.K;
V.prototype.unByKey = V.prototype.N;
D.prototype.getFirstCoordinate = D.prototype.Jb;
D.prototype.getLastCoordinate = D.prototype.Kb;
D.prototype.getLayout = D.prototype.Lb;
D.prototype.getClosestPoint = D.prototype.pb;
D.prototype.getExtent = D.prototype.J;
D.prototype.simplify = D.prototype.yb;
D.prototype.transform = D.prototype.kb;
D.prototype.get = D.prototype.get;
D.prototype.getKeys = D.prototype.O;
D.prototype.getProperties = D.prototype.P;
D.prototype.set = D.prototype.set;
D.prototype.setProperties = D.prototype.I;
D.prototype.unset = D.prototype.R;
D.prototype.changed = D.prototype.s;
D.prototype.dispatchEvent = D.prototype.o;
D.prototype.getRevision = D.prototype.L;
D.prototype.on = D.prototype.H;
D.prototype.once = D.prototype.M;
D.prototype.un = D.prototype.K;
D.prototype.unByKey = D.prototype.N;
E.prototype.getFirstCoordinate = E.prototype.Jb;
E.prototype.getLastCoordinate = E.prototype.Kb;
E.prototype.getLayout = E.prototype.Lb;
E.prototype.getClosestPoint = E.prototype.pb;
E.prototype.getExtent = E.prototype.J;
E.prototype.simplify = E.prototype.yb;
E.prototype.transform = E.prototype.kb;
E.prototype.get = E.prototype.get;
E.prototype.getKeys = E.prototype.O;
E.prototype.getProperties = E.prototype.P;
E.prototype.set = E.prototype.set;
E.prototype.setProperties = E.prototype.I;
E.prototype.unset = E.prototype.R;
E.prototype.changed = E.prototype.s;
E.prototype.dispatchEvent = E.prototype.o;
E.prototype.getRevision = E.prototype.L;
E.prototype.on = E.prototype.H;
E.prototype.once = E.prototype.M;
E.prototype.un = E.prototype.K;
E.prototype.unByKey = E.prototype.N;
Hs.prototype.readFeatures = Hs.prototype.Ba;
Is.prototype.readFeatures = Is.prototype.Ba;
Is.prototype.readFeatures = Is.prototype.Ba;
qh.prototype.get = qh.prototype.get;
qh.prototype.getKeys = qh.prototype.O;
qh.prototype.getProperties = qh.prototype.P;
qh.prototype.set = qh.prototype.set;
qh.prototype.setProperties = qh.prototype.I;
qh.prototype.unset = qh.prototype.R;
qh.prototype.changed = qh.prototype.s;
qh.prototype.dispatchEvent = qh.prototype.o;
qh.prototype.getRevision = qh.prototype.L;
qh.prototype.on = qh.prototype.H;
qh.prototype.once = qh.prototype.M;
qh.prototype.un = qh.prototype.K;
qh.prototype.unByKey = qh.prototype.N;
Th.prototype.getMap = Th.prototype.g;
Th.prototype.setMap = Th.prototype.setMap;
Th.prototype.setTarget = Th.prototype.f;
Th.prototype.get = Th.prototype.get;
Th.prototype.getKeys = Th.prototype.O;
Th.prototype.getProperties = Th.prototype.P;
Th.prototype.set = Th.prototype.set;
Th.prototype.setProperties = Th.prototype.I;
Th.prototype.unset = Th.prototype.R;
Th.prototype.changed = Th.prototype.s;
Th.prototype.dispatchEvent = Th.prototype.o;
Th.prototype.getRevision = Th.prototype.L;
Th.prototype.on = Th.prototype.H;
Th.prototype.once = Th.prototype.M;
Th.prototype.un = Th.prototype.K;
Th.prototype.unByKey = Th.prototype.N;
ei.prototype.getMap = ei.prototype.g;
ei.prototype.setMap = ei.prototype.setMap;
ei.prototype.setTarget = ei.prototype.f;
ei.prototype.get = ei.prototype.get;
ei.prototype.getKeys = ei.prototype.O;
ei.prototype.getProperties = ei.prototype.P;
ei.prototype.set = ei.prototype.set;
ei.prototype.setProperties = ei.prototype.I;
ei.prototype.unset = ei.prototype.R;
ei.prototype.changed = ei.prototype.s;
ei.prototype.dispatchEvent = ei.prototype.o;
ei.prototype.getRevision = ei.prototype.L;
ei.prototype.on = ei.prototype.H;
ei.prototype.once = ei.prototype.M;
ei.prototype.un = ei.prototype.K;
ei.prototype.unByKey = ei.prototype.N;
fi.prototype.getMap = fi.prototype.g;
fi.prototype.setMap = fi.prototype.setMap;
fi.prototype.setTarget = fi.prototype.f;
fi.prototype.get = fi.prototype.get;
fi.prototype.getKeys = fi.prototype.O;
fi.prototype.getProperties = fi.prototype.P;
fi.prototype.set = fi.prototype.set;
fi.prototype.setProperties = fi.prototype.I;
fi.prototype.unset = fi.prototype.R;
fi.prototype.changed = fi.prototype.s;
fi.prototype.dispatchEvent = fi.prototype.o;
fi.prototype.getRevision = fi.prototype.L;
fi.prototype.on = fi.prototype.H;
fi.prototype.once = fi.prototype.M;
fi.prototype.un = fi.prototype.K;
fi.prototype.unByKey = fi.prototype.N;
qr.prototype.getMap = qr.prototype.g;
qr.prototype.setMap = qr.prototype.setMap;
qr.prototype.setTarget = qr.prototype.f;
qr.prototype.get = qr.prototype.get;
qr.prototype.getKeys = qr.prototype.O;
qr.prototype.getProperties = qr.prototype.P;
qr.prototype.set = qr.prototype.set;
qr.prototype.setProperties = qr.prototype.I;
qr.prototype.unset = qr.prototype.R;
qr.prototype.changed = qr.prototype.s;
qr.prototype.dispatchEvent = qr.prototype.o;
qr.prototype.getRevision = qr.prototype.L;
qr.prototype.on = qr.prototype.H;
qr.prototype.once = qr.prototype.M;
qr.prototype.un = qr.prototype.K;
qr.prototype.unByKey = qr.prototype.N;
Wh.prototype.getMap = Wh.prototype.g;
Wh.prototype.setMap = Wh.prototype.setMap;
Wh.prototype.setTarget = Wh.prototype.f;
Wh.prototype.get = Wh.prototype.get;
Wh.prototype.getKeys = Wh.prototype.O;
Wh.prototype.getProperties = Wh.prototype.P;
Wh.prototype.set = Wh.prototype.set;
Wh.prototype.setProperties = Wh.prototype.I;
Wh.prototype.unset = Wh.prototype.R;
Wh.prototype.changed = Wh.prototype.s;
Wh.prototype.dispatchEvent = Wh.prototype.o;
Wh.prototype.getRevision = Wh.prototype.L;
Wh.prototype.on = Wh.prototype.H;
Wh.prototype.once = Wh.prototype.M;
Wh.prototype.un = Wh.prototype.K;
Wh.prototype.unByKey = Wh.prototype.N;
vr.prototype.getMap = vr.prototype.g;
vr.prototype.setMap = vr.prototype.setMap;
vr.prototype.setTarget = vr.prototype.f;
vr.prototype.get = vr.prototype.get;
vr.prototype.getKeys = vr.prototype.O;
vr.prototype.getProperties = vr.prototype.P;
vr.prototype.set = vr.prototype.set;
vr.prototype.setProperties = vr.prototype.I;
vr.prototype.unset = vr.prototype.R;
vr.prototype.changed = vr.prototype.s;
vr.prototype.dispatchEvent = vr.prototype.o;
vr.prototype.getRevision = vr.prototype.L;
vr.prototype.on = vr.prototype.H;
vr.prototype.once = vr.prototype.M;
vr.prototype.un = vr.prototype.K;
vr.prototype.unByKey = vr.prototype.N;
Yh.prototype.getMap = Yh.prototype.g;
Yh.prototype.setMap = Yh.prototype.setMap;
Yh.prototype.setTarget = Yh.prototype.f;
Yh.prototype.get = Yh.prototype.get;
Yh.prototype.getKeys = Yh.prototype.O;
Yh.prototype.getProperties = Yh.prototype.P;
Yh.prototype.set = Yh.prototype.set;
Yh.prototype.setProperties = Yh.prototype.I;
Yh.prototype.unset = Yh.prototype.R;
Yh.prototype.changed = Yh.prototype.s;
Yh.prototype.dispatchEvent = Yh.prototype.o;
Yh.prototype.getRevision = Yh.prototype.L;
Yh.prototype.on = Yh.prototype.H;
Yh.prototype.once = Yh.prototype.M;
Yh.prototype.un = Yh.prototype.K;
Yh.prototype.unByKey = Yh.prototype.N;
Jr.prototype.getMap = Jr.prototype.g;
Jr.prototype.setMap = Jr.prototype.setMap;
Jr.prototype.setTarget = Jr.prototype.f;
Jr.prototype.get = Jr.prototype.get;
Jr.prototype.getKeys = Jr.prototype.O;
Jr.prototype.getProperties = Jr.prototype.P;
Jr.prototype.set = Jr.prototype.set;
Jr.prototype.setProperties = Jr.prototype.I;
Jr.prototype.unset = Jr.prototype.R;
Jr.prototype.changed = Jr.prototype.s;
Jr.prototype.dispatchEvent = Jr.prototype.o;
Jr.prototype.getRevision = Jr.prototype.L;
Jr.prototype.on = Jr.prototype.H;
Jr.prototype.once = Jr.prototype.M;
Jr.prototype.un = Jr.prototype.K;
Jr.prototype.unByKey = Jr.prototype.N;
Or.prototype.getMap = Or.prototype.g;
Or.prototype.setMap = Or.prototype.setMap;
Or.prototype.setTarget = Or.prototype.f;
Or.prototype.get = Or.prototype.get;
Or.prototype.getKeys = Or.prototype.O;
Or.prototype.getProperties = Or.prototype.P;
Or.prototype.set = Or.prototype.set;
Or.prototype.setProperties = Or.prototype.I;
Or.prototype.unset = Or.prototype.R;
Or.prototype.changed = Or.prototype.s;
Or.prototype.dispatchEvent = Or.prototype.o;
Or.prototype.getRevision = Or.prototype.L;
Or.prototype.on = Or.prototype.H;
Or.prototype.once = Or.prototype.M;
Or.prototype.un = Or.prototype.K;
Or.prototype.unByKey = Or.prototype.N;
return OPENLAYERS.ol;
}));
/*! Picturefill - v3.0.1 - 2015-09-30
 * http://scottjehl.github.io/picturefill
 * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT
 */
!function (a) {
var b = navigator.userAgent;
a.HTMLPictureElement && /ecko/.test(b) && b.match(/rv\:(\d+)/) && RegExp.$1 < 41 && addEventListener('resize', function () {
var b,
c = document.createElement('source'),
d = function (a) {
var b,
d,
e = a.parentNode;
'PICTURE' === e.nodeName.toUpperCase() ? (b = c.cloneNode(), e.insertBefore(b, e.firstElementChild), setTimeout(function () {
e.removeChild(b)
}))  : (!a._pfLastSize || a.offsetWidth > a._pfLastSize) && (a._pfLastSize = a.offsetWidth, d = a.sizes, a.sizes += ',100vw', setTimeout(function () {
a.sizes = d
}))
},
e = function () {
var a,
b = document.querySelectorAll('picture > img, img[srcset][sizes]');
for (a = 0; a < b.length; a++) d(b[a])
},
f = function () {
clearTimeout(b),
b = setTimeout(e, 99)
},
g = a.matchMedia && matchMedia('(orientation: landscape)'),
h = function () {
f(),
g && g.addListener && g.addListener(f)
};
return c.srcset = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==',
/^[c|i]|d$/.test(document.readyState || '') ? h()  : document.addEventListener('DOMContentLoaded', h),
f
}())
}(window),
function (a, b, c) {
'use strict';
function d(a) {
return ' ' === a || '\t' === a || '\n' === a || '\f' === a || '\r' === a
}
function e(b, c) {
var d = new a.Image;
return d.onerror = function () {
z[b] = !1,
aa()
},
d.onload = function () {
z[b] = 1 === d.width,
aa()
},
d.src = c,
'pending'
}
function f() {
L = !1,
O = a.devicePixelRatio,
M = {
},
N = {
},
s.DPR = O || 1,
P.width = Math.max(a.innerWidth || 0, y.clientWidth),
P.height = Math.max(a.innerHeight || 0, y.clientHeight),
P.vw = P.width / 100,
P.vh = P.height / 100,
r = [
P.height,
P.width,
O
].join('-'),
P.em = s.getEmValue(),
P.rem = P.em
}
function g(a, b, c, d) {
var e,
f,
g,
h;
return 'saveData' === A.algorithm ? a > 2.7 ? h = c + 1 : (f = b - c, e = Math.pow(a - 0.6, 1.5), g = f * e, d && (g += 0.1 * e), h = a + g)  : h = c > 1 ? Math.sqrt(a * b)  : a,
h > c
}
function h(a) {
var b,
c = s.getSet(a),
d = !1;
'pending' !== c && (d = r, c && (b = s.setRes(c), s.applySetCandidate(b, a))),
a[s.ns].evaled = d
}
function i(a, b) {
return a.res - b.res
}
function j(a, b, c) {
var d;
return !c && b && (c = a[s.ns].sets, c = c && c[c.length - 1]),
d = k(b, c),
d && (b = s.makeUrl(b), a[s.ns].curSrc = b, a[s.ns].curCan = d, d.res || _(d, d.set.sizes)),
d
}
function k(a, b) {
var c,
d,
e;
if (a && b) for (e = s.parseSet(b), a = s.makeUrl(a), c = 0; c < e.length; c++) if (a === s.makeUrl(e[c].url)) {
d = e[c];
break
}
return d
}
function l(a, b) {
var c,
d,
e,
f,
g = a.getElementsByTagName('source');
for (c = 0, d = g.length; d > c; c++) e = g[c],
e[s.ns] = !0,
f = e.getAttribute('srcset'),
f && b.push({
srcset: f,
media: e.getAttribute('media'),
type: e.getAttribute('type'),
sizes: e.getAttribute('sizes')
})
}
function m(a, b) {
function c(b) {
var c,
d = b.exec(a.substring(m));
return d ? (c = d[0], m += c.length, c)  : void 0
}
function e() {
var a,
c,
d,
e,
f,
i,
j,
k,
l,
m = !1,
o = {
};
for (e = 0; e < h.length; e++) f = h[e],
i = f[f.length - 1],
j = f.substring(0, f.length - 1),
k = parseInt(j, 10),
l = parseFloat(j),
W.test(j) && 'w' === i ? ((a || c) && (m = !0), 0 === k ? m = !0 : a = k)  : X.test(j) && 'x' === i ? ((a || c || d) && (m = !0), 0 > l ? m = !0 : c = l)  : W.test(j) && 'h' === i ? ((d || c) && (m = !0), 0 === k ? m = !0 : d = k)  : m = !0;
m || (o.url = g, a && (o.w = a), c && (o.d = c), d && (o.h = d), d || c || a || (o.d = 1), 1 === o.d && (b.has1x = !0), o.set = b, n.push(o))
}
function f() {
for (c(S), i = '', j = 'in descriptor'; ; ) {
if (k = a.charAt(m), 'in descriptor' === j) if (d(k)) i && (h.push(i), i = '', j = 'after descriptor');
 else {
if (',' === k) return m += 1,
i && h.push(i),
void e();
if ('(' === k) i += k,
j = 'in parens';
 else {
if ('' === k) return i && h.push(i),
void e();
i += k
}
} else if ('in parens' === j) if (')' === k) i += k,
j = 'in descriptor';
 else {
if ('' === k) return h.push(i),
void e();
i += k
} else if ('after descriptor' === j) if (d(k));
 else {
if ('' === k) return void e();
j = 'in descriptor',
m -= 1
}
m += 1
}
}
for (var g, h, i, j, k, l = a.length, m = 0, n = [
]; ; ) {
if (c(T), m >= l) return n;
g = c(U),
h = [
],
',' === g.slice( - 1) ? (g = g.replace(V, ''), e())  : f()
}
}
function n(a) {
function b(a) {
function b() {
f && (g.push(f), f = '')
}
function c() {
g[0] && (h.push(g), g = [
])
}
for (var e, f = '', g = [
], h = [
], i = 0, j = 0, k = !1; ; ) {
if (e = a.charAt(j), '' === e) return b(),
c(),
h;
if (k) {
if ('*' === e && '/' === a[j + 1]) {
k = !1,
j += 2,
b();
continue
}
j += 1
} else {
if (d(e)) {
if (a.charAt(j - 1) && d(a.charAt(j - 1)) || !f) {
j += 1;
continue
}
if (0 === i) {
b(),
j += 1;
continue
}
e = ' '
} else if ('(' === e) i += 1;
 else if (')' === e) i -= 1;
 else {
if (',' === e) {
b(),
c(),
j += 1;
continue
}
if ('/' === e && '*' === a.charAt(j + 1)) {
k = !0,
j += 2;
continue
}
}
f += e,
j += 1
}
}
}
function c(a) {
return k.test(a) && parseFloat(a) >= 0 ? !0 : l.test(a) ? !0 : '0' === a || '-0' === a || '+0' === a ? !0 : !1
}
var e,
f,
g,
h,
i,
j,
k = /^(?:[+-]?[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i,
l = /^calc\((?:[0-9a-z \.\+\-\*\/\(\)]+)\)$/i;
for (f = b(a), g = f.length, e = 0; g > e; e++) if (h = f[e], i = h[h.length - 1], c(i)) {
if (j = i, h.pop(), 0 === h.length) return j;
if (h = h.join(' '), s.matchesMedia(h)) return j
}
return '100vw'
}
b.createElement('picture');
var o,
p,
q,
r,
s = {
},
t = function () {
},
u = b.createElement('img'),
v = u.getAttribute,
w = u.setAttribute,
x = u.removeAttribute,
y = b.documentElement,
z = {
},
A = {
algorithm: ''
},
B = 'data-pfsrc',
C = B + 'set',
D = navigator.userAgent,
E = /rident/.test(D) || /ecko/.test(D) && D.match(/rv\:(\d+)/) && RegExp.$1 > 35,
F = 'currentSrc',
G = /\s+\+?\d+(e\d+)?w/,
H = /(\([^)]+\))?\s*(.+)/,
I = a.picturefillCFG,
J = 'position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)',
K = 'font-size:100%!important;',
L = !0,
M = {
},
N = {
},
O = a.devicePixelRatio,
P = {
px: 1,
'in': 96
},
Q = b.createElement('a'),
R = !1,
S = /^[ \t\n\r\u000c]+/,
T = /^[, \t\n\r\u000c]+/,
U = /^[^ \t\n\r\u000c]+/,
V = /[,]+$/,
W = /^\d+$/,
X = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,
Y = function (a, b, c, d) {
a.addEventListener ? a.addEventListener(b, c, d || !1)  : a.attachEvent && a.attachEvent('on' + b, c)
},
Z = function (a) {
var b = {
};
return function (c) {
return c in b || (b[c] = a(c)),
b[c]
}
},
$ = function () {
var a = /^([\d\.]+)(em|vw|px)$/,
b = function () {
for (var a = arguments, b = 0, c = a[0]; ++b in a; ) c = c.replace(a[b], a[++b]);
return c
},
c = Z(function (a) {
return 'return ' + b((a || '').toLowerCase(), /\band\b/g, '&&', /,/g, '||', /min-([a-z-\s]+):/g, 'e.$1>=', /max-([a-z-\s]+):/g, 'e.$1<=', /calc([^)]+)/g, '($1)', /(\d+[\.]*[\d]*)([a-z]+)/g, '($1 * e.$2)', /^(?!(e.[a-z]|[0-9\.&=|><\+\-\*\(\)\/])).*/gi, '') + ';'
});
return function (b, d) {
var e;
if (!(b in M)) if (M[b] = !1, d && (e = b.match(a))) M[b] = e[1] * P[e[2]];
 else try {
M[b] = new Function('e', c(b)) (P)
} catch (f) {
}
return M[b]
}
}(),
_ = function (a, b) {
return a.w ? (a.cWidth = s.calcListLength(b || '100vw'), a.res = a.w / a.cWidth)  : a.res = a.d,
a
},
aa = function (a) {
var c,
d,
e,
f = a || {
};
if (f.elements && 1 === f.elements.nodeType && ('IMG' === f.elements.nodeName.toUpperCase() ? f.elements = [
f.elements
] : (f.context = f.elements, f.elements = null)), c = f.elements || s.qsa(f.context || b, f.reevaluate || f.reselect ? s.sel : s.selShort), e = c.length) {
for (s.setupRun(f), R = !0, d = 0; e > d; d++) s.fillImg(c[d], f);
s.teardownRun(f)
}
};
o = a.console && console.warn ? function (a) {
console.warn(a)
}
 : t,
F in u || (F = 'src'),
z['image/jpeg'] = !0,
z['image/gif'] = !0,
z['image/png'] = !0,
z['image/svg+xml'] = b.implementation.hasFeature('http://wwwindow.w3.org/TR/SVG11/feature#Image', '1.1'),
s.ns = ('pf' + (new Date).getTime()).substr(0, 9),
s.supSrcset = 'srcset' in u,
s.supSizes = 'sizes' in u,
s.supPicture = !!a.HTMLPictureElement,
s.supSrcset && s.supPicture && !s.supSizes && !function (a) {
u.srcset = 'data:,a',
a.src = 'data:,a',
s.supSrcset = u.complete === a.complete,
s.supPicture = s.supSrcset && s.supPicture
}(b.createElement('img')),
s.selShort = 'picture>img,img[srcset]',
s.sel = s.selShort,
s.cfg = A,
s.supSrcset && (s.sel += ',img[' + C + ']'),
s.DPR = O || 1,
s.u = P,
s.types = z,
q = s.supSrcset && !s.supSizes,
s.setSize = t,
s.makeUrl = Z(function (a) {
return Q.href = a,
Q.href
}),
s.qsa = function (a, b) {
return a.querySelectorAll(b)
},
s.matchesMedia = function () {
return a.matchMedia && (matchMedia('(min-width: 0.1em)') || {
}).matches ? s.matchesMedia = function (a) {
return !a || matchMedia(a).matches
}
 : s.matchesMedia = s.mMQ,
s.matchesMedia.apply(this, arguments)
},
s.mMQ = function (a) {
return a ? $(a)  : !0
},
s.calcLength = function (a) {
var b = $(a, !0) || !1;
return 0 > b && (b = !1),
b
},
s.supportsType = function (a) {
return a ? z[a] : !0
},
s.parseSize = Z(function (a) {
var b = (a || '').match(H);
return {
media: b && b[1],
length: b && b[2]
}
}),
s.parseSet = function (a) {
return a.cands || (a.cands = m(a.srcset, a)),
a.cands
},
s.getEmValue = function () {
var a;
if (!p && (a = b.body)) {
var c = b.createElement('div'),
d = y.style.cssText,
e = a.style.cssText;
c.style.cssText = J,
y.style.cssText = K,
a.style.cssText = K,
a.appendChild(c),
p = c.offsetWidth,
a.removeChild(c),
p = parseFloat(p, 10),
y.style.cssText = d,
a.style.cssText = e
}
return p || 16
},
s.calcListLength = function (a) {
if (!(a in N) || A.uT) {
var b = s.calcLength(n(a));
N[a] = b ? b : P.width
}
return N[a]
},
s.setRes = function (a) {
var b;
if (a) {
b = s.parseSet(a);
for (var c = 0, d = b.length; d > c; c++) _(b[c], a.sizes)
}
return b
},
s.setRes.res = _,
s.applySetCandidate = function (a, b) {
if (a.length) {
var c,
d,
e,
f,
h,
k,
l,
m,
n,
o = b[s.ns],
p = s.DPR;
if (k = o.curSrc || b[F], l = o.curCan || j(b, k, a[0].set), l && l.set === a[0].set && (n = E && !b.complete && l.res - 0.1 > p, n || (l.cached = !0, l.res >= p && (h = l))), !h) for (a.sort(i), f = a.length, h = a[f - 1], d = 0; f > d; d++) if (c = a[d], c.res >= p) {
e = d - 1,
h = a[e] && (n || k !== s.makeUrl(c.url)) && g(a[e].res, c.res, p, a[e].cached) ? a[e] : c;
break
}
h && (m = s.makeUrl(h.url), o.curSrc = m, o.curCan = h, m !== k && s.setSrc(b, h), s.setSize(b))
}
},
s.setSrc = function (a, b) {
var c;
a.src = b.url,
'image/svg+xml' === b.set.type && (c = a.style.width, a.style.width = a.offsetWidth + 1 + 'px', a.offsetWidth + 1 && (a.style.width = c))
},
s.getSet = function (a) {
var b,
c,
d,
e = !1,
f = a[s.ns].sets;
for (b = 0; b < f.length && !e; b++) if (c = f[b], c.srcset && s.matchesMedia(c.media) && (d = s.supportsType(c.type))) {
'pending' === d && (c = d),
e = c;
break
}
return e
},
s.parseSets = function (a, b, d) {
var e,
f,
g,
h,
i = b && 'PICTURE' === b.nodeName.toUpperCase(),
j = a[s.ns];
(j.src === c || d.src) && (j.src = v.call(a, 'src'), j.src ? w.call(a, B, j.src)  : x.call(a, B)),
(j.srcset === c || d.srcset || !s.supSrcset || a.srcset) && (e = v.call(a, 'srcset'), j.srcset = e, h = !0),
j.sets = [
],
i && (j.pic = !0, l(b, j.sets)),
j.srcset ? (f = {
srcset: j.srcset,
sizes: v.call(a, 'sizes')
}, j.sets.push(f), g = (q || j.src) && G.test(j.srcset || ''), g || !j.src || k(j.src, f) || f.has1x || (f.srcset += ', ' + j.src, f.cands.push({
url: j.src,
d: 1,
set: f
})))  : j.src && j.sets.push({
srcset: j.src,
sizes: null
}),
j.curCan = null,
j.curSrc = c,
j.supported = !(i || f && !s.supSrcset || g),
h && s.supSrcset && !j.supported && (e ? (w.call(a, C, e), a.srcset = '')  : x.call(a, C)),
j.supported && !j.srcset && (!j.src && a.src || a.src !== s.makeUrl(j.src)) && (null === j.src ? a.removeAttribute('src')  : a.src = j.src),
j.parsed = !0
},
s.fillImg = function (a, b) {
var c,
d = b.reselect || b.reevaluate;
a[s.ns] || (a[s.ns] = {
}),
c = a[s.ns],
(d || c.evaled !== r) && ((!c.parsed || b.reevaluate) && s.parseSets(a, a.parentNode, b), c.supported ? c.evaled = r : h(a))
},
s.setupRun = function () {
(!R || L || O !== a.devicePixelRatio) && f()
},
s.supPicture ? (aa = t, s.fillImg = t)  : !function () {
var c,
d = a.attachEvent ? /d$|^c/ : /d$|^c|^i/,
e = function () {
var a = b.readyState || '';
f = setTimeout(e, 'loading' === a ? 200 : 999),
b.body && (s.fillImgs(), c = c || d.test(a), c && clearTimeout(f))
},
f = setTimeout(e, b.body ? 9 : 99),
g = function (a, b) {
var c,
d,
e = function () {
var f = new Date - d;
b > f ? c = setTimeout(e, b - f)  : (c = null, a())
};
return function () {
d = new Date,
c || (c = setTimeout(e, b))
}
},
h = y.clientHeight,
i = function () {
L = Math.max(a.innerWidth || 0, y.clientWidth) !== P.width || y.clientHeight !== h,
h = y.clientHeight,
L && s.fillImgs()
};
Y(a, 'resize', g(i, 99)),
Y(b, 'readystatechange', e)
}(),
s.picturefill = aa,
s.fillImgs = aa,
s.teardownRun = t,
aa._ = s,
a.picturefillCFG = {
pf: s,
push: function (a) {
var b = a.shift();
'function' == typeof s[b] ? s[b].apply(s, a)  : (A[b] = a[0], R && s.fillImgs({
reselect: !0
}))
}
};
for (; I && I.length; ) a.picturefillCFG.push(I.shift());
a.picturefill = aa,
'object' == typeof module && 'object' == typeof module.exports ? module.exports = aa : 'function' == typeof define && define.amd && define('picturefill', function () {
return aa
}),
s.supPicture || (z['image/webp'] = e('image/webp', 'data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA=='))
}(window, document);
/*! Picturefill - v3.0.1 - 2015-09-30
 * http://scottjehl.github.io/picturefill
 * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT
 */
!function (a) {
var b = navigator.userAgent;
a.HTMLPictureElement && /ecko/.test(b) && b.match(/rv\:(\d+)/) && RegExp.$1 < 41 && addEventListener('resize', function () {
var b,
c = document.createElement('source'),
d = function (a) {
var b,
d,
e = a.parentNode;
'PICTURE' === e.nodeName.toUpperCase() ? (b = c.cloneNode(), e.insertBefore(b, e.firstElementChild), setTimeout(function () {
e.removeChild(b)
}))  : (!a._pfLastSize || a.offsetWidth > a._pfLastSize) && (a._pfLastSize = a.offsetWidth, d = a.sizes, a.sizes += ',100vw', setTimeout(function () {
a.sizes = d
}))
},
e = function () {
var a,
b = document.querySelectorAll('picture > img, img[srcset][sizes]');
for (a = 0; a < b.length; a++) d(b[a])
},
f = function () {
clearTimeout(b),
b = setTimeout(e, 99)
},
g = a.matchMedia && matchMedia('(orientation: landscape)'),
h = function () {
f(),
g && g.addListener && g.addListener(f)
};
return c.srcset = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==',
/^[c|i]|d$/.test(document.readyState || '') ? h()  : document.addEventListener('DOMContentLoaded', h),
f
}())
}(window),
function (a, b, c) {
'use strict';
function d(a) {
return ' ' === a || '\t' === a || '\n' === a || '\f' === a || '\r' === a
}
function e(b, c) {
var d = new a.Image;
return d.onerror = function () {
z[b] = !1,
aa()
},
d.onload = function () {
z[b] = 1 === d.width,
aa()
},
d.src = c,
'pending'
}
function f() {
L = !1,
O = a.devicePixelRatio,
M = {
},
N = {
},
s.DPR = O || 1,
P.width = Math.max(a.innerWidth || 0, y.clientWidth),
P.height = Math.max(a.innerHeight || 0, y.clientHeight),
P.vw = P.width / 100,
P.vh = P.height / 100,
r = [
P.height,
P.width,
O
].join('-'),
P.em = s.getEmValue(),
P.rem = P.em
}
function g(a, b, c, d) {
var e,
f,
g,
h;
return 'saveData' === A.algorithm ? a > 2.7 ? h = c + 1 : (f = b - c, e = Math.pow(a - 0.6, 1.5), g = f * e, d && (g += 0.1 * e), h = a + g)  : h = c > 1 ? Math.sqrt(a * b)  : a,
h > c
}
function h(a) {
var b,
c = s.getSet(a),
d = !1;
'pending' !== c && (d = r, c && (b = s.setRes(c), s.applySetCandidate(b, a))),
a[s.ns].evaled = d
}
function i(a, b) {
return a.res - b.res
}
function j(a, b, c) {
var d;
return !c && b && (c = a[s.ns].sets, c = c && c[c.length - 1]),
d = k(b, c),
d && (b = s.makeUrl(b), a[s.ns].curSrc = b, a[s.ns].curCan = d, d.res || _(d, d.set.sizes)),
d
}
function k(a, b) {
var c,
d,
e;
if (a && b) for (e = s.parseSet(b), a = s.makeUrl(a), c = 0; c < e.length; c++) if (a === s.makeUrl(e[c].url)) {
d = e[c];
break
}
return d
}
function l(a, b) {
var c,
d,
e,
f,
g = a.getElementsByTagName('source');
for (c = 0, d = g.length; d > c; c++) e = g[c],
e[s.ns] = !0,
f = e.getAttribute('srcset'),
f && b.push({
srcset: f,
media: e.getAttribute('media'),
type: e.getAttribute('type'),
sizes: e.getAttribute('sizes')
})
}
function m(a, b) {
function c(b) {
var c,
d = b.exec(a.substring(m));
return d ? (c = d[0], m += c.length, c)  : void 0
}
function e() {
var a,
c,
d,
e,
f,
i,
j,
k,
l,
m = !1,
o = {
};
for (e = 0; e < h.length; e++) f = h[e],
i = f[f.length - 1],
j = f.substring(0, f.length - 1),
k = parseInt(j, 10),
l = parseFloat(j),
W.test(j) && 'w' === i ? ((a || c) && (m = !0), 0 === k ? m = !0 : a = k)  : X.test(j) && 'x' === i ? ((a || c || d) && (m = !0), 0 > l ? m = !0 : c = l)  : W.test(j) && 'h' === i ? ((d || c) && (m = !0), 0 === k ? m = !0 : d = k)  : m = !0;
m || (o.url = g, a && (o.w = a), c && (o.d = c), d && (o.h = d), d || c || a || (o.d = 1), 1 === o.d && (b.has1x = !0), o.set = b, n.push(o))
}
function f() {
for (c(S), i = '', j = 'in descriptor'; ; ) {
if (k = a.charAt(m), 'in descriptor' === j) if (d(k)) i && (h.push(i), i = '', j = 'after descriptor');
 else {
if (',' === k) return m += 1,
i && h.push(i),
void e();
if ('(' === k) i += k,
j = 'in parens';
 else {
if ('' === k) return i && h.push(i),
void e();
i += k
}
} else if ('in parens' === j) if (')' === k) i += k,
j = 'in descriptor';
 else {
if ('' === k) return h.push(i),
void e();
i += k
} else if ('after descriptor' === j) if (d(k));
 else {
if ('' === k) return void e();
j = 'in descriptor',
m -= 1
}
m += 1
}
}
for (var g, h, i, j, k, l = a.length, m = 0, n = [
]; ; ) {
if (c(T), m >= l) return n;
g = c(U),
h = [
],
',' === g.slice( - 1) ? (g = g.replace(V, ''), e())  : f()
}
}
function n(a) {
function b(a) {
function b() {
f && (g.push(f), f = '')
}
function c() {
g[0] && (h.push(g), g = [
])
}
for (var e, f = '', g = [
], h = [
], i = 0, j = 0, k = !1; ; ) {
if (e = a.charAt(j), '' === e) return b(),
c(),
h;
if (k) {
if ('*' === e && '/' === a[j + 1]) {
k = !1,
j += 2,
b();
continue
}
j += 1
} else {
if (d(e)) {
if (a.charAt(j - 1) && d(a.charAt(j - 1)) || !f) {
j += 1;
continue
}
if (0 === i) {
b(),
j += 1;
continue
}
e = ' '
} else if ('(' === e) i += 1;
 else if (')' === e) i -= 1;
 else {
if (',' === e) {
b(),
c(),
j += 1;
continue
}
if ('/' === e && '*' === a.charAt(j + 1)) {
k = !0,
j += 2;
continue
}
}
f += e,
j += 1
}
}
}
function c(a) {
return k.test(a) && parseFloat(a) >= 0 ? !0 : l.test(a) ? !0 : '0' === a || '-0' === a || '+0' === a ? !0 : !1
}
var e,
f,
g,
h,
i,
j,
k = /^(?:[+-]?[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i,
l = /^calc\((?:[0-9a-z \.\+\-\*\/\(\)]+)\)$/i;
for (f = b(a), g = f.length, e = 0; g > e; e++) if (h = f[e], i = h[h.length - 1], c(i)) {
if (j = i, h.pop(), 0 === h.length) return j;
if (h = h.join(' '), s.matchesMedia(h)) return j
}
return '100vw'
}
b.createElement('picture');
var o,
p,
q,
r,
s = {
},
t = function () {
},
u = b.createElement('img'),
v = u.getAttribute,
w = u.setAttribute,
x = u.removeAttribute,
y = b.documentElement,
z = {
},
A = {
algorithm: ''
},
B = 'data-pfsrc',
C = B + 'set',
D = navigator.userAgent,
E = /rident/.test(D) || /ecko/.test(D) && D.match(/rv\:(\d+)/) && RegExp.$1 > 35,
F = 'currentSrc',
G = /\s+\+?\d+(e\d+)?w/,
H = /(\([^)]+\))?\s*(.+)/,
I = a.picturefillCFG,
J = 'position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)',
K = 'font-size:100%!important;',
L = !0,
M = {
},
N = {
},
O = a.devicePixelRatio,
P = {
px: 1,
'in': 96
},
Q = b.createElement('a'),
R = !1,
S = /^[ \t\n\r\u000c]+/,
T = /^[, \t\n\r\u000c]+/,
U = /^[^ \t\n\r\u000c]+/,
V = /[,]+$/,
W = /^\d+$/,
X = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,
Y = function (a, b, c, d) {
a.addEventListener ? a.addEventListener(b, c, d || !1)  : a.attachEvent && a.attachEvent('on' + b, c)
},
Z = function (a) {
var b = {
};
return function (c) {
return c in b || (b[c] = a(c)),
b[c]
}
},
$ = function () {
var a = /^([\d\.]+)(em|vw|px)$/,
b = function () {
for (var a = arguments, b = 0, c = a[0]; ++b in a; ) c = c.replace(a[b], a[++b]);
return c
},
c = Z(function (a) {
return 'return ' + b((a || '').toLowerCase(), /\band\b/g, '&&', /,/g, '||', /min-([a-z-\s]+):/g, 'e.$1>=', /max-([a-z-\s]+):/g, 'e.$1<=', /calc([^)]+)/g, '($1)', /(\d+[\.]*[\d]*)([a-z]+)/g, '($1 * e.$2)', /^(?!(e.[a-z]|[0-9\.&=|><\+\-\*\(\)\/])).*/gi, '') + ';'
});
return function (b, d) {
var e;
if (!(b in M)) if (M[b] = !1, d && (e = b.match(a))) M[b] = e[1] * P[e[2]];
 else try {
M[b] = new Function('e', c(b)) (P)
} catch (f) {
}
return M[b]
}
}(),
_ = function (a, b) {
return a.w ? (a.cWidth = s.calcListLength(b || '100vw'), a.res = a.w / a.cWidth)  : a.res = a.d,
a
},
aa = function (a) {
var c,
d,
e,
f = a || {
};
if (f.elements && 1 === f.elements.nodeType && ('IMG' === f.elements.nodeName.toUpperCase() ? f.elements = [
f.elements
] : (f.context = f.elements, f.elements = null)), c = f.elements || s.qsa(f.context || b, f.reevaluate || f.reselect ? s.sel : s.selShort), e = c.length) {
for (s.setupRun(f), R = !0, d = 0; e > d; d++) s.fillImg(c[d], f);
s.teardownRun(f)
}
};
o = a.console && console.warn ? function (a) {
console.warn(a)
}
 : t,
F in u || (F = 'src'),
z['image/jpeg'] = !0,
z['image/gif'] = !0,
z['image/png'] = !0,
z['image/svg+xml'] = b.implementation.hasFeature('http://wwwindow.w3.org/TR/SVG11/feature#Image', '1.1'),
s.ns = ('pf' + (new Date).getTime()).substr(0, 9),
s.supSrcset = 'srcset' in u,
s.supSizes = 'sizes' in u,
s.supPicture = !!a.HTMLPictureElement,
s.supSrcset && s.supPicture && !s.supSizes && !function (a) {
u.srcset = 'data:,a',
a.src = 'data:,a',
s.supSrcset = u.complete === a.complete,
s.supPicture = s.supSrcset && s.supPicture
}(b.createElement('img')),
s.selShort = 'picture>img,img[srcset]',
s.sel = s.selShort,
s.cfg = A,
s.supSrcset && (s.sel += ',img[' + C + ']'),
s.DPR = O || 1,
s.u = P,
s.types = z,
q = s.supSrcset && !s.supSizes,
s.setSize = t,
s.makeUrl = Z(function (a) {
return Q.href = a,
Q.href
}),
s.qsa = function (a, b) {
return a.querySelectorAll(b)
},
s.matchesMedia = function () {
return a.matchMedia && (matchMedia('(min-width: 0.1em)') || {
}).matches ? s.matchesMedia = function (a) {
return !a || matchMedia(a).matches
}
 : s.matchesMedia = s.mMQ,
s.matchesMedia.apply(this, arguments)
},
s.mMQ = function (a) {
return a ? $(a)  : !0
},
s.calcLength = function (a) {
var b = $(a, !0) || !1;
return 0 > b && (b = !1),
b
},
s.supportsType = function (a) {
return a ? z[a] : !0
},
s.parseSize = Z(function (a) {
var b = (a || '').match(H);
return {
media: b && b[1],
length: b && b[2]
}
}),
s.parseSet = function (a) {
return a.cands || (a.cands = m(a.srcset, a)),
a.cands
},
s.getEmValue = function () {
var a;
if (!p && (a = b.body)) {
var c = b.createElement('div'),
d = y.style.cssText,
e = a.style.cssText;
c.style.cssText = J,
y.style.cssText = K,
a.style.cssText = K,
a.appendChild(c),
p = c.offsetWidth,
a.removeChild(c),
p = parseFloat(p, 10),
y.style.cssText = d,
a.style.cssText = e
}
return p || 16
},
s.calcListLength = function (a) {
if (!(a in N) || A.uT) {
var b = s.calcLength(n(a));
N[a] = b ? b : P.width
}
return N[a]
},
s.setRes = function (a) {
var b;
if (a) {
b = s.parseSet(a);
for (var c = 0, d = b.length; d > c; c++) _(b[c], a.sizes)
}
return b
},
s.setRes.res = _,
s.applySetCandidate = function (a, b) {
if (a.length) {
var c,
d,
e,
f,
h,
k,
l,
m,
n,
o = b[s.ns],
p = s.DPR;
if (k = o.curSrc || b[F], l = o.curCan || j(b, k, a[0].set), l && l.set === a[0].set && (n = E && !b.complete && l.res - 0.1 > p, n || (l.cached = !0, l.res >= p && (h = l))), !h) for (a.sort(i), f = a.length, h = a[f - 1], d = 0; f > d; d++) if (c = a[d], c.res >= p) {
e = d - 1,
h = a[e] && (n || k !== s.makeUrl(c.url)) && g(a[e].res, c.res, p, a[e].cached) ? a[e] : c;
break
}
h && (m = s.makeUrl(h.url), o.curSrc = m, o.curCan = h, m !== k && s.setSrc(b, h), s.setSize(b))
}
},
s.setSrc = function (a, b) {
var c;
a.src = b.url,
'image/svg+xml' === b.set.type && (c = a.style.width, a.style.width = a.offsetWidth + 1 + 'px', a.offsetWidth + 1 && (a.style.width = c))
},
s.getSet = function (a) {
var b,
c,
d,
e = !1,
f = a[s.ns].sets;
for (b = 0; b < f.length && !e; b++) if (c = f[b], c.srcset && s.matchesMedia(c.media) && (d = s.supportsType(c.type))) {
'pending' === d && (c = d),
e = c;
break
}
return e
},
s.parseSets = function (a, b, d) {
var e,
f,
g,
h,
i = b && 'PICTURE' === b.nodeName.toUpperCase(),
j = a[s.ns];
(j.src === c || d.src) && (j.src = v.call(a, 'src'), j.src ? w.call(a, B, j.src)  : x.call(a, B)),
(j.srcset === c || d.srcset || !s.supSrcset || a.srcset) && (e = v.call(a, 'srcset'), j.srcset = e, h = !0),
j.sets = [
],
i && (j.pic = !0, l(b, j.sets)),
j.srcset ? (f = {
srcset: j.srcset,
sizes: v.call(a, 'sizes')
}, j.sets.push(f), g = (q || j.src) && G.test(j.srcset || ''), g || !j.src || k(j.src, f) || f.has1x || (f.srcset += ', ' + j.src, f.cands.push({
url: j.src,
d: 1,
set: f
})))  : j.src && j.sets.push({
srcset: j.src,
sizes: null
}),
j.curCan = null,
j.curSrc = c,
j.supported = !(i || f && !s.supSrcset || g),
h && s.supSrcset && !j.supported && (e ? (w.call(a, C, e), a.srcset = '')  : x.call(a, C)),
j.supported && !j.srcset && (!j.src && a.src || a.src !== s.makeUrl(j.src)) && (null === j.src ? a.removeAttribute('src')  : a.src = j.src),
j.parsed = !0
},
s.fillImg = function (a, b) {
var c,
d = b.reselect || b.reevaluate;
a[s.ns] || (a[s.ns] = {
}),
c = a[s.ns],
(d || c.evaled !== r) && ((!c.parsed || b.reevaluate) && s.parseSets(a, a.parentNode, b), c.supported ? c.evaled = r : h(a))
},
s.setupRun = function () {
(!R || L || O !== a.devicePixelRatio) && f()
},
s.supPicture ? (aa = t, s.fillImg = t)  : !function () {
var c,
d = a.attachEvent ? /d$|^c/ : /d$|^c|^i/,
e = function () {
var a = b.readyState || '';
f = setTimeout(e, 'loading' === a ? 200 : 999),
b.body && (s.fillImgs(), c = c || d.test(a), c && clearTimeout(f))
},
f = setTimeout(e, b.body ? 9 : 99),
g = function (a, b) {
var c,
d,
e = function () {
var f = new Date - d;
b > f ? c = setTimeout(e, b - f)  : (c = null, a())
};
return function () {
d = new Date,
c || (c = setTimeout(e, b))
}
},
h = y.clientHeight,
i = function () {
L = Math.max(a.innerWidth || 0, y.clientWidth) !== P.width || y.clientHeight !== h,
h = y.clientHeight,
L && s.fillImgs()
};
Y(a, 'resize', g(i, 99)),
Y(b, 'readystatechange', e)
}(),
s.picturefill = aa,
s.fillImgs = aa,
s.teardownRun = t,
aa._ = s,
a.picturefillCFG = {
pf: s,
push: function (a) {
var b = a.shift();
'function' == typeof s[b] ? s[b].apply(s, a)  : (A[b] = a[0], R && s.fillImgs({
reselect: !0
}))
}
};
for (; I && I.length; ) a.picturefillCFG.push(I.shift());
a.picturefill = aa,
'object' == typeof module && 'object' == typeof module.exports ? module.exports = aa : 'function' == typeof define && define.amd && define('picturefill', function () {
return aa
}),
s.supPicture || (z['image/webp'] = e('image/webp', 'data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA=='))
}(window, document);
(function (root, factory) {
var moduleName = 'ResizeDimension';
if (typeof define === 'function' && define.amd) {
define(['jquery'], function ($) {
return root[moduleName] = factory($)
})
} else {
root[moduleName] = factory(root.$)
}
}) (this, function ($) {
var $window = $(window);
var ResizeDimension = function ($el, dimension, handler, options) {
if (!(this instanceof ResizeDimension)) {
return new ResizeDimension($el, dimension, handler, options)
}
this.$el = $el;
this.init(dimension, handler, options);
return this
};
ResizeDimension.prototype.onResize = function () {
};
ResizeDimension.bound = {
};
ResizeDimension.bind = function (dimension, options) {
if (ResizeDimension.bound[dimension]) return;
ResizeDimension.bound[dimension] = true;
$window.resizeDimension(dimension, function () {
$window.trigger('resize-' + dimension)
}, options)
};
ResizeDimension.prototype.init = function (dimension, handler, options) {
if (typeof dimension === 'object') {
options = dimension;
dimension = options.dimension;
handler = options.handler
}
options = $.extend({
}, options);
options.dimension = dimension;
options.handler = handler;
this.options = options;
if ($.isFunction(options.changed)) {
this.changed = options.changed
}
this.dimension = this.normalize(options.dimension);
this.handler = options.handler;
this.previousValue = this.value();
var proxied = $.proxy(this.handle, this);
if (options.throttler) {
this.onResize = options.throttler(proxied)
} else {
this.onResize = proxied
}
};
ResizeDimension.prototype.normalize = function (dimension) {
return dimension
};
ResizeDimension.prototype.changed = function (previous, current) {
return previous !== current
};
ResizeDimension.prototype.value = function (e) {
return this.$el[this.dimension]()
};
ResizeDimension.prototype.handle = function (e) {
var currentValue = this.value();
if (this.changed(this.previousValue, currentValue)) {
this.previousValue = currentValue;
return this.handler.call(this.$el, e)
}
};
var $resizeDimension = function () {
var args = Array.prototype.slice.call(arguments);
return this.each(function () {
var $el = $(this);
args = [
$el
].concat(args);
var instance = ResizeDimension.apply(null, args);
$el.on('resize', $.proxy(instance.onResize, instance))
})
};
$.fn.resizeDimension = $resizeDimension;
return ResizeDimension
});
!function (a) {
'use strict';
'function' == typeof define && define.amd ? define(['jquery'], a)  : 'undefined' != typeof exports ? module.exports = a(require('jquery'))  : a(jQuery)
}(function (a) {
'use strict';
var b = window.Slick || {
};
b = function () {
function c(c, d) {
var f,
e = this;
e.defaults = {
accessibility: !0,
adaptiveHeight: !1,
appendArrows: a(c),
appendDots: a(c),
arrows: !0,
asNavFor: null,
prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
autoplay: !1,
autoplaySpeed: 3000,
centerMode: !1,
centerPadding: '50px',
cssEase: 'ease',
customPaging: function (a, b) {
return '<button type="button" data-role="none" role="button" aria-required="false" tabindex="0">' + (b + 1) + '</button>'
},
dots: !1,
dotsClass: 'slick-dots',
draggable: !0,
easing: 'linear',
edgeFriction: 0.35,
fade: !1,
focusOnSelect: !1,
infinite: !0,
initialSlide: 0,
lazyLoad: 'ondemand',
mobileFirst: !1,
pauseOnHover: !0,
pauseOnDotsHover: !1,
respondTo: 'window',
responsive: null,
rows: 1,
rtl: !1,
slide: '',
slidesPerRow: 1,
slidesToShow: 1,
slidesToScroll: 1,
speed: 500,
swipe: !0,
swipeToSlide: !1,
touchMove: !0,
touchThreshold: 5,
useCSS: !0,
variableWidth: !1,
vertical: !1,
verticalSwiping: !1,
waitForAnimate: !0,
zIndex: 1000
},
e.initials = {
animating: !1,
dragging: !1,
autoPlayTimer: null,
currentDirection: 0,
currentLeft: null,
currentSlide: 0,
direction: 1,
$dots: null,
listWidth: null,
listHeight: null,
loadIndex: 0,
$nextArrow: null,
$prevArrow: null,
slideCount: null,
slideWidth: null,
$slideTrack: null,
$slides: null,
sliding: !1,
slideOffset: 0,
swipeLeft: null,
$list: null,
touchObject: {
},
transformsEnabled: !1,
unslicked: !1
},
a.extend(e, e.initials),
e.activeBreakpoint = null,
e.animType = null,
e.animProp = null,
e.breakpoints = [
],
e.breakpointSettings = [
],
e.cssTransitions = !1,
e.hidden = 'hidden',
e.paused = !1,
e.positionProp = null,
e.respondTo = null,
e.rowCount = 1,
e.shouldClick = !0,
e.$slider = a(c),
e.$slidesCache = null,
e.transformType = null,
e.transitionType = null,
e.visibilityChange = 'visibilitychange',
e.windowWidth = 0,
e.windowTimer = null,
f = a(c).data('slick') || {
},
e.options = a.extend({
}, e.defaults, f, d),
e.currentSlide = e.options.initialSlide,
e.originalSettings = e.options,
'undefined' != typeof document.mozHidden ? (e.hidden = 'mozHidden', e.visibilityChange = 'mozvisibilitychange')  : 'undefined' != typeof document.webkitHidden && (e.hidden = 'webkitHidden', e.visibilityChange = 'webkitvisibilitychange'),
e.autoPlay = a.proxy(e.autoPlay, e),
e.autoPlayClear = a.proxy(e.autoPlayClear, e),
e.changeSlide = a.proxy(e.changeSlide, e),
e.clickHandler = a.proxy(e.clickHandler, e),
e.selectHandler = a.proxy(e.selectHandler, e),
e.setPosition = a.proxy(e.setPosition, e),
e.swipeHandler = a.proxy(e.swipeHandler, e),
e.dragHandler = a.proxy(e.dragHandler, e),
e.keyHandler = a.proxy(e.keyHandler, e),
e.autoPlayIterator = a.proxy(e.autoPlayIterator, e),
e.instanceUid = b++,
e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/,
e.registerBreakpoints(),
e.init(!0),
e.checkResponsive(!0)
}
var b = 0;
return c
}(),
b.prototype.addSlide = b.prototype.slickAdd = function (b, c, d) {
var e = this;
if ('boolean' == typeof c) d = c,
c = null;
 else if (0 > c || c >= e.slideCount) return !1;
e.unload(),
'number' == typeof c ? 0 === c && 0 === e.$slides.length ? a(b).appendTo(e.$slideTrack)  : d ? a(b).insertBefore(e.$slides.eq(c))  : a(b).insertAfter(e.$slides.eq(c))  : d === !0 ? a(b).prependTo(e.$slideTrack)  : a(b).appendTo(e.$slideTrack),
e.$slides = e.$slideTrack.children(this.options.slide),
e.$slideTrack.children(this.options.slide).detach(),
e.$slideTrack.append(e.$slides),
e.$slides.each(function (b, c) {
a(c).attr('data-slick-index', b)
}),
e.$slidesCache = e.$slides,
e.reinit()
},
b.prototype.animateHeight = function () {
var a = this;
if (1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1) {
var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
a.$list.animate({
height: b
}, a.options.speed)
}
},
b.prototype.animateSlide = function (b, c) {
var d = {
},
e = this;
e.animateHeight(),
e.options.rtl === !0 && e.options.vertical === !1 && (b = - b),
e.transformsEnabled === !1 ? e.options.vertical === !1 ? e.$slideTrack.animate({
left: b
}, e.options.speed, e.options.easing, c)  : e.$slideTrack.animate({
top: b
}, e.options.speed, e.options.easing, c)  : e.cssTransitions === !1 ? (e.options.rtl === !0 && (e.currentLeft = - e.currentLeft), a({
animStart: e.currentLeft
}).animate({
animStart: b
}, {
duration: e.options.speed,
easing: e.options.easing,
step: function (a) {
a = Math.ceil(a),
e.options.vertical === !1 ? (d[e.animType] = 'translate(' + a + 'px, 0px)', e.$slideTrack.css(d))  : (d[e.animType] = 'translate(0px,' + a + 'px)', e.$slideTrack.css(d))
},
complete: function () {
c && c.call()
}
}))  : (e.applyTransition(), b = Math.ceil(b), d[e.animType] = e.options.vertical === !1 ? 'translate3d(' + b + 'px, 0px, 0px)' : 'translate3d(0px,' + b + 'px, 0px)', e.$slideTrack.css(d), c && setTimeout(function () {
e.disableTransition(),
c.call()
}, e.options.speed))
},
b.prototype.asNavFor = function (b) {
var c = this,
d = c.options.asNavFor;
d && null !== d && (d = a(d).not(c.$slider)),
null !== d && 'object' == typeof d && d.each(function () {
var c = a(this).slick('getSlick');
c.unslicked || c.slideHandler(b, !0)
})
},
b.prototype.applyTransition = function (a) {
var b = this,
c = {
};
c[b.transitionType] = b.options.fade === !1 ? b.transformType + ' ' + b.options.speed + 'ms ' + b.options.cssEase : 'opacity ' + b.options.speed + 'ms ' + b.options.cssEase,
b.options.fade === !1 ? b.$slideTrack.css(c)  : b.$slides.eq(a).css(c)
},
b.prototype.autoPlay = function () {
var a = this;
a.autoPlayTimer && clearInterval(a.autoPlayTimer),
a.slideCount > a.options.slidesToShow && a.paused !== !0 && (a.autoPlayTimer = setInterval(a.autoPlayIterator, a.options.autoplaySpeed))
},
b.prototype.autoPlayClear = function () {
var a = this;
a.autoPlayTimer && clearInterval(a.autoPlayTimer)
},
b.prototype.autoPlayIterator = function () {
var a = this;
a.options.infinite === !1 ? 1 === a.direction ? (a.currentSlide + 1 === a.slideCount - 1 && (a.direction = 0), a.slideHandler(a.currentSlide + a.options.slidesToScroll))  : (0 === a.currentSlide - 1 && (a.direction = 1), a.slideHandler(a.currentSlide - a.options.slidesToScroll))  : a.slideHandler(a.currentSlide + a.options.slidesToScroll)
},
b.prototype.buildArrows = function () {
var b = this;
b.options.arrows === !0 && (b.$prevArrow = a(b.options.prevArrow).addClass('slick-arrow'), b.$nextArrow = a(b.options.nextArrow).addClass('slick-arrow'), b.slideCount > b.options.slidesToShow ? (b.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex'), b.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex'), b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.prependTo(b.options.appendArrows), b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.appendTo(b.options.appendArrows), b.options.infinite !== !0 && b.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true'))  : b.$prevArrow.add(b.$nextArrow).addClass('slick-hidden').attr({
'aria-disabled': 'true',
tabindex: '-1'
}))
},
b.prototype.buildDots = function () {
var c,
d,
b = this;
if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) {
for (d = '<ul class="' + b.options.dotsClass + '">', c = 0; c <= b.getDotCount(); c += 1) d += '<li>' + b.options.customPaging.call(this, b, c) + '</li>';
d += '</ul>',
b.$dots = a(d).appendTo(b.options.appendDots),
b.$dots.find('li').first().addClass('slick-active').attr('aria-hidden', 'false')
}
},
b.prototype.buildOut = function () {
var b = this;
b.$slides = b.$slider.children(b.options.slide + ':not(.slick-cloned)').addClass('slick-slide'),
b.slideCount = b.$slides.length,
b.$slides.each(function (b, c) {
a(c).attr('data-slick-index', b).data('originalStyling', a(c).attr('style') || '')
}),
b.$slidesCache = b.$slides,
b.$slider.addClass('slick-slider'),
b.$slideTrack = 0 === b.slideCount ? a('<div class="slick-track"/>').appendTo(b.$slider)  : b.$slides.wrapAll('<div class="slick-track"/>').parent(),
b.$list = b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),
b.$slideTrack.css('opacity', 0),
(b.options.centerMode === !0 || b.options.swipeToSlide === !0) && (b.options.slidesToScroll = 1),
a('img[data-lazy]', b.$slider).not('[src]').addClass('slick-loading'),
b.setupInfinite(),
b.buildArrows(),
b.buildDots(),
b.updateDots(),
b.setSlideClasses('number' == typeof b.currentSlide ? b.currentSlide : 0),
b.options.draggable === !0 && b.$list.addClass('draggable')
},
b.prototype.buildRows = function () {
var b,
c,
d,
e,
f,
g,
h,
a = this;
if (e = document.createDocumentFragment(), g = a.$slider.children(), a.options.rows > 1) {
for (h = a.options.slidesPerRow * a.options.rows, f = Math.ceil(g.length / h), b = 0; f > b; b++) {
var i = document.createElement('div');
for (c = 0; c < a.options.rows; c++) {
var j = document.createElement('div');
for (d = 0; d < a.options.slidesPerRow; d++) {
var k = b * h + (c * a.options.slidesPerRow + d);
g.get(k) && j.appendChild(g.get(k))
}
i.appendChild(j)
}
e.appendChild(i)
}
a.$slider.html(e),
a.$slider.children().children().children().css({
width: 100 / a.options.slidesPerRow + '%',
display: 'inline-block'
})
}
},
b.prototype.checkResponsive = function (b, c) {
var e,
f,
g,
d = this,
h = !1,
i = d.$slider.width(),
j = window.innerWidth || a(window).width();
if ('window' === d.respondTo ? g = j : 'slider' === d.respondTo ? g = i : 'min' === d.respondTo && (g = Math.min(j, i)), d.options.responsive && d.options.responsive.length && null !== d.options.responsive) {
f = null;
for (e in d.breakpoints) d.breakpoints.hasOwnProperty(e) && (d.originalSettings.mobileFirst === !1 ? g < d.breakpoints[e] && (f = d.breakpoints[e])  : g > d.breakpoints[e] && (f = d.breakpoints[e]));
null !== f ? null !== d.activeBreakpoint ? (f !== d.activeBreakpoint || c) && (d.activeBreakpoint = f, 'unslick' === d.breakpointSettings[f] ? d.unslick(f)  : (d.options = a.extend({
}, d.originalSettings, d.breakpointSettings[f]), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b)), h = f)  : (d.activeBreakpoint = f, 'unslick' === d.breakpointSettings[f] ? d.unslick(f)  : (d.options = a.extend({
}, d.originalSettings, d.breakpointSettings[f]), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b)), h = f)  : null !== d.activeBreakpoint && (d.activeBreakpoint = null, d.options = d.originalSettings, b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b), h = f),
b || h === !1 || d.$slider.trigger('breakpoint', [
d,
h
])
}
},
b.prototype.changeSlide = function (b, c) {
var f,
g,
h,
d = this,
e = a(b.target);
switch (e.is('a') && b.preventDefault(), e.is('li') || (e = e.closest('li')), h = 0 !== d.slideCount % d.options.slidesToScroll, f = h ? 0 : (d.slideCount - d.currentSlide) % d.options.slidesToScroll, b.data.message) {
case 'previous':
g = 0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f,
d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide - g, !1, c);
break;
case 'next':
g = 0 === f ? d.options.slidesToScroll : f,
d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide + g, !1, c);
break;
case 'index':
var i = 0 === b.data.index ? 0 : b.data.index || e.index() * d.options.slidesToScroll;
d.slideHandler(d.checkNavigable(i), !1, c),
e.children().trigger('focus');
break;
default:
return
}
},
b.prototype.checkNavigable = function (a) {
var c,
d,
b = this;
if (c = b.getNavigableIndexes(), d = 0, a > c[c.length - 1]) a = c[c.length - 1];
 else for (var e in c) {
if (a < c[e]) {
a = d;
break
}
d = c[e]
}
return a
},
b.prototype.cleanUpEvents = function () {
var b = this;
b.options.dots && null !== b.$dots && (a('li', b.$dots).off('click.slick', b.changeSlide), b.options.pauseOnDotsHover === !0 && b.options.autoplay === !0 && a('li', b.$dots).off('mouseenter.slick', a.proxy(b.setPaused, b, !0)).off('mouseleave.slick', a.proxy(b.setPaused, b, !1))),
b.options.arrows === !0 && b.slideCount > b.options.slidesToShow && (b.$prevArrow && b.$prevArrow.off('click.slick', b.changeSlide), b.$nextArrow && b.$nextArrow.off('click.slick', b.changeSlide)),
b.$list.off('touchstart.slick mousedown.slick', b.swipeHandler),
b.$list.off('touchmove.slick mousemove.slick', b.swipeHandler),
b.$list.off('touchend.slick mouseup.slick', b.swipeHandler),
b.$list.off('touchcancel.slick mouseleave.slick', b.swipeHandler),
b.$list.off('click.slick', b.clickHandler),
a(document).off(b.visibilityChange, b.visibility),
b.$list.off('mouseenter.slick', a.proxy(b.setPaused, b, !0)),
b.$list.off('mouseleave.slick', a.proxy(b.setPaused, b, !1)),
b.options.accessibility === !0 && b.$list.off('keydown.slick', b.keyHandler),
b.options.focusOnSelect === !0 && a(b.$slideTrack).children().off('click.slick', b.selectHandler),
a(window).off('orientationchange.slick.slick-' + b.instanceUid, b.orientationChange),
a(window).off('resize.slick.slick-' + b.instanceUid, b.resize),
a('[draggable!=true]', b.$slideTrack).off('dragstart', b.preventDefault),
a(window).off('load.slick.slick-' + b.instanceUid, b.setPosition),
a(document).off('ready.slick.slick-' + b.instanceUid, b.setPosition)
},
b.prototype.cleanUpRows = function () {
var b,
a = this;
a.options.rows > 1 && (b = a.$slides.children().children(), b.removeAttr('style'), a.$slider.html(b))
},
b.prototype.clickHandler = function (a) {
var b = this;
b.shouldClick === !1 && (a.stopImmediatePropagation(), a.stopPropagation(), a.preventDefault())
},
b.prototype.destroy = function (b) {
var c = this;
c.autoPlayClear(),
c.touchObject = {
},
c.cleanUpEvents(),
a('.slick-cloned', c.$slider).detach(),
c.$dots && c.$dots.remove(),
c.options.arrows === !0 && (c.$prevArrow && c.$prevArrow.length && (c.$prevArrow.removeClass('slick-disabled slick-arrow slick-hidden').removeAttr('aria-hidden aria-disabled tabindex').css('display', ''), c.htmlExpr.test(c.options.prevArrow) && c.$prevArrow.remove()), c.$nextArrow && c.$nextArrow.length && (c.$nextArrow.removeClass('slick-disabled slick-arrow slick-hidden').removeAttr('aria-hidden aria-disabled tabindex').css('display', ''), c.htmlExpr.test(c.options.nextArrow) && c.$nextArrow.remove())),
c.$slides && (c.$slides.removeClass('slick-slide slick-active slick-center slick-visible slick-current').removeAttr('aria-hidden').removeAttr('data-slick-index').each(function () {
a(this).attr('style', a(this).data('originalStyling'))
}), c.$slideTrack.children(this.options.slide).detach(), c.$slideTrack.detach(), c.$list.detach(), c.$slider.append(c.$slides)),
c.cleanUpRows(),
c.$slider.removeClass('slick-slider'),
c.$slider.removeClass('slick-initialized'),
c.unslicked = !0,
b || c.$slider.trigger('destroy', [
c
])
},
b.prototype.disableTransition = function (a) {
var b = this,
c = {
};
c[b.transitionType] = '',
b.options.fade === !1 ? b.$slideTrack.css(c)  : b.$slides.eq(a).css(c)
},
b.prototype.fadeSlide = function (a, b) {
var c = this;
c.cssTransitions === !1 ? (c.$slides.eq(a).css({
zIndex: c.options.zIndex
}), c.$slides.eq(a).animate({
opacity: 1
}, c.options.speed, c.options.easing, b))  : (c.applyTransition(a), c.$slides.eq(a).css({
opacity: 1,
zIndex: c.options.zIndex
}), b && setTimeout(function () {
c.disableTransition(a),
b.call()
}, c.options.speed))
},
b.prototype.fadeSlideOut = function (a) {
var b = this;
b.cssTransitions === !1 ? b.$slides.eq(a).animate({
opacity: 0,
zIndex: b.options.zIndex - 2
}, b.options.speed, b.options.easing)  : (b.applyTransition(a), b.$slides.eq(a).css({
opacity: 0,
zIndex: b.options.zIndex - 2
}))
},
b.prototype.filterSlides = b.prototype.slickFilter = function (a) {
var b = this;
null !== a && (b.unload(), b.$slideTrack.children(this.options.slide).detach(), b.$slidesCache.filter(a).appendTo(b.$slideTrack), b.reinit())
},
b.prototype.getCurrent = b.prototype.slickCurrentSlide = function () {
var a = this;
return a.currentSlide
},
b.prototype.getDotCount = function () {
var a = this,
b = 0,
c = 0,
d = 0;
if (a.options.infinite === !0) for (; b < a.slideCount; ) ++d,
b = c + a.options.slidesToShow,
c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
 else if (a.options.centerMode === !0) d = a.slideCount;
 else for (; b < a.slideCount; ) ++d,
b = c + a.options.slidesToShow,
c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
return d - 1
},
b.prototype.getLeft = function (a) {
var c,
d,
f,
b = this,
e = 0;
return b.slideOffset = 0,
d = b.$slides.first().outerHeight(!0),
b.options.infinite === !0 ? (b.slideCount > b.options.slidesToShow && (b.slideOffset = - 1 * b.slideWidth * b.options.slidesToShow, e = - 1 * d * b.options.slidesToShow), 0 !== b.slideCount % b.options.slidesToScroll && a + b.options.slidesToScroll > b.slideCount && b.slideCount > b.options.slidesToShow && (a > b.slideCount ? (b.slideOffset = - 1 * (b.options.slidesToShow - (a - b.slideCount)) * b.slideWidth, e = - 1 * (b.options.slidesToShow - (a - b.slideCount)) * d)  : (b.slideOffset = - 1 * b.slideCount % b.options.slidesToScroll * b.slideWidth, e = - 1 * b.slideCount % b.options.slidesToScroll * d)))  : a + b.options.slidesToShow > b.slideCount && (b.slideOffset = (a + b.options.slidesToShow - b.slideCount) * b.slideWidth, e = (a + b.options.slidesToShow - b.slideCount) * d),
b.slideCount <= b.options.slidesToShow && (b.slideOffset = 0, e = 0),
b.options.centerMode === !0 && b.options.infinite === !0 ? b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2) - b.slideWidth : b.options.centerMode === !0 && (b.slideOffset = 0, b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2)),
c = b.options.vertical === !1 ? - 1 * a * b.slideWidth + b.slideOffset : - 1 * a * d + e,
b.options.variableWidth === !0 && (f = b.slideCount <= b.options.slidesToShow || b.options.infinite === !1 ? b.$slideTrack.children('.slick-slide').eq(a)  : b.$slideTrack.children('.slick-slide').eq(a + b.options.slidesToShow), c = f[0] ? - 1 * f[0].offsetLeft : 0, b.options.centerMode === !0 && (f = b.options.infinite === !1 ? b.$slideTrack.children('.slick-slide').eq(a)  : b.$slideTrack.children('.slick-slide').eq(a + b.options.slidesToShow + 1), c = f[0] ? - 1 * f[0].offsetLeft : 0, c += (b.$list.width() - f.outerWidth()) / 2)),
c
},
b.prototype.getOption = b.prototype.slickGetOption = function (a) {
var b = this;
return b.options[a]
},
b.prototype.getNavigableIndexes = function () {
var e,
a = this,
b = 0,
c = 0,
d = [
];
for (a.options.infinite === !1 ? e = a.slideCount : (b = - 1 * a.options.slidesToScroll, c = - 1 * a.options.slidesToScroll, e = 2 * a.slideCount); e > b; ) d.push(b),
b = c + a.options.slidesToScroll,
c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
return d
},
b.prototype.getSlick = function () {
return this
},
b.prototype.getSlideCount = function () {
var c,
d,
e,
b = this;
return e = b.options.centerMode === !0 ? b.slideWidth * Math.floor(b.options.slidesToShow / 2)  : 0,
b.options.swipeToSlide === !0 ? (b.$slideTrack.find('.slick-slide').each(function (c, f) {
return f.offsetLeft - e + a(f).outerWidth() / 2 > - 1 * b.swipeLeft ? (d = f, !1)  : void 0
}), c = Math.abs(a(d).attr('data-slick-index') - b.currentSlide) || 1)  : b.options.slidesToScroll
},
b.prototype.goTo = b.prototype.slickGoTo = function (a, b) {
var c = this;
c.changeSlide({
data: {
message: 'index',
index: parseInt(a)
}
}, b)
},
b.prototype.init = function (b) {
var c = this;
a(c.$slider).hasClass('slick-initialized') || (a(c.$slider).addClass('slick-initialized'), c.buildRows(), c.buildOut(), c.setProps(), c.startLoad(), c.loadSlider(), c.initializeEvents(), c.updateArrows(), c.updateDots()),
b && c.$slider.trigger('init', [
c
]),
c.options.accessibility === !0 && c.initADA()
},
b.prototype.initArrowEvents = function () {
var a = this;
a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.on('click.slick', {
message: 'previous'
}, a.changeSlide), a.$nextArrow.on('click.slick', {
message: 'next'
}, a.changeSlide))
},
b.prototype.initDotEvents = function () {
var b = this;
b.options.dots === !0 && b.slideCount > b.options.slidesToShow && a('li', b.$dots).on('click.slick', {
message: 'index'
}, b.changeSlide),
b.options.dots === !0 && b.options.pauseOnDotsHover === !0 && b.options.autoplay === !0 && a('li', b.$dots).on('mouseenter.slick', a.proxy(b.setPaused, b, !0)).on('mouseleave.slick', a.proxy(b.setPaused, b, !1))
},
b.prototype.initializeEvents = function () {
var b = this;
b.initArrowEvents(),
b.initDotEvents(),
b.$list.on('touchstart.slick mousedown.slick', {
action: 'start'
}, b.swipeHandler),
b.$list.on('touchmove.slick mousemove.slick', {
action: 'move'
}, b.swipeHandler),
b.$list.on('touchend.slick mouseup.slick', {
action: 'end'
}, b.swipeHandler),
b.$list.on('touchcancel.slick mouseleave.slick', {
action: 'end'
}, b.swipeHandler),
b.$list.on('click.slick', b.clickHandler),
a(document).on(b.visibilityChange, a.proxy(b.visibility, b)),
b.$list.on('mouseenter.slick', a.proxy(b.setPaused, b, !0)),
b.$list.on('mouseleave.slick', a.proxy(b.setPaused, b, !1)),
b.options.accessibility === !0 && b.$list.on('keydown.slick', b.keyHandler),
b.options.focusOnSelect === !0 && a(b.$slideTrack).children().on('click.slick', b.selectHandler),
a(window).on('orientationchange.slick.slick-' + b.instanceUid, a.proxy(b.orientationChange, b)),
a(window).on('resize.slick.slick-' + b.instanceUid, a.proxy(b.resize, b)),
a('[draggable!=true]', b.$slideTrack).on('dragstart', b.preventDefault),
a(window).on('load.slick.slick-' + b.instanceUid, b.setPosition),
a(document).on('ready.slick.slick-' + b.instanceUid, b.setPosition)
},
b.prototype.initUI = function () {
var a = this;
a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.show(), a.$nextArrow.show()),
a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.show(),
a.options.autoplay === !0 && a.autoPlay()
},
b.prototype.keyHandler = function (a) {
var b = this;
a.target.tagName.match('TEXTAREA|INPUT|SELECT') || (37 === a.keyCode && b.options.accessibility === !0 ? b.changeSlide({
data: {
message: 'previous'
}
})  : 39 === a.keyCode && b.options.accessibility === !0 && b.changeSlide({
data: {
message: 'next'
}
}))
},
b.prototype.lazyLoad = function () {
function g(b) {
a('img[data-lazy]', b).each(function () {
var b = a(this),
c = a(this).attr('data-lazy'),
d = document.createElement('img');
d.onload = function () {
b.animate({
opacity: 0
}, 100, function () {
b.attr('src', c).animate({
opacity: 1
}, 200, function () {
b.removeAttr('data-lazy').removeClass('slick-loading')
})
})
},
d.src = c
})
}
var c,
d,
e,
f,
b = this;
b.options.centerMode === !0 ? b.options.infinite === !0 ? (e = b.currentSlide + (b.options.slidesToShow / 2 + 1), f = e + b.options.slidesToShow + 2)  : (e = Math.max(0, b.currentSlide - (b.options.slidesToShow / 2 + 1)), f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide)  : (e = b.options.infinite ? b.options.slidesToShow + b.currentSlide : b.currentSlide, f = e + b.options.slidesToShow, b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)),
c = b.$slider.find('.slick-slide').slice(e, f),
g(c),
b.slideCount <= b.options.slidesToShow ? (d = b.$slider.find('.slick-slide'), g(d))  : b.currentSlide >= b.slideCount - b.options.slidesToShow ? (d = b.$slider.find('.slick-cloned').slice(0, b.options.slidesToShow), g(d))  : 0 === b.currentSlide && (d = b.$slider.find('.slick-cloned').slice( - 1 * b.options.slidesToShow), g(d))
},
b.prototype.loadSlider = function () {
var a = this;
a.setPosition(),
a.$slideTrack.css({
opacity: 1
}),
a.$slider.removeClass('slick-loading'),
a.initUI(),
'progressive' === a.options.lazyLoad && a.progressiveLazyLoad()
},
b.prototype.next = b.prototype.slickNext = function () {
var a = this;
a.changeSlide({
data: {
message: 'next'
}
})
},
b.prototype.orientationChange = function () {
var a = this;
a.checkResponsive(),
a.setPosition()
},
b.prototype.pause = b.prototype.slickPause = function () {
var a = this;
a.autoPlayClear(),
a.paused = !0
},
b.prototype.play = b.prototype.slickPlay = function () {
var a = this;
a.paused = !1,
a.autoPlay()
},
b.prototype.postSlide = function (a) {
var b = this;
b.$slider.trigger('afterChange', [
b,
a
]),
b.animating = !1,
b.setPosition(),
b.swipeLeft = null,
b.options.autoplay === !0 && b.paused === !1 && b.autoPlay(),
b.options.accessibility === !0 && b.initADA()
},
b.prototype.prev = b.prototype.slickPrev = function () {
var a = this;
a.changeSlide({
data: {
message: 'previous'
}
})
},
b.prototype.preventDefault = function (a) {
a.preventDefault()
},
b.prototype.progressiveLazyLoad = function () {
var c,
d,
b = this;
c = a('img[data-lazy]', b.$slider).length,
c > 0 && (d = a('img[data-lazy]', b.$slider).first(), d.attr('src', d.attr('data-lazy')).removeClass('slick-loading').load(function () {
d.removeAttr('data-lazy'),
b.progressiveLazyLoad(),
b.options.adaptiveHeight === !0 && b.setPosition()
}).error(function () {
d.removeAttr('data-lazy'),
b.progressiveLazyLoad()
}))
},
b.prototype.refresh = function (b) {
var c = this,
d = c.currentSlide;
c.destroy(!0),
a.extend(c, c.initials, {
currentSlide: d
}),
c.init(),
b || c.changeSlide({
data: {
message: 'index',
index: d
}
}, !1)
},
b.prototype.registerBreakpoints = function () {
var c,
d,
e,
b = this,
f = b.options.responsive || null;
if ('array' === a.type(f) && f.length) {
b.respondTo = b.options.respondTo || 'window';
for (c in f) if (e = b.breakpoints.length - 1, d = f[c].breakpoint, f.hasOwnProperty(c)) {
for (; e >= 0; ) b.breakpoints[e] && b.breakpoints[e] === d && b.breakpoints.splice(e, 1),
e--;
b.breakpoints.push(d),
b.breakpointSettings[d] = f[c].settings
}
b.breakpoints.sort(function (a, c) {
return b.options.mobileFirst ? a - c : c - a
})
}
},
b.prototype.reinit = function () {
var b = this;
b.$slides = b.$slideTrack.children(b.options.slide).addClass('slick-slide'),
b.slideCount = b.$slides.length,
b.currentSlide >= b.slideCount && 0 !== b.currentSlide && (b.currentSlide = b.currentSlide - b.options.slidesToScroll),
b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0),
b.registerBreakpoints(),
b.setProps(),
b.setupInfinite(),
b.buildArrows(),
b.updateArrows(),
b.initArrowEvents(),
b.buildDots(),
b.updateDots(),
b.initDotEvents(),
b.checkResponsive(!1, !0),
b.options.focusOnSelect === !0 && a(b.$slideTrack).children().on('click.slick', b.selectHandler),
b.setSlideClasses(0),
b.setPosition(),
b.$slider.trigger('reInit', [
b
]),
b.options.autoplay === !0 && b.focusHandler()
},
b.prototype.resize = function () {
var b = this;
a(window).width() !== b.windowWidth && (clearTimeout(b.windowDelay), b.windowDelay = window.setTimeout(function () {
b.windowWidth = a(window).width(),
b.checkResponsive(),
b.unslicked || b.setPosition()
}, 50))
},
b.prototype.removeSlide = b.prototype.slickRemove = function (a, b, c) {
var d = this;
return 'boolean' == typeof a ? (b = a, a = b === !0 ? 0 : d.slideCount - 1)  : a = b === !0 ? --a : a,
d.slideCount < 1 || 0 > a || a > d.slideCount - 1 ? !1 : (d.unload(), c === !0 ? d.$slideTrack.children().remove()  : d.$slideTrack.children(this.options.slide).eq(a).remove(), d.$slides = d.$slideTrack.children(this.options.slide), d.$slideTrack.children(this.options.slide).detach(), d.$slideTrack.append(d.$slides), d.$slidesCache = d.$slides, d.reinit(), void 0)
},
b.prototype.setCSS = function (a) {
var d,
e,
b = this,
c = {
};
b.options.rtl === !0 && (a = - a),
d = 'left' == b.positionProp ? Math.ceil(a) + 'px' : '0px',
e = 'top' == b.positionProp ? Math.ceil(a) + 'px' : '0px',
c[b.positionProp] = a,
b.transformsEnabled === !1 ? b.$slideTrack.css(c)  : (c = {
}, b.cssTransitions === !1 ? (c[b.animType] = 'translate(' + d + ', ' + e + ')', b.$slideTrack.css(c))  : (c[b.animType] = 'translate3d(' + d + ', ' + e + ', 0px)', b.$slideTrack.css(c)))
},
b.prototype.setDimensions = function () {
var a = this;
a.options.vertical === !1 ? a.options.centerMode === !0 && a.$list.css({
padding: '0px ' + a.options.centerPadding
})  : (a.$list.height(a.$slides.first().outerHeight(!0) * a.options.slidesToShow), a.options.centerMode === !0 && a.$list.css({
padding: a.options.centerPadding + ' 0px'
})),
a.listWidth = a.$list.width(),
a.listHeight = a.$list.height(),
a.options.vertical === !1 && a.options.variableWidth === !1 ? (a.slideWidth = Math.ceil(a.listWidth / a.options.slidesToShow), a.$slideTrack.width(Math.ceil(a.slideWidth * a.$slideTrack.children('.slick-slide').length)))  : a.options.variableWidth === !0 ? a.$slideTrack.width(5000 * a.slideCount)  : (a.slideWidth = Math.ceil(a.listWidth), a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0) * a.$slideTrack.children('.slick-slide').length)));
var b = a.$slides.first().outerWidth(!0) - a.$slides.first().width();
a.options.variableWidth === !1 && a.$slideTrack.children('.slick-slide').width(a.slideWidth - b)
},
b.prototype.setFade = function () {
var c,
b = this;
b.$slides.each(function (d, e) {
c = - 1 * b.slideWidth * d,
b.options.rtl === !0 ? a(e).css({
position: 'relative',
right: c,
top: 0,
zIndex: b.options.zIndex - 2,
opacity: 0
})  : a(e).css({
position: 'relative',
left: c,
top: 0,
zIndex: b.options.zIndex - 2,
opacity: 0
})
}),
b.$slides.eq(b.currentSlide).css({
zIndex: b.options.zIndex - 1,
opacity: 1
})
},
b.prototype.setHeight = function () {
var a = this;
if (1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1) {
var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
a.$list.css('height', b)
}
},
b.prototype.setOption = b.prototype.slickSetOption = function (b, c, d) {
var f,
g,
e = this;
if ('responsive' === b && 'array' === a.type(c)) for (g in c) if ('array' !== a.type(e.options.responsive)) e.options.responsive = [
c[g]
];
 else {
for (f = e.options.responsive.length - 1; f >= 0; ) e.options.responsive[f].breakpoint === c[g].breakpoint && e.options.responsive.splice(f, 1),
f--;
e.options.responsive.push(c[g])
} else e.options[b] = c;
d === !0 && (e.unload(), e.reinit())
},
b.prototype.setPosition = function () {
var a = this;
a.setDimensions(),
a.setHeight(),
a.options.fade === !1 ? a.setCSS(a.getLeft(a.currentSlide))  : a.setFade(),
a.$slider.trigger('setPosition', [
a
])
},
b.prototype.setProps = function () {
var a = this,
b = document.body.style;
a.positionProp = a.options.vertical === !0 ? 'top' : 'left',
'top' === a.positionProp ? a.$slider.addClass('slick-vertical')  : a.$slider.removeClass('slick-vertical'),
(void 0 !== b.WebkitTransition || void 0 !== b.MozTransition || void 0 !== b.msTransition) && a.options.useCSS === !0 && (a.cssTransitions = !0),
a.options.fade && ('number' == typeof a.options.zIndex ? a.options.zIndex < 3 && (a.options.zIndex = 3)  : a.options.zIndex = a.defaults.zIndex),
void 0 !== b.OTransform && (a.animType = 'OTransform', a.transformType = '-o-transform', a.transitionType = 'OTransition', void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)),
void 0 !== b.MozTransform && (a.animType = 'MozTransform', a.transformType = '-moz-transform', a.transitionType = 'MozTransition', void 0 === b.perspectiveProperty && void 0 === b.MozPerspective && (a.animType = !1)),
void 0 !== b.webkitTransform && (a.animType = 'webkitTransform', a.transformType = '-webkit-transform', a.transitionType = 'webkitTransition', void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)),
void 0 !== b.msTransform && (a.animType = 'msTransform', a.transformType = '-ms-transform', a.transitionType = 'msTransition', void 0 === b.msTransform && (a.animType = !1)),
void 0 !== b.transform && a.animType !== !1 && (a.animType = 'transform', a.transformType = 'transform', a.transitionType = 'transition'),
a.transformsEnabled = null !== a.animType && a.animType !== !1
},
b.prototype.setSlideClasses = function (a) {
var c,
d,
e,
f,
b = this;
d = b.$slider.find('.slick-slide').removeClass('slick-active slick-center slick-current').attr('aria-hidden', 'true'),
b.$slides.eq(a).addClass('slick-current'),
b.options.centerMode === !0 ? (c = Math.floor(b.options.slidesToShow / 2), b.options.infinite === !0 && (a >= c && a <= b.slideCount - 1 - c ? b.$slides.slice(a - c, a + c + 1).addClass('slick-active').attr('aria-hidden', 'false')  : (e = b.options.slidesToShow + a, d.slice(e - c + 1, e + c + 2).addClass('slick-active').attr('aria-hidden', 'false')), 0 === a ? d.eq(d.length - 1 - b.options.slidesToShow).addClass('slick-center')  : a === b.slideCount - 1 && d.eq(b.options.slidesToShow).addClass('slick-center')), b.$slides.eq(a).addClass('slick-center'))  : a >= 0 && a <= b.slideCount - b.options.slidesToShow ? b.$slides.slice(a, a + b.options.slidesToShow).addClass('slick-active').attr('aria-hidden', 'false')  : d.length <= b.options.slidesToShow ? d.addClass('slick-active').attr('aria-hidden', 'false')  : (f = b.slideCount % b.options.slidesToShow, e = b.options.infinite === !0 ? b.options.slidesToShow + a : a, b.options.slidesToShow == b.options.slidesToScroll && b.slideCount - a < b.options.slidesToShow ? d.slice(e - (b.options.slidesToShow - f), e + f).addClass('slick-active').attr('aria-hidden', 'false')  : d.slice(e, e + b.options.slidesToShow).addClass('slick-active').attr('aria-hidden', 'false')),
'ondemand' === b.options.lazyLoad && b.lazyLoad()
},
b.prototype.setupInfinite = function () {
var c,
d,
e,
b = this;
if (b.options.fade === !0 && (b.options.centerMode = !1), b.options.infinite === !0 && b.options.fade === !1 && (d = null, b.slideCount > b.options.slidesToShow)) {
for (e = b.options.centerMode === !0 ? b.options.slidesToShow + 1 : b.options.slidesToShow, c = b.slideCount; c > b.slideCount - e; c -= 1) d = c - 1,
a(b.$slides[d]).clone(!0).attr('id', '').attr('data-slick-index', d - b.slideCount).prependTo(b.$slideTrack).addClass('slick-cloned');
for (c = 0; e > c; c += 1) d = c,
a(b.$slides[d]).clone(!0).attr('id', '').attr('data-slick-index', d + b.slideCount).appendTo(b.$slideTrack).addClass('slick-cloned');
b.$slideTrack.find('.slick-cloned').find('[id]').each(function () {
a(this).attr('id', '')
})
}
},
b.prototype.setPaused = function (a) {
var b = this;
b.options.autoplay === !0 && b.options.pauseOnHover === !0 && (b.paused = a, a ? b.autoPlayClear()  : b.autoPlay())
},
b.prototype.selectHandler = function (b) {
var c = this,
d = a(b.target).is('.slick-slide') ? a(b.target)  : a(b.target).parents('.slick-slide'),
e = parseInt(d.attr('data-slick-index'));
return e || (e = 0),
c.slideCount <= c.options.slidesToShow ? (c.setSlideClasses(e), c.asNavFor(e), void 0)  : (c.slideHandler(e), void 0)
},
b.prototype.slideHandler = function (a, b, c) {
var d,
e,
f,
g,
h = null,
i = this;
return b = b || !1,
i.animating === !0 && i.options.waitForAnimate === !0 || i.options.fade === !0 && i.currentSlide === a || i.slideCount <= i.options.slidesToShow ? void 0 : (b === !1 && i.asNavFor(a), d = a, h = i.getLeft(d), g = i.getLeft(i.currentSlide), i.currentLeft = null === i.swipeLeft ? g : i.swipeLeft, i.options.infinite === !1 && i.options.centerMode === !1 && (0 > a || a > i.getDotCount() * i.options.slidesToScroll) ? (i.options.fade === !1 && (d = i.currentSlide, c !== !0 ? i.animateSlide(g, function () {
i.postSlide(d)
})  : i.postSlide(d)), void 0)  : i.options.infinite === !1 && i.options.centerMode === !0 && (0 > a || a > i.slideCount - i.options.slidesToScroll) ? (i.options.fade === !1 && (d = i.currentSlide, c !== !0 ? i.animateSlide(g, function () {
i.postSlide(d)
})  : i.postSlide(d)), void 0)  : (i.options.autoplay === !0 && clearInterval(i.autoPlayTimer), e = 0 > d ? 0 !== i.slideCount % i.options.slidesToScroll ? i.slideCount - i.slideCount % i.options.slidesToScroll : i.slideCount + d : d >= i.slideCount ? 0 !== i.slideCount % i.options.slidesToScroll ? 0 : d - i.slideCount : d, i.animating = !0, i.$slider.trigger('beforeChange', [
i,
i.currentSlide,
e
]), f = i.currentSlide, i.currentSlide = e, i.setSlideClasses(i.currentSlide), i.updateDots(), i.updateArrows(), i.options.fade === !0 ? (c !== !0 ? (i.fadeSlideOut(f), i.fadeSlide(e, function () {
i.postSlide(e)
}))  : i.postSlide(e), i.animateHeight(), void 0)  : (c !== !0 ? i.animateSlide(h, function () {
i.postSlide(e)
})  : i.postSlide(e), void 0)))
},
b.prototype.startLoad = function () {
var a = this;
a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.hide(), a.$nextArrow.hide()),
a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.hide(),
a.$slider.addClass('slick-loading')
},
b.prototype.swipeDirection = function () {
var a,
b,
c,
d,
e = this;
return a = e.touchObject.startX - e.touchObject.curX,
b = e.touchObject.startY - e.touchObject.curY,
c = Math.atan2(b, a),
d = Math.round(180 * c / Math.PI),
0 > d && (d = 360 - Math.abs(d)),
45 >= d && d >= 0 ? e.options.rtl === !1 ? 'left' : 'right' : 360 >= d && d >= 315 ? e.options.rtl === !1 ? 'left' : 'right' : d >= 135 && 225 >= d ? e.options.rtl === !1 ? 'right' : 'left' : e.options.verticalSwiping === !0 ? d >= 35 && 135 >= d ? 'left' : 'right' : 'vertical'
},
b.prototype.swipeEnd = function () {
var c,
b = this;
if (b.dragging = !1, b.shouldClick = b.touchObject.swipeLength > 10 ? !1 : !0, void 0 === b.touchObject.curX) return !1;
if (b.touchObject.edgeHit === !0 && b.$slider.trigger('edge', [
b,
b.swipeDirection()
]), b.touchObject.swipeLength >= b.touchObject.minSwipe) switch (b.swipeDirection()) {
case 'left':
c = b.options.swipeToSlide ? b.checkNavigable(b.currentSlide + b.getSlideCount())  : b.currentSlide + b.getSlideCount(),
b.slideHandler(c),
b.currentDirection = 0,
b.touchObject = {
},
b.$slider.trigger('swipe', [
b,
'left'
]);
break;
case 'right':
c = b.options.swipeToSlide ? b.checkNavigable(b.currentSlide - b.getSlideCount())  : b.currentSlide - b.getSlideCount(),
b.slideHandler(c),
b.currentDirection = 1,
b.touchObject = {
},
b.$slider.trigger('swipe', [
b,
'right'
])
} else b.touchObject.startX !== b.touchObject.curX && (b.slideHandler(b.currentSlide), b.touchObject = {
})
},
b.prototype.swipeHandler = function (a) {
var b = this;
if (!(b.options.swipe === !1 || 'ontouchend' in document && b.options.swipe === !1 || b.options.draggable === !1 && - 1 !== a.type.indexOf('mouse'))) switch (b.touchObject.fingerCount = a.originalEvent && void 0 !== a.originalEvent.touches ? a.originalEvent.touches.length : 1, b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold, b.options.verticalSwiping === !0 && (b.touchObject.minSwipe = b.listHeight / b.options.touchThreshold), a.data.action) {
case 'start':
b.swipeStart(a);
break;
case 'move':
b.swipeMove(a);
break;
case 'end':
b.swipeEnd(a)
}
},
b.prototype.swipeMove = function (a) {
var d,
e,
f,
g,
h,
b = this;
return h = void 0 !== a.originalEvent ? a.originalEvent.touches : null,
!b.dragging || h && 1 !== h.length ? !1 : (d = b.getLeft(b.currentSlide), b.touchObject.curX = void 0 !== h ? h[0].pageX : a.clientX, b.touchObject.curY = void 0 !== h ? h[0].pageY : a.clientY, b.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2))), b.options.verticalSwiping === !0 && (b.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(b.touchObject.curY - b.touchObject.startY, 2)))), e = b.swipeDirection(), 'vertical' !== e ? (void 0 !== a.originalEvent && b.touchObject.swipeLength > 4 && a.preventDefault(), g = (b.options.rtl === !1 ? 1 : - 1) * (b.touchObject.curX > b.touchObject.startX ? 1 : - 1), b.options.verticalSwiping === !0 && (g = b.touchObject.curY > b.touchObject.startY ? 1 : - 1), f = b.touchObject.swipeLength, b.touchObject.edgeHit = !1, b.options.infinite === !1 && (0 === b.currentSlide && 'right' === e || b.currentSlide >= b.getDotCount() && 'left' === e) && (f = b.touchObject.swipeLength * b.options.edgeFriction, b.touchObject.edgeHit = !0), b.swipeLeft = b.options.vertical === !1 ? d + f * g : d + f * (b.$list.height() / b.listWidth) * g, b.options.verticalSwiping === !0 && (b.swipeLeft = d + f * g), b.options.fade === !0 || b.options.touchMove === !1 ? !1 : b.animating === !0 ? (b.swipeLeft = null, !1)  : (b.setCSS(b.swipeLeft), void 0))  : void 0)
},
b.prototype.swipeStart = function (a) {
var c,
b = this;
return 1 !== b.touchObject.fingerCount || b.slideCount <= b.options.slidesToShow ? (b.touchObject = {
}, !1)  : (void 0 !== a.originalEvent && void 0 !== a.originalEvent.touches && (c = a.originalEvent.touches[0]), b.touchObject.startX = b.touchObject.curX = void 0 !== c ? c.pageX : a.clientX, b.touchObject.startY = b.touchObject.curY = void 0 !== c ? c.pageY : a.clientY, b.dragging = !0, void 0)
},
b.prototype.unfilterSlides = b.prototype.slickUnfilter = function () {
var a = this;
null !== a.$slidesCache && (a.unload(), a.$slideTrack.children(this.options.slide).detach(), a.$slidesCache.appendTo(a.$slideTrack), a.reinit())
},
b.prototype.unload = function () {
var b = this;
a('.slick-cloned', b.$slider).remove(),
b.$dots && b.$dots.remove(),
b.$prevArrow && b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.remove(),
b.$nextArrow && b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.remove(),
b.$slides.removeClass('slick-slide slick-active slick-visible slick-current').attr('aria-hidden', 'true').css('width', '')
},
b.prototype.unslick = function (a) {
var b = this;
b.$slider.trigger('unslick', [
b,
a
]),
b.destroy()
},
b.prototype.updateArrows = function () {
var b,
a = this;
b = Math.floor(a.options.slidesToShow / 2),
a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && !a.options.infinite && (a.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'), a.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'), 0 === a.currentSlide ? (a.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true'), a.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'))  : a.currentSlide >= a.slideCount - a.options.slidesToShow && a.options.centerMode === !1 ? (a.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true'), a.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'))  : a.currentSlide >= a.slideCount - 1 && a.options.centerMode === !0 && (a.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true'), a.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false')))
},
b.prototype.updateDots = function () {
var a = this;
null !== a.$dots && (a.$dots.find('li').removeClass('slick-active').attr('aria-hidden', 'true'), a.$dots.find('li').eq(Math.floor(a.currentSlide / a.options.slidesToScroll)).addClass('slick-active').attr('aria-hidden', 'false'))
},
b.prototype.visibility = function () {
var a = this;
document[a.hidden] ? (a.paused = !0, a.autoPlayClear())  : a.options.autoplay === !0 && (a.paused = !1, a.autoPlay())
},
b.prototype.initADA = function () {
var b = this;
b.$slides.add(b.$slideTrack.find('.slick-cloned')).attr({
'aria-hidden': 'true',
tabindex: '-1'
}).find('a, input, button, select').attr({
tabindex: '-1'
}),
b.$slideTrack.attr('role', 'listbox'),
b.$slides.not(b.$slideTrack.find('.slick-cloned')).each(function (c) {
a(this).attr({
role: 'option',
'aria-describedby': 'slick-slide' + b.instanceUid + c
})
}),
null !== b.$dots && b.$dots.attr('role', 'tablist').find('li').each(function (c) {
a(this).attr({
role: 'presentation',
'aria-selected': 'false',
'aria-controls': 'navigation' + b.instanceUid + c,
id: 'slick-slide' + b.instanceUid + c
})
}).first().attr('aria-selected', 'true').end().find('button').attr('role', 'button').end().closest('div').attr('role', 'toolbar'),
b.activateADA()
},
b.prototype.activateADA = function () {
var a = this,
b = a.$slider.find('*').is(':focus');
a.$slideTrack.find('.slick-active').attr({
'aria-hidden': 'false',
tabindex: '0'
}).find('a, input, button, select').attr({
tabindex: '0'
}),
b && a.$slideTrack.find('.slick-active').focus()
},
b.prototype.focusHandler = function () {
var b = this;
b.$slider.on('focus.slick blur.slick', '*', function (c) {
c.stopImmediatePropagation();
var d = a(this);
setTimeout(function () {
b.isPlay && (d.is(':focus') ? (b.autoPlayClear(), b.paused = !0)  : (b.paused = !1, b.autoPlay()))
}, 0)
})
},
a.fn.slick = function () {
var g,
a = this,
c = arguments[0],
d = Array.prototype.slice.call(arguments, 1),
e = a.length,
f = 0;
for (f; e > f; f++) if ('object' == typeof c || 'undefined' == typeof c ? a[f].slick = new b(a[f], c)  : g = a[f].slick[c].apply(a[f].slick, d), 'undefined' != typeof g) return g;
return a
}
});
'use strict';
var CIN = window.CIN || {
};
CIN.footer = {
$footerContainer: null,
init: function () {
var a = this;
this.onOffAccordion();
$(window).resizeDimension('width', _.debounce(this.onOffAccordion, 300))
},
onOffAccordion: function () {
this.$footerContainer = $('.footer .container');
if (this.$footerContainer.width() <= 767) {
this.$footerContainer.accordion({
header: 'h3',
heightStyle: 'content',
collapsible: true,
animate: 400
});
this.$footerContainer.addClass('hasAccordion');
this.$footerContainer.on('accordionactivate', function (a, b) {
var c = $(b.newHeader);
var d = null;
if (c.length) {
d = c.offset().top - 50;
$('html, body').animate({
scrollTop: d
}, 400);
if (c.hasClass('footer-heading-worldclock')) {
CIN.WorldClock.mapView.update()
}
}
})
} else {
if (this.$footerContainer.hasClass('hasAccordion')) {
this.$footerContainer.accordion('destroy');
this.$footerContainer.removeClass('hasAccordion')
}
}
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.accordion = {
init: function () {
this.$window = $(window);
this.isHomepage = $('body').hasClass('homepage');
this.$accMyLinks = $('.accordionContainer.my-links');
this.$accLocalServices = $('.accordionContainer.localServices');
this.$accMargin = $('.sidebar .accordionContainer').not('.my-links').not('.localServices');
this.$accContent = $('.main .accordionContainer').not('.my-links').not('.localServices');
this.confDefault = {
header: 'h4',
heightStyle: 'content',
collapsible: true,
animate: 400,
beforeActivate: function (e, f) {
var b = $(this).accordion('option', 'animate');
var c;
var a;
if (f.newHeader[0]) {
c = f.newHeader;
a = c.next('.ui-accordion-content')
} else {
c = f.oldHeader;
a = c.next('.ui-accordion-content')
}
var d = c.attr('aria-selected') === 'true';
c.toggleClass('ui-corner-all', d).toggleClass('accordion-header-active ui-state-active ui-corner-top', !d).attr('aria-selected', ((!d).toString()));
c.children('.ui-icon').toggleClass('ui-icon-triangle-1-e', d).toggleClass('ui-icon-triangle-1-s', !d);
a.toggleClass('accordion-content-active', !d);
if (d) {
if (b) {
if (_.isString(b)) {
a.slideUp({
easing: b
})
} else {
a.slideUp(b)
}
} else {
a.hide()
}
} else {
if (b) {
if (_.isString(b)) {
a.slideDown({
easing: b
})
} else {
a.slideDown(b)
}
} else {
a.show()
}
}
return false
}
};
this.confCollapsed = _.merge({
}, this.confDefault, {
active: false
});
this.confFirstExpanded = _.merge({
}, this.confDefault, {
active: 0
});
this.doIt()
},
doIt: function () {
var a = this;
if (this.$window.width() < 768) {
this.$accMargin.accordion(this.confCollapsed);
this.$accLocalServices.accordion(this.confCollapsed)
} else {
this.initExpanded(this.$accMargin);
this.$accLocalServices.accordion(this.confFirstExpanded)
}
this.$accContent.accordion(this.confFirstExpanded);
if (this.isHomepage) {
this.initExpanded(this.$accMyLinks)
} else {
this.$accMyLinks.accordion(this.confCollapsed)
}
if (window.location.hash.length > 0) {
$('div[data-fragment=\'' + window.location.hash.substring(1) + '\']').each(function () {
var b = $(this).parents('.accordionContainer').first();
var c = b.find('.accordionContainer-heading').index($(this).find('h4.accordionContainer-heading').first());
b.accordion({
active: false
});
b.accordion({
active: c
})
})
}
},
initExpanded: function (b) {
var a;
b.accordion(this.confCollapsed);
a = b.accordion('option', 'animate');
b.accordion('option', 'animate', false);
b.children('.accordion-group').each(function (c, d) {
if (!$(this).hasClass('no-content')) {
b.accordion('option', 'active', c)
}
});
b.accordion('option', 'animate', a)
},
initMyLocations: function () {
var a = $('.my-locations .accordionContainer');
if (this.$window.width() < 768) {
a.accordion(this.confCollapsed)
} else {
this.initExpanded(a)
}
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.breadcrumb = {
init: function () {
$('a.breadcrumb-back').click(function () {
parent.history.back();
return false
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.businessCard = {
init: function () {
if ($('#dialog-businesscard').length === 0) {
$('<div id="dialog-businesscard"></div>').appendTo('body')
}
var a = $('#dialog-businesscard');
var b = {
my: 'center top',
at: 'center top',
of: window
};
a.dialog({
modal: true,
autoOpen: false,
resizable: false,
draggable: false,
dialogClass: 'businessCard',
position: b
});
$('.businesscard-link').click(function () {
var c = $(this).attr('data-ajax-link');
a.load(c);
a.dialog('open');
return false
});
$(window).resizeDimension('width', _.debounce(function () {
a.dialog('option', 'position', b)
}, 300))
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.hasCookie = function (a) {
if (!a) {
return false
}
return (new RegExp('(?:^|;\\s*)' + encodeURIComponent(a).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=')).test(document.cookie)
};
CIN.loadConnextNews = {
checkLtpaTokens: function () {
window.setTimeout(function () {
if (CIN.hasCookie('LtpaToken') || CIN.hasCookie('LtpaToken2')) {
CIN.loadConnextNews.doLoad()
} else {
CIN.loadConnextNews.checkLtpaTokens()
}
}, 2000)
},
doLoad: function () {
$('.connext-newsstream').each(function () {
var a = $(this);
$.ajax({
url: a.data('connext-url'),
dataType: 'text',
success: function (b) {
a.html(b)
}
})
})
},
init: function () {
CIN.loadConnextNews.doLoad();
$('.connext-login-url').click(function (a) {
CIN.loadConnextNews.checkLtpaTokens()
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.sharing = {
showResult: function (d, a, c) {
$('div.connext-share-dlg', d).css('display', 'none');
$('div.connext-share-result').show();
var b = $('div.connext-share-result', d);
b.css('display', 'block');
$('.shareConnextDialog').addClass(c);
$('div.message').html(a)
},
init: function () {
var a = this;
this.$share = $(CIN.tooltip.getShareSelector());
this.$shareConnextDialog = $('.dialog-share-connext');
if (!this.$share.length || !this.$shareConnextDialog) {
return
}
this.$shareConnextDialog.dialog({
modal: true,
autoOpen: false,
resizable: false,
draggable: false,
dialogClass: 'shareConnextDialog'
});
this.$share.on('tooltipopen', function (b, c) {
c.tooltip.find('.share-connext').click(function (d) {
d.preventDefault();
a.$share.tooltip('close');
a.$shareConnextDialog.dialog('open')
})
});
$(window).resize(_.debounce(function () {
a.$shareConnextDialog.dialog('option', 'position', {
my: 'center',
at: 'center',
of: window
})
}, 300));
$('.connext-share-function').each(function (b, d) {
var c = $('form', d);
$('button.share', d).click(function (f) {
var e = $('div.connext-teaser-small', d).html();
if (!e) {
CIN.sharing.showResult(d, 'something is wrong, no object to share found!', 'shareError');
return false
}
$.ajax(c.attr('action'), {
method: 'POST',
data: {
title: $('input:hidden[name=title]', c).attr('value'),
shareText: e,
url: $('input:hidden[name=url]', c).attr('value'),
contentId: $('input:hidden[name=contentId]', c).attr('value'),
shareComment: $('textarea', c).val()
},
success: function (g) {
CIN.sharing.showResult(d, g, 'shareSuccess')
},
error: function (g, i, h) {
CIN.sharing.showResult(d, g.responseText + ' ' + h, 'shareError')
}
})
});
$('button.close', d).click(function (e) {
a.$shareConnextDialog.dialog('close')
})
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.datetimeFormat = {
init: function () {
$('.timestamp, .datetime').each(function () {
var b = $(this).text();
if (!b) {
return
}
var a = $(this).attr('data-format-string');
if (!a) {
a = 'DD.MM.YYYY, hh:mm a'
}
var c = moment(b).format(a);
$(this).text(c)
})
}
};
var ESI = window.ESI || {
};
function doEsiParsing(h, n) {
ESI.callback = n;
if (h == document) {
esi_strip_esi_comments($('head'));
esi_strip_esi_comments($('body'))
}
var o = esi_get_subelements_by_name(h, 'esi:include');
var e = o.length + 1;
ESI.total = o.length;
doFinishCall();
for (var l = o.length - 1; l >= 0; l--) {
var b = $(o[l]);
var a = b.attr('src');
var d = $(b) [0].childNodes;
for (var g = d.length - 1; g >= 0; g--) {
var c = $(d[g]).remove();
b.after(c)
}
esi_get_page(b, a)
}
var m = esi_get_subelements_by_name(h, 'esi:remove');
for (var f = m.length - 1; f >= 0; f--) {
$(m[f]).remove()
}
return e
}
function esi_get_page(b, c) {
var a = b;
jQuery.get(c, function (g, d) {
if (g.indexOf('<!--esi') != - 1) {
var h = g.replace(/<!--esi(.*)-->/gm, '$1');
g = h
}
ESI.total = ESI.total - 1;
doFinishCall();
var f;
if (a[0] && a[0].parentNode) {
f = a[0].parentNode
} else {
return
}
var e = $(g).insertBefore(a);
a.remove();
if (g.indexOf('esi:include') != - 1) {
do_esi_parsing(f)
}
})
}
function esi_get_subelements_by_name(e, a) {
var h = new Array();
a = a.toLowerCase();
if (e.nodeType == 9 || e.nodeType == 1) {
var d = e.childNodes;
for (var c = 0; c < d.length; c++) {
var f = d[c];
if (f.nodeType == 1) {
var g = f.tagName.toLowerCase();
if (g == a) {
h.push(e.childNodes[c])
}
if (f.childNodes.length > 0) {
var b = esi_get_subelements_by_name(f, a);
h = h.concat(b)
}
}
}
}
return h
}
function esi_strip_esi_comments(a) {
var b = /<!--esi(.*)-->/gm;
var c = $(a).html();
if (c.indexOf('<!--esi') != - 1) {
var d = c.replace(b, '$1');
$(a).html(d)
}
}
function doFinishCall() {
if (ESI.total === 0 && ESI.callback) {
ESI.callback()
}
}
'use strict';
var CIN = window.CIN || {
};
CIN.events = {
UPDATED_PRIVACY_SETTINGS: 'updatedPrivacySettings',
LOADED_CONTENT: 'loadedContent',
triggerEvent: function (a) {
$(window).trigger(a)
},
triggerEventParams: function (a, b) {
$(window).trigger(a, b)
},
regEventListener: function (a, b) {
$(window).on(a, b)
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.like = {
init: function () {
CIN.like.updateState();
CIN.like.initTrigger()
},
updateState: function () {
var a = $('div.containerLike');
if (a.attr('data-link-state') !== undefined) {
var b = a.attr('data-link-state');
$.get(b, function (d) {
if (d.count !== undefined) {
if (d.count === 0) {
a.find('.like-icon').removeClass('selected')
} else {
a.find('.like-icon').addClass('selected')
}
}
})
}
if (a.attr('data-link-count') !== undefined) {
var c = a.attr('data-link-count');
$.get(c, function (d) {
if (d.count !== undefined) {
a.find('.function-bar-count').text(d.count)
}
})
}
},
initTrigger: function () {
var a = $('div.containerLike');
a.find('.like-icon').click(function () {
if (a.attr('data-link-like') !== undefined && a.attr('data-link-unlike') !== undefined) {
if ($(this).hasClass('selected')) {
var c = a.attr('data-link-unlike');
$.get(c, function () {
CIN.like.updateState()
})
} else {
var b = a.attr('data-link-like');
$.get(b, function () {
CIN.like.updateState()
})
}
}
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.functionbar = {
location: {
init: function () {
CIN.functionbar.location.registerEvents()
},
registerEvents: function () {
var a = $('.add-location-icon');
if (!a.hasClass('eventsRegistered')) {
a.click(function () {
var b = $(this).attr('data-rest-url-update');
var c = $(this).attr('data-locationid');
var d = $(this).attr('data-rest-command');
if (b && c && d) {
CIN.functionbar.location.addRemoveLocation(b, c, d)
}
});
a.addClass('eventsRegistered')
}
},
addRemoveLocation: function (b, d, a) {
var c = b + '/' + d;
$.ajax({
url: c,
type: a,
success: function (e) {
CIN.loadRestFragments.loadByClass('add-location-button', function () {
CIN.functionbar.location.registerEvents();
CIN.tooltip.initAllButShare()
});
CIN.loadRestFragments.loadByClass('location-bg');
CIN.loadRestFragments.loadByClass('my-locations', function () {
CIN.accordion.initMyLocations()
})
},
})
}
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.shareLightbox = {
init: function () {
var c = this;
this.$share = $(CIN.tooltip.getShareSelector());
this.$shareDialog = $('.dialog-share-short-link');
var b = this.$shareDialog.find('.clipboardButton');
if (!this.$share.length || !b.length || !this.$shareDialog) {
return
}
this.$shareDialog.dialog({
modal: true,
autoOpen: false,
resizable: false,
draggable: false,
dialogClass: 'shareDialog'
});
var a = new Clipboard(b[0]);
this.$share.on('tooltipopen', function (d, e) {
e.tooltip.find('.share-link').click(function (g) {
g.preventDefault();
var f = $(this).attr('data-generate-link');
$.post(f, {
url: window.location.href
}).done(function (h) {
var i = h.message;
c.$shareDialog.find('input#short-link').val(i);
c.$share.tooltip('close');
c.$shareDialog.dialog('open')
})
})
});
$(window).resizeDimension('width', _.debounce(function () {
c.$shareDialog.dialog('option', 'position', {
my: 'center',
at: 'center',
of: window
})
}, 300))
}
};
CIN.shareEmail = {
init: function () {
var a = this;
this.$share = $(CIN.tooltip.getShareSelector());
this.$share.on('tooltipopen', function (b, c) {
c.tooltip.find('.share-email').click(function (f) {
f.preventDefault();
var d = $(this).attr('data-generate-link');
$.post(d, {
url: window.location.href
}).done(function (g) {
var e = g.message;
window.open(e, '_self')
});
a.$share.tooltip('close')
})
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.tooltip = {
shareSelector: 'button.share-icon',
init: function () {
this.initAllButShare();
this.initShare()
},
getShareSelector: function () {
return this.shareSelector
},
initAllButShare: function () {
var a = $('.function-bar button').not(this.shareSelector);
a.each(function (b, d) {
var c = $(d);
if (CIN.isIOS) {
return
}
if (c.hasClass('tooltipAdded')) {
return
}
c.tooltip({
tooltipClass: 'allButShareTooltip',
open: function (e, f) {
if (_.isUndefined(e.originalEvent)) {
return false
}
var g = $(f.tooltip).attr('id');
$('div.ui-tooltip').not('#' + g).remove()
},
position: {
my: 'center bottom-15',
at: 'center top',
of: c,
collision: 'none',
using: function (e, f) {
$(this).css(e);
$('<div>').addClass('arrow').appendTo(this)
}
}
});
c.addClass('tooltipAdded')
})
},
initShare: function () {
var a = $(this.shareSelector);
var b = $('.share-options').html();
a.each(function (c, e) {
var d = $(e);
d.tooltip({
show: null,
open: function (f, g) {
if (_.isUndefined(f.originalEvent)) {
return false
}
var h = $(g.tooltip).attr('id');
$('div.ui-tooltip').not('#' + h).remove()
},
close: function (f, g) {
g.tooltip.hover(function () {
$(this).stop(true).fadeTo(400, 1)
}, function () {
$(this).fadeOut('400', function () {
$(this).remove()
})
})
},
tooltipClass: 'shareTooltip',
position: {
my: 'center bottom-15',
at: 'center top',
of: d,
collision: 'none',
using: function (f, g) {
$(this).css(f);
$('<div>').addClass('arrow').appendTo(this)
}
},
items: 'button',
content: function () {
return b
}
})
})
}
};
'use strict';
var CIN = window.CIN || {
};
$(window).bind('language-flash', function () {
$('.language-icon').css('position', 'relative').addClass('language-hover');
$('.language-icon').animate({
top: '0px'
}, 400).animate({
top: '-15px'
}, 400).animate({
top: '0px'
}, 200).animate({
top: '-12px'
}, 150).animate({
top: '0px'
}, 150).animate({
top: '-9px'
}, 100).animate({
top: '0px'
}, 100).animate({
top: '-6px'
}, 100).animate({
top: '0px'
}, 100).animate({
top: '-3px'
}, 100).animate({
top: '0px'
}, 100, function () {
$(this).removeClass('language-hover')
})
});
CIN.languageNotification = {
init: function () {
if (requestKeepLanguage === true) {
$(window).trigger('language-flash')
}
this.initLangNotification();
this.initLangChanger()
},
initLangNotification: function () {
var a = $('#language-notification');
a.dialog({
modal: true,
resizable: false,
draggable: false,
dialogClass: 'languageNotification',
close: function (b, c) {
$(window).trigger('language-flash')
}
});
$('#available-languages').change(function () {
if ($(this).val() !== 'false') {
window.location = $(this).val()
}
});
$(window).resizeDimension('width', _.debounce(function () {
a.dialog('option', 'position', {
my: 'center',
at: 'center',
of: window
})
}, 300))
},
initLangChanger: function () {
var a = $('#language-changer');
$('#available-languages-changer').change(function () {
if ($(this).val() !== 'false') {
window.location = $(this).val()
}
});
$('.function-bar button.language-icon').click(function () {
a.dialog({
modal: true,
resizable: false,
draggable: false,
dialogClass: 'languageNotification',
close: function (b, c) {
$('.function-bar button.language-icon').tooltip('close');
$(window).trigger('language-flash')
}
})
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.mainNav = {
current: - 1,
init: function () {
this.$window = $(window);
this.$nav = $('#mainNav > ul.nav');
this.$first = this.$nav.children('li.nav-item').not('.location-bg');
this.$firstA = this.$first.children('a.nav-first-level');
this.$body = $('body');
this.$hamburger = $('.mobile-nav-menu > .mobile-menu-icon');
this.$mobileNavBox = $('.mobile-navbox');
this.$second = this.$first.children('.nav-wrapper');
this.$clusterHeaders = this.$second.find('.nav-inner-heading');
this.doIt();
this.$window.resizeDimension('width', $.proxy(_.debounce(function () {
this.$first.removeClass('mainNavOpen');
this.$hamburger.removeClass('mobile-menu-open');
this.$first.removeClass('mobile-menu-active');
this.$nav.show();
this.$nav.css('display', 'inline-block');
this.$second.show();
this.$mobileNavBox.hide();
this.$first.children('.nav-wrapper').show().removeAttr('style');
this.$firstA.off('click.desk');
this.$first.off('click.desk');
this.$first.off('mouseenter.desk');
this.$first.off('mouseleave.desk');
this.$hamburger.off('click.mob');
this.$firstA.off('click.mob');
this.$body.off('click.desk');
this.$clusterHeaders.off('click.mob');
this.current = - 1;
this.doIt()
}, 300), this))
},
doIt: function () {
var a = this.$window.width();
if (a >= 768) {
this.$firstA.on('click.desk', $.proxy(this.open, this));
this.$first.on('click.desk', function (b) {
b.stopPropagation()
});
this.$first.on('mouseenter.desk', function (b) {
b.stopPropagation();
$(this).children('.nav-wrapper').delay(300).show(0)
});
this.$first.on('mouseleave.desk', function (b) {
b.stopPropagation();
$(this).children('.nav-wrapper').hide(0)
})
} else {
this.$nav.hide();
this.$second.hide();
this.$hamburger.on('click.mob', $.proxy(this.openMobile, this));
this.$firstA.on('click.mob', $.proxy(this.openMobileSecond, this));
this.$clusterHeaders.on('click.mob', $.proxy(this.openMobileCluster, this));
this.openActive()
}
},
openActive: function () {
var b = this.$nav.find('.active');
var a = b.closest('li.nav-item').children('a.nav-first-level');
var c = b.closest('.nav-inner-item').siblings('.nav-inner-item').children('ul');
a.trigger('click');
c.hide()
},
openMobile: function (a) {
a.preventDefault();
if (this.$hamburger.hasClass('mobile-menu-open')) {
this.$hamburger.removeClass('mobile-menu-open');
this.$nav.fadeOut();
this.$mobileNavBox.fadeOut()
} else {
this.$hamburger.addClass('mobile-menu-open');
this.$nav.fadeIn();
this.$mobileNavBox.fadeIn()
}
},
openMobileSecond: function (b) {
b.preventDefault();
var a = $(b.currentTarget).closest('li.nav-item');
if (a.hasClass('mobile-menu-active')) {
a.removeClass('mobile-menu-active');
a.children('.nav-wrapper').fadeOut()
} else {
this.$first.filter('.mobile-menu-active').removeClass('mobile-menu-active').children('.nav-wrapper').hide();
a.addClass('mobile-menu-active');
a.children('.nav-wrapper').fadeIn()
}
},
openMobileCluster: function (c) {
c.preventDefault();
var a = $(c.currentTarget).closest('.nav-inner-item');
var b = a.children('ul');
if (b.is(':visible')) {
b.fadeOut()
} else {
b.fadeIn()
}
},
open: function (c) {
if (this.current !== - 1) {
this.$first.eq(this.current).removeClass('mainNavOpen')
}
var b = $(c.currentTarget).parent('li');
var a = b.index('.nav-item');
if (this.current === a) {
b.removeClass('mainNavOpen');
this.current = - 1
} else {
b.addClass('mainNavOpen');
this.current = a;
this.$body.off('click.desk').on('click.desk', $.proxy(this.close, this))
}
return false
},
close: function (a) {
this.$first.eq(this.current).removeClass('mainNavOpen');
this.current = - 1
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.mainStage = {
init: function () {
this.isSlicked = false;
this.$window = $(window);
this.$stage = $('.mainstage');
this.debouncedPlay = _.debounce(this.playSlick, 15000);
this.doIt();
this.$window.resizeDimension('width', $.proxy(_.debounce(function () {
this.doIt()
}, 300), this))
},
doIt: function () {
if (this.isSlicked) {
this.$stage.off('beforeChange.mainstage');
this.$stage.off('afterChange.mainstage');
this.$stage.off('click.mainstage');
this.$stage.slick('unslick')
}
if (this.$window.width() > 1023) {
this.$stage.slick({
infinite: true,
adaptiveHeight: true,
easing: 'linear',
autoplay: true,
speed: 1000
});
this.$stage.on('beforeChange.mainstage', function (c, a, d, b) {
$('.mainstage-textbox').fadeOut('50')
});
this.$stage.on('afterChange.mainstage', function (c, a, d, b) {
$('.mainstage-textbox').fadeIn('fast')
});
this.$stage.on('click.mainstage', $.proxy(this.pauseAndReplay, this))
} else {
this.$stage.slick({
infinite: true,
adaptiveHeight: true,
easing: 'linear',
dots: true
})
}
this.isSlicked = true
},
playSlick: function () {
this.$stage.slick('slickPlay')
},
pauseAndReplay: function () {
this.$stage.slick('slickPause');
this.debouncedPlay()
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.loadRestFragments = {
loadFragment: function (b, a, c, d) {
$.get(a, function (e) {
if (c && c.indexOf('replace') !== - 1) {
b.replaceWith(e)
} else {
b.html(e)
}
if (d) {
d()
}
CIN.events.triggerEventParams(CIN.events.LOADED_CONTENT, b)
})
},
init: function () {
$('[data-rest-url]').each(function () {
var b = $(this);
var a = $(this).attr('data-rest-url');
var c = $(this).attr('data-rest-option');
if (!c) {
c = ''
}
if (c.indexOf('ignoreOnLoad') === - 1) {
CIN.loadRestFragments.loadFragment(b, a, c)
}
})
},
loadByClass: function (a, b) {
$('.' + a).each(function () {
var d = $(this);
var c = CIN.loadRestFragments.getRestUrl($(this));
var e = $(this).attr('data-rest-option');
if (!e) {
e = ''
}
if (!c) {
c = ''
}
CIN.loadRestFragments.loadFragment(d, c, e, b)
})
},
loadByClassAndFire: function (a, b) {
$('.' + a).each(function () {
var d = $(this);
var c = CIN.loadRestFragments.getRestUrl($(this));
var e = $(this).attr('data-rest-option');
if (!e) {
e = ''
}
if (!c) {
c = ''
}
CIN.loadRestFragments.loadFragment(d, c, e, function () {
CIN.events.triggerEvent(b)
})
})
},
getRestUrl: function (a) {
return a.attr('data-rest-url')
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.loadRestLists = {
init: function () {
$('[data-rest-list-click]').each(function () {
var a = $(this).attr('data-rest-list-click');
$(this).click(function () {
var b = $('#' + a);
var c = $(b).attr('data-rest-list-url');
var d = $(b).attr('data-rest-list-page');
if (!d) {
d = 1
}
c = c + '?page=' + d;
$.get(c, function (e) {
b.append(e);
CIN.datetimeFormat.init();
$('#' + a).attr('data-rest-list-page', ++d)
})
})
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.searchBox = {
init: function () {
this.$window = $(window);
this.$mainNav = $('#mainNav');
this.$nav = this.$mainNav.children('ul.nav');
this.$navSearchIcon = this.$nav.find('a.nav-search');
this.$navSearchScrollBox = this.$nav.find('li.scroll-searchbox');
this.$navSearchInput = this.$navSearchScrollBox.find('input.search-input');
this.$navTools = this.$nav.find('li.nav-tools');
this.handleNavSearchBox();
this.$searchInput = $('.searchbox input.search-input');
this.$toolbox = $('.nav-box-bottom .nav-box-tools');
this.handleSingleSearchBox();
this.$mobInput = $('input.mobile-search-input');
this.$mobSearch = $('.mobile-nav-search');
this.$mobHome = $('.mobile-nav-home');
this.handleMobSearchBox();
this.$window.scroll($.proxy(_.debounce(function () {
this.checkNavSearch()
}, 400), this))
},
checkNavSearch: function () {
if (this.$navSearchInput.is(':visible') && !this.$mainNav.hasClass('sticky-nav')) {
this.$navSearchInput.trigger('blur')
}
},
handleNavSearchBox: function () {
this.$navSearchInput.removeAttr('placeholder');
this.$navSearchIcon.on('click', $.proxy(function (a) {
a.preventDefault();
if (this.$navSearchIcon.parent('li').css('opacity') > 0) {
this.$navSearchScrollBox.animate({
width: 'toggle'
}, {
duration: 700,
complete: $.proxy(function () {
this.$navSearchInput.focus()
}, this)
});
this.$navTools.delay(300).hide(0)
}
}, this));
this.$navSearchInput.on('blur', $.proxy(function (a) {
a.preventDefault();
this.$navSearchScrollBox.animate({
width: 'toggle'
}, {
duration: 700
});
this.$navTools.delay(300).show(0)
}, this))
},
handleSingleSearchBox: function () {
this.$searchInput.on('focus', $.proxy(function (a) {
this.$toolbox.hide();
this.$searchInput.parent('.searchbox').addClass('bordered')
}, this));
this.$searchInput.on('blur', $.proxy(function (a) {
this.$searchInput.parent('.searchbox').removeClass('bordered');
this.$toolbox.delay(700).show(0)
}, this))
},
handleMobSearchBox: function () {
var a = this;
this.$mobInput.on('focus', function (b) {
a.$mobHome.hide();
a.$mobSearch.css('width', '80%')
});
this.$mobInput.on('blur', function (b) {
a.$mobHome.show();
a.setDelayedWidth('24px')
})
},
setDelayedWidth: function (a) {
this.$mobSearch.delay(700).queue(function (b) {
$(this).css('width', a);
b()
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.searchClear = {
init: function () {
this.$inputs = $('input.mobile-search-input, input.search-input, input.worldclock-search');
this.$inputs.on('click', function (a) {
$(this).select()
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.stickyNavTop = {
init: function () {
this.$window = $(window);
this.$mainNav = $('.main-nav');
this.navTop = this.$mainNav.offset().top;
this.$navBox = $('.nav-box');
this.$branding = $('.branding');
this.brandingBottom = this.$branding.offset().top + this.$branding.outerHeight(true);
this.$navHomeLi = $('ul.nav .nav-home').parent('li');
this.$toolbox = $('.nav-box-tools .nav-box-tools-link');
this.toolboxBottom = this.$toolbox.offset().top + this.$toolbox.outerHeight(true);
this.$navToolsLis = $('ul.nav li.nav-tools');
this.checkStickyNav();
this.$window.scroll($.proxy(this.checkStickyNav, this));
this.$window.resizeDimension('width', $.proxy(_.debounce(function () {
this.$mainNav.removeClass('sticky-nav');
this.$navBox.removeClass('sticky-nav-active');
this.navTop = this.$mainNav.offset().top;
this.$navHomeLi.removeClass('sticky-home-nav');
this.brandingBottom = this.$branding.offset().top + this.$branding.outerHeight(true);
this.$navToolsLis.removeClass('sticky-nav-tools');
this.toolboxBottom = this.$toolbox.offset().top + this.$toolbox.outerHeight(true);
this.checkStickyNav()
}, 300), this))
},
checkStickyNav: function () {
var b = $(window).scrollTop();
var a = this.$window.width();
if (a >= 768 && b >= this.navTop) {
this.$mainNav.addClass('sticky-nav');
this.$navBox.addClass('sticky-nav-active')
} else {
this.$mainNav.removeClass('sticky-nav');
this.$navBox.removeClass('sticky-nav-active')
}
if (a >= 768 && b >= this.brandingBottom) {
this.$navHomeLi.addClass('sticky-home-nav')
} else {
this.$navHomeLi.removeClass('sticky-home-nav')
}
if (a >= 768 && this.$mainNav.hasClass('sticky-nav') && b >= this.toolboxBottom - this.$mainNav.outerHeight()) {
this.$navToolsLis.addClass('sticky-nav-tools')
} else {
this.$navToolsLis.removeClass('sticky-nav-tools')
}
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.tabs = {
init: function () {
$('.tabWrapper').tabs()
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.teaserGallery = {
init: function () {
this.$galleryOneCol = $('.tg-list-oneCol');
this.$gallery = $('.tg-list');
this.$window = $(window);
this.initGalleryOneCol();
this.initGallery()
},
initGallery: function () {
this.$window.resizeDimension('width', $.proxy(_.debounce(function () {
this.initGallery()
}, 300), this));
if (!this.$gallery.hasClass('slick-initialized') && this.$window.width() > 767) {
this.$gallery.slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 3,
arrows: false,
dots: true,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 767,
settings: 'unslick'
}
]
})
}
},
initGalleryOneCol: function () {
this.$galleryOneCol.slick({
slidesToShow: 1,
slidesToScroll: 1,
arrows: false,
dots: true
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.tracking = {
UPDATED_MOST_RECENTLY_VISITED_LIST: 'updatedMostRecentlyList',
init: function () {
CIN.events.regEventListener(CIN.events.UPDATED_PRIVACY_SETTINGS, CIN.tracking.loadMostRecentlyVisitedList);
CIN.events.regEventListener(CIN.events.LOADED_CONTENT, CIN.tracking.rebindAfterContentLoading)
},
loadMostRecentlyVisitedList: function () {
CIN.loadRestFragments.loadByClass('mostVisitedList');
CIN.loadRestFragments.loadByClass('recentlyVisited');
CIN.loadRestFragments.loadByClass('trackingDecision')
},
rebindAfterContentLoading: function (a, b) {
CIN.tracking.bindTrackingButtonEvents(b);
CIN.tracking.bindTrackingCheckbox(b)
},
bindTrackingButtonEvents: function (a) {
$('.trackBtn', a).each(function () {
var b = $(this);
b.unbind('click');
b.click(function (d) {
d.preventDefault();
var c = CIN.loadRestFragments.getRestUrl($(this).parent());
$.post(c, {
tracking: $(this).val()
}).done(function () {
CIN.events.triggerEvent(CIN.events.UPDATED_PRIVACY_SETTINGS)
})
})
})
},
bindTrackingCheckbox: function (a) {
$('#trackingStatusCheckbox', a).on('change', function () {
var b = CIN.loadRestFragments.getRestUrl($('#trackingStatusCheckbox'));
$.post(b, {
tracking: $(this).is(':checked')
}).done(function () {
CIN.events.triggerEvent(CIN.events.UPDATED_PRIVACY_SETTINGS)
})
})
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.p13n = {
init: function () {
CIN.p13n.language.init();
CIN.p13n.location.init()
},
readState: function (c, d, b) {
var a = [
];
$(c).find(d).each(function () {
a.push($(this).attr(b))
});
return a
},
refreshAmount: function (a, c) {
var b = a.find('li').size();
$('.amount', c).text(' (' + b + ')')
}
};
CIN.p13n.location = {
init: function () {
CIN.p13n.location.container.main = $('.locationPreferences');
CIN.p13n.location.container.selected = this.container.main.find('.selectedLocations');
CIN.p13n.location.container.available = this.container.main.find('.availableLocations');
CIN.p13n.location.data.url = $(CIN.p13n.location.container.main).attr('data-rest-url-update');
CIN.p13n.location.functions.registerEvents()
},
data: {
},
container: {
},
functions: {
registerEvents: function () {
var a = CIN.p13n.location.container.selected.find('ul');
a.sortable({
update: CIN.p13n.location.functions.saveMyLocations
});
$(CIN.p13n.location.container.selected).unbind();
$(CIN.p13n.location.container.selected).on('click', '.settings-close-1', function () {
var c = $(this).parent().attr('data-locationId');
CIN.p13n.location.functions.addRemoveLocation(c, 'DELETE')
});
var b = $('#' + CIN.p13n.location.data.tagId);
b.autocomplete({
source: CIN.p13n.location.data.availableTags,
appendTo: '.choose-location',
select: function (c, d) {
CIN.p13n.location.functions.addRemoveLocation(d.item.id, 'PUT')
},
close: function (c, d) {
b.val('')
},
autoFocus: false
});
if (CIN.isIOS) {
b.autocomplete('widget').off('mouseenter')
}
b.keypress(function (d) {
var c = (d.keyCode ? d.keyCode : d.which);
if (c === 13) {
d.preventDefault();
d.stopPropagation()
}
})
},
saveMyLocations: function () {
var a = CIN.p13n.readState(CIN.p13n.location.container.selected, 'li', 'data-locationId');
var b = [
];
a.forEach(function (d) {
b.push({
id: d
})
});
var c = {
locations: b
};
$.ajax({
url: CIN.p13n.location.data.url,
type: 'POST',
contentType: 'application/json',
processData: false,
data: JSON.stringify(c),
success: function (d) {
CIN.p13n.location.functions.refreshData()
},
})
},
addRemoveLocation: function (c, a) {
var b = CIN.p13n.location.data.url + '/' + c;
$.ajax({
url: b,
type: a,
success: function (d) {
CIN.p13n.location.functions.refreshData()
},
})
},
refreshData: function () {
$.get(CIN.p13n.location.data.url, function (a) {
CIN.p13n.location.container.selected.find('ul').replaceWith(a);
CIN.p13n.refreshAmount(CIN.p13n.location.container.selected.find('ul'), CIN.p13n.location.container.main);
CIN.loadRestFragments.loadByClass('location-bg');
CIN.p13n.location.functions.registerEvents()
})
}
}
};
CIN.p13n.language = {
init: function () {
CIN.p13n.language.container.main = $('.languagePreferences');
CIN.p13n.language.container.selected = CIN.p13n.language.container.main.find('.selectedLanguages');
CIN.p13n.language.container.available = CIN.p13n.language.container.main.find('.availableLanguages');
var a = CIN.p13n.language.container.selected.find('ul');
a.sortable({
update: function (b, c) {
CIN.p13n.language.functions.updateOrderNum(a);
CIN.p13n.language.functions.saveData()
}
});
CIN.p13n.language.container.available.find('input[type=checkbox]').change(CIN.p13n.language.functions.addOrRemoveLanguage)
},
container: {
},
functions: {
updateOrderNum: function (a) {
a.children('.ui-sortable-handle').each(function (b) {
$(this).children('.order').text(b + 1)
})
},
saveData: function () {
var a = CIN.p13n.readState(CIN.p13n.language.container.selected, '.language-panel', 'data-language');
var b = a.join(',');
var c = $('.p13n-language-container', CIN.p13n.language.container.main).attr('data-rest-url-update');
$.post(c, {
locales: b
});
CIN.p13n.language.container.main.find('span.userPreferencesCount').text(a.length);
$('.language-panel .order').each(function (d, e) {
$(this).text(d + 1)
})
},
addOrRemoveLanguage: function () {
var c = $(this).is(':checked');
var a = $(this).attr('data-language');
if (c) {
var b = $('.p13n-language-container', CIN.p13n.language.container.main).attr('data-rest-url-select');
$.get(b, {
locale: a
}, function (d) {
CIN.p13n.language.container.selected.find('ul').append(d);
CIN.p13n.language.container.selected.find('ul').sortable('refresh');
CIN.p13n.refreshAmount(CIN.p13n.language.container.selected, CIN.p13n.language.container.main);
CIN.p13n.language.functions.saveData()
})
} else {
CIN.p13n.language.container.selected.find('*[data-language=\'' + a + '\']').remove();
CIN.p13n.refreshAmount(CIN.p13n.language.container.selected, CIN.p13n.language.container.main);
CIN.p13n.language.functions.saveData()
}
}
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.countryLayer = {
conf: {
minResolution: 400,
style: {
strokeColor: '#CDCDCD',
strokeWidth: 1,
fillColor: '#FFFFFF'
}
},
layer: null,
parentMap: null,
init: function (d) {
var e = this;
this.parentMap = d;
var c = new ol.format.GeoJSON();
var a = c.readFeatures(CIN.WorldClock.worldGeoJson, {
featureProjection: 'EPSG:3857'
});
var b = new ol.source.Vector({
wrapX: false
});
b.addFeatures(a);
this.layer = new ol.layer.Vector({
layerName: 'countryLayer',
source: b,
minResolution: e.conf.minResolution,
style: new ol.style.Style({
fill: new ol.style.Fill({
color: e.conf.style.fillColor
}),
stroke: new ol.style.Stroke({
color: e.conf.style.strokeColor,
width: e.conf.style.strokeWidth
})
})
});
this.parentMap.addLayer(this.layer)
},
zoomToWorld: function () {
if (!this.extent) {
this.extent = this.layer.getSource().getExtent()
}
var b = this.parentMap.getSize();
var a = this.parentMap.getView();
a.fit(this.extent, b, {
constrainResolution: false
})
},
getResolutionForExtent: function (d, c) {
var a = ol.extent.getWidth(d) / c[0];
var b = ol.extent.getHeight(d) / c[1];
return Math.max(a, b)
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.locationAutocomplete = {
init: function (a) {
var d = this;
this.parentMap = a;
if (!CIN.WorldClock.tzLocations) {
return
}
var c = $('input.mapLocationSearch');
var b = _.pluck(CIN.WorldClock.tzLocations, 'name');
c.autocomplete({
source: b,
appendTo: '.worldclock',
focus: function (e, f) {
var g = f.item.value;
d.show(g)
},
select: function (e, f) {
var g = f.item.value;
c.val(g);
CIN.WorldClock.poiLayer.setStyle(CIN.WorldClock.poiStyle.styleFunctionGrey);
d.selected();
d.curLocName = g
},
close: function (e, f) {
if (d.curLocName) {
c.val(d.curLocName);
d.show(d.curLocName);
CIN.WorldClock.poiLayer.setStyle(CIN.WorldClock.poiStyle.styleFunctionGrey);
d.selected()
} else {
CIN.WorldClock.locationTime.clear();
CIN.WorldClock.poiLayer.clear()
}
},
autoFocus: false
});
if (CIN.isIOS) {
c.autocomplete('widget').off('mouseenter')
}
},
show: function (e) {
if (!CIN.WorldClock.tzLocations) {
return
}
var d = _.first(_.where(CIN.WorldClock.tzLocations, {
name: e
}));
var a = d.latlon.split(',');
var b = parseFloat(a[0]);
var c = parseFloat(a[1]);
CIN.WorldClock.locationTime.setLocationTime(d.timezone);
CIN.WorldClock.poiLayer.addFeature(c, b);
CIN.WorldClock.poiLayer.setStyle(CIN.WorldClock.poiStyle.styleFunctionGold)
},
selected: function () {
CIN.WorldClock.locationTime.selected()
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.locationTime = {
init: function (a) {
var b = this;
this.parentMap = a;
if (!CIN.WorldClock.timeFormatString) {
return
}
this.$localTime = $('.localTime');
this.$locationTime = $('.locationTime');
this.$locationTimeParent = this.$locationTime.parent();
setInterval(function () {
var c = moment().format(CIN.WorldClock.timeFormatString);
b.$localTime.text(c)
}, 1000)
},
setLocationTime: function (a) {
var c = this;
if (!CIN.WorldClock.timeFormatString) {
return
}
if (this.curInterval) {
clearInterval(this.curInterval)
}
var b = moment.tz.zone(a);
if (b) {
this.$locationTimeParent.addClass('highlighted');
this.curInterval = setInterval(function () {
var d = moment().tz(a).format(CIN.WorldClock.timeFormatString);
c.$locationTime.text(d)
}, 1000)
} else {
c.$locationTime.text(CIN.WorldClock.timezoneUnknownString)
}
},
clear: function () {
clearInterval(this.curInterval);
this.$locationTime.html('&ndash;');
this.$locationTimeParent.removeClass('highlighted')
},
selected: function () {
this.$locationTimeParent.removeClass('highlighted')
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.mapView = {
map: null,
conf: {
projection: 'EPSG:3857',
minZoom: 0,
maxZoom: 0,
resolutions: [
136543
],
initialExtent: {
center: [
955801,
2867403
],
zoom: 0
}
},
init: function () {
this.map = new ol.Map({
target: 'map',
controls: [
],
interactions: [
],
view: new ol.View({
center: this.conf.initialExtent.center,
resolutions: this.conf.resolutions,
zoom: this.conf.initialExtent.zoom,
minZoom: this.conf.minZoom,
maxZoom: this.conf.maxZoom,
})
});
CIN.WorldClock.countryLayer.init(this.map);
CIN.WorldClock.locationTime.init(this.map);
CIN.WorldClock.locationAutocomplete.init(this.map);
CIN.WorldClock.poiLayer.init(this.map, this.conf.projection);
CIN.WorldClock.poiLayer.setStyle(CIN.WorldClock.poiStyle.styleFunction)
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.poiLayer = {
poiLayer: null,
parentMap: null,
init: function (b, a) {
this.parentMap = b;
this.projection = a;
this.poiSource = new ol.source.Vector({
wrapX: false
});
this.poiLayer = new ol.layer.Vector({
source: this.poiSource
});
this.parentMap.addLayer(this.poiLayer)
},
addFeature: function (c, b) {
var a = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([c,
b], 'EPSG:4326', this.projection)),
});
this.poiSource.clear();
this.poiSource.addFeature(a)
},
clear: function () {
this.poiSource.clear()
},
setStyle: function (a) {
this.poiLayer.setStyle(a)
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.poiStyle = {
styleFunctionGrey: function (a, b) {
var c = [
];
c = [
new ol.style.Style({
image: new ol.style.Circle({
radius: 6,
stroke: null,
fill: new ol.style.Fill({
color: '#8D8D8D'
})
})
})
];
return c
},
styleFunctionGold: function (a, b) {
var c = [
];
c = [
new ol.style.Style({
image: new ol.style.Circle({
radius: 6,
stroke: null,
fill: new ol.style.Fill({
color: '#e38702'
})
})
})
];
return c
}
};
'use strict';
var CIN = window.CIN || {
};
CIN.WorldClock = window.CIN.WorldClock || {
};
CIN.WorldClock.worldGeoJson = {
type: 'FeatureCollection',
crs: {
type: 'name',
properties: {
name: 'urn:ogc:def:crs:OGC:1.3:CRS84'
}
},
features: [
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 71.405,
45.255],
[
- 71.50505999999987,
45.0082000000001
],
[
- 71.50506,
45.0082000000001
],
[
- 71.405,
45.255
],
[
- 71.405,
45.255
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 6.556025967371365,
53.96523873430586],
[
- 6.953730231138062,
54.073702297575636
],
[
- 6.953730231137996,
54.073702297575636
],
[
- 6.556025967371365,
53.96523873430586
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 7.466597045843509,
54.3344036256264],
[
- 7.366030646178791,
54.59584096945271
],
[
- 7.366030646178785,
54.595840969452695
],
[
- 7.466597045843509,
54.3344036256264
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[134.72462446506668,
- 6.214400730009288],
[
134.21013390516893,
- 6.895237725454706
],
[
134.11277550673103,
- 6.142467136259015
],
[
134.2903357280858,
- 5.783057549669039
],
[
134.4996252788679,
- 5.445042006047899
],
[
134.72700158095213,
- 5.73758228925216
],
[
134.72462446506668,
- 6.214400730009288
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[130.78000485358513,
42.22001036108258],
[
127.53343550019417,
39.7568500839767
],
[
129.4683044780665,
35.63214061130395
],
[
127.3865194031884,
34.47567373304412
],
[
126.86014326386339,
36.893924058574626
],
[
124.71216067921938,
38.10834605564979
],
[
125.32111575734682,
39.55138458918421
],
[
121.05455447803288,
38.89747101496292
],
[
121.64035851449356,
40.94638987890332
],
[
117.53270226447708,
38.7376358098841
],
[
122.35793745329849,
37.45448415786069
],
[
119.1512081238586,
34.909859117160465
],
[
121.90814578663006,
31.69217438407469
],
[
121.93842817595308,
29.01802236583481
],
[
115.89073530483515,
22.782873236578098
],
[
110.44403934127169,
20.341032619706397
],
[
107.92980678316326,
21.583409319849977
],
[
105.88168216351903,
19.752050482659698
],
[
108.87710656131748,
15.27669057867044
],
[
109.20013593957398,
11.666859239137764
],
[
105.15826378786511,
8.599759629750494
],
[
100.09779747925111,
13.406856390837433
],
[
99.22239871622676,
9.239255479362427
],
[
102.14118696493638,
6.221636053894628
],
[
101.27219058322899,
5.71272864520618
],
[
102.9617053568667,
5.524495144061078
],
[
104.22881147666354,
1.293048000489534
],
[
101.39063846232918,
2.760813706875624
],
[
98.339661899817,
7.794511623562386
],
[
97.1645398294998,
16.92873444260934
],
[
94.18880415240454,
16.037936102762018
],
[
91.41708702999766,
22.76501902922122
],
[
86.97570438024027,
21.49556163175521
],
[
80.32489586784388,
15.89918488205835
],
[
79.85799930208682,
10.35727509199711
],
[
77.53989790233794,
7.965534776232332
],
[
72.6305334817454,
21.356009426351008
],
[
70.4704586119451,
20.877330634031384
],
[
66.37282758979327,
25.42514089609385
],
[
57.39725141788239,
25.73990204518364
],
[
56.492138706290206,
27.143304755150197
],
[
51.52076256694742,
27.865689602158298
],
[
50.115008579311585,
30.147772528599717
],
[
47.974519077349896,
29.975819200148504
],
[
51.79438927593287,
24.019826158132506
],
[
56.36201744977936,
26.39593435312895
],
[
56.84514041527606,
24.241673081961494
],
[
59.806148309168094,
22.310524807214193
],
[
55.274900343655105,
17.228354397037663
],
[
53.10857262554751,
16.65105113368898
],
[
52.00000980002225,
19.00000336351606
],
[
52.1681649107,
15.597420355689948
],
[
43.48295861183713,
12.636800035040084
],
[
42.649572788266084,
16.774635321514964
],
[
34.63233605320798,
28.058546047471566
],
[
34.82324328878294,
29.761080761720514
],
[
33.92136,
27.6487
],
[
32.42323,
29.85108
],
[
37.4817900000001,
18.61409
],
[
42.715873650896526,
11.735640570518342
],
[
44.614259067570856,
10.442205308468942
],
[
51.1112,
12.02464
],
[
51.04531,
10.6409
],
[
47.74079,
4.2194
],
[
39.20222,
- 4.67677
],
[
40.08926395036522,
- 16.10077402106446
],
[
34.78638349787005,
- 19.784011732667736
],
[
35.45874555841962,
- 24.12260995859655
],
[
32.574632195777866,
- 25.727318210556092
],
[
30.05571618014278,
- 31.140269463832958
],
[
25.780628289500697,
- 33.94464609144834
],
[
18.377410922934615,
- 34.13652068454807
],
[
15.21047244635946,
- 27.090955905874047
],
[
11.64009606288161,
- 16.67314218512921
],
[
13.633721144269828,
- 12.038644707897191
],
[
13.236432732809874,
- 8.562629489784342
],
[
8.79799563969317,
- 1.111301364754496
],
[
9.795195753629457,
3.073404445809117
],
[
8.500287713259695,
4.771982937026849
],
[
5.898172641634687,
4.262453314628985
],
[
2.691701694356254,
6.258817246928629
],
[
- 7.974107224957251,
4.355755113131963
],
[
- 12.949049038128194,
7.798645738145738
],
[
- 17.62504269049066,
14.729540513564073
],
[
- 16.14634741867485,
18.108481553616656
],
[
- 17.020428432675743,
21.42231028898148
],
[
- 14.750954555713488,
21.5006000839038
],
[
- 17.02042843267577,
21.422310288981635
],
[
- 15.982610642958065,
23.723358466074103
],
[
- 5.929994269219833,
35.75998810479399
],
[
9.509993523810607,
37.349994411766545
],
[
11.100025668999251,
36.899996039368915
],
[
10.339658644256616,
33.78574168551532
],
[
19.08641,
30.26639
],
[
21.54298,
32.8432
],
[
33.7734,
30.96746
],
[
36.160821567537056,
36.650605577128374
],
[
27.64118655773737,
36.658822129862756
],
[
26.17078535330438,
39.463612168936464
],
[
33.51328291192752,
42.01896006933731
],
[
41.554084100110664,
41.53565623632759
],
[
36.67546000000013,
45.24469
],
[
39.12120000000013,
47.26336
],
[
34.96234174982388,
46.27319651954964
],
[
36.33471276219916,
45.113215643893966
],
[
33.882511020652885,
44.36147858334407
],
[
32.4541744321055,
45.32746613217608
],
[
33.29856733575471,
46.080598456397844
],
[
30.7487488136091,
46.583100084004
],
[
27.67389773937805,
42.57789236100622
],
[
28.806438429486747,
41.05496206314854
],
[
22.62629886240478,
40.25656118423919
],
[
24.040011020613605,
37.655014553369426
],
[
22.490028110451107,
36.41000010837746
],
[
19.540027296637106,
41.71998607031276
],
[
13.141606479554298,
45.73669179949542
],
[
12.589237094786483,
44.091365871754476
],
[
18.480247023195403,
40.168866278639825
],
[
16.869595981522338,
40.44223460546385
],
[
16.100960727613057,
37.98589874933418
],
[
15.413612501698822,
40.04835683853517
],
[
8.88894616052687,
44.36633616797954
],
[
3.10041059735272,
43.075200507167125
],
[
- 2.146452602538119,
36.67414419203729
],
[
- 8.898856980820327,
36.86880931248078
],
[
- 9.392883673530648,
43.0266246608127
],
[
- 1.384225226232957,
44.02261037859017
],
[
- 1.193797573237362,
46.014917710954876
],
[
- 4.592349819344747,
48.68416046812695
],
[
- 1.616510789384932,
48.644421291694584
],
[
- 1.933494025063254,
49.77634186461577
],
[
8.121706170289485,
53.52779246684429
],
[
8.543437534223386,
57.110002753316905
],
[
10.580005730846153,
57.73001658795485
],
[
9.649984978889307,
55.469999498102055
],
[
10.93946699386845,
54.00869334575259
],
[
22.731098667092652,
54.327536932993326
],
[
19.660640089606403,
54.426083889373984
],
[
21.64978394862641,
55.126693768916994
],
[
21.581866489353672,
57.411870632549935
],
[
24.12072960785343,
57.02569265403277
],
[
23.339795363058645,
59.187240302153384
],
[
29.1177,
60.02805000000012
],
[
21.322244093519316,
60.720169989659524
],
[
21.536029493910803,
63.18973501245587
],
[
25.398067661243942,
65.11142650009374
],
[
23.903378533633802,
66.00692739527962
],
[
17.84777916837521,
62.74940013289681
],
[
17.119554884518124,
61.34116567651097
],
[
18.78772179533209,
60.081914374422595
],
[
15.879785597403783,
56.10430186626866
],
[
12.942910597392057,
55.36173737245058
],
[
10.356556837616097,
59.46980703392538
],
[
5.665835402050419,
58.58815542259367
],
[
4.992078077829007,
61.970998033284275
],
[
19.184028354578516,
69.81744415961782
],
[
28.165547316202918,
71.18547435168051
],
[
41.05987000000013,
67.45713000000012
],
[
38.38295,
65.9995300000001
],
[
33.18444,
66.63253
],
[
37.01273000000012,
63.84983000000011
],
[
37.17604000000014,
65.14322000000013
],
[
43.94975000000014,
66.06908
],
[
43.45282,
68.57079
],
[
46.25000000000014,
68.25
],
[
46.34915000000015,
66.6676700000001
],
[
53.71743000000018,
68.85738000000012
],
[
59.94142000000019,
68.2784400000001
],
[
60.55,
69.85
],
[
68.51216000000014,
68.09233000000017
],
[
66.69466,
71.02897000000024
],
[
69.94,
73.04000000000013
],
[
72.79603,
72.22006
],
[
71.8481100000001,
71.40898
],
[
73.66787,
68.4079
],
[
71.28000000000011,
66.32000000000016
],
[
72.42301000000018,
66.17267000000018
],
[
75.052,
67.76047000000017
],
[
73.1011,
71.44717000000026
],
[
74.65926,
72.83227
],
[
76.35911,
71.15287000000015
],
[
81.5,
71.75
],
[
80.51109,
73.6482
],
[
104.3516000000001,
77.69792
],
[
114.13417,
75.84764
],
[
109.4,
74.18
],
[
126.97644,
73.56549
],
[
131.28858000000028,
70.78699000000012
],
[
139.86983000000012,
71.48783000000014
],
[
139.14791,
72.41619000000011
],
[
140.46817,
72.84941000000015
],
[
158.99779,
70.86672
],
[
160.94053000000034,
69.4372800000001
],
[
180.00000000000014,
68.96363636363657
],
[
180.00000000000014,
64.97970870219848
],
[
177.41128000000018,
64.60821
],
[
179.22825000000014,
62.30410000000015
],
[
170.3308500000003,
59.88177
],
[
163.53929000000014,
59.86871
],
[
162.0173300000001,
58.24328
],
[
163.19191,
57.615030000000104
],
[
162.11749000000017,
54.85514
],
[
156.7897900000003,
51.01105
],
[
155.91442000000032,
56.767920000000146
],
[
164.47355000000013,
62.55061
],
[
160.1214800000001,
60.54423
],
[
156.7206800000001,
61.43442
],
[
154.21806000000035,
59.758180000000124
],
[
155.04375,
59.14495
],
[
142.19782000000018,
59.03998
],
[
135.12619,
54.72959
],
[
141.34531,
53.08957000000012
],
[
140.06193000000022,
48.44671000000017
],
[
134.86939000000027,
43.39821
],
[
130.78000485358513,
42.22001036108258
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 65.5,
- 55.2],
[
- 71.00568,
- 55.05383
],
[
- 74.66253,
- 52.83749
],
[
- 71.10773,
- 54.07433
],
[
- 68.63401022758316,
- 52.63637045887437
],
[
- 65.5,
- 55.2
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 58.42707414410439,
- 33.909454441057576],
[
- 56.788285285048346,
- 36.901571547189334
],
[
- 62.33595699731015,
- 38.82770720800437
],
[
- 62.74580278181699,
- 41.02876148861209
],
[
- 65.11803524439159,
- 41.06431487402888
],
[
- 63.45805904809589,
- 42.56313811622236
],
[
- 67.29379391139244,
- 45.5518962542552
],
[
- 65.64102657740145,
- 47.236134535511894
],
[
- 69.1385391913478,
- 50.7325102679478
],
[
- 68.14999487982041,
- 52.349983406127706
],
[
- 71.42979468452094,
- 53.85645476030039
],
[
- 74.94676347522517,
- 52.26275358841903
],
[
- 75.60801510283196,
- 48.6737728818718
],
[
- 74.1265809801047,
- 46.9392534319951
],
[
- 75.64439531116545,
- 46.64764332457203
],
[
- 72.71780392117978,
- 42.38335580827899
],
[
- 74.33194312203258,
- 43.22495818458441
],
[
- 70.16441972520599,
- 19.756468194256186
],
[
- 76.00920508492995,
- 14.649286390850321
],
[
- 81.24999630402642,
- 6.136834405139183
],
[
- 79.77029334178093,
- 2.65751189535964
],
[
- 80.93365902375172,
- 1.057454522306358
],
[
- 77.12768978545526,
3.849636135265357
],
[
- 78.18209570993864,
8.319182440621773
],
[
- 79.55787736684519,
8.932374986197146
],
[
- 80.8864009264208,
7.220541490096537
],
[
- 85.66078650586698,
9.933347479690724
],
[
- 87.48940873894713,
13.297534898323931
],
[
- 103.50098954955808,
18.29229462327885
],
[
- 114.77645117883503,
31.79953217216115
],
[
- 109.43339230023292,
23.1855876734287
],
[
- 112.18203589562148,
24.738412787367167
],
[
- 117.12776,
32.53534
],
[
- 114.72139,
32.72083
],
[
- 120.62286,
34.60855
],
[
- 124.39807,
40.3132
],
[
- 124.68721008300783,
48.18443298339855
],
[
- 122.58736,
47.096
],
[
- 122.84,
49
],
[
- 127.43561,
50.83061
],
[
- 134.07806292029605,
58.12306753196691
],
[
- 147.11437394914668,
60.884656073644635
],
[
- 151.71639278868332,
59.15582103131999
],
[
- 150.62111080625698,
61.284424953854455
],
[
- 158.43332129619716,
55.99415355083855
],
[
- 164.7855692210272,
54.40417308208217
],
[
- 157.041674974577,
58.91888458926172
],
[
- 161.96889360252635,
58.67166453717738
],
[
- 165.34638770247483,
60.50749563256241
],
[
- 165.73445187077053,
62.07499685327181
],
[
- 160.77777767641476,
64.78860382756642
],
[
- 168.11056006576717,
65.66999705673675
],
[
- 161.67777442121016,
66.11611969671242
],
[
- 166.76444068099602,
68.35887685817968
],
[
- 156.58082455139805,
71.35776357694175
],
[
- 136.50358,
68.89804
],
[
- 128.13817,
70.48384
],
[
- 108.8802,
67.38144
],
[
- 108.16721,
68.65392
],
[
- 97.66948,
68.57864
],
[
- 96.12588,
67.29338
],
[
- 94.23282,
69.06903
],
[
- 96.39115,
71.19482
],
[
- 93.88997,
71.76015
],
[
- 87.35017,
67.19872
],
[
- 85.52197,
69.88211
],
[
- 81.2202,
68.66567
],
[
- 81.38653,
67.11078
],
[
- 85.76943,
66.55833
],
[
- 94.24153,
60.89865
],
[
- 94.6846,
58.94882
],
[
- 92.29703,
57.08709
],
[
- 82.27285,
55.14832
],
[
- 79.91289,
51.20842
],
[
- 78.60191,
52.56208
],
[
- 79.82958,
54.66772
],
[
- 76.54137,
56.53423
],
[
- 78.51688,
58.80458
],
[
- 77.33676,
59.85261
],
[
- 78.10687,
62.31964
],
[
- 73.83988,
62.4438
],
[
- 69.59042,
61.06141
],
[
- 67.64976,
58.21206
],
[
- 64.58352,
60.33558
],
[
- 61.79866,
56.33945
],
[
- 55.75632,
53.27036
],
[
- 60.03309,
50.24277
],
[
- 66.39905,
50.22897
],
[
- 71.10458,
46.82171
],
[
- 65.05626,
49.23278
],
[
- 64.47219,
46.23849
],
[
- 60.51815,
47.00793
],
[
- 59.80287,
45.9204
],
[
- 65.36406,
43.54523
],
[
- 66.16173,
44.46512
],
[
- 64.42549,
45.29204
],
[
- 67.18175940890991,
45.17586718267797
],
[
- 70.645475633411,
43.09023834896405
],
[
- 69.96503,
41.63717000000017
],
[
- 75.52805,
39.4985
],
[
- 75.94023,
37.21689
],
[
- 76.35,
39.15
],
[
- 75.72749,
35.55074000000013
],
[
- 81.33629,
31.44049
],
[
- 80.38103,
25.20616
],
[
- 84.1,
30.090000000000117
],
[
- 93.84842,
29.71363
],
[
- 97.13999999999982,
27.83
],
[
- 97.87236670611111,
22.44421173755336
],
[
- 94.42572953975622,
18.144370835843347
],
[
- 87.05189022494807,
21.5435431991383
],
[
- 88.93061275913527,
15.887273464415076
],
[
- 83.41038123242038,
15.270902818253774
],
[
- 83.80893571647155,
11.103043524617275
],
[
- 82.20758643261097,
8.9955752628901
],
[
- 76.83667395700357,
8.638749497914716
],
[
- 71.75409013536864,
12.437303168177309
],
[
- 71.69564409044654,
9.072263088411248
],
[
- 69.94324459499683,
12.162307033736099
],
[
- 68.19412655299763,
10.554653225135922
],
[
- 61.880946010980196,
10.715625311725104
],
[
- 57.14743648947689,
5.973149929219161
],
[
- 51.31714636901086,
4.203490505383954
],
[
- 50.699251268096916,
0.222984117021682
],
[
- 48.58449662941659,
- 1.237805271005001
],
[
- 39.97866533055404,
- 2.873054294449041
],
[
- 35.23538896334756,
- 5.464937432480247
],
[
- 35.12821204277422,
- 8.996401462442286
],
[
- 38.67388709161652,
- 13.057652276260619
],
[
- 40.94475623225061,
- 21.93731698983781
],
[
- 47.64897233742066,
- 24.885199069927722
],
[
- 48.8884574041574,
- 28.674115085567884
],
[
- 53.806425950726535,
- 34.39681487400223
],
[
- 58.42707414410439,
- 33.909454441057576
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 69.6207190295883,
47.06832188872213],
[
- 70.77343956854007,
45.4186744794801
],
[
- 69.6207190295883,
47.06832188872213
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[145.39797814349484,
- 40.79254851660589],
[
148.28906782449602,
- 40.87543751400213
],
[
147.9140519553538,
- 43.21152231218849
],
[
146.04837772032042,
- 43.54974456153889
],
[
145.39797814349484,
- 40.79254851660589
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[143.56181115129996,
- 13.763655694232213],
[
153.13616214417678,
- 26.07117319102619
],
[
152.8915775901394,
- 31.640445651985956
],
[
149.99728397033616,
- 37.42526051203514
],
[
146.3179219911548,
- 39.03575652441144
],
[
140.63857872941324,
- 38.019332777662555
],
[
138.2075643251067,
- 34.38472258884593
],
[
136.82940555231474,
- 35.26053476332862
],
[
137.81032759007914,
- 32.90000701266811
],
[
135.98904341038437,
- 34.89011809666049
],
[
131.32633060112093,
- 31.49580331800105
],
[
118.02497195848954,
- 35.064732761374714
],
[
115.02680870977954,
- 34.196517022438925
],
[
115.68961063035513,
- 31.61243702568379
],
[
113.3389530782625,
- 26.116545098578484
],
[
114.1497563009219,
- 21.755881036061012
],
[
120.85622033089666,
- 19.68370777758919
],
[
125.68579634003052,
- 14.230655612853838
],
[
129.62147342337963,
- 14.969783623924556
],
[
132.35722374891142,
- 11.128519382372644
],
[
136.49247521377166,
- 11.857208754120393
],
[
135.5001843609032,
- 14.997740573794431
],
[
140.2152453960783,
- 17.710804945550066
],
[
142.51526004452498,
- 10.668185723516643
],
[
143.56181115129996,
- 13.763655694232213
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[114.20401655482843,
4.52587392823682],
[
116.72510298061977,
6.924771429873999
],
[
119.18190392463995,
5.407835598162251
],
[
117.31323245653354,
3.234428208830579
],
[
118.99674726773819,
0.902219143066048
],
[
116.14808393764864,
- 4.012726332214015
],
[
110.223846063276,
- 2.934032484553484
],
[
109.09187381392255,
- 0.459506524257051
],
[
109.66326012577375,
2.006466986494985
],
[
114.20401655482843,
4.52587392823682
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 56.134035814017125,
50.687009792679305],
[
- 56.795881720595276,
49.81230866149096
],
[
- 53.476549445191324,
49.24913890237406
],
[
- 53.06915829121834,
46.65549876564495
],
[
- 59.26601518414677,
47.60334788674251
],
[
- 55.406974249886616,
51.58827261006573
],
[
- 56.134035814017125,
50.687009792679305
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 85.16130794954987,
65.65728465439281],
[
- 80.10345130076661,
63.725981350348604
],
[
- 87.22198320183674,
63.54123810490523
],
[
- 85.16130794954987,
65.65728465439281
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 75.86588,
67.14886],
[
- 77.2364,
67.58809
],
[
- 75.1145,
68.01036
],
[
- 75.86588,
67.14886
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 114.16717,
73.12145],
[
- 108.18835,
71.65089
],
[
- 108.39639,
73.08953000000011
],
[
- 106.52259,
73.07601
],
[
- 101.08929,
69.58447000000012
],
[
- 113.3132,
68.53554
],
[
- 117.34,
69.96000000000012
],
[
- 112.4161,
70.36638
],
[
- 119.40199,
71.55859
],
[
- 114.16717,
73.12145
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 104.5,
73.42],
[
- 106.94,
73.46
],
[
- 104.5,
73.42
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 86.56217851433414,
73.15744700793846],
[
- 82.31559017610098,
73.75095083281059
],
[
- 80.7489416165244,
72.06190664335077
],
[
- 72.24222571479766,
71.55692454699451
],
[
- 66.96903337265417,
69.18608734809189
],
[
- 68.80512285020055,
68.72019847276442
],
[
- 61.85198137068059,
66.86212067327784
],
[
- 63.918444383384184,
64.99866852483285
],
[
- 68.01501603867396,
66.2627257351244
],
[
- 64.66940629744968,
63.39292674422748
],
[
- 68.78318620469273,
63.74567007105182
],
[
- 66.16556820338016,
61.93089712182589
],
[
- 74.8344189114226,
64.67907562932379
],
[
- 77.70997982452005,
64.22954234481679
],
[
- 77.89728105336192,
65.30919220647479
],
[
- 73.95979529488272,
65.4547647162409
],
[
- 72.92605994331609,
67.72692576768239
],
[
- 78.95724219431673,
70.16688019477542
],
[
- 89.8881512112875,
71.22255219184996
],
[
- 89.43657670770494,
73.12946421985237
],
[
- 86.56217851433414,
73.15744700793846
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 100.35642,
73.84389],
[
- 97.38,
73.76
],
[
- 96.72,
71.66
],
[
- 102.5,
72.51
],
[
- 100.35642,
73.84389
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 93.19629553910022,
72.77199249947336],
[
- 95.40985551632266,
72.06188080513459
],
[
- 96.01826799191099,
73.4374299180958
],
[
- 90.50979285354259,
73.85673248971204
],
[
- 93.19629553910022,
72.77199249947336
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 120.46,
71.38360179308759],
[
- 125.92894873747333,
71.86868846301141
],
[
- 123.94,
73.68000000000015
],
[
- 124.91775,
74.29275000000013
],
[
- 115.51081,
73.47519
],
[
- 120.46,
71.38360179308759
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 98.5,
76.72],
[
- 98.16,
75
],
[
- 102.50209,
75.5638
],
[
- 98.5,
76.72
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 108.21141,
76.20168],
[
- 105.70498,
75.47951
],
[
- 117.7104,
75.2222
],
[
- 115.40487,
76.47887
],
[
- 108.21141,
76.20168
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 94.68408586299947,
77.09787832305838],
[
- 79.83393286814834,
74.9231273464872
],
[
- 89.76472205275837,
74.51555532500115
],
[
- 97.12137895382949,
76.75107778594761
],
[
- 94.68408586299947,
77.09787832305838
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 87.02,
79.66],
[
- 85.81435,
79.3369
],
[
- 90.80436,
78.21533
],
[
- 96.70972,
80.15777
],
[
- 92.40984,
81.25739
],
[
- 87.02,
79.66
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 68.5,
83.10632151676575],
[
- 61.85,
82.6286
],
[
- 76.90773,
79.32309
],
[
- 75.39345,
78.52581
],
[
- 80.56125,
76.17812
],
[
- 89.49068,
76.47239
],
[
- 88.26,
77.9
],
[
- 84.97634,
77.53873
],
[
- 87.96192,
78.37181
],
[
- 85.09495,
79.34543
],
[
- 86.93179,
80.25145
],
[
- 81.84823,
80.46442
],
[
- 91.58702,
81.89429
],
[
- 68.5,
83.10632151676575
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[110.33918786015155,
18.678395087147607],
[
108.62621748254045,
19.367887885001977
],
[
110.78655073450224,
20.07753449145008
],
[
110.33918786015155,
18.678395087147607
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 82.26815121125706,
23.188610744717707],
[
- 74.17802486845126,
20.28462779385974
],
[
- 77.75548092315307,
19.855480861891877
],
[
- 81.79500179719267,
22.636964830001958
],
[
- 84.97491105827311,
21.89602814380109
],
[
- 82.26815121125706,
23.188610744717707
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[12.690006137755631,
55.609990953180784],
[
10.903913608451631,
55.77995473898875
],
[
12.690006137755631,
55.609990953180784
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 71.71236141629296,
19.714455878167357],
[
- 68.31794328476897,
18.612197577381693
],
[
- 74.45803361682478,
18.342549953682706
],
[
- 71.71236141629296,
19.714455878167357
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 5.661948614921897,
54.55460317648385],
[
- 6.788856573910849,
52.260117906292336
],
[
- 9.977085740590269,
51.82045482035308
],
[
- 9.688524542672454,
53.8813626165853
],
[
- 5.661948614921897,
54.55460317648385
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 3.005004848635281,
58.63500010846633],
[
- 4.073828497728016,
57.55302480735526
],
[
- 1.959280564776918,
57.68479970969952
],
[
- 3.119003058271119,
55.973793036515474
],
[
1.681530795914739,
52.739520168664
],
[
1.449865349950301,
51.28942780212196
],
[
- 5.245023159191135,
49.95999990498109
],
[
- 3.414850633142123,
51.42600861266925
],
[
- 5.267295701508886,
51.991400458374585
],
[
- 4.579999152026915,
53.49500377055517
],
[
- 2.945008510744344,
53.984999701546684
],
[
- 6.149980841486354,
56.78500967063354
],
[
- 5.009998745127575,
58.63001333275005
],
[
- 3.005004848635281,
58.63500010846633
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 46.76379,
82.62796],
[
- 27.10046,
83.51966
],
[
- 20.84539,
82.72669
],
[
- 31.9,
82.2
],
[
- 12.20855,
81.29154
],
[
- 20.04624,
80.17708
],
[
- 17.73035,
80.12912
],
[
- 19.70499,
78.75128
],
[
- 18.47285,
76.98565
],
[
- 21.67944,
76.62795
],
[
- 19.37281,
74.29561
],
[
- 24.79296,
72.3302
],
[
- 21.75356,
70.66369
],
[
- 25.54341,
71.43094
],
[
- 26.36276,
70.22646
],
[
- 22.34902,
70.12946
],
[
- 39.81222,
65.45848
],
[
- 43.3784,
60.09772
],
[
- 48.26294,
60.85843
],
[
- 51.63325,
63.62691
],
[
- 53.96911,
67.18899
],
[
- 50.87122,
69.9291
],
[
- 54.68336,
69.61003
],
[
- 54.35884,
70.821315
],
[
- 51.39014,
70.56978
],
[
- 55.83468,
71.65444
],
[
- 54.71819,
72.58625
],
[
- 58.58516,
75.51727
],
[
- 68.50438,
76.06141
],
[
- 71.40257,
77.00857
],
[
- 66.76397,
77.37595
],
[
- 73.297,
78.04419
],
[
- 65.7107,
79.39436
],
[
- 68.02298,
80.11721
],
[
- 62.65116,
81.77042
],
[
- 44.523,
81.6607
],
[
- 46.76379,
82.62796
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[117.90001834520777,
- 8.095681247594925],
[
119.1265067892231,
- 8.705824883665073
],
[
116.74014082241663,
- 9.03293670007264
],
[
117.90001834520777,
- 8.095681247594925
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[108.62347863162896,
- 6.777673841990676],
[
115.70552697150109,
- 8.370806573116866
],
[
105.36548628135554,
- 6.85141611087117
],
[
108.62347863162896,
- 6.777673841990676
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[134.1433679546478,
- 1.151867364103595],
[
135.4576029806947,
- 3.367752780779114
],
[
138.3297274110448,
- 1.702686455902651
],
[
144.58397098203326,
- 3.861417738463402
],
[
150.69057498596388,
- 10.582712904505868
],
[
144.74416792213802,
- 7.630128269077474
],
[
142.62843143124425,
- 9.326820570516503
],
[
137.61447391169284,
- 8.411682631059762
],
[
137.92783979711086,
- 5.393365573756
],
[
132.98395551974735,
- 4.112978610860282
],
[
131.9898043153162,
- 2.820551039240456
],
[
133.69621178602617,
- 2.214541517753688
],
[
130.51955814018007,
- 0.937720228686075
],
[
134.1433679546478,
- 1.151867364103595
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[125.24050052297159,
1.419836127117605],
[
120.18308312386276,
0.23724681233422
],
[
120.93590538949073,
- 1.408905938323372
],
[
123.34056481332848,
- 0.615672702643081
],
[
121.50827355355548,
- 1.904482924002423
],
[
123.16233279835379,
- 5.340603936385961
],
[
120.97238895068878,
- 2.62764291749491
],
[
119.36690555224496,
- 5.379878024927805
],
[
120.03570193896635,
0.566477362465804
],
[
125.24050052297159,
1.419836127117605
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[128.68824873262074,
1.132385972494106],
[
128.10001590384232,
- 0.899996433112975
],
[
127.93237755748751,
2.174596258956555
],
[
128.68824873262074,
1.132385972494106
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[105.81765506390937,
- 5.852355645372413],
[
102.58426069540693,
- 4.220258884298204
],
[
95.29302615761733,
5.479820868344817
],
[
103.83839603069836,
0.104541734208667
],
[
106.10859337771271,
- 3.06177662517895
],
[
105.81765506390937,
- 5.852355645372413
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 14.508695441129234,
66.45589223903143],
[
- 13.60973222497981,
65.12667104761987
],
[
- 18.656245896874992,
63.49638296167582
],
[
- 22.762971971110158,
63.960178941495386
],
[
- 21.778484259517683,
64.40211579045551
],
[
- 23.95504391121911,
64.8911298692335
],
[
- 22.227423265053332,
65.37859365504274
],
[
- 24.326184047939336,
65.61118927678847
],
[
- 14.508695441129234,
66.45589223903143
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[15.520376010813834,
38.23115509699147],
[
15.09998823411945,
36.6199872909954
],
[
12.431003859108813,
37.61294993748382
],
[
15.520376010813834,
38.23115509699147
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[140.9763875673053,
37.14207428644016],
[
140.25327925024513,
35.13811391859366
],
[
135.7929830262689,
33.46480520276663
],
[
135.07943484918272,
34.59654490817482
],
[
130.98614464734348,
33.885761420216284
],
[
132.00003624891005,
33.149992377244615
],
[
130.20241987520498,
31.418237616495418
],
[
129.40846316947258,
33.29605581311759
],
[
135.67753787652893,
35.527134100886826
],
[
141.3689734234267,
41.37855988216029
],
[
140.9763875673053,
37.14207428644016
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[143.9101619813795,
44.17409983985374],
[
145.54313724180278,
43.262088324550604
],
[
139.95510623592108,
41.569555975911044
],
[
141.967644891528,
45.55148346616136
],
[
143.9101619813795,
44.17409983985374
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[81.7879590188914,
7.523055324733164],
[
80.34835696810441,
5.968369859232155
],
[
80.14780073437964,
9.824077663609557
],
[
81.7879590188914,
7.523055324733164
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[49.54351891459575,
- 12.469832858940554],
[
50.377111443895956,
- 15.706069431219127
],
[
47.095761346226595,
- 24.941629733990453
],
[
45.40950768411045,
- 25.60143442149309
],
[
43.345654331237625,
- 22.776903985283873
],
[
43.96308434426091,
- 17.409944756746782
],
[
49.54351891459575,
- 12.469832858940554
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[18.25183,
79.70175],
[
21.54383,
78.95611
],
[
15.91315,
76.77045
],
[
10.44453,
79.65239
],
[
18.25183,
79.70175
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[173.02037479074076,
- 40.919052422856424],
[
174.24758670480813,
- 41.34915536882167
],
[
173.08011274647023,
- 43.853343601253584
],
[
169.33233117093428,
- 46.641235446967855
],
[
166.67688602118423,
- 46.21991749449225
],
[
173.02037479074076,
- 40.919052422856424
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[174.61200890533055,
- 36.156397393540544],
[
178.51709354076283,
- 37.6953732236248
],
[
175.239567499083,
- 41.68830779395324
],
[
172.63600548735374,
- 34.52910654066939
],
[
174.61200890533055,
- 36.156397393540544
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[126.37681359263749,
8.414706325713354],
[
125.39651167206065,
5.58100332277229
],
[
123.61021243702757,
7.833527329942754
],
[
121.91992801319262,
7.192119452336073
],
[
125.4121179546128,
9.760334784377548
],
[
126.37681359263749,
8.414706325713354
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[118.50458092659036,
9.31638255455809],
[
117.17427453010069,
8.367499904814665
],
[
119.51149620979757,
11.369668077027214
],
[
118.50458092659036,
9.31638255455809
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[125.50255171112352,
12.162694606978349],
[
124.80181928924574,
10.134678859899893
],
[
124.26676150929572,
12.557760931849685
],
[
125.50255171112352,
12.162694606978349
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[121.3213082215236,
18.504064642811016],
[
122.51565392465338,
17.093504746971973
],
[
121.72882856657728,
14.328376369682246
],
[
124.07741906137827,
12.536676947474575
],
[
120.07042850146641,
14.970869452367097
],
[
121.3213082215236,
18.504064642811016
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[151.9827958518545,
- 5.478063246282346],
[
148.31893680236075,
- 5.74714242922613
],
[
151.53786176982155,
- 4.16780730552189
],
[
151.9827958518545,
- 5.478063246282346
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[143.64800744036287,
50.74760040954152],
[
144.65414757708564,
48.976390692737596
],
[
143.17392785051723,
49.30655141865037
],
[
143.50527713437262,
46.13790761980948
],
[
142.0920300640545,
45.96675527605879
],
[
142.2097489768154,
54.22547597921687
],
[
143.64800744036287,
50.74760040954152
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[ - 175.01425,
66.58435],
[
- 169.89958,
65.97724
],
[
- 172.95533,
64.25269
],
[
- 178.68611,
66.11211
],
[
- 180,
64.97970870219837
],
[
- 180,
68.96363636363637
],
[
- 175.01425,
66.58435
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[57.5356925799924,
70.72046397570216],
[
51.45575361512422,
72.01488108996514
],
[
55.631932814359715,
75.08141225859717
],
[
68.85221113472514,
76.54481130645462
],
[
58.47708214705338,
74.30905630156283
],
[
55.419335971910954,
72.37126760526598
],
[
57.5356925799924,
70.72046397570216
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[105.07547,
78.30689],
[
99.43814,
77.921
],
[
102.08635,
79.34641
],
[
105.07547,
78.30689
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[99.93976,
78.88094],
[
91.18107,
80.34146
],
[
95.940895,
81.2504
],
[
99.93976,
78.88094
]]
]
}
},
{
type: 'Feature',
properties: {
},
geometry: {
type: 'Polygon',
coordinates: [
[[121.77781782438993,
24.3942735865194],
[
120.74707970589623,
21.970571397382113
],
[
120.1061885926124,
23.556262722258236
],
[
121.77781782438993,
24.3942735865194
]]
]
}
}
]
};
'use strict';
var CIN = window.CIN || {
};
CIN.start = function () {
if (CIN.alreadyInitialized) {
return
}
CIN.alreadyInitialized = true;
$.ajaxSetup({
cache: false
});
CIN.isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
CIN.like.init();
CIN.mainStage.init();
CIN.mainNav.init();
CIN.stickyNavTop.init();
CIN.breadcrumb.init();
CIN.businessCard.init();
CIN.accordion.init();
CIN.footer.init();
CIN.tabs.init();
CIN.languageNotification.init();
CIN.p13n.init();
CIN.searchBox.init();
CIN.searchClear.init();
CIN.datetimeFormat.init();
CIN.tooltip.init();
CIN.WorldClock.mapView.init();
CIN.shareLightbox.init();
CIN.functionbar.location.init();
CIN.shareEmail.init();
CIN.loadConnextNews.init();
CIN.loadRestLists.init();
CIN.sharing.init();
CIN.tracking.init();
CIN.loadRestFragments.init();
CIN.teaserGallery.init()
};
$(document).ready(function () {
window.doEsiParsing(document, CIN.start)
});
jQuery.ajax({
url: 'http://cga-projects.conti.de/jira/s/c5276669961b2d41a2a64f92da4722bf-T/en_US-tc2gan/64026/46/1.4.27/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector-embededjs/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector-embededjs.js?locale=en-US&collectorId=d6d34de7',
type: 'get',
cache: true,
dataType: 'script'
});
jQuery.ajax({
url: 'http://cga-projects.conti.de/jira/s/c5276669961b2d41a2a64f92da4722bf-T/en_US-tc2gan/64026/46/1.4.27/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector-embededjs/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector-embededjs.js?locale=en-US&collectorId=cdc1c045',
type: 'get',
cache: true,
dataType: 'script'
});