123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884 |
- (function ($hx_exports) { "use strict";
- $hx_exports.openfl = $hx_exports.openfl || {};
- $hx_exports.lime = $hx_exports.lime || {};
- var $hxClasses = {},$estr = function() { return js.Boot.__string_rec(this,''); };
- function $extend(from, fields) {
- function Inherit() {} Inherit.prototype = from; var proto = new Inherit();
- for (var name in fields) proto[name] = fields[name];
- if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString;
- return proto;
- }
- var haxe = {};
- haxe.Timer = function(time_ms) {
- var me = this;
- this.id = setInterval(function() {
- me.run();
- },time_ms);
- };
- $hxClasses["haxe.Timer"] = haxe.Timer;
- haxe.Timer.__name__ = ["haxe","Timer"];
- haxe.Timer.delay = function(f,time_ms) {
- var t = new haxe.Timer(time_ms);
- t.run = function() {
- t.stop();
- f();
- };
- return t;
- };
- haxe.Timer.measure = function(f,pos) {
- var t0 = haxe.Timer.stamp();
- var r = f();
- haxe.Log.trace(haxe.Timer.stamp() - t0 + "s",pos);
- return r;
- };
- haxe.Timer.stamp = function() {
- return new Date().getTime() / 1000;
- };
- haxe.Timer.prototype = {
- stop: function() {
- if(this.id == null) return;
- clearInterval(this.id);
- this.id = null;
- }
- ,run: function() {
- }
- ,__class__: haxe.Timer
- };
- var lime = {};
- lime.system = {};
- lime.system.System = function() { };
- $hxClasses["lime.system.System"] = lime.system.System;
- lime.system.System.__name__ = ["lime","system","System"];
- lime.system.System.disableCFFI = null;
- lime.system.System.embed = $hx_exports.lime.embed = function(element,width,height,background,assetsPrefix) {
- var htmlElement = null;
- if(typeof(element) == "string") htmlElement = window.document.getElementById(js.Boot.__cast(element , String)); else if(element == null) htmlElement = window.document.createElement("div"); else htmlElement = element;
- var color = null;
- if(background != null) {
- background = StringTools.replace(background,"#","");
- if(background.indexOf("0x") > -1) color = Std.parseInt(background); else color = Std.parseInt("0x" + background);
- }
- if(width == null) width = 0;
- if(height == null) height = 0;
- ApplicationMain.config.background = color;
- ApplicationMain.config.element = htmlElement;
- ApplicationMain.config.width = width;
- ApplicationMain.config.height = height;
- ApplicationMain.config.assetsPrefix = assetsPrefix;
- ApplicationMain.create();
- };
- lime.system.System.findHaxeLib = function(library) {
- return "";
- };
- lime.system.System.getTimer = function() {
- return Std["int"]((haxe.Timer.stamp() - lime.system.System.__startTime) * 1000);
- };
- lime.system.System.load = function(library,method,args,lazy) {
- if(lazy == null) lazy = false;
- if(args == null) args = 0;
- if(lime.system.System.disableCFFI) return Reflect.makeVarArgs(function(__) {
- return { };
- });
- if(lazy) {
- }
- var result = null;
- return result;
- };
- lime.system.System.sysName = function() {
- return null;
- };
- lime.system.System.tryLoad = function(name,library,func,args) {
- return null;
- };
- lime.system.System.loaderTrace = function(message) {
- };
- var Reflect = function() { };
- $hxClasses["Reflect"] = Reflect;
- Reflect.__name__ = ["Reflect"];
- Reflect.hasField = function(o,field) {
- return Object.prototype.hasOwnProperty.call(o,field);
- };
- Reflect.field = function(o,field) {
- try {
- return o[field];
- } catch( e ) {
- return null;
- }
- };
- Reflect.setField = function(o,field,value) {
- o[field] = value;
- };
- Reflect.getProperty = function(o,field) {
- var tmp;
- if(o == null) return null; else if(o.__properties__ && (tmp = o.__properties__["get_" + field])) return o[tmp](); else return o[field];
- };
- Reflect.setProperty = function(o,field,value) {
- var tmp;
- if(o.__properties__ && (tmp = o.__properties__["set_" + field])) o[tmp](value); else o[field] = value;
- };
- Reflect.callMethod = function(o,func,args) {
- return func.apply(o,args);
- };
- Reflect.fields = function(o) {
- var a = [];
- if(o != null) {
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- for( var f in o ) {
- if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) a.push(f);
- }
- }
- return a;
- };
- Reflect.isFunction = function(f) {
- return typeof(f) == "function" && !(f.__name__ || f.__ename__);
- };
- Reflect.compare = function(a,b) {
- if(a == b) return 0; else if(a > b) return 1; else return -1;
- };
- Reflect.compareMethods = function(f1,f2) {
- if(f1 == f2) return true;
- if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) return false;
- return f1.scope == f2.scope && f1.method == f2.method && f1.method != null;
- };
- Reflect.isEnumValue = function(v) {
- return v != null && v.__enum__ != null;
- };
- Reflect.deleteField = function(o,field) {
- if(!Object.prototype.hasOwnProperty.call(o,field)) return false;
- delete(o[field]);
- return true;
- };
- Reflect.makeVarArgs = function(f) {
- return function() {
- var a = Array.prototype.slice.call(arguments);
- return f(a);
- };
- };
- lime.utils = {};
- lime.utils.ByteArray = function(size) {
- if(size == null) size = 0;
- this.littleEndian = false;
- this.allocated = 0;
- this.position = 0;
- this.length = 0;
- if(size > 0) this.allocated = size;
- this.___resizeBuffer(this.allocated);
- this.set_length(this.allocated);
- };
- $hxClasses["lime.utils.ByteArray"] = lime.utils.ByteArray;
- lime.utils.ByteArray.__name__ = ["lime","utils","ByteArray"];
- lime.utils.ByteArray.fromBytes = function(bytes) {
- var result = new lime.utils.ByteArray();
- result.byteView = new Uint8Array(bytes.b);
- result.set_length(result.byteView.length);
- result.allocated = result.length;
- return result;
- };
- lime.utils.ByteArray.readFile = function(path) {
- return null;
- };
- lime.utils.ByteArray.__ofBuffer = function(buffer) {
- var bytes = new lime.utils.ByteArray();
- bytes.set_length(bytes.allocated = buffer.byteLength);
- bytes.data = new DataView(buffer);
- bytes.byteView = new Uint8Array(buffer);
- return bytes;
- };
- lime.utils.ByteArray.prototype = {
- clear: function() {
- if(this.allocated < 0) this.___resizeBuffer(this.allocated = Std["int"](Math.max(0,this.allocated * 2))); else if(this.allocated > 0) this.___resizeBuffer(this.allocated = 0);
- this.length = 0;
- 0;
- this.position = 0;
- }
- ,compress: function(algorithm) {
- }
- ,deflate: function() {
- this.compress(lime.utils.CompressionAlgorithm.DEFLATE);
- }
- ,inflate: function() {
- this.uncompress(lime.utils.CompressionAlgorithm.DEFLATE);
- }
- ,readBoolean: function() {
- return this.readByte() != 0;
- }
- ,readByte: function() {
- var data = this.data;
- return data.getInt8(this.position++);
- }
- ,readBytes: function(bytes,offset,length) {
- if(length == null) length = 0;
- if(offset == null) offset = 0;
- if(offset < 0 || length < 0) throw "Read error - Out of bounds";
- if(length == 0) length = this.length - this.position;
- var lengthToEnsure = offset + length;
- if(bytes.length < lengthToEnsure) {
- if(bytes.allocated < lengthToEnsure) bytes.___resizeBuffer(bytes.allocated = Std["int"](Math.max(lengthToEnsure,bytes.allocated * 2))); else if(bytes.allocated > lengthToEnsure) bytes.___resizeBuffer(bytes.allocated = lengthToEnsure);
- bytes.length = lengthToEnsure;
- lengthToEnsure;
- }
- bytes.byteView.set(this.byteView.subarray(this.position,this.position + length),offset);
- bytes.position = offset;
- this.position += length;
- if(bytes.position + length > bytes.length) bytes.set_length(bytes.position + length);
- }
- ,readDouble: function() {
- var $double = this.data.getFloat64(this.position,this.littleEndian);
- this.position += 8;
- return $double;
- }
- ,readFloat: function() {
- var $float = this.data.getFloat32(this.position,this.littleEndian);
- this.position += 4;
- return $float;
- }
- ,readInt: function() {
- var $int = this.data.getInt32(this.position,this.littleEndian);
- this.position += 4;
- return $int;
- }
- ,readMultiByte: function(length,charSet) {
- return this.readUTFBytes(length);
- }
- ,readShort: function() {
- var $short = this.data.getInt16(this.position,this.littleEndian);
- this.position += 2;
- return $short;
- }
- ,readUnsignedByte: function() {
- var data = this.data;
- return data.getUint8(this.position++);
- }
- ,readUnsignedInt: function() {
- var uInt = this.data.getUint32(this.position,this.littleEndian);
- this.position += 4;
- return uInt;
- }
- ,readUnsignedShort: function() {
- var uShort = this.data.getUint16(this.position,this.littleEndian);
- this.position += 2;
- return uShort;
- }
- ,readUTF: function() {
- var bytesCount = this.readUnsignedShort();
- return this.readUTFBytes(bytesCount);
- }
- ,readUTFBytes: function(len) {
- var value = "";
- var max = this.position + len;
- while(this.position < max) {
- var data = this.data;
- var c = data.getUint8(this.position++);
- if(c < 128) {
- if(c == 0) break;
- value += String.fromCharCode(c);
- } else if(c < 224) value += String.fromCharCode((c & 63) << 6 | data.getUint8(this.position++) & 127); else if(c < 240) {
- var c2 = data.getUint8(this.position++);
- value += String.fromCharCode((c & 31) << 12 | (c2 & 127) << 6 | data.getUint8(this.position++) & 127);
- } else {
- var c21 = data.getUint8(this.position++);
- var c3 = data.getUint8(this.position++);
- value += String.fromCharCode((c & 15) << 18 | (c21 & 127) << 12 | c3 << 6 & 127 | data.getUint8(this.position++) & 127);
- }
- }
- return value;
- }
- ,toString: function() {
- var cachePosition = this.position;
- this.position = 0;
- var value = this.readUTFBytes(this.length);
- this.position = cachePosition;
- return value;
- }
- ,uncompress: function(algorithm) {
- null;
- }
- ,write_uncheck: function($byte) {
- }
- ,writeBoolean: function(value) {
- this.writeByte(value?1:0);
- }
- ,writeByte: function(value) {
- var lengthToEnsure = this.position + 1;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- var data = this.data;
- data.setInt8(this.position,value);
- this.position += 1;
- }
- ,writeBytes: function(bytes,offset,length) {
- if(length == null) length = 0;
- if(offset == null) offset = 0;
- if(bytes.length == 0) return;
- if((function($this) {
- var $r;
- var aNeg = 0 < 0;
- var bNeg = offset < 0;
- $r = aNeg != bNeg?aNeg:0 > offset;
- return $r;
- }(this)) || (function($this) {
- var $r;
- var aNeg1 = 0 < 0;
- var bNeg1 = length < 0;
- $r = aNeg1 != bNeg1?aNeg1:0 > length;
- return $r;
- }(this))) throw "Write error - Out of bounds";
- if((function($this) {
- var $r;
- var $int = length;
- $r = $int < 0?4294967296.0 + $int:$int + 0.0;
- return $r;
- }(this)) == 0) length = bytes.length;
- var lengthToEnsure = this.position + length;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.byteView.set(bytes.byteView.subarray(offset,offset + length),this.position);
- this.position = this.position + length;
- }
- ,writeDouble: function(x) {
- var lengthToEnsure = this.position + 8;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.data.setFloat64(this.position,x,this.littleEndian);
- this.position += 8;
- }
- ,writeFile: function(path) {
- }
- ,writeFloat: function(x) {
- var lengthToEnsure = this.position + 4;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.data.setFloat32(this.position,x,this.littleEndian);
- this.position += 4;
- }
- ,writeInt: function(value) {
- var lengthToEnsure = this.position + 4;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.data.setInt32(this.position,value,this.littleEndian);
- this.position += 4;
- }
- ,writeShort: function(value) {
- var lengthToEnsure = this.position + 2;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.data.setInt16(this.position,value,this.littleEndian);
- this.position += 2;
- }
- ,writeUnsignedInt: function(value) {
- var lengthToEnsure = this.position + 4;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.data.setUint32(this.position,value,this.littleEndian);
- this.position += 4;
- }
- ,writeUnsignedShort: function(value) {
- var lengthToEnsure = this.position + 2;
- if(this.length < lengthToEnsure) {
- if(this.allocated < lengthToEnsure) this.___resizeBuffer(this.allocated = Std["int"](Math.max(lengthToEnsure,this.allocated * 2))); else if(this.allocated > lengthToEnsure) this.___resizeBuffer(this.allocated = lengthToEnsure);
- this.length = lengthToEnsure;
- lengthToEnsure;
- }
- this.data.setUint16(this.position,value,this.littleEndian);
- this.position += 2;
- }
- ,writeUTF: function(value) {
- this.writeUnsignedShort(this.__getUTFBytesCount(value));
- this.writeUTFBytes(value);
- }
- ,writeUTFBytes: function(value) {
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- var c = value.charCodeAt(i);
- if(c <= 127) this.writeByte(c); else if(c <= 2047) {
- this.writeByte(192 | c >> 6);
- this.writeByte(128 | c & 63);
- } else if(c <= 65535) {
- this.writeByte(224 | c >> 12);
- this.writeByte(128 | c >> 6 & 63);
- this.writeByte(128 | c & 63);
- } else {
- this.writeByte(240 | c >> 18);
- this.writeByte(128 | c >> 12 & 63);
- this.writeByte(128 | c >> 6 & 63);
- this.writeByte(128 | c & 63);
- }
- }
- }
- ,__fromBytes: function(bytes) {
- this.byteView = new Uint8Array(bytes.b);
- this.set_length(this.byteView.length);
- this.allocated = this.length;
- }
- ,__get: function(pos) {
- return this.data.getInt8(pos);
- }
- ,__getBuffer: function() {
- return this.data.buffer;
- }
- ,__getUTFBytesCount: function(value) {
- var count = 0;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- var c = value.charCodeAt(i);
- if(c <= 127) count += 1; else if(c <= 2047) count += 2; else if(c <= 65535) count += 3; else count += 4;
- }
- return count;
- }
- ,___resizeBuffer: function(len) {
- var oldByteView = this.byteView;
- var newByteView = new Uint8Array(len);
- if(oldByteView != null) {
- if(oldByteView.length <= len) newByteView.set(oldByteView); else newByteView.set(oldByteView.subarray(0,len));
- }
- this.byteView = newByteView;
- this.data = new DataView(newByteView.buffer);
- }
- ,__set: function(pos,v) {
- this.data.setUint8(pos,v);
- }
- ,get_bytesAvailable: function() {
- return this.length - this.position;
- }
- ,get_endian: function() {
- if(this.littleEndian) return "littleEndian"; else return "bigEndian";
- }
- ,set_endian: function(endian) {
- this.littleEndian = endian == "littleEndian";
- return endian;
- }
- ,set_length: function(value) {
- if(this.allocated < value) this.___resizeBuffer(this.allocated = Std["int"](Math.max(value,this.allocated * 2))); else if(this.allocated > value) this.___resizeBuffer(this.allocated = value);
- this.length = value;
- return value;
- }
- ,__class__: lime.utils.ByteArray
- ,__properties__: {set_length:"set_length",set_endian:"set_endian",get_endian:"get_endian",get_bytesAvailable:"get_bytesAvailable"}
- };
- var __ASSET__data_gameplay_js = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__data_gameplay_js.resourceName));
- };
- $hxClasses["__ASSET__data_gameplay_js"] = __ASSET__data_gameplay_js;
- __ASSET__data_gameplay_js.__name__ = ["__ASSET__data_gameplay_js"];
- __ASSET__data_gameplay_js.__super__ = lime.utils.ByteArray;
- __ASSET__data_gameplay_js.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__data_gameplay_js
- });
- var __ASSET__images_atlas_0_json = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__images_atlas_0_json.resourceName));
- };
- $hxClasses["__ASSET__images_atlas_0_json"] = __ASSET__images_atlas_0_json;
- __ASSET__images_atlas_0_json.__name__ = ["__ASSET__images_atlas_0_json"];
- __ASSET__images_atlas_0_json.__super__ = lime.utils.ByteArray;
- __ASSET__images_atlas_0_json.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__images_atlas_0_json
- });
- var __ASSET__images_atlas_1_json = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__images_atlas_1_json.resourceName));
- };
- $hxClasses["__ASSET__images_atlas_1_json"] = __ASSET__images_atlas_1_json;
- __ASSET__images_atlas_1_json.__name__ = ["__ASSET__images_atlas_1_json"];
- __ASSET__images_atlas_1_json.__super__ = lime.utils.ByteArray;
- __ASSET__images_atlas_1_json.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__images_atlas_1_json
- });
- var __ASSET__images_atlas_2_json = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__images_atlas_2_json.resourceName));
- };
- $hxClasses["__ASSET__images_atlas_2_json"] = __ASSET__images_atlas_2_json;
- __ASSET__images_atlas_2_json.__name__ = ["__ASSET__images_atlas_2_json"];
- __ASSET__images_atlas_2_json.__super__ = lime.utils.ByteArray;
- __ASSET__images_atlas_2_json.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__images_atlas_2_json
- });
- var __ASSET__images_fonts_purple_kern_txt = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__images_fonts_purple_kern_txt.resourceName));
- };
- $hxClasses["__ASSET__images_fonts_purple_kern_txt"] = __ASSET__images_fonts_purple_kern_txt;
- __ASSET__images_fonts_purple_kern_txt.__name__ = ["__ASSET__images_fonts_purple_kern_txt"];
- __ASSET__images_fonts_purple_kern_txt.__super__ = lime.utils.ByteArray;
- __ASSET__images_fonts_purple_kern_txt.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__images_fonts_purple_kern_txt
- });
- var __ASSET__images_fonts_yellow_big_kern_txt = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__images_fonts_yellow_big_kern_txt.resourceName));
- };
- $hxClasses["__ASSET__images_fonts_yellow_big_kern_txt"] = __ASSET__images_fonts_yellow_big_kern_txt;
- __ASSET__images_fonts_yellow_big_kern_txt.__name__ = ["__ASSET__images_fonts_yellow_big_kern_txt"];
- __ASSET__images_fonts_yellow_big_kern_txt.__super__ = lime.utils.ByteArray;
- __ASSET__images_fonts_yellow_big_kern_txt.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__images_fonts_yellow_big_kern_txt
- });
- var __ASSET__images_fonts_yellow_small_kern_txt = function(size) {
- if(size == null) size = 0;
- lime.utils.ByteArray.call(this);
- this.__fromBytes(haxe.Resource.getBytes(__ASSET__images_fonts_yellow_small_kern_txt.resourceName));
- };
- $hxClasses["__ASSET__images_fonts_yellow_small_kern_txt"] = __ASSET__images_fonts_yellow_small_kern_txt;
- __ASSET__images_fonts_yellow_small_kern_txt.__name__ = ["__ASSET__images_fonts_yellow_small_kern_txt"];
- __ASSET__images_fonts_yellow_small_kern_txt.__super__ = lime.utils.ByteArray;
- __ASSET__images_fonts_yellow_small_kern_txt.prototype = $extend(lime.utils.ByteArray.prototype,{
- __class__: __ASSET__images_fonts_yellow_small_kern_txt
- });
- var ApplicationMain = function() { };
- $hxClasses["ApplicationMain"] = ApplicationMain;
- ApplicationMain.__name__ = ["ApplicationMain"];
- ApplicationMain.config = null;
- ApplicationMain.preloader = null;
- ApplicationMain.create = function() {
- var app = new openfl.display.Application();
- app.create(ApplicationMain.config);
- var display = new co.doubleduck.pinata.Preloader();
- ApplicationMain.preloader = new openfl.display.Preloader(display);
- ApplicationMain.preloader.onComplete = ApplicationMain.init;
- ApplicationMain.preloader.create(ApplicationMain.config);
- var urls = [];
- var types = [];
- urls.push("data/gameplay.js");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__data_gameplay_js,[]) , lime.utils.ByteArray));
- urls.push("sounds/eating_candies.ogg");
- types.push("SOUND");
- urls.push("sounds/hit1.ogg");
- types.push("SOUND");
- urls.push("sounds/hit2.ogg");
- types.push("SOUND");
- urls.push("sounds/hit3.ogg");
- types.push("SOUND");
- urls.push("sounds/hit4.ogg");
- types.push("SOUND");
- urls.push("sounds/menu_open.ogg");
- types.push("SOUND");
- urls.push("sounds/new_level_unlocked.ogg");
- types.push("SOUND");
- urls.push("sounds/pinata_crack.ogg");
- types.push("SOUND");
- urls.push("sounds/purchase.ogg");
- types.push("SOUND");
- urls.push("sounds/eating_candies.mp3");
- types.push("SOUND");
- urls.push("sounds/hit1.mp3");
- types.push("SOUND");
- urls.push("sounds/hit2.mp3");
- types.push("SOUND");
- urls.push("sounds/hit3.mp3");
- types.push("SOUND");
- urls.push("sounds/hit4.mp3");
- types.push("SOUND");
- urls.push("sounds/menu_open.mp3");
- types.push("SOUND");
- urls.push("sounds/new_level_unlocked.mp3");
- types.push("SOUND");
- urls.push("sounds/pinata_crack.mp3");
- types.push("SOUND");
- urls.push("sounds/purchase.mp3");
- types.push("SOUND");
- urls.push("musics/music_loop.ogg");
- types.push("MUSIC");
- urls.push("musics/music_loop.mp3");
- types.push("MUSIC");
- urls.push("images/atlas_0.json");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__images_atlas_0_json,[]) , lime.utils.ByteArray));
- urls.push("images/atlas_0.png");
- types.push("IMAGE");
- urls.push("images/atlas_1.json");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__images_atlas_1_json,[]) , lime.utils.ByteArray));
- urls.push("images/atlas_1.png");
- types.push("IMAGE");
- urls.push("images/atlas_2.json");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__images_atlas_2_json,[]) , lime.utils.ByteArray));
- urls.push("images/atlas_2.png");
- types.push("IMAGE");
- urls.push("images/backs/back1.jpg");
- types.push("IMAGE");
- urls.push("images/backs/back2.jpg");
- types.push("IMAGE");
- urls.push("images/backs/back3.jpg");
- types.push("IMAGE");
- urls.push("images/backs/bonus.jpg");
- types.push("IMAGE");
- urls.push("images/fonts/purple/kern.txt");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__images_fonts_purple_kern_txt,[]) , lime.utils.ByteArray));
- urls.push("images/fonts/yellow_big/kern.txt");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__images_fonts_yellow_big_kern_txt,[]) , lime.utils.ByteArray));
- urls.push("images/fonts/yellow_small/kern.txt");
- types.push("TEXT");
- ApplicationMain.embeddedFiles.push(js.Boot.__cast(Type.createInstance(__ASSET__images_fonts_yellow_small_kern_txt,[]) , lime.utils.ByteArray));
- urls.push("images/missions/paintings/paint3.jpg");
- types.push("IMAGE");
- urls.push("images/missions/paintings/paint4.jpg");
- types.push("IMAGE");
- urls.push("images/missions/paintings/paint6.jpg");
- types.push("IMAGE");
- if(ApplicationMain.config.assetsPrefix != null) {
- var _g1 = 0;
- var _g = urls.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(types[i] != "FONT") urls[i] = ApplicationMain.config.assetsPrefix + urls[i];
- }
- }
- ApplicationMain.preloader.load(urls,types);
- var result = app.exec();
- };
- ApplicationMain.init = function() {
- var loaded = 0;
- var total = 0;
- var library_onLoad = function(__) {
- loaded++;
- if(loaded == total) ApplicationMain.start();
- };
- ApplicationMain.preloader = null;
- if(loaded == total) ApplicationMain.start();
- };
- ApplicationMain.main = function() {
- ApplicationMain.config = { antialiasing : 0, background : 0, borderless : false, depthBuffer : false, fps : 0, fullscreen : false, height : 480, orientation : "portrait", resizable : true, stencilBuffer : false, title : "Pinata", vsync : false, width : 320};
- };
- ApplicationMain.start = function() {
- var hasMain = false;
- var entryPoint = Type.resolveClass("Main");
- var _g = 0;
- var _g1 = Type.getClassFields(entryPoint);
- while(_g < _g1.length) {
- var methodName = _g1[_g];
- ++_g;
- if(methodName == "main") {
- hasMain = true;
- break;
- }
- }
- if(hasMain) Reflect.callMethod(entryPoint,Reflect.field(entryPoint,"main"),[]); else {
- var instance = Type.createInstance(DocumentClass,[]);
- }
- openfl.Lib.current.stage.dispatchEvent(new openfl.events.Event(openfl.events.Event.RESIZE,false,false));
- };
- var openfl = {};
- openfl.events = {};
- openfl.events.IEventDispatcher = function() { };
- $hxClasses["openfl.events.IEventDispatcher"] = openfl.events.IEventDispatcher;
- openfl.events.IEventDispatcher.__name__ = ["openfl","events","IEventDispatcher"];
- openfl.events.IEventDispatcher.prototype = {
- __class__: openfl.events.IEventDispatcher
- };
- openfl.events.EventDispatcher = function(target) {
- if(target != null) this.__targetDispatcher = target;
- };
- $hxClasses["openfl.events.EventDispatcher"] = openfl.events.EventDispatcher;
- openfl.events.EventDispatcher.__name__ = ["openfl","events","EventDispatcher"];
- openfl.events.EventDispatcher.__interfaces__ = [openfl.events.IEventDispatcher];
- openfl.events.EventDispatcher.__sortByPriority = function(l1,l2) {
- if(l1.priority == l2.priority) return 0; else if(l1.priority > l2.priority) return -1; else return 1;
- };
- openfl.events.EventDispatcher.prototype = {
- addEventListener: function(type,listener,useCapture,priority,useWeakReference) {
- if(useWeakReference == null) useWeakReference = false;
- if(priority == null) priority = 0;
- if(useCapture == null) useCapture = false;
- if(this.__eventMap == null) this.__eventMap = new haxe.ds.StringMap();
- if(!this.__eventMap.exists(type)) {
- var list = new Array();
- list.push(new openfl.events._EventDispatcher.Listener(listener,useCapture,priority));
- this.__eventMap.set(type,list);
- } else {
- var list1 = this.__eventMap.get(type);
- var _g1 = 0;
- var _g = list1.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(Reflect.compareMethods(list1[i].callback,listener)) return;
- }
- list1.push(new openfl.events._EventDispatcher.Listener(listener,useCapture,priority));
- list1.sort(openfl.events.EventDispatcher.__sortByPriority);
- }
- }
- ,dispatchEvent: function(event) {
- if(this.__eventMap == null || event == null) return false;
- var list = this.__eventMap.get(event.type);
- if(list == null) return false;
- if(event.target == null) {
- if(this.__targetDispatcher != null) event.target = this.__targetDispatcher; else event.target = this;
- }
- event.currentTarget = this;
- var capture = event.eventPhase == openfl.events.EventPhase.CAPTURING_PHASE;
- var index = 0;
- var listener;
- while(index < list.length) {
- listener = list[index];
- if(listener.useCapture == capture) {
- listener.callback(event);
- if(event.__isCancelledNow) return true;
- }
- if(listener == list[index]) index++;
- }
- return true;
- }
- ,hasEventListener: function(type) {
- if(this.__eventMap == null) return false;
- return this.__eventMap.exists(type);
- }
- ,removeEventListener: function(type,listener,capture) {
- if(capture == null) capture = false;
- if(this.__eventMap == null) return;
- var list = this.__eventMap.get(type);
- if(list == null) return;
- var _g1 = 0;
- var _g = list.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(list[i].match(listener,capture)) {
- list.splice(i,1);
- break;
- }
- }
- if(list.length == 0) this.__eventMap.remove(type);
- if(!this.__eventMap.iterator().hasNext()) this.__eventMap = null;
- }
- ,toString: function() {
- var full = Type.getClassName(Type.getClass(this));
- var $short = full.split(".").pop();
- return "[object " + $short + "]";
- }
- ,willTrigger: function(type) {
- return this.hasEventListener(type);
- }
- ,__class__: openfl.events.EventDispatcher
- };
- openfl.display = {};
- openfl.display.IBitmapDrawable = function() { };
- $hxClasses["openfl.display.IBitmapDrawable"] = openfl.display.IBitmapDrawable;
- openfl.display.IBitmapDrawable.__name__ = ["openfl","display","IBitmapDrawable"];
- openfl.display.IBitmapDrawable.prototype = {
- __class__: openfl.display.IBitmapDrawable
- };
- openfl.display.DisplayObject = function() {
- openfl.events.EventDispatcher.call(this);
- this.__alpha = 1;
- this.__rotation = 0;
- this.__scaleX = 1;
- this.__scaleY = 1;
- this.__visible = true;
- this.__x = 0;
- this.__y = 0;
- this.__worldAlpha = 1;
- this.__worldTransform = new openfl.geom.Matrix();
- this.__rotationCache = 0;
- this.__rotationSine = 0;
- this.__rotationCosine = 1;
- this.set_name("instance" + ++openfl.display.DisplayObject.__instanceCount);
- };
- $hxClasses["openfl.display.DisplayObject"] = openfl.display.DisplayObject;
- openfl.display.DisplayObject.__name__ = ["openfl","display","DisplayObject"];
- openfl.display.DisplayObject.__interfaces__ = [openfl.display.IBitmapDrawable];
- openfl.display.DisplayObject.__super__ = openfl.events.EventDispatcher;
- openfl.display.DisplayObject.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- dispatchEvent: function(event) {
- var result = openfl.events.EventDispatcher.prototype.dispatchEvent.call(this,event);
- if(event.__isCancelled) return true;
- if(event.bubbles && this.parent != null && this.parent != this) {
- event.eventPhase = openfl.events.EventPhase.BUBBLING_PHASE;
- this.parent.dispatchEvent(event);
- }
- return result;
- }
- ,getBounds: function(targetCoordinateSpace) {
- var matrix = this.__getTransform();
- if(targetCoordinateSpace != null) {
- matrix = new openfl.geom.Matrix(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty);
- matrix.concat(targetCoordinateSpace.__worldTransform.clone().invert());
- }
- var bounds = new openfl.geom.Rectangle();
- this.__getBounds(bounds,matrix);
- return bounds;
- }
- ,getRect: function(targetCoordinateSpace) {
- return this.getBounds(targetCoordinateSpace);
- }
- ,globalToLocal: function(pos) {
- return this.__getTransform().clone().invert().transformPoint(pos);
- }
- ,hitTestObject: function(obj) {
- if(obj != null && obj.parent != null && this.parent != null) {
- var currentBounds = this.getBounds(this);
- var targetBounds = obj.getBounds(this);
- return currentBounds.intersects(targetBounds);
- }
- return false;
- }
- ,hitTestPoint: function(x,y,shapeFlag) {
- if(shapeFlag == null) shapeFlag = false;
- if(this.parent != null) {
- var currentBounds = this.getBounds(this);
- return currentBounds.containsPoint(new openfl.geom.Point(x,y));
- }
- return false;
- }
- ,localToGlobal: function(point) {
- return this.__getTransform().transformPoint(point);
- }
- ,__broadcast: function(event,notifyChilden) {
- if(this.__eventMap != null && this.hasEventListener(event.type)) {
- var result = openfl.events.EventDispatcher.prototype.dispatchEvent.call(this,event);
- if(event.__isCancelled) return true;
- return result;
- }
- return false;
- }
- ,__getBounds: function(rect,matrix) {
- }
- ,__getInteractive: function(stack) {
- }
- ,__getLocalBounds: function(rect) {
- this.__getTransform();
- this.__getBounds(rect,new openfl.geom.Matrix());
- }
- ,__getTransform: function() {
- if(this.__transformDirty || openfl.display.DisplayObject.__worldTransformDirty > 0) {
- var list = [];
- var current = this;
- var transformDirty = this.__transformDirty;
- if(this.parent == null) {
- if(transformDirty) this.__update(true,false);
- } else while(current.parent != null) {
- list.push(current);
- current = current.parent;
- if(current.__transformDirty) transformDirty = true;
- }
- if(transformDirty) {
- var i = list.length;
- while(--i >= 0) list[i].__update(true,false);
- }
- }
- return this.__worldTransform;
- }
- ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly) {
- return false;
- }
- ,__renderCanvas: function(renderSession) {
- }
- ,__renderDOM: function(renderSession) {
- }
- ,__renderGL: function(renderSession) {
- }
- ,__renderMask: function(renderSession) {
- }
- ,__setStageReference: function(stage) {
- if(this.stage != stage) {
- if(this.stage != null) this.dispatchEvent(new openfl.events.Event(openfl.events.Event.REMOVED_FROM_STAGE,false,false));
- this.stage = stage;
- if(stage != null) this.dispatchEvent(new openfl.events.Event(openfl.events.Event.ADDED_TO_STAGE,false,false));
- }
- }
- ,__setRenderDirty: function() {
- if(!this.__renderDirty) {
- this.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- }
- ,__setTransformDirty: function() {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- ,__update: function(transformOnly,updateChildren) {
- this.__renderable = this.get_visible() && this.get_scaleX() != 0 && this.get_scaleY() != 0 && !this.__isMask;
- if(this.get_rotation() != this.__rotationCache) {
- this.__rotationCache = this.get_rotation();
- var radians = this.get_rotation() * (Math.PI / 180);
- this.__rotationSine = Math.sin(radians);
- this.__rotationCosine = Math.cos(radians);
- }
- if(this.parent != null) {
- var parentTransform = this.parent.__worldTransform;
- var a00 = this.__rotationCosine * this.get_scaleX();
- var a01 = this.__rotationSine * this.get_scaleX();
- var a10 = -this.__rotationSine * this.get_scaleY();
- var a11 = this.__rotationCosine * this.get_scaleY();
- var b00 = parentTransform.a;
- var b01 = parentTransform.b;
- var b10 = parentTransform.c;
- var b11 = parentTransform.d;
- if(this.__worldTransform == null) this.__worldTransform = new openfl.geom.Matrix();
- this.__worldTransform.a = a00 * b00 + a01 * b10;
- this.__worldTransform.b = a00 * b01 + a01 * b11;
- this.__worldTransform.c = a10 * b00 + a11 * b10;
- this.__worldTransform.d = a10 * b01 + a11 * b11;
- if(this.get_scrollRect() == null) {
- this.__worldTransform.tx = this.get_x() * b00 + this.get_y() * b10 + parentTransform.tx;
- this.__worldTransform.ty = this.get_x() * b01 + this.get_y() * b11 + parentTransform.ty;
- } else {
- this.__worldTransform.tx = (this.get_x() - this.get_scrollRect().x) * b00 + (this.get_y() - this.get_scrollRect().y) * b10 + parentTransform.tx;
- this.__worldTransform.ty = (this.get_x() - this.get_scrollRect().x) * b01 + (this.get_y() - this.get_scrollRect().y) * b11 + parentTransform.ty;
- }
- } else {
- this.__worldTransform.a = this.__rotationCosine * this.get_scaleX();
- this.__worldTransform.c = -this.__rotationSine * this.get_scaleY();
- this.__worldTransform.b = this.__rotationSine * this.get_scaleX();
- this.__worldTransform.d = this.__rotationCosine * this.get_scaleY();
- if(this.get_scrollRect() == null) {
- this.__worldTransform.tx = this.get_x();
- this.__worldTransform.ty = this.get_y();
- } else {
- this.__worldTransform.tx = this.get_y() - this.get_scrollRect().x;
- this.__worldTransform.ty = this.get_y() - this.get_scrollRect().y;
- }
- }
- if(updateChildren && this.__transformDirty) {
- this.__transformDirty = false;
- openfl.display.DisplayObject.__worldTransformDirty--;
- }
- if(!transformOnly) {
- if(this.parent != null) this.__worldAlpha = this.get_alpha() * this.parent.__worldAlpha; else this.__worldAlpha = this.get_alpha();
- if(updateChildren && this.__renderDirty) this.__renderDirty = false;
- }
- }
- ,__updateChildren: function(transformOnly) {
- this.__renderable = this.get_visible() && this.get_scaleX() != 0 && this.get_scaleY() != 0 && !this.__isMask;
- if(!this.__renderable && !this.__isMask) return;
- this.__worldAlpha = this.get_alpha();
- if(this.__transformDirty) {
- this.__transformDirty = false;
- openfl.display.DisplayObject.__worldTransformDirty--;
- }
- }
- ,get_alpha: function() {
- return this.__alpha;
- }
- ,set_alpha: function(value) {
- if(value != this.__alpha) {
- if(!this.__renderDirty) {
- this.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- }
- return this.__alpha = value;
- }
- ,get_filters: function() {
- if(this.__filters == null) return new Array(); else return this.__filters.slice();
- }
- ,set_filters: function(value) {
- return value;
- }
- ,get_height: function() {
- var bounds = new openfl.geom.Rectangle();
- this.__getTransform();
- this.__getBounds(bounds,new openfl.geom.Matrix());
- return bounds.height * this.get_scaleY();
- }
- ,set_height: function(value) {
- var bounds = new openfl.geom.Rectangle();
- this.__getTransform();
- this.__getBounds(bounds,new openfl.geom.Matrix());
- if(value != bounds.height) this.set_scaleY(value / bounds.height); else this.set_scaleY(1);
- return value;
- }
- ,get_mask: function() {
- return this.__mask;
- }
- ,set_mask: function(value) {
- if(value != this.__mask) {
- if(!this.__renderDirty) {
- this.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- }
- if(this.__mask != null) this.__mask.__isMask = false;
- if(value != null) value.__isMask = true;
- return this.__mask = value;
- }
- ,get_mouseX: function() {
- if(this.stage != null) return this.globalToLocal(new openfl.geom.Point(this.stage.__mouseX,0)).x;
- return 0;
- }
- ,get_mouseY: function() {
- if(this.stage != null) return this.globalToLocal(new openfl.geom.Point(0,this.stage.__mouseY)).y;
- return 0;
- }
- ,get_name: function() {
- return this.__name;
- }
- ,set_name: function(value) {
- return this.__name = value;
- }
- ,get_root: function() {
- if(this.stage != null) return openfl.Lib.current;
- return null;
- }
- ,get_rotation: function() {
- return this.__rotation;
- }
- ,set_rotation: function(value) {
- if(value != this.__rotation) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- return this.__rotation = value;
- }
- ,get_scaleX: function() {
- return this.__scaleX;
- }
- ,set_scaleX: function(value) {
- if(value != this.__scaleX) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- return this.__scaleX = value;
- }
- ,get_scaleY: function() {
- return this.__scaleY;
- }
- ,set_scaleY: function(value) {
- if(this.__scaleY != value) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- return this.__scaleY = value;
- }
- ,get_scrollRect: function() {
- return this.__scrollRect;
- }
- ,set_scrollRect: function(value) {
- if(value != this.__scrollRect) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- return this.__scrollRect = value;
- }
- ,get_transform: function() {
- if(this.__transform == null) this.__transform = new openfl.geom.Transform(this);
- return this.__transform;
- }
- ,set_transform: function(value) {
- if(value == null) throw new openfl.errors.TypeError("Parameter transform must be non-null.");
- if(this.__transform == null) this.__transform = new openfl.geom.Transform(this);
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- this.__transform.set_matrix(value.get_matrix().clone());
- this.__transform.set_colorTransform(new openfl.geom.ColorTransform(value.get_colorTransform().redMultiplier,value.get_colorTransform().greenMultiplier,value.get_colorTransform().blueMultiplier,value.get_colorTransform().alphaMultiplier,value.get_colorTransform().redOffset,value.get_colorTransform().greenOffset,value.get_colorTransform().blueOffset,value.get_colorTransform().alphaOffset));
- return this.__transform;
- }
- ,get_visible: function() {
- return this.__visible;
- }
- ,set_visible: function(value) {
- if(value != this.__visible) {
- if(!this.__renderDirty) {
- this.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- }
- return this.__visible = value;
- }
- ,get_width: function() {
- var bounds = new openfl.geom.Rectangle();
- this.__getTransform();
- this.__getBounds(bounds,new openfl.geom.Matrix());
- return bounds.width * this.get_scaleX();
- }
- ,set_width: function(value) {
- var bounds = new openfl.geom.Rectangle();
- this.__getTransform();
- this.__getBounds(bounds,new openfl.geom.Matrix());
- if(value != bounds.width) this.set_scaleX(value / bounds.width); else this.set_scaleX(1);
- return value;
- }
- ,get_x: function() {
- return this.__x;
- }
- ,set_x: function(value) {
- if(value != this.__x) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- return this.__x = value;
- }
- ,get_y: function() {
- return this.__y;
- }
- ,set_y: function(value) {
- if(value != this.__y) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- }
- return this.__y = value;
- }
- ,__class__: openfl.display.DisplayObject
- ,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",set_width:"set_width",get_width:"get_width",set_visible:"set_visible",get_visible:"get_visible",set_transform:"set_transform",get_transform:"get_transform",set_scrollRect:"set_scrollRect",get_scrollRect:"get_scrollRect",set_scaleY:"set_scaleY",get_scaleY:"get_scaleY",set_scaleX:"set_scaleX",get_scaleX:"get_scaleX",set_rotation:"set_rotation",get_rotation:"get_rotation",get_root:"get_root",set_name:"set_name",get_name:"get_name",get_mouseY:"get_mouseY",get_mouseX:"get_mouseX",set_mask:"set_mask",get_mask:"get_mask",set_height:"set_height",get_height:"get_height",set_filters:"set_filters",get_filters:"get_filters",set_alpha:"set_alpha",get_alpha:"get_alpha"}
- });
- openfl.display.InteractiveObject = function() {
- openfl.display.DisplayObject.call(this);
- this.doubleClickEnabled = false;
- this.mouseEnabled = true;
- this.needsSoftKeyboard = false;
- this.tabEnabled = true;
- this.tabIndex = -1;
- };
- $hxClasses["openfl.display.InteractiveObject"] = openfl.display.InteractiveObject;
- openfl.display.InteractiveObject.__name__ = ["openfl","display","InteractiveObject"];
- openfl.display.InteractiveObject.__super__ = openfl.display.DisplayObject;
- openfl.display.InteractiveObject.prototype = $extend(openfl.display.DisplayObject.prototype,{
- requestSoftKeyboard: function() {
- openfl.Lib.notImplemented("InteractiveObject.requestSoftKeyboard");
- return false;
- }
- ,__getInteractive: function(stack) {
- stack.push(this);
- if(this.parent != null) this.parent.__getInteractive(stack);
- }
- ,__class__: openfl.display.InteractiveObject
- });
- openfl.display.DisplayObjectContainer = function() {
- openfl.display.InteractiveObject.call(this);
- this.mouseChildren = true;
- this.__children = new Array();
- this.__removedChildren = new Array();
- };
- $hxClasses["openfl.display.DisplayObjectContainer"] = openfl.display.DisplayObjectContainer;
- openfl.display.DisplayObjectContainer.__name__ = ["openfl","display","DisplayObjectContainer"];
- openfl.display.DisplayObjectContainer.__super__ = openfl.display.InteractiveObject;
- openfl.display.DisplayObjectContainer.prototype = $extend(openfl.display.InteractiveObject.prototype,{
- addChild: function(child) {
- if(child != null) {
- if(child.parent != null) child.parent.removeChild(child);
- this.__children.push(child);
- child.parent = this;
- if(this.stage != null) child.__setStageReference(this.stage);
- if(!child.__transformDirty) {
- child.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- if(!child.__renderDirty) {
- child.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- var event = new openfl.events.Event(openfl.events.Event.ADDED,true);
- event.target = child;
- child.dispatchEvent(event);
- }
- return child;
- }
- ,addChildAt: function(child,index) {
- if(index > this.__children.length || index < 0) throw "Invalid index position " + index;
- if(child.parent == this) HxOverrides.remove(this.__children,child); else {
- if(child.parent != null) child.parent.removeChild(child);
- child.parent = this;
- if(this.stage != null) child.__setStageReference(this.stage);
- if(!child.__transformDirty) {
- child.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- if(!child.__renderDirty) {
- child.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- var event = new openfl.events.Event(openfl.events.Event.ADDED,true);
- event.target = child;
- child.dispatchEvent(event);
- }
- this.__children.splice(index,0,child);
- return child;
- }
- ,areInaccessibleObjectsUnderPoint: function(point) {
- return false;
- }
- ,contains: function(child) {
- return HxOverrides.indexOf(this.__children,child,0) > -1;
- }
- ,getChildAt: function(index) {
- if(index >= 0 && index < this.__children.length) return this.__children[index];
- return null;
- }
- ,getChildByName: function(name) {
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- if(child.get_name() == name) return child;
- }
- return null;
- }
- ,getChildIndex: function(child) {
- var _g1 = 0;
- var _g = this.__children.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(this.__children[i] == child) return i;
- }
- return -1;
- }
- ,getObjectsUnderPoint: function(point) {
- point = this.localToGlobal(point);
- var stack = new Array();
- this.__hitTest(point.x,point.y,false,stack,false);
- stack.reverse();
- return stack;
- }
- ,removeChild: function(child) {
- if(child != null && child.parent == this) {
- if(this.stage != null) child.__setStageReference(null);
- child.parent = null;
- HxOverrides.remove(this.__children,child);
- this.__removedChildren.push(child);
- if(!child.__transformDirty) {
- child.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- if(!child.__renderDirty) {
- child.__renderDirty = true;
- openfl.display.DisplayObject.__worldRenderDirty++;
- }
- child.dispatchEvent(new openfl.events.Event(openfl.events.Event.REMOVED,true));
- }
- return child;
- }
- ,removeChildAt: function(index) {
- if(index >= 0 && index < this.__children.length) return this.removeChild(this.__children[index]);
- return null;
- }
- ,removeChildren: function(beginIndex,endIndex) {
- if(endIndex == null) endIndex = 2147483647;
- if(beginIndex == null) beginIndex = 0;
- if(endIndex == 2147483647) {
- endIndex = this.__children.length - 1;
- if(endIndex < 0) return;
- }
- if(beginIndex > this.__children.length - 1) return; else if(endIndex < beginIndex || beginIndex < 0 || endIndex > this.__children.length) throw new openfl.errors.RangeError("The supplied index is out of bounds.");
- var numRemovals = endIndex - beginIndex;
- while(numRemovals >= 0) {
- this.removeChildAt(beginIndex);
- numRemovals--;
- }
- }
- ,setChildIndex: function(child,index) {
- if(index >= 0 && index <= this.__children.length && child.parent == this) {
- HxOverrides.remove(this.__children,child);
- this.__children.splice(index,0,child);
- }
- }
- ,swapChildren: function(child1,child2) {
- if(child1.parent == this && child2.parent == this) {
- var index1 = HxOverrides.indexOf(this.__children,child1,0);
- var index2 = HxOverrides.indexOf(this.__children,child2,0);
- this.__children[index1] = child2;
- this.__children[index2] = child1;
- }
- }
- ,swapChildrenAt: function(child1,child2) {
- var swap = this.__children[child1];
- this.__children[child1] = this.__children[child2];
- this.__children[child2] = swap;
- swap = null;
- }
- ,__broadcast: function(event,notifyChilden) {
- if(event.target == null) event.target = this;
- if(notifyChilden) {
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__broadcast(event,true);
- if(event.__isCancelled) return true;
- }
- }
- return openfl.display.InteractiveObject.prototype.__broadcast.call(this,event,notifyChilden);
- }
- ,__getBounds: function(rect,matrix) {
- if(this.__children.length == 0) return;
- var matrixCache = null;
- if(matrix != null) {
- matrixCache = this.__worldTransform;
- this.__worldTransform = matrix;
- this.__updateChildren(true);
- }
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- if(!child.__renderable) continue;
- child.__getBounds(rect,null);
- }
- if(matrix != null) {
- this.__worldTransform = matrixCache;
- this.__updateChildren(true);
- }
- }
- ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly) {
- if(!this.get_visible() || interactiveOnly && !this.mouseEnabled) return false;
- var i = this.__children.length;
- if(interactiveOnly) {
- if(stack == null || !this.mouseChildren) {
- while(--i >= 0) if(this.__children[i].__hitTest(x,y,shapeFlag,null,true)) {
- if(stack != null) stack.push(this);
- return true;
- }
- } else if(stack != null) {
- var length = stack.length;
- while(--i >= 0) if(this.__children[i].__hitTest(x,y,shapeFlag,stack,interactiveOnly)) {
- stack.splice(length,0,this);
- return true;
- }
- }
- } else while(--i >= 0) this.__children[i].__hitTest(x,y,shapeFlag,stack,false);
- return false;
- }
- ,__renderCanvas: function(renderSession) {
- if(!this.__renderable || this.__worldAlpha <= 0) return;
- if(this.get_scrollRect() != null) {
- }
- if(this.__mask != null) renderSession.maskManager.pushMask(this.__mask);
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__renderCanvas(renderSession);
- }
- this.__removedChildren = [];
- if(this.__mask != null) renderSession.maskManager.popMask();
- if(this.get_scrollRect() != null) {
- }
- }
- ,__renderDOM: function(renderSession) {
- if(this.__mask != null) renderSession.maskManager.pushMask(this.__mask);
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__renderDOM(renderSession);
- }
- var _g2 = 0;
- var _g11 = this.__removedChildren;
- while(_g2 < _g11.length) {
- var orphan = _g11[_g2];
- ++_g2;
- if(orphan.stage == null) orphan.__renderDOM(renderSession);
- }
- this.__removedChildren = [];
- if(this.__mask != null) renderSession.maskManager.popMask();
- }
- ,__renderGL: function(renderSession) {
- if(!this.__renderable || this.__worldAlpha <= 0) return;
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__renderGL(renderSession);
- }
- this.__removedChildren = [];
- }
- ,__renderMask: function(renderSession) {
- var bounds = new openfl.geom.Rectangle();
- this.__getTransform();
- this.__getBounds(bounds,new openfl.geom.Matrix());
- renderSession.context.rect(0,0,bounds.width,bounds.height);
- }
- ,__setStageReference: function(stage) {
- if(this.stage != stage) {
- if(this.stage != null) this.dispatchEvent(new openfl.events.Event(openfl.events.Event.REMOVED_FROM_STAGE,false,false));
- this.stage = stage;
- if(stage != null) this.dispatchEvent(new openfl.events.Event(openfl.events.Event.ADDED_TO_STAGE,false,false));
- if(this.__children != null) {
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__setStageReference(stage);
- }
- }
- }
- }
- ,__update: function(transformOnly,updateChildren) {
- openfl.display.InteractiveObject.prototype.__update.call(this,transformOnly,updateChildren);
- if(!this.__renderable) return;
- if(updateChildren) {
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__update(transformOnly,true);
- }
- }
- }
- ,__updateChildren: function(transformOnly) {
- openfl.display.InteractiveObject.prototype.__updateChildren.call(this,transformOnly);
- var _g = 0;
- var _g1 = this.__children;
- while(_g < _g1.length) {
- var child = _g1[_g];
- ++_g;
- child.__update(transformOnly,true);
- }
- }
- ,get_numChildren: function() {
- return this.__children.length;
- }
- ,__class__: openfl.display.DisplayObjectContainer
- ,__properties__: $extend(openfl.display.InteractiveObject.prototype.__properties__,{get_numChildren:"get_numChildren"})
- });
- openfl.display.Sprite = function() {
- openfl.display.DisplayObjectContainer.call(this);
- this.buttonMode = false;
- this.useHandCursor = true;
- this.loaderInfo = openfl.display.LoaderInfo.create(null);
- };
- $hxClasses["openfl.display.Sprite"] = openfl.display.Sprite;
- openfl.display.Sprite.__name__ = ["openfl","display","Sprite"];
- openfl.display.Sprite.__super__ = openfl.display.DisplayObjectContainer;
- openfl.display.Sprite.prototype = $extend(openfl.display.DisplayObjectContainer.prototype,{
- startDrag: function(lockCenter,bounds) {
- if(lockCenter == null) lockCenter = false;
- if(this.stage != null) this.stage.__startDrag(this,lockCenter,bounds);
- }
- ,stopDrag: function() {
- if(this.stage != null) this.stage.__stopDrag(this);
- }
- ,__getBounds: function(rect,matrix) {
- openfl.display.DisplayObjectContainer.prototype.__getBounds.call(this,rect,matrix);
- if(this.__graphics != null) this.__graphics.__getBounds(rect,matrix != null?matrix:this.__worldTransform);
- }
- ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly) {
- if(!this.get_visible() || interactiveOnly && !this.mouseEnabled) return false;
- var length = 0;
- if(stack != null) length = stack.length;
- if(openfl.display.DisplayObjectContainer.prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly)) return interactiveOnly; else if(this.__graphics != null && this.__graphics.__hitTest(x,y,shapeFlag,this.__getTransform())) {
- if(stack != null) stack.push(this);
- return true;
- }
- return false;
- }
- ,__renderCanvas: function(renderSession) {
- openfl._internal.renderer.canvas.CanvasShape.render(this,renderSession);
- openfl.display.DisplayObjectContainer.prototype.__renderCanvas.call(this,renderSession);
- }
- ,__renderDOM: function(renderSession) {
- openfl._internal.renderer.dom.DOMShape.render(this,renderSession);
- openfl.display.DisplayObjectContainer.prototype.__renderDOM.call(this,renderSession);
- }
- ,__renderGL: function(renderSession) {
- if(!this.__renderable || this.__worldAlpha <= 0) return;
- if(this.__graphics != null) openfl._internal.renderer.opengl.utils.GraphicsRenderer.render(this,renderSession);
- openfl.display.DisplayObjectContainer.prototype.__renderGL.call(this,renderSession);
- }
- ,__renderMask: function(renderSession) {
- if(this.__graphics != null) openfl._internal.renderer.canvas.CanvasGraphics.renderMask(this.__graphics,renderSession); else openfl.display.DisplayObjectContainer.prototype.__renderMask.call(this,renderSession);
- }
- ,get_graphics: function() {
- if(this.__graphics == null) this.__graphics = new openfl.display.Graphics();
- return this.__graphics;
- }
- ,__class__: openfl.display.Sprite
- ,__properties__: $extend(openfl.display.DisplayObjectContainer.prototype.__properties__,{get_graphics:"get_graphics"})
- });
- var Main = function() {
- openfl.display.Sprite.call(this);
- this.addEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.handleAddedToStage));
- };
- $hxClasses["Main"] = Main;
- Main.__name__ = ["Main"];
- Main.__super__ = openfl.display.Sprite;
- Main.prototype = $extend(openfl.display.Sprite.prototype,{
- handleAddedToStage: function(e) {
- this.removeEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.handleAddedToStage));
- this.addChild(new co.doubleduck.pinata.Game());
- }
- ,__class__: Main
- });
- var DocumentClass = function() {
- openfl.Lib.current.addChild(this);
- Main.call(this);
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.ADDED_TO_STAGE,false,false));
- };
- $hxClasses["DocumentClass"] = DocumentClass;
- DocumentClass.__name__ = ["DocumentClass"];
- DocumentClass.__super__ = Main;
- DocumentClass.prototype = $extend(Main.prototype,{
- __class__: DocumentClass
- });
- var DateTools = function() { };
- $hxClasses["DateTools"] = DateTools;
- DateTools.__name__ = ["DateTools"];
- DateTools.__format_get = function(d,e) {
- switch(e) {
- case "%":
- return "%";
- case "C":
- return StringTools.lpad(Std.string(Std["int"](d.getFullYear() / 100)),"0",2);
- case "d":
- return StringTools.lpad(Std.string(d.getDate()),"0",2);
- case "D":
- return DateTools.__format(d,"%m/%d/%y");
- case "e":
- return Std.string(d.getDate());
- case "H":case "k":
- return StringTools.lpad(Std.string(d.getHours()),e == "H"?"0":" ",2);
- case "I":case "l":
- var hour = d.getHours() % 12;
- return StringTools.lpad(Std.string(hour == 0?12:hour),e == "I"?"0":" ",2);
- case "m":
- return StringTools.lpad(Std.string(d.getMonth() + 1),"0",2);
- case "M":
- return StringTools.lpad(Std.string(d.getMinutes()),"0",2);
- case "n":
- return "\n";
- case "p":
- if(d.getHours() > 11) return "PM"; else return "AM";
- break;
- case "r":
- return DateTools.__format(d,"%I:%M:%S %p");
- case "R":
- return DateTools.__format(d,"%H:%M");
- case "s":
- return Std.string(Std["int"](d.getTime() / 1000));
- case "S":
- return StringTools.lpad(Std.string(d.getSeconds()),"0",2);
- case "t":
- return "\t";
- case "T":
- return DateTools.__format(d,"%H:%M:%S");
- case "u":
- var t = d.getDay();
- if(t == 0) return "7"; else if(t == null) return "null"; else return "" + t;
- break;
- case "w":
- return Std.string(d.getDay());
- case "y":
- return StringTools.lpad(Std.string(d.getFullYear() % 100),"0",2);
- case "Y":
- return Std.string(d.getFullYear());
- default:
- throw "Date.format %" + e + "- not implemented yet.";
- }
- };
- DateTools.__format = function(d,f) {
- var r = new StringBuf();
- var p = 0;
- while(true) {
- var np = f.indexOf("%",p);
- if(np < 0) break;
- r.addSub(f,p,np - p);
- r.add(DateTools.__format_get(d,HxOverrides.substr(f,np + 1,1)));
- p = np + 2;
- }
- r.addSub(f,p,f.length - p);
- return r.b;
- };
- DateTools.format = function(d,f) {
- return DateTools.__format(d,f);
- };
- lime.AssetLibrary = function() {
- };
- $hxClasses["lime.AssetLibrary"] = lime.AssetLibrary;
- lime.AssetLibrary.__name__ = ["lime","AssetLibrary"];
- lime.AssetLibrary.prototype = {
- exists: function(id,type) {
- return false;
- }
- ,getAudioBuffer: function(id) {
- return null;
- }
- ,getBytes: function(id) {
- return null;
- }
- ,getFont: function(id) {
- return null;
- }
- ,getImage: function(id) {
- return null;
- }
- ,getPath: function(id) {
- return null;
- }
- ,getText: function(id) {
- var bytes = this.getBytes(id);
- if(bytes == null) return null; else return bytes.readUTFBytes(bytes.length);
- }
- ,isLocal: function(id,type) {
- return true;
- }
- ,list: function(type) {
- return null;
- }
- ,load: function(handler) {
- handler(this);
- }
- ,loadAudioBuffer: function(id,handler) {
- handler(this.getAudioBuffer(id));
- }
- ,loadBytes: function(id,handler) {
- handler(this.getBytes(id));
- }
- ,loadFont: function(id,handler) {
- handler(this.getFont(id));
- }
- ,loadImage: function(id,handler) {
- handler(this.getImage(id));
- }
- ,loadText: function(id,handler) {
- var callback = function(bytes) {
- if(bytes == null) handler(null); else handler(bytes.readUTFBytes(bytes.length));
- };
- this.loadBytes(id,callback);
- }
- ,__class__: lime.AssetLibrary
- };
- var DefaultAssetLibrary = function() {
- this.atlasAssets = new haxe.ds.StringMap();
- this.type = new haxe.ds.StringMap();
- this.path = new haxe.ds.StringMap();
- this.className = new haxe.ds.StringMap();
- lime.AssetLibrary.call(this);
- var id;
- id = "data/gameplay.js";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "sounds/eating_candies.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit1.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit2.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit3.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit4.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/menu_open.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/new_level_unlocked.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/pinata_crack.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/purchase.ogg";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/eating_candies.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit1.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit2.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit3.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/hit4.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/menu_open.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/new_level_unlocked.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/pinata_crack.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "sounds/purchase.mp3";
- this.path.set(id,id);
- this.type.set(id,"SOUND");
- id = "musics/music_loop.ogg";
- this.path.set(id,id);
- this.type.set(id,"MUSIC");
- id = "musics/music_loop.mp3";
- this.path.set(id,id);
- this.type.set(id,"MUSIC");
- id = "images/atlas_0.json";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "images/atlas_0.png";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/atlas_1.json";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "images/atlas_1.png";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/atlas_2.json";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "images/atlas_2.png";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/backs/back1.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/backs/back2.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/backs/back3.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/backs/bonus.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/fonts/purple/kern.txt";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "images/fonts/yellow_big/kern.txt";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "images/fonts/yellow_small/kern.txt";
- this.path.set(id,id);
- this.type.set(id,"TEXT");
- id = "images/missions/paintings/paint3.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/missions/paintings/paint4.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- id = "images/missions/paintings/paint6.jpg";
- this.path.set(id,id);
- this.type.set(id,"IMAGE");
- var assetsPrefix = ApplicationMain.config.assetsPrefix;
- if(assetsPrefix != null) {
- var $it0 = this.path.keys();
- while( $it0.hasNext() ) {
- var k = $it0.next();
- var value = assetsPrefix + this.path.get(k);
- this.path.set(k,value);
- }
- }
- this.addAssetsFromAtlas();
- };
- $hxClasses["DefaultAssetLibrary"] = DefaultAssetLibrary;
- DefaultAssetLibrary.__name__ = ["DefaultAssetLibrary"];
- DefaultAssetLibrary.__super__ = lime.AssetLibrary;
- DefaultAssetLibrary.prototype = $extend(lime.AssetLibrary.prototype,{
- addAssetsFromAtlas: function() {
- var $it0 = this.type.keys();
- while( $it0.hasNext() ) {
- var asset = $it0.next();
- if(this.type.get(asset) == "TEXT" && asset.indexOf("atlas") != -1) {
- var json = JSON.parse(this.getText(asset));
- var assetsArr = json.data;
- var atlasFile = asset.split(".")[0] + ".png";
- var atlasBd = this.getImage(atlasFile);
- var _g = 0;
- while(_g < assetsArr.length) {
- var atlasAsset = assetsArr[_g];
- ++_g;
- var key = atlasAsset.path;
- this.type.set(key,"IMAGE");
- var bd = new lime.graphics.Image(null,0,0,atlasAsset.width,atlasAsset.height);
- bd.copyPixels(atlasBd,new lime.math.Rectangle(atlasAsset.x,atlasAsset.y,atlasAsset.width,atlasAsset.height),new lime.math.Vector2(0,0));
- var key1 = atlasAsset.path;
- this.atlasAssets.set(key1,bd);
- }
- atlasBd = null;
- }
- }
- }
- ,exists: function(id,type) {
- var requestedType;
- if(type != null) requestedType = js.Boot.__cast(type , String); else requestedType = null;
- var assetType = this.type.get(id);
- if(assetType != null) {
- if(assetType == requestedType || (requestedType == "SOUND" || requestedType == "MUSIC") && (assetType == "MUSIC" || assetType == "SOUND")) return true;
- if(requestedType == "BINARY" || requestedType == null || assetType == "BINARY" && requestedType == "TEXT") return true;
- }
- return false;
- }
- ,getAudioBuffer: function(id) {
- return null;
- }
- ,getBytes: function(id) {
- var bytes = null;
- var data = ((function($this) {
- var $r;
- var key = $this.path.get(id);
- $r = lime.app.Preloader.loaders.get(key);
- return $r;
- }(this))).data;
- if(typeof(data) == "string") {
- bytes = new lime.utils.ByteArray();
- bytes.writeUTFBytes(data);
- } else if(js.Boot.__instanceof(data,lime.utils.ByteArray)) bytes = data; else bytes = null;
- if(bytes != null) {
- bytes.position = 0;
- return bytes;
- } else return null;
- }
- ,getFont: function(id) {
- return js.Boot.__cast(Type.createInstance(this.className.get(id),[]) , openfl.text.Font);
- return null;
- }
- ,getImage: function(id) {
- if(this.path.get(id) == null) {
- if(this.atlasAssets.exists(id)) {
- var ret = this.atlasAssets.get(id);
- this.atlasAssets.remove(id);
- return ret;
- }
- return null;
- }
- return lime.graphics.Image.fromImageElement((function($this) {
- var $r;
- var key = $this.path.get(id);
- $r = lime.app.Preloader.images.get(key);
- return $r;
- }(this)));
- }
- ,getPath: function(id) {
- return this.path.get(id);
- }
- ,getText: function(id) {
- var bytes = null;
- var data = ((function($this) {
- var $r;
- var key = $this.path.get(id);
- $r = lime.app.Preloader.loaders.get(key);
- return $r;
- }(this))).data;
- if(typeof(data) == "string") return data; else if(js.Boot.__instanceof(data,lime.utils.ByteArray)) bytes = data; else bytes = null;
- if(bytes != null) {
- bytes.position = 0;
- return bytes.readUTFBytes(bytes.length);
- } else return null;
- }
- ,isLocal: function(id,type) {
- var requestedType;
- if(type != null) requestedType = js.Boot.__cast(type , String); else requestedType = null;
- return true;
- }
- ,list: function(type) {
- var requestedType;
- if(type != null) requestedType = js.Boot.__cast(type , String); else requestedType = null;
- var items = [];
- var $it0 = this.type.keys();
- while( $it0.hasNext() ) {
- var id = $it0.next();
- if(requestedType == null || this.exists(id,type)) items.push(id);
- }
- return items;
- }
- ,loadAudioBuffer: function(id,handler) {
- handler(this.getAudioBuffer(id));
- }
- ,loadBytes: function(id,handler) {
- handler(this.getBytes(id));
- }
- ,loadImage: function(id,handler) {
- handler(this.getImage(id));
- }
- ,loadText: function(id,handler) {
- var callback = function(bytes) {
- if(bytes == null) handler(null); else handler(bytes.readUTFBytes(bytes.length));
- };
- this.loadBytes(id,callback);
- }
- ,__class__: DefaultAssetLibrary
- });
- var EReg = function(r,opt) {
- opt = opt.split("u").join("");
- this.r = new RegExp(r,opt);
- };
- $hxClasses["EReg"] = EReg;
- EReg.__name__ = ["EReg"];
- EReg.prototype = {
- replace: function(s,by) {
- return s.replace(this.r,by);
- }
- ,__class__: EReg
- };
- var GlobalVars = function() { };
- $hxClasses["GlobalVars"] = GlobalVars;
- GlobalVars.__name__ = ["GlobalVars"];
- var HxOverrides = function() { };
- $hxClasses["HxOverrides"] = HxOverrides;
- HxOverrides.__name__ = ["HxOverrides"];
- HxOverrides.dateStr = function(date) {
- var m = date.getMonth() + 1;
- var d = date.getDate();
- var h = date.getHours();
- var mi = date.getMinutes();
- var s = date.getSeconds();
- return date.getFullYear() + "-" + (m < 10?"0" + m:"" + m) + "-" + (d < 10?"0" + d:"" + d) + " " + (h < 10?"0" + h:"" + h) + ":" + (mi < 10?"0" + mi:"" + mi) + ":" + (s < 10?"0" + s:"" + s);
- };
- HxOverrides.strDate = function(s) {
- var _g = s.length;
- switch(_g) {
- case 8:
- var k = s.split(":");
- var d = new Date();
- d.setTime(0);
- d.setUTCHours(k[0]);
- d.setUTCMinutes(k[1]);
- d.setUTCSeconds(k[2]);
- return d;
- case 10:
- var k1 = s.split("-");
- return new Date(k1[0],k1[1] - 1,k1[2],0,0,0);
- case 19:
- var k2 = s.split(" ");
- var y = k2[0].split("-");
- var t = k2[1].split(":");
- return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]);
- default:
- throw "Invalid date format : " + s;
- }
- };
- HxOverrides.cca = function(s,index) {
- var x = s.charCodeAt(index);
- if(x != x) return undefined;
- return x;
- };
- HxOverrides.substr = function(s,pos,len) {
- if(pos != null && pos != 0 && len != null && len < 0) return "";
- if(len == null) len = s.length;
- if(pos < 0) {
- pos = s.length + pos;
- if(pos < 0) pos = 0;
- } else if(len < 0) len = s.length + len - pos;
- return s.substr(pos,len);
- };
- HxOverrides.indexOf = function(a,obj,i) {
- var len = a.length;
- if(i < 0) {
- i += len;
- if(i < 0) i = 0;
- }
- while(i < len) {
- if(a[i] === obj) return i;
- i++;
- }
- return -1;
- };
- HxOverrides.remove = function(a,obj) {
- var i = HxOverrides.indexOf(a,obj,0);
- if(i == -1) return false;
- a.splice(i,1);
- return true;
- };
- HxOverrides.iter = function(a) {
- return { cur : 0, arr : a, hasNext : function() {
- return this.cur < this.arr.length;
- }, next : function() {
- return this.arr[this.cur++];
- }};
- };
- var Lambda = function() { };
- $hxClasses["Lambda"] = Lambda;
- Lambda.__name__ = ["Lambda"];
- Lambda.exists = function(it,f) {
- var $it0 = $iterator(it)();
- while( $it0.hasNext() ) {
- var x = $it0.next();
- if(f(x)) return true;
- }
- return false;
- };
- Lambda.filter = function(it,f) {
- var l = new List();
- var $it0 = $iterator(it)();
- while( $it0.hasNext() ) {
- var x = $it0.next();
- if(f(x)) l.add(x);
- }
- return l;
- };
- var List = function() {
- this.length = 0;
- };
- $hxClasses["List"] = List;
- List.__name__ = ["List"];
- List.prototype = {
- add: function(item) {
- var x = [item];
- if(this.h == null) this.h = x; else this.q[1] = x;
- this.q = x;
- this.length++;
- }
- ,push: function(item) {
- var x = [item,this.h];
- this.h = x;
- if(this.q == null) this.q = x;
- this.length++;
- }
- ,iterator: function() {
- return { h : this.h, hasNext : function() {
- return this.h != null;
- }, next : function() {
- if(this.h == null) return null;
- var x = this.h[0];
- this.h = this.h[1];
- return x;
- }};
- }
- ,__class__: List
- };
- var IMap = function() { };
- $hxClasses["IMap"] = IMap;
- IMap.__name__ = ["IMap"];
- IMap.prototype = {
- __class__: IMap
- };
- Math.__name__ = ["Math"];
- var NMEPreloader = function() {
- openfl.display.Sprite.call(this);
- var backgroundColor = this.getBackgroundColor();
- var r = backgroundColor >> 16 & 255;
- var g = backgroundColor >> 8 & 255;
- var b = backgroundColor & 255;
- var perceivedLuminosity = 0.299 * r + 0.587 * g + 0.114 * b;
- var color = 0;
- if(perceivedLuminosity < 70) color = 16777215;
- var x = 30;
- var height = 7;
- var y = this.getHeight() / 2 - height / 2;
- var width = this.getWidth() - x * 2;
- var padding = 2;
- this.outline = new openfl.display.Sprite();
- this.outline.get_graphics().beginFill(color,0.07);
- this.outline.get_graphics().drawRect(0,0,width,height);
- this.outline.set_x(x);
- this.outline.set_y(y);
- this.addChild(this.outline);
- this.progress = new openfl.display.Sprite();
- this.progress.get_graphics().beginFill(color,0.35);
- this.progress.get_graphics().drawRect(0,0,width - padding * 2,height - padding * 2);
- this.progress.set_x(x + padding);
- this.progress.set_y(y + padding);
- this.progress.set_scaleX(0);
- this.addChild(this.progress);
- };
- $hxClasses["NMEPreloader"] = NMEPreloader;
- NMEPreloader.__name__ = ["NMEPreloader"];
- NMEPreloader.__super__ = openfl.display.Sprite;
- NMEPreloader.prototype = $extend(openfl.display.Sprite.prototype,{
- getBackgroundColor: function() {
- return 0;
- }
- ,getHeight: function() {
- var height = 480;
- if(height > 0) return height; else return openfl.Lib.current.stage.stageHeight;
- }
- ,getWidth: function() {
- var width = 320;
- if(width > 0) return width; else return openfl.Lib.current.stage.stageWidth;
- }
- ,onInit: function() {
- }
- ,onLoaded: function() {
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.COMPLETE));
- }
- ,onUpdate: function(bytesLoaded,bytesTotal) {
- var percentLoaded = bytesLoaded / bytesTotal;
- if(percentLoaded > 1) percentLoaded = 1;
- this.progress.set_scaleX(percentLoaded);
- }
- ,__class__: NMEPreloader
- });
- var Std = function() { };
- $hxClasses["Std"] = Std;
- Std.__name__ = ["Std"];
- Std.string = function(s) {
- return js.Boot.__string_rec(s,"");
- };
- Std["int"] = function(x) {
- return x | 0;
- };
- Std.parseInt = function(x) {
- var v = parseInt(x,10);
- if(v == 0 && (HxOverrides.cca(x,1) == 120 || HxOverrides.cca(x,1) == 88)) v = parseInt(x);
- if(isNaN(v)) return null;
- return v;
- };
- Std.parseFloat = function(x) {
- return parseFloat(x);
- };
- Std.random = function(x) {
- if(x <= 0) return 0; else return Math.floor(Math.random() * x);
- };
- var StringBuf = function() {
- this.b = "";
- };
- $hxClasses["StringBuf"] = StringBuf;
- StringBuf.__name__ = ["StringBuf"];
- StringBuf.prototype = {
- add: function(x) {
- this.b += Std.string(x);
- }
- ,addSub: function(s,pos,len) {
- if(len == null) this.b += HxOverrides.substr(s,pos,null); else this.b += HxOverrides.substr(s,pos,len);
- }
- ,__class__: StringBuf
- };
- var StringTools = function() { };
- $hxClasses["StringTools"] = StringTools;
- StringTools.__name__ = ["StringTools"];
- StringTools.urlEncode = function(s) {
- return encodeURIComponent(s);
- };
- StringTools.urlDecode = function(s) {
- return decodeURIComponent(s.split("+").join(" "));
- };
- StringTools.startsWith = function(s,start) {
- return s.length >= start.length && HxOverrides.substr(s,0,start.length) == start;
- };
- StringTools.lpad = function(s,c,l) {
- if(c.length <= 0) return s;
- while(s.length < l) s = c + s;
- return s;
- };
- StringTools.replace = function(s,sub,by) {
- return s.split(sub).join(by);
- };
- StringTools.hex = function(n,digits) {
- var s = "";
- var hexChars = "0123456789ABCDEF";
- do {
- s = hexChars.charAt(n & 15) + s;
- n >>>= 4;
- } while(n > 0);
- if(digits != null) while(s.length < digits) s = "0" + s;
- return s;
- };
- StringTools.fastCodeAt = function(s,index) {
- return s.charCodeAt(index);
- };
- var ValueType = $hxClasses["ValueType"] = { __ename__ : ["ValueType"], __constructs__ : ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"] };
- ValueType.TNull = ["TNull",0];
- ValueType.TNull.toString = $estr;
- ValueType.TNull.__enum__ = ValueType;
- ValueType.TInt = ["TInt",1];
- ValueType.TInt.toString = $estr;
- ValueType.TInt.__enum__ = ValueType;
- ValueType.TFloat = ["TFloat",2];
- ValueType.TFloat.toString = $estr;
- ValueType.TFloat.__enum__ = ValueType;
- ValueType.TBool = ["TBool",3];
- ValueType.TBool.toString = $estr;
- ValueType.TBool.__enum__ = ValueType;
- ValueType.TObject = ["TObject",4];
- ValueType.TObject.toString = $estr;
- ValueType.TObject.__enum__ = ValueType;
- ValueType.TFunction = ["TFunction",5];
- ValueType.TFunction.toString = $estr;
- ValueType.TFunction.__enum__ = ValueType;
- ValueType.TClass = function(c) { var $x = ["TClass",6,c]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; };
- ValueType.TEnum = function(e) { var $x = ["TEnum",7,e]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; };
- ValueType.TUnknown = ["TUnknown",8];
- ValueType.TUnknown.toString = $estr;
- ValueType.TUnknown.__enum__ = ValueType;
- var Type = function() { };
- $hxClasses["Type"] = Type;
- Type.__name__ = ["Type"];
- Type.getClass = function(o) {
- if(o == null) return null;
- return js.Boot.getClass(o);
- };
- Type.getClassName = function(c) {
- var a = c.__name__;
- return a.join(".");
- };
- Type.getEnumName = function(e) {
- var a = e.__ename__;
- return a.join(".");
- };
- Type.resolveClass = function(name) {
- var cl = $hxClasses[name];
- if(cl == null || !cl.__name__) return null;
- return cl;
- };
- Type.resolveEnum = function(name) {
- var e = $hxClasses[name];
- if(e == null || !e.__ename__) return null;
- return e;
- };
- Type.createInstance = function(cl,args) {
- var _g = args.length;
- switch(_g) {
- case 0:
- return new cl();
- case 1:
- return new cl(args[0]);
- case 2:
- return new cl(args[0],args[1]);
- case 3:
- return new cl(args[0],args[1],args[2]);
- case 4:
- return new cl(args[0],args[1],args[2],args[3]);
- case 5:
- return new cl(args[0],args[1],args[2],args[3],args[4]);
- case 6:
- return new cl(args[0],args[1],args[2],args[3],args[4],args[5]);
- case 7:
- return new cl(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);
- case 8:
- return new cl(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]);
- default:
- throw "Too many arguments";
- }
- return null;
- };
- Type.createEmptyInstance = function(cl) {
- function empty() {}; empty.prototype = cl.prototype;
- return new empty();
- };
- Type.createEnum = function(e,constr,params) {
- var f = Reflect.field(e,constr);
- if(f == null) throw "No such constructor " + constr;
- if(Reflect.isFunction(f)) {
- if(params == null) throw "Constructor " + constr + " need parameters";
- return f.apply(e,params);
- }
- if(params != null && params.length != 0) throw "Constructor " + constr + " does not need parameters";
- return f;
- };
- Type.createEnumIndex = function(e,index,params) {
- var c = e.__constructs__[index];
- if(c == null) throw index + " is not a valid enum constructor index";
- return Type.createEnum(e,c,params);
- };
- Type.getClassFields = function(c) {
- var a = Reflect.fields(c);
- HxOverrides.remove(a,"__name__");
- HxOverrides.remove(a,"__interfaces__");
- HxOverrides.remove(a,"__properties__");
- HxOverrides.remove(a,"__super__");
- HxOverrides.remove(a,"prototype");
- return a;
- };
- Type.getEnumConstructs = function(e) {
- var a = e.__constructs__;
- return a.slice();
- };
- Type["typeof"] = function(v) {
- var _g = typeof(v);
- switch(_g) {
- case "boolean":
- return ValueType.TBool;
- case "string":
- return ValueType.TClass(String);
- case "number":
- if(Math.ceil(v) == v % 2147483648.0) return ValueType.TInt;
- return ValueType.TFloat;
- case "object":
- if(v == null) return ValueType.TNull;
- var e = v.__enum__;
- if(e != null) return ValueType.TEnum(e);
- var c = js.Boot.getClass(v);
- if(c != null) return ValueType.TClass(c);
- return ValueType.TObject;
- case "function":
- if(v.__name__ || v.__ename__) return ValueType.TObject;
- return ValueType.TFunction;
- case "undefined":
- return ValueType.TNull;
- default:
- return ValueType.TUnknown;
- }
- };
- Type.enumEq = function(a,b) {
- if(a == b) return true;
- try {
- if(a[0] != b[0]) return false;
- var _g1 = 2;
- var _g = a.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(!Type.enumEq(a[i],b[i])) return false;
- }
- var e = a.__enum__;
- if(e != b.__enum__ || e == null) return false;
- } catch( e1 ) {
- return false;
- }
- return true;
- };
- var co = {};
- co.doubleduck = {};
- co.doubleduck.d2p2 = {};
- co.doubleduck.d2p2.P2Log = function() { };
- $hxClasses["co.doubleduck.d2p2.P2Log"] = co.doubleduck.d2p2.P2Log;
- co.doubleduck.d2p2.P2Log.__name__ = ["co","doubleduck","d2p2","P2Log"];
- co.doubleduck.d2p2.P2Log._data = null;
- co.doubleduck.d2p2.P2Log._dataAdapter = null;
- co.doubleduck.d2p2.P2Log.init = function(gameDomain) {
- if(co.doubleduck.d2p2.P2Log._dataAdapter == null) co.doubleduck.d2p2.P2Log._dataAdapter = co.doubleduck.utils.data.StorageAdapter.get("d2p2",co.doubleduck.utils.data.StorageAdapterType.LOCAL_STORAGE);
- co.doubleduck.d2p2.P2Log._data = co.doubleduck.d2p2.P2Log._dataAdapter.getValue(co.doubleduck.d2p2.P2Log.DATA_KEY);
- if(co.doubleduck.d2p2.P2Log._data == null || co.doubleduck.d2p2.P2Log._data.data_ver != co.doubleduck.d2p2.P2Log.DATA_VER) {
- var id;
- if(co.doubleduck.d2p2.P2Log._data != null) id = co.doubleduck.d2p2.P2Log._data.p2id; else {
- var seed = "" + gameDomain;
- seed += Std.random(9999999);
- seed += Std.random(9999999);
- seed += new Date().getTime();
- seed += Math.random();
- id = haxe.crypto.Sha1.encode(seed);
- }
- co.doubleduck.d2p2.P2Log._data = { };
- co.doubleduck.d2p2.P2Log._data.p2id = id;
- co.doubleduck.d2p2.P2Log._data.data_ver = co.doubleduck.d2p2.P2Log.DATA_VER;
- co.doubleduck.d2p2.P2Log._data.runs = 0;
- co.doubleduck.d2p2.P2Log._data.domains = "";
- co.doubleduck.d2p2.P2Log._data.skill = co.doubleduck.d2p2.P2Log.newP2Value();
- co.doubleduck.d2p2.P2Log._data.strategy = co.doubleduck.d2p2.P2Log.newP2Value();
- }
- co.doubleduck.d2p2.P2Log._data.runs++;
- var domains = [];
- if(co.doubleduck.d2p2.P2Log._data.domains != "") domains = co.doubleduck.d2p2.P2Log._data.domains.split(",");
- domains.sort(co.doubleduck.d2p2.P2Log.alphabeticSort);
- if(HxOverrides.indexOf(domains,gameDomain,0) == -1) {
- domains.push(gameDomain);
- co.doubleduck.d2p2.P2Log._data.domains = domains.join(",");
- }
- var skillCalc = co.doubleduck.d2p2.P2Log.calcFromSamples(co.doubleduck.d2p2.P2Log._data.skill);
- var strategyCalc = co.doubleduck.d2p2.P2Log.calcFromSamples(co.doubleduck.d2p2.P2Log._data.strategy);
- co.doubleduck.d2p2.P2Log._dataAdapter.setValue(co.doubleduck.d2p2.P2Log.DATA_KEY,co.doubleduck.d2p2.P2Log._data);
- if(skillCalc != null) {
- var event = { };
- event.p2id = co.doubleduck.d2p2.P2Log._data.p2id;
- event.dataver = co.doubleduck.d2p2.P2Log._data.data_ver;
- event.runs = "" + co.doubleduck.d2p2.P2Log._data.runs;
- event.domains = co.doubleduck.d2p2.P2Log._data.domains;
- event.calcVal = "" + Std.string(skillCalc.val);
- event.calcConf = "" + Std.string(skillCalc.conf);
- event.integVal = "" + co.doubleduck.d2p2.P2Log._data.skill.currVal;
- event.integConf = "" + co.doubleduck.d2p2.P2Log._data.skill.currConf;
- event.integCount = "" + co.doubleduck.d2p2.P2Log._data.skill.integCount;
- com.funtomic.GameOps.reportEvent("p2calc_skill",event);
- }
- if(strategyCalc != null) {
- var event1 = { };
- event1.p2id = co.doubleduck.d2p2.P2Log._data.p2id;
- event1.dataver = co.doubleduck.d2p2.P2Log._data.data_ver;
- event1.runs = "" + co.doubleduck.d2p2.P2Log._data.runs;
- event1.domains = co.doubleduck.d2p2.P2Log._data.domains;
- event1.calcVal = "" + Std.string(strategyCalc.val);
- event1.calcConf = "" + Std.string(strategyCalc.conf);
- event1.integVal = "" + co.doubleduck.d2p2.P2Log._data.strategy.currVal;
- event1.integConf = "" + co.doubleduck.d2p2.P2Log._data.strategy.currConf;
- event1.integCount = "" + co.doubleduck.d2p2.P2Log._data.strategy.integCount;
- com.funtomic.GameOps.reportEvent("p2calc_strategy",event1);
- }
- var event2 = { };
- event2.p2id = co.doubleduck.d2p2.P2Log._data.p2id;
- event2.dataver = co.doubleduck.d2p2.P2Log._data.data_ver;
- event2.runs = "" + co.doubleduck.d2p2.P2Log._data.runs;
- event2.domains = co.doubleduck.d2p2.P2Log._data.domains;
- event2.skillVal = "" + co.doubleduck.d2p2.P2Log._data.skill.currVal;
- event2.skillConf = "" + co.doubleduck.d2p2.P2Log._data.skill.currConf;
- event2.skillIntegCount = "" + co.doubleduck.d2p2.P2Log._data.skill.integCount;
- event2.strategyVal = "" + co.doubleduck.d2p2.P2Log._data.strategy.currVal;
- event2.strategyConf = "" + co.doubleduck.d2p2.P2Log._data.strategy.currConf;
- event2.strategyIntegCount = "" + co.doubleduck.d2p2.P2Log._data.strategy.integCount;
- com.funtomic.GameOps.reportEvent("p2data",event2);
- };
- co.doubleduck.d2p2.P2Log.getP2ID = function() {
- return co.doubleduck.d2p2.P2Log._data.p2id;
- };
- co.doubleduck.d2p2.P2Log.logSkill = function(value) {
- co.doubleduck.d2p2.P2Log.addSample(co.doubleduck.d2p2.P2Log._data.skill,value);
- co.doubleduck.d2p2.P2Log._dataAdapter.setValue(co.doubleduck.d2p2.P2Log.DATA_KEY,co.doubleduck.d2p2.P2Log._data);
- };
- co.doubleduck.d2p2.P2Log.logStrategy = function(value) {
- co.doubleduck.d2p2.P2Log.addSample(co.doubleduck.d2p2.P2Log._data.strategy,value);
- co.doubleduck.d2p2.P2Log._dataAdapter.setValue(co.doubleduck.d2p2.P2Log.DATA_KEY,co.doubleduck.d2p2.P2Log._data);
- };
- co.doubleduck.d2p2.P2Log.addSample = function(p2val,sample) {
- if(p2val.samples == null) p2val.samples = new Array();
- p2val.samples.push(sample);
- };
- co.doubleduck.d2p2.P2Log.newP2Value = function() {
- var val = { };
- val.samples = new Array();
- val.currVal = 0.5;
- val.currConf = 0;
- val.integCount = 0;
- return val;
- };
- co.doubleduck.d2p2.P2Log.calcFromSamples = function(p2val) {
- if(p2val.samples == null || p2val.samples.length == 0) return null;
- var mean = 0;
- var _g1 = 0;
- var _g = p2val.samples.length;
- while(_g1 < _g) {
- var i = _g1++;
- mean += p2val.samples[i];
- }
- mean /= p2val.samples.length;
- var stdDev = 0;
- var _g11 = 0;
- var _g2 = p2val.samples.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- stdDev += Math.pow(p2val.samples[i1] - mean,2);
- }
- stdDev /= p2val.samples.length;
- stdDev = Math.sqrt(stdDev);
- var devConf = co.doubleduck.utils.Utils.map(p2val.samples.length,1,6,0.2,1);
- var meanConf = (1 - 4 * stdDev) * devConf;
- var newVal = co.doubleduck.d2p2.P2Log.integrateVals(mean,meanConf,p2val.currVal,p2val.currConf);
- p2val.currVal = co.doubleduck.d2p2.P2Log.trimFloat(newVal.val);
- p2val.currConf = co.doubleduck.d2p2.P2Log.trimFloat(newVal.conf);
- p2val.samples = new Array();
- p2val.integCount++;
- var calcVal = { };
- calcVal.val = co.doubleduck.d2p2.P2Log.trimFloat(mean);
- calcVal.conf = co.doubleduck.d2p2.P2Log.trimFloat(meanConf);
- return calcVal;
- };
- co.doubleduck.d2p2.P2Log.integrateVals = function(aVal,aConf,bVal,bConf) {
- var res = { };
- res.val = aVal * aConf + bVal * bConf;
- res.val /= aConf + bConf;
- var delta = Math.abs(aVal - bVal);
- var maxConf = co.doubleduck.utils.Utils.map(Math.abs(aConf - bConf),0,1,aConf / 2,Math.max(aConf,bConf));
- res.conf = co.doubleduck.utils.Utils.map(delta,0,1,Math.max(aConf,bConf),maxConf);
- return res;
- };
- co.doubleduck.d2p2.P2Log.trimFloat = function(src) {
- return Math.round(src * 10000) / 10000;
- };
- co.doubleduck.d2p2.P2Log.alphabeticSort = function(a,b) {
- var i = 0;
- a = a.toLowerCase();
- b = b.toLowerCase();
- while(i < a.length || i < b.length) {
- if(i >= a.length && i < b.length) return -1; else if(i < a.length && i >= b.length) return 1; else if(i >= a.length && i >= b.length) return 0;
- if(HxOverrides.cca(a,i) != HxOverrides.cca(b,i)) return HxOverrides.cca(a,i) - HxOverrides.cca(b,i);
- i++;
- }
- return 0;
- };
- co.doubleduck.pinata = {};
- co.doubleduck.pinata.Game = function() {
- openfl.display.Sprite.call(this);
- this.addEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.handleAddedToStage));
- };
- $hxClasses["co.doubleduck.pinata.Game"] = co.doubleduck.pinata.Game;
- co.doubleduck.pinata.Game.__name__ = ["co","doubleduck","pinata","Game"];
- co.doubleduck.pinata.Game._screenSize = null;
- co.doubleduck.pinata.Game._viewportSize = null;
- co.doubleduck.pinata.Game.getScreenSize = function() {
- return co.doubleduck.pinata.Game._screenSize;
- };
- co.doubleduck.pinata.Game.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.Game.prototype = $extend(openfl.display.Sprite.prototype,{
- handleAddedToStage: function(e) {
- this.removeEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.handleAddedToStage));
- this.initGame();
- }
- ,initGame: function() {
- co.doubleduck.pinata.data.Persistence.init("pinata_muncher");
- co.doubleduck.pinata.data.Persistence.initGameData();
- co.doubleduck.utils.SoundMgr.init(co.doubleduck.pinata.data.Persistence.adapter());
- co.doubleduck.utils.SoundMgr.available = true;
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleMusic));
- co.doubleduck.utils.DDAssets.activeLocale = "en";
- co.doubleduck.utils.DDAssets.availLocales = ["en","de","es"];
- co.doubleduck.pinata.Game._viewportSize = new openfl.geom.Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight);
- co.doubleduck.pinata.Game._screenSize = new openfl.geom.Rectangle(0,0,320,320 * this.stage.stageHeight / this.stage.stageWidth);
- co.doubleduck.utils.DDAssets.prefix = "";
- co.doubleduck.utils.DDAssets.scale = 1.0;
- co.doubleduck.utils.DDAssets.globalSmoothing = true;
- flambe.Storage.setStorageAdapter("pinata_muncher",co.doubleduck.pinata.data.Persistence.adapter());
- com.funtomic.GameOps.init("pinata_muncher",GlobalVars.gameVersion,co.doubleduck.pinata.data.GameplayDB.getData(),{ },$bind(this,this.handleGameOps));
- co.doubleduck.d2p2.P2Log.init("pinata_muncher");
- }
- ,handleMusic: function(e) {
- this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleMusic));
- co.doubleduck.utils.SoundMgr.playSound("music_loop",true,0,true);
- }
- ,handleGameOps: function(flag) {
- if(com.funtomic.GameOps.getConfig().levelsData != null) co.doubleduck.pinata.data.GameplayDB.setData(com.funtomic.GameOps.getConfig());
- this.startFlow();
- }
- ,startFlow: function() {
- this.startSession();
- }
- ,addMenu: function(data) {
- this._menu = new co.doubleduck.pinata.meta.Menu(data);
- this._menu.addEventListener(co.doubleduck.pinata.meta.FlowEvents.START_SESSION,$bind(this,this.handleStartSession));
- this.addChild(this._menu);
- }
- ,removeMenu: function() {
- this._menu.removeEventListener(co.doubleduck.pinata.meta.FlowEvents.START_SESSION,$bind(this,this.handleStartSession));
- this._menu.destroy();
- this.removeChild(this._menu);
- this._menu = null;
- }
- ,startSession: function(data) {
- this._session = new co.doubleduck.pinata.core.Session(data);
- this._session.addEventListener(co.doubleduck.pinata.meta.FlowEvents.BACK_TO_MENU,$bind(this,this.handleBackToMenu));
- this._session.addEventListener(co.doubleduck.pinata.meta.FlowEvents.RESTART_SESSION,$bind(this,this.handleRestartSession));
- this.addChild(this._session);
- }
- ,removeSession: function() {
- this._session.removeEventListener(co.doubleduck.pinata.meta.FlowEvents.START_SESSION,$bind(this,this.handleBackToMenu));
- this._session.removeEventListener(co.doubleduck.pinata.meta.FlowEvents.RESTART_SESSION,$bind(this,this.handleRestartSession));
- this._session.destroy();
- this.removeChild(this._session);
- this._session = null;
- }
- ,handleStartSession: function(e) {
- var data = null;
- if(e.data != "") data = JSON.parse(e.data);
- this.removeMenu();
- this.startSession(data);
- }
- ,handleBackToMenu: function(e) {
- var data = { levelId : 1};
- if(e.data != "") data = JSON.parse(e.data);
- this.removeSession();
- this.addMenu(data);
- }
- ,handleRestartSession: function(e) {
- var data = null;
- if(e.data != "") data = JSON.parse(e.data);
- this.removeSession();
- this.startSession(data);
- }
- ,__class__: co.doubleduck.pinata.Game
- });
- co.doubleduck.utils = {};
- co.doubleduck.utils.KiziPreloader = function(progbarData,maskFrom,maskTo) {
- if(maskTo == null) maskTo = 1;
- if(maskFrom == null) maskFrom = 0;
- this.KIZI = false;
- this.MINIMUM_DISPLAY_TIME = 1500;
- NMEPreloader.call(this);
- this._isShowingAd = false;
- if(this.KIZI) {
- com.funtomic.KiziWidget.preloaderStarted();
- com.funtomic.KiziWidget.onAdStart($bind(this,this.handleAdStarted));
- }
- this._progBarData = progbarData;
- this.addSplash();
- this.addProgressBar();
- this._progBar.set_maskFrom(maskFrom);
- this._progBar.set_maskTo(maskTo);
- this._displayStartTime = haxe.Timer.stamp();
- };
- $hxClasses["co.doubleduck.utils.KiziPreloader"] = co.doubleduck.utils.KiziPreloader;
- co.doubleduck.utils.KiziPreloader.__name__ = ["co","doubleduck","utils","KiziPreloader"];
- co.doubleduck.utils.KiziPreloader.__super__ = NMEPreloader;
- co.doubleduck.utils.KiziPreloader.prototype = $extend(NMEPreloader.prototype,{
- addSplash: function() {
- this._splashBmpData = new co.doubleduck.utils.SplashBG(320,568);
- this._splash = new openfl.display.Bitmap(this._splashBmpData);
- this._splash.smoothing = true;
- var frameWidth = 320 * this._splash.get_scaleX();
- var frameHeight = 568 * this._splash.get_scaleY();
- this.addChild(this._splash);
- this._splash.set_x(this.getWidth() / 2 - frameWidth / 2);
- this._splash.set_y(this.getHeight() / 2 - frameHeight / 2);
- }
- ,addProgressBar: function() {
- var fill = new openfl.display.Bitmap(new co.doubleduck.utils.ProgFill(this._progBarData.width | 0,this._progBarData.height | 0));
- fill.smoothing = true;
- var bg = new openfl.display.Bitmap(new co.doubleduck.utils.ProgBG(this._progBarData.width | 0,this._progBarData.height | 0));
- bg.smoothing = true;
- this._progBar = new co.doubleduck.utils.ProgBar(bg,fill);
- this.addChild(this._progBar);
- this._progBar.setFillVals(this._progBarData.width,this._progBarData.height);
- this._progBar.setFillPerc(0);
- this._progBar.set_x(this._splash.get_x() + this._progBarData.x);
- this._progBar.set_y(this._splash.get_y() + this._progBarData.y);
- }
- ,getHeight: function() {
- return openfl.Lib.current.stage.stageHeight;
- }
- ,getWidth: function() {
- return openfl.Lib.current.stage.stageWidth;
- }
- ,onLoaded: function() {
- var now = haxe.Timer.stamp();
- var delta = now - this._displayStartTime;
- if(this._isShowingAd) this._callWhenAdComplete = $bind(this,this.endSplash); else if(this.KIZI) {
- com.funtomic.KiziWidget.onAdStart(null);
- if(!this._isShowingAd) co.doubleduck.utils.Utils.delayedCall(0.5,$bind(this,this.endSplash));
- } else if(delta < this.MINIMUM_DISPLAY_TIME) co.doubleduck.utils.Utils.delayedCall((this.MINIMUM_DISPLAY_TIME - delta) / 1000,$bind(this,this.endSplash)); else this.endSplash();
- }
- ,onUpdate: function(bytesLoaded,bytesTotal) {
- var percentLoaded = bytesLoaded / bytesTotal;
- if(percentLoaded > 1) percentLoaded = 1;
- this._progBar.setFillPerc(percentLoaded);
- }
- ,endSplash: function() {
- if(this.KIZI) com.funtomic.KiziWidget.preloaderEnded();
- this.destroy();
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.COMPLETE));
- }
- ,handleAdStarted: function() {
- com.funtomic.KiziWidget.onAdStart(null);
- this._isShowingAd = true;
- com.funtomic.KiziWidget.onAdComplete($bind(this,this.handleAdComplete));
- }
- ,handleAdComplete: function() {
- com.funtomic.KiziWidget.onAdComplete(null);
- this._isShowingAd = false;
- if(this._callWhenAdComplete != null) {
- this._callWhenAdComplete();
- this._callWhenAdComplete = null;
- }
- }
- ,destroy: function() {
- this.removeChild(this._splash);
- this._splash.bitmapData = null;
- this._splash = null;
- this._splashBmpData.dispose();
- this._splashBmpData = null;
- this.removeChild(this._progBar);
- this._progBar = null;
- }
- ,__class__: co.doubleduck.utils.KiziPreloader
- });
- co.doubleduck.pinata.Preloader = function() {
- this.KIZI = true;
- co.doubleduck.utils.KiziPreloader.call(this,new openfl.geom.Rectangle(10,460,215,40),0,1);
- };
- $hxClasses["co.doubleduck.pinata.Preloader"] = co.doubleduck.pinata.Preloader;
- co.doubleduck.pinata.Preloader.__name__ = ["co","doubleduck","pinata","Preloader"];
- co.doubleduck.pinata.Preloader.__super__ = co.doubleduck.utils.KiziPreloader;
- co.doubleduck.pinata.Preloader.prototype = $extend(co.doubleduck.utils.KiziPreloader.prototype,{
- __class__: co.doubleduck.pinata.Preloader
- });
- co.doubleduck.pinata.core = {};
- co.doubleduck.pinata.core.LevelsBar = function() {
- openfl.display.Sprite.call(this);
- this._back = co.doubleduck.utils.DDAssets.getImage("images/ui/scroll_back.png");
- this._back.set_y(-this._back.get_height());
- this._back.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2 - this._back.get_width() / 2);
- this.addChild(this._back);
- var scrollRect = new openfl.geom.Rectangle();
- scrollRect.width = co.doubleduck.pinata.Game.getScreenSize().width * 0.77;
- scrollRect.height = 50;
- this._list = new co.doubleduck.pinata.meta.ScrolledList(scrollRect,false);
- this._list.itemPadding = 0.7;
- this._list.itemSnap = true;
- this._list.set_x((co.doubleduck.pinata.Game.getScreenSize().width - scrollRect.width) / 2);
- this._list.set_y(this._back.get_y() + this._back.get_height() / 2 - scrollRect.height / 2 + 1.5);
- this.addChild(this._list);
- this._front = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/ui/scroll_front.png");
- this._front.addChild(img);
- this._front.set_y(-this._front.get_height());
- this._front.mouseChildren = this._front.mouseEnabled = false;
- this.addChild(this._front);
- var levelsData = co.doubleduck.pinata.data.GameplayDB.getLevels();
- var _g = 0;
- while(_g < levelsData.length) {
- var level = levelsData[_g];
- ++_g;
- var lvlId = Std["int"](level.id);
- if(lvlId <= co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL) + 1) {
- var levelBtn = new co.doubleduck.pinata.core.LevelBarItem(level);
- levelBtn.addEventListener("SelectedEvent",$bind(this,this.handleLevelSelect));
- this._list.addItem(levelBtn);
- if(lvlId == co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL) + 1) this._unlockingLevel = levelBtn;
- }
- }
- var activeLevel = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- this._list.focusOnIndex(activeLevel - 1,true);
- (js.Boot.__cast(this._list.getItem(activeLevel - 1) , co.doubleduck.pinata.core.LevelBarItem)).toggleSelect(true);
- this._nextBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/scroll_arrow.png"));
- this._nextBtn.set_x(this._front.get_x() + this._front.get_width() - this._nextBtn.get_width() / 2);
- this._nextBtn.set_y(this._front.get_y() + this._front.get_height() / 2);
- this._nextBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleLevelSelect));
- this.addChild(this._nextBtn);
- this._prevBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/scroll_arrow.png"));
- this._prevBtn.set_scaleX(-1);
- this._prevBtn.set_x(Math.abs(this._prevBtn.get_width()) / 2);
- this._prevBtn.set_y(this._nextBtn.get_y());
- this._prevBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleLevelSelect));
- this.addChild(this._prevBtn);
- };
- $hxClasses["co.doubleduck.pinata.core.LevelsBar"] = co.doubleduck.pinata.core.LevelsBar;
- co.doubleduck.pinata.core.LevelsBar.__name__ = ["co","doubleduck","pinata","core","LevelsBar"];
- co.doubleduck.pinata.core.LevelsBar.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.LevelsBar.prototype = $extend(openfl.display.Sprite.prototype,{
- toggleScroll: function(flag) {
- this._list.scrollable = flag;
- }
- ,incPinataCount: function() {
- if(this._unlockingLevel != null) {
- var activeLevel = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- if(this._unlockingLevel.getLevelId() != activeLevel + 1) return;
- var res = this._unlockingLevel.incUnlockCount();
- if(res) {
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL,this._unlockingLevel.getLevelId());
- var newId = this._unlockingLevel.getLevelId() + 1;
- if(newId <= co.doubleduck.pinata.data.GameplayDB.getLevels().length) {
- var levelBtn = new co.doubleduck.pinata.core.LevelBarItem(co.doubleduck.pinata.data.GameplayDB.getLevelData(newId));
- levelBtn.addEventListener("SelectedEvent",$bind(this,this.handleLevelSelect));
- this._list.addItem(levelBtn);
- this._unlockingLevel = levelBtn;
- this._list.focusOnIndex(co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL) - 1);
- if(activeLevel == 1) co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.ADVANCE_LEVEL);
- } else this._unlockingLevel = null;
- if(com.funtomic.KiziWidget.showMidroll()) com.funtomic.KiziWidget.levelEnded();
- }
- }
- }
- ,handleLevelSelect: function(e) {
- var newLevel = -1;
- var activeLevel = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- if(e.target == this._nextBtn) {
- newLevel = activeLevel + 1;
- newLevel = Math.floor(Math.min(newLevel,co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL)));
- } else if(e.target == this._prevBtn) {
- newLevel = activeLevel - 1;
- newLevel = Math.floor(Math.max(newLevel,1));
- } else if(js.Boot.__instanceof(e.target,co.doubleduck.pinata.core.LevelBarItem)) {
- newLevel = (js.Boot.__cast(e.target , co.doubleduck.pinata.core.LevelBarItem)).getLevelId();
- if(newLevel > co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL)) newLevel = activeLevel;
- }
- if(newLevel != activeLevel) {
- (js.Boot.__cast(this._list.getItem(activeLevel - 1) , co.doubleduck.pinata.core.LevelBarItem)).toggleSelect(false);
- (js.Boot.__cast(this._list.getItem(newLevel - 1) , co.doubleduck.pinata.core.LevelBarItem)).toggleSelect(true);
- this._list.focusOnIndex(newLevel - 1);
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL,newLevel);
- this.dispatchEvent(new openfl.events.Event("LevelSelectedEvent"));
- if(newLevel == 2) co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.ADVANCE_LEVEL);
- }
- }
- ,__class__: co.doubleduck.pinata.core.LevelsBar
- });
- co.doubleduck.pinata.meta = {};
- co.doubleduck.pinata.meta.ScrolledItem = function() {
- openfl.display.Sprite.call(this);
- };
- $hxClasses["co.doubleduck.pinata.meta.ScrolledItem"] = co.doubleduck.pinata.meta.ScrolledItem;
- co.doubleduck.pinata.meta.ScrolledItem.__name__ = ["co","doubleduck","pinata","meta","ScrolledItem"];
- co.doubleduck.pinata.meta.ScrolledItem.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.meta.ScrolledItem.prototype = $extend(openfl.display.Sprite.prototype,{
- depressItem: function() {
- }
- ,destroy: function() {
- }
- ,__class__: co.doubleduck.pinata.meta.ScrolledItem
- });
- co.doubleduck.pinata.core.LevelBarItem = function(levelData) {
- co.doubleduck.pinata.meta.ScrolledItem.call(this);
- this._levelData = levelData;
- this._levelId = Std["int"](levelData.id);
- this._isGift = false;
- var imgName = "images/ui/scroll_item.png";
- if(levelData.type == "gift") {
- this._isGift = true;
- if(co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL) <= this._levelId) {
- imgName = "images/ui/scroll_item_bonus.png";
- this._giftLocked = true;
- } else {
- imgName = "images/ui/scroll_item_bonus_off.png";
- this._giftLocked = false;
- }
- }
- this._btn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage(imgName));
- this._btn.set_x(this._btn.get_width() / 2);
- this._btn.set_y(this._btn.get_height() / 2);
- this._btn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleBtn));
- this.addChild(this._btn);
- this._num = co.doubleduck.utils.Fonter.getString("" + this._levelId,"images/fonts/yellow_big");
- this._num.mouseEnabled = this._num.mouseChildren = false;
- this._num.set_x(this._btn.get_x());
- this._num.set_y(this._btn.get_y());
- this.addChild(this._num);
- this._sel = co.doubleduck.utils.DDAssets.getImage("images/ui/scroll_item_active.png");
- this._sel.set_x(this._btn.get_x() - this._sel.get_width() / 2);
- this._sel.set_y(this._btn.get_y() - this._sel.get_height() / 2);
- this._sel.set_visible(false);
- if(this._isGift) this.addChildAt(this._sel,0); else this.addChild(this._sel);
- if(this._levelId > co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL)) {
- this._unlockBar = new co.doubleduck.utils.ProgBar(co.doubleduck.utils.DDAssets.getImage("images/ui/level_bar_bg.png"),co.doubleduck.utils.DDAssets.getImage("images/ui/level_bar_fill.png"));
- this._unlockCount = 0;
- this._unlockTarget = Std["int"](this._levelData.countToUnlock);
- this._unlockBar.setFillPerc(0);
- this._unlockBar.set_x(this._btn.get_x() - this._unlockBar.get_width() / 2);
- this._unlockBar.set_y(this._btn.get_y() + 10);
- this.addChild(this._unlockBar);
- this._btn.set_alpha(this._num.set_alpha(0.6));
- }
- };
- $hxClasses["co.doubleduck.pinata.core.LevelBarItem"] = co.doubleduck.pinata.core.LevelBarItem;
- co.doubleduck.pinata.core.LevelBarItem.__name__ = ["co","doubleduck","pinata","core","LevelBarItem"];
- co.doubleduck.pinata.core.LevelBarItem.__super__ = co.doubleduck.pinata.meta.ScrolledItem;
- co.doubleduck.pinata.core.LevelBarItem.prototype = $extend(co.doubleduck.pinata.meta.ScrolledItem.prototype,{
- getLevelId: function() {
- return this._levelId;
- }
- ,toggleSelect: function(flag) {
- this._sel.set_visible(flag);
- if(flag) {
- co.doubleduck.utils.TweenChain.removeTweens(this._btn);
- if(this._redBtn != null) {
- co.doubleduck.utils.TweenChain.removeTweens(this._redBtn);
- this.removeChild(this._redBtn);
- this._redBtn = null;
- }
- this._btn.set_scaleX(this._btn.set_scaleY(1));
- } else if(this._isGift && (this._giftLocked && co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL) != this._levelId)) {
- this._giftLocked = false;
- var newBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/scroll_item_bonus_off.png"));
- newBtn.set_x(newBtn.get_width() / 2);
- newBtn.set_y(newBtn.get_height() / 2);
- newBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleBtn));
- this.addChildAt(newBtn,this.getChildIndex(this._btn));
- this.removeChild(this._btn);
- this._btn.removeEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleBtn));
- this._btn = newBtn;
- }
- }
- ,incUnlockCount: function() {
- this._unlockCount++;
- this._unlockBar.setFillPerc(this._unlockCount / this._unlockTarget);
- if(this._unlockCount >= this._unlockTarget) {
- var data = { };
- data.level = this._levelId;
- data.candyCount = co.doubleduck.pinata.meta.Stats.getPCandies().toFullString();
- data.killCount = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT);
- data.toolsState = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.TOOLS_STATE);
- data.currTapHits = co.doubleduck.pinata.meta.Stats.getHitVal().toFullString();
- data.currHPS = co.doubleduck.pinata.meta.Stats.getHPS().toFullString();
- com.funtomic.GameOps.reportEvent("level_unlocked",data);
- this.removeChild(this._unlockBar);
- co.doubleduck.pinata.meta.Stats.notifyOnEvent("UpdateToolEvent");
- this._unlockBar = null;
- this._btn.set_alpha(this._num.set_alpha(1));
- if(!this._isGift) {
- this._redBtn = new openfl.display.Sprite();
- var red = co.doubleduck.utils.DDAssets.getImage("images/ui/scroll_item_alert.png");
- var _g = red;
- _g.set_x(_g.get_x() - red.get_width() / 2);
- var _g1 = red;
- _g1.set_y(_g1.get_y() - red.get_height() / 2);
- this._redBtn.addChild(red);
- this._redBtn.set_x(this._btn.get_x());
- this._redBtn.set_y(this._btn.get_y());
- this._redBtn.set_alpha(0);
- this._redBtn.mouseChildren = this._redBtn.mouseEnabled = false;
- this.addChildAt(this._redBtn,this.getChildIndex(this._btn) + 1);
- this.nudgeBtn();
- }
- co.doubleduck.utils.SoundMgr.playSound("new_level_unlocked");
- return true;
- }
- return false;
- }
- ,nudgeBtn: function() {
- co.doubleduck.utils.TweenChain.removeTweens(this._btn);
- co.doubleduck.utils.TweenChain.removeTweens(this._redBtn);
- this._redBtn.set_scaleX(this._redBtn.set_scaleY(this._btn.set_scaleX(this._btn.set_scaleY(1))));
- co.doubleduck.utils.TweenChain.get(this._btn).tto({ scaleX : 1.08, scaleY : 1.08},300,motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},300,motion.easing.Sine.get_easeInOut()).call($bind(this,this.nudgeBtn));
- co.doubleduck.utils.TweenChain.get(this._redBtn).tto({ scaleX : 1.08, scaleY : 1.08, alpha : 0.7},300,motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1, alpha : 0.1},300,motion.easing.Sine.get_easeInOut()).call($bind(this,this.nudgeBtn));
- }
- ,handleBtn: function(e) {
- this.dispatchEvent(new openfl.events.Event("SelectedEvent"));
- }
- ,depressItem: function() {
- this._btn.dePress();
- }
- ,destroy: function() {
- this._btn.removeEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleBtn));
- }
- ,__class__: co.doubleduck.pinata.core.LevelBarItem
- });
- co.doubleduck.pinata.core.Muncher = function() {
- openfl.display.Sprite.call(this);
- this._box = new openfl.display.Sprite();
- this.addChild(this._box);
- this._anim = new co.doubleduck.pinata.core.MuncherAnim();
- this._anim.set_x(-65.);
- this._anim.set_y(-129);
- this._box.addChild(this._anim);
- this.jellyAnim();
- };
- $hxClasses["co.doubleduck.pinata.core.Muncher"] = co.doubleduck.pinata.core.Muncher;
- co.doubleduck.pinata.core.Muncher.__name__ = ["co","doubleduck","pinata","core","Muncher"];
- co.doubleduck.pinata.core.Muncher.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.Muncher.prototype = $extend(openfl.display.Sprite.prototype,{
- showEat: function(openDur) {
- if(openDur == null) openDur = 1;
- co.doubleduck.utils.SoundMgr.playSound("eating_candies");
- co.doubleduck.utils.TweenChain.removeTweens(this._box);
- this._box.set_scaleX(this._box.set_scaleY(1));
- var steps = new Array();
- steps.push("openMouth");
- var _g = 0;
- while(_g < openDur) {
- var i = _g++;
- steps.push("keepOpen");
- }
- steps = steps.concat(["closeMouth","chew","chew","swallow"]);
- this._anim.showBehaviors(steps);
- this._anim.addEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDoneEat));
- }
- ,jellyAnim: function() {
- co.doubleduck.utils.TweenChain.removeTweens(this._box);
- this._box.set_scaleX(this._box.set_scaleY(1));
- var hTime = 700;
- co.doubleduck.utils.TweenChain.get(this._box).tto({ scaleX : 1.04, scaleY : 0.98},hTime,motion.easing.Sine.get_easeOut()).tto({ scaleX : 0.98, scaleY : 1.04},2 * hTime,motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},hTime,motion.easing.Sine.get_easeIn()).call($bind(this,this.jellyAnim));
- }
- ,handleDoneEat: function(e) {
- this._anim.removeEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDoneEat));
- this._anim.showBehavior("idle");
- this.jellyAnim();
- }
- ,__class__: co.doubleduck.pinata.core.Muncher
- });
- co.doubleduck.utils.AnimSprite = function(sheet,smoothing) {
- if(smoothing == null) smoothing = false;
- openfl.display.Sprite.call(this);
- this.smoothing = smoothing;
- this.spritesheet = sheet;
- this.behaviorQueue = new Array();
- this.bitmap = new openfl.display.Bitmap();
- this.addChild(this.bitmap);
- };
- $hxClasses["co.doubleduck.utils.AnimSprite"] = co.doubleduck.utils.AnimSprite;
- co.doubleduck.utils.AnimSprite.__name__ = ["co","doubleduck","utils","AnimSprite"];
- co.doubleduck.utils.AnimSprite.__super__ = openfl.display.Sprite;
- co.doubleduck.utils.AnimSprite.prototype = $extend(openfl.display.Sprite.prototype,{
- getFrameData: function(index) {
- if(this.currentBehavior != null && this.currentBehavior.frameData.length > index) return this.currentBehavior.frameData[index]; else return null;
- }
- ,queueBehavior: function(behavior) {
- var behaviorData = this.resolveBehavior(behavior);
- if(this.currentBehavior == null) this.updateBehavior(behaviorData); else this.behaviorQueue.push(behaviorData);
- }
- ,resolveBehavior: function(behavior) {
- if(js.Boot.__instanceof(behavior,spritesheet.data.BehaviorData)) return behavior; else if(typeof(behavior) == "string") {
- if(this.spritesheet != null) return this.spritesheet.behaviors.get(behavior);
- }
- return null;
- }
- ,showBehavior: function(behavior,restart) {
- if(restart == null) restart = true;
- this.behaviorQueue = new Array();
- this.updateBehavior(this.resolveBehavior(behavior),restart);
- }
- ,showBehaviors: function(behaviors) {
- this.behaviorQueue = new Array();
- var _g = 0;
- while(_g < behaviors.length) {
- var behavior = behaviors[_g];
- ++_g;
- this.behaviorQueue.push(this.resolveBehavior(behavior));
- }
- if(this.behaviorQueue.length > 0) this.updateBehavior(this.behaviorQueue.shift());
- }
- ,update: function(deltaTime) {
- if(!this.behaviorComplete) {
- this.timeElapsed += deltaTime;
- if(this.timeElapsed >= this.loopTime) {
- if(this.currentBehavior.loop) this.timeElapsed = this.timeElapsed % this.loopTime; else {
- this.timeElapsed = this.loopTime;
- this.behaviorComplete = true;
- }
- }
- var ratio = this.timeElapsed / this.loopTime;
- var frameCount = this.currentBehavior.frames.length;
- var newIndex = Math.floor(ratio * frameCount);
- if(!this.currentBehavior.loop) newIndex = Math.min(frameCount - 1,newIndex);
- this.currentFrameIndex = newIndex;
- var frame = this.spritesheet.getFrame(this.currentBehavior.frames[this.currentFrameIndex]);
- this.bitmap.bitmapData = frame.bitmapData;
- this.bitmap.smoothing = this.smoothing;
- this.bitmap.set_x(frame.offsetX - this.currentBehavior.originX);
- this.bitmap.set_y(frame.offsetY - this.currentBehavior.originY);
- if(this.behaviorComplete) {
- if(this.behaviorQueue.length > 0) this.updateBehavior(this.behaviorQueue.shift()); else if(this.hasEventListener(openfl.events.Event.COMPLETE)) this.dispatchEvent(new openfl.events.Event(openfl.events.Event.COMPLETE));
- }
- }
- }
- ,updateBehavior: function(behavior,restart) {
- if(restart == null) restart = true;
- if(behavior != null) {
- if(restart || behavior != this.currentBehavior) {
- this.currentBehavior = behavior;
- this.timeElapsed = 0;
- this.behaviorComplete = false;
- this.loopTime = behavior.frames.length / behavior.frameRate * 1000 | 0;
- if(this.bitmap.bitmapData == null) this.update(0);
- }
- } else {
- this.bitmap.bitmapData = null;
- this.currentBehavior = null;
- this.currentFrameIndex = -1;
- this.behaviorComplete = true;
- }
- }
- ,__class__: co.doubleduck.utils.AnimSprite
- });
- co.doubleduck.pinata.core.MuncherAnim = function() {
- var behDatas = new Array();
- behDatas.push(new spritesheet.data.BehaviorData("idle",[0,0,0,0,0,0,0,0,0,0,11,0],true,5));
- behDatas.push(new spritesheet.data.BehaviorData("openMouth",[0,1,2,3],false,15));
- behDatas.push(new spritesheet.data.BehaviorData("keepOpen",[3,3],false,15));
- behDatas.push(new spritesheet.data.BehaviorData("closeMouth",[3,2],false,15));
- behDatas.push(new spritesheet.data.BehaviorData("chew",[4,5,6,7,8],false,18));
- behDatas.push(new spritesheet.data.BehaviorData("swallow",[9,9,9,9,10,10,0],false,17));
- var sheet = co.doubleduck.utils.DDAssets.getSpritesheet("images/muncher.png",4,3,130,129,behDatas);
- co.doubleduck.utils.AnimSprite.call(this,sheet);
- this.showBehavior("idle");
- this._lastTime = openfl.Lib.getTimer();
- this.addEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- };
- $hxClasses["co.doubleduck.pinata.core.MuncherAnim"] = co.doubleduck.pinata.core.MuncherAnim;
- co.doubleduck.pinata.core.MuncherAnim.__name__ = ["co","doubleduck","pinata","core","MuncherAnim"];
- co.doubleduck.pinata.core.MuncherAnim.__super__ = co.doubleduck.utils.AnimSprite;
- co.doubleduck.pinata.core.MuncherAnim.prototype = $extend(co.doubleduck.utils.AnimSprite.prototype,{
- handleTick: function(e) {
- var time = openfl.Lib.getTimer();
- var delta = time - this._lastTime;
- this.update(delta);
- this.bitmap.smoothing = true;
- this._lastTime = time;
- }
- ,__class__: co.doubleduck.pinata.core.MuncherAnim
- });
- co.doubleduck.pinata.core.Session = function(data) {
- var _g = this;
- openfl.display.Sprite.call(this);
- this._prevBackName = "";
- this._currLvlId = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- this._currLvlData = co.doubleduck.pinata.data.GameplayDB.getLevelData(this._currLvlId);
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.RUNS_COUNTER,co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.RUNS_COUNTER) + 1);
- this._bgBox = new openfl.display.Sprite();
- this._pinataBox = new openfl.display.Sprite();
- this.setupBack();
- if(!co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.SHOW_BUBBLE,{ handle : $bind(this,this.loadPinata)})) this.loadPinata();
- this._muncher = new co.doubleduck.pinata.core.Muncher();
- this._muncher.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2);
- this._muncher.set_y(co.doubleduck.pinata.Game.getScreenSize().height * 0.85);
- this._toolAnims = new co.doubleduck.pinata.core.tools.ToolAnims();
- this.addChild(this._bgBox);
- this.addChild(this._muncher);
- this.addChild(this._pinataBox);
- this.addChild(this._toolAnims);
- this._levelsBar = new co.doubleduck.pinata.core.LevelsBar();
- this._levelsBar.set_y(co.doubleduck.pinata.Game.getScreenSize().height);
- this._levelsBar.addEventListener("LevelSelectedEvent",$bind(this,this.handleLevelSelected));
- this.addChild(this._levelsBar);
- this._scrLayer = new openfl.display.Sprite();
- this.addChild(this._scrLayer);
- this._toolsScr = new co.doubleduck.pinata.core.tools.ToolsScr();
- this._toolsScr.addEventListener(openfl.events.Event.OPEN,$bind(this,this.handleScrOpened));
- this._toolsScr.set_visible(false);
- this._scrLayer.addChild(this._toolsScr);
- if(co.doubleduck.pinata.core.TutorOverlay.inst().hasPassedStep(co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN)) {
- if(this._prevBackName != "bonus") this._toolsScr.set_visible(true);
- } else this._toolsScr.handlePCandies();
- this._missionScr = new co.doubleduck.pinata.core.missions.MissionScr();
- this._missionScr.addEventListener(openfl.events.Event.OPEN,$bind(this,this.handleScrOpened));
- this._missionScr.addEventListener(openfl.events.Event.OPEN,$bind(this,this.handleMissionScr));
- this._missionScr.addEventListener(openfl.events.Event.CLOSE,$bind(this,this.handleMissionScr));
- this._missionScr.addEventListener("WonPinataEvent",$bind(this,this.handleMissionScr));
- this._missionScr.set_visible(false);
- this._scrLayer.addChild(this._missionScr);
- if(co.doubleduck.pinata.core.TutorOverlay.inst().hasPassedStep(co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS)) {
- if(this._prevBackName == "bonus") this._missionScr.regLevelShowing = false; else this._missionScr.set_visible(true);
- }
- this._hud = new openfl.display.Sprite();
- this.addChild(this._hud);
- this.addChild(co.doubleduck.pinata.core.TutorOverlay.inst());
- co.doubleduck.pinata.meta.Stats.addListener("UpdateCandiesEvent",$bind(this,this.updateCandies));
- this.updateCandies();
- co.doubleduck.pinata.meta.Stats.addListener("UpdateHPSEvent",$bind(this,this.updateHPS));
- this.updateHPS();
- var latest = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.LATEST_TIME_KEPT);
- if(latest > 0) {
- var curr = Math.floor(new Date().getTime() / 1000);
- var delta = curr - latest;
- var hps = co.doubleduck.pinata.meta.Stats.getHPS();
- if(!co.doubleduck.pinata.meta.BigInt.isZero(hps)) {
- var levelDat = co.doubleduck.pinata.data.GameplayDB.getLevelData(co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL));
- var hp = co.doubleduck.pinata.core.pinatas.Pinata.rollFromRange(levelDat.pinataHP,0.5);
- var reward = co.doubleduck.pinata.core.pinatas.Pinata.rollFromRange(levelDat.candyReward,0.5);
- var quant = delta / Math.max(co.doubleduck.pinata.meta.BigInt.roughDiv(hp,hps),1);
- quant = Math.min(10000,quant);
- var totalReward = co.doubleduck.pinata.meta.BigInt.mulScalar(reward,quant);
- if(!co.doubleduck.pinata.meta.BigInt.isZero(totalReward)) {
- var modal = new co.doubleduck.pinata.meta.AwayModal(totalReward);
- modal.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2);
- modal.set_y(co.doubleduck.pinata.Game.getScreenSize().height / 2);
- this.addChild(modal);
- var candies = co.doubleduck.pinata.meta.Stats.getPCandies();
- candies = co.doubleduck.pinata.meta.BigInt.add(candies,totalReward);
- co.doubleduck.pinata.meta.Stats.setPCandies(candies);
- this._missionScr.noModalShowing = false;
- modal.callWhenDone = function() {
- _g._missionScr.noModalShowing = true;
- };
- }
- }
- }
- this._timeKeeper = new co.doubleduck.utils.Delayer(2000);
- this._timeKeeper.handler = $bind(this,this.handleTimeKeep);
- this._timeKeeper.start();
- };
- $hxClasses["co.doubleduck.pinata.core.Session"] = co.doubleduck.pinata.core.Session;
- co.doubleduck.pinata.core.Session.__name__ = ["co","doubleduck","pinata","core","Session"];
- co.doubleduck.pinata.core.Session.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.Session.prototype = $extend(openfl.display.Sprite.prototype,{
- handleTimeKeep: function() {
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.LATEST_TIME_KEPT,Math.floor(new Date().getTime() / 1000));
- }
- ,handleScrOpened: function(e) {
- var scr = e.target;
- this._scrLayer.addChild(this._scrLayer.removeChild(scr));
- }
- ,handleMissionScr: function(e) {
- if(e.type == openfl.events.Event.OPEN) {
- this._levelsBar.toggleScroll(false);
- this._levelsBar.stopDrag();
- this._toolsScr.closeIdOpened();
- }
- if(e.type == openfl.events.Event.CLOSE) this._levelsBar.toggleScroll(true);
- if(e.type == "WonPinataEvent") {
- this.setupBack();
- this._toolAnims.toggleShow(false);
- this._pinata.animVanish();
- this._pinata.removeEventListener("OpenedEvent",$bind(this,this.handlePinata));
- this._pinata.removeEventListener("ClearingEvent",$bind(this,this.handlePinata));
- this.loadPinata((js.Boot.__cast(e , co.doubleduck.utils.DynamicEvent)).data,true);
- co.doubleduck.utils.TweenChain.get(this._pinata).wait(2500).call(($_=(js.Boot.__cast(this._pinata , co.doubleduck.pinata.core.pinatas.RegPinata)),$bind($_,$_.initHittable)));
- }
- }
- ,updateCandies: function(e) {
- if(this._pCandies != null) {
- this._hud.removeChild(this._pCandies);
- this._pCandies = null;
- }
- this._pCandies = co.doubleduck.utils.Fonter.getString("$" + co.doubleduck.pinata.meta.Stats.getPCandies().toString(),"images/fonts/yellow_big");
- this._pCandies.set_x(co.doubleduck.pinata.Game.getScreenSize().width - 10 - this._pCandies.get_width() / 2);
- this._pCandies.set_y(22);
- this._hud.addChild(this._pCandies);
- }
- ,updateHPS: function(e) {
- if(this._pHPS != null) {
- this._hud.removeChild(this._pHPS);
- this._pHPS = null;
- }
- var val = co.doubleduck.pinata.meta.Stats.getHPS();
- if(val.toFullString() != "0") {
- this._pHPS = co.doubleduck.utils.Fonter.getString(val.toString() + "~","images/fonts/yellow_small");
- this._pHPS.set_x(co.doubleduck.pinata.Game.getScreenSize().width - 12 - this._pHPS.get_width() / 2);
- this._pHPS.set_y(42);
- this._hud.addChild(this._pHPS);
- }
- }
- ,setupBack: function() {
- var unlockedLvl = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL);
- var activeLvl = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- var newData = co.doubleduck.pinata.data.GameplayDB.getLevelData(activeLvl);
- var newBack = "";
- if(newData.type == "gift" && activeLvl == unlockedLvl) newBack = "bonus"; else newBack = "back" + Std["int"](newData.back);
- if(newBack != "" && newBack != this._prevBackName) {
- this._prevBackName = newBack;
- newBack = "images/backs/" + newBack + ".jpg";
- if(this._back != null) {
- co.doubleduck.utils.TweenChain.get(this._back).tto({ alpha : 0},150).call(($_=this._bgBox,$bind($_,$_.removeChild)),[this._back]);
- this._back = null;
- }
- this._back = co.doubleduck.utils.DDAssets.getImage(newBack);
- this._back.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2 - this._back.get_width() / 2);
- this._back.set_y(co.doubleduck.pinata.Game.getScreenSize().height - this._back.get_height());
- this._bgBox.addChildAt(this._back,0);
- if(this._missionScr != null) {
- if(this._prevBackName == "bonus") {
- this._missionScr.set_visible(this._toolsScr.set_visible(false));
- this._missionScr.regLevelShowing = false;
- } else {
- this._missionScr.set_visible(this._toolsScr.set_visible(true));
- this._missionScr.regLevelShowing = true;
- }
- }
- }
- }
- ,handleLevelSelected: function(e) {
- var activeLvl = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- var newData = co.doubleduck.pinata.data.GameplayDB.getLevelData(activeLvl);
- this.setupBack();
- this._currLvlData = newData;
- this._pinata.animVanish();
- this._pinata.removeEventListener("OpenedEvent",$bind(this,this.handlePinata));
- this._pinata.removeEventListener("ClearingEvent",$bind(this,this.handlePinata));
- this.loadPinata();
- }
- ,loadPinata: function(pData,instant) {
- if(instant == null) instant = false;
- if(pData == null) pData = this._currLvlData;
- this._pinata = co.doubleduck.pinata.core.pinatas.Pinata.create(pData);
- this._pinata.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2);
- this._pinata.set_y(co.doubleduck.pinata.Game.getScreenSize().height * 0.3);
- if(!instant) this._pinata.animIn();
- if(pData.type == "mission") this._pinata.set_y(pData.posY);
- this._pinata.addEventListener("OpenedEvent",$bind(this,this.handlePinata));
- this._pinata.addEventListener("ClearingEvent",$bind(this,this.handlePinata));
- this._pinata.addEventListener("ClearedEvent",$bind(this,this.handlePinata));
- this._pinataBox.addChild(this._pinata);
- }
- ,handlePinata: function(e) {
- if(e.type == "OpenedEvent") {
- this._pinata.removeEventListener("OpenedEvent",$bind(this,this.handlePinata));
- var gotCandies = this._pinata.getReward();
- co.doubleduck.pinata.meta.Stats.setPCandies(co.doubleduck.pinata.meta.BigInt.add(co.doubleduck.pinata.meta.Stats.getPCandies(),gotCandies));
- co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.WORKS_OFFLINE);
- this._levelsBar.incPinataCount();
- if(co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS)) this._missionScr.set_visible(true);
- if(js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.GiftPinata) || js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.MissionPinata)) this.pourCandies(26,1900); else this.spreadCandies(4,850);
- var reward = co.doubleduck.utils.Fonter.getString("$" + gotCandies.toString(),"images/fonts/yellow_big");
- reward.set_x(this._muncher.get_x() + 70);
- reward.set_y(this._muncher.get_y() - 70);
- reward.set_alpha(0);
- this._pinataBox.addChild(reward);
- co.doubleduck.utils.TweenChain.get(reward).wait(600).tto({ y : reward.get_y() - 50},850);
- co.doubleduck.utils.TweenChain.get(reward).wait(600).tto({ alpha : 1},50).wait(500).tto({ alpha : 0},300).call(($_=this._pinataBox,$bind($_,$_.removeChild)),[reward]);
- var eatDur = 1;
- if(js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.GiftPinata) || js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.MissionPinata)) {
- var white = new openfl.display.Sprite();
- white.get_graphics().beginFill(14548991);
- white.get_graphics().drawRect(0,0,co.doubleduck.pinata.Game.getScreenSize().width,co.doubleduck.pinata.Game.getScreenSize().height);
- white.get_graphics().endFill();
- this.addChild(white);
- eatDur = 10;
- co.doubleduck.utils.TweenChain.get(white).tto({ alpha : 0},600).call($bind(this,this.removeChild),[white]);
- }
- co.doubleduck.utils.TweenChain.removeTweens(this._muncher);
- co.doubleduck.utils.TweenChain.get(this._muncher).wait(430).call(($_=this._muncher,$bind($_,$_.showEat)),[eatDur]);
- }
- if(e.type == "ClearingEvent") {
- this._pinata.removeEventListener("ClearingEvent",$bind(this,this.handlePinata));
- if(!js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.GiftPinata) && !js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.MissionPinata)) this.loadPinata();
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT,co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT) + 1);
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION,co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION) + 1);
- co.doubleduck.pinata.meta.Stats.notifyOnEvent("UpdateToolEvent");
- }
- if(e.type == "ClearedEvent") {
- var oldPinata = e.target;
- oldPinata.removeEventListener("ClearedEvent",$bind(this,this.handlePinata));
- this._pinataBox.removeChild(oldPinata);
- if(js.Boot.__instanceof(oldPinata,co.doubleduck.pinata.core.pinatas.GiftPinata)) {
- this.setupBack();
- if(this._pinata == oldPinata) this.loadPinata();
- } else if(js.Boot.__instanceof(this._pinata,co.doubleduck.pinata.core.pinatas.MissionPinata)) {
- if(this._pinata == oldPinata) co.doubleduck.utils.TweenChain.get(this._missionScr).wait(1850).call(($_=this._missionScr,$bind($_,$_.reshowNewPack))).wait(400).call(($_=this._toolAnims,$bind($_,$_.toggleShow)),[true]).call($bind(this,this.loadPinata));
- }
- }
- }
- ,spreadCandies: function(amount,dur) {
- var _g = 0;
- while(_g < amount) {
- var i = _g++;
- var candy = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/candies" + (i % 3 + 1) + ".png");
- var _g1 = img;
- _g1.set_x(_g1.get_x() - img.get_width() / 2);
- var _g11 = img;
- _g11.set_y(_g11.get_y() - img.get_height() / 2);
- candy.addChild(img);
- candy.set_alpha(0);
- candy.set_scaleX(candy.set_scaleY(0.6));
- candy.set_x(this._pinata.get_x());
- candy.set_y(this._pinata.get_y() + 30);
- this._pinataBox.addChild(candy);
- var delay = Math.floor(Math.random() * 250);
- var centerFactor = 1 - Math.abs(i - (amount - 1) / 2) / ((amount - 1) / 2);
- co.doubleduck.utils.TweenChain.get(candy).tto({ x : candy.get_x() + (i + 1) / amount * 100 - 50},300,motion.easing.Sine.get_easeOut()).tto({ x : candy.get_x()},dur - delay - 300,motion.easing.Cubic.get_easeIn());
- co.doubleduck.utils.TweenChain.get(candy).tto({ y : candy.get_y() - (10 + centerFactor * 50 + co.doubleduck.utils.Utils.nrand() * 10)},300,motion.easing.Sine.get_easeOut()).tto({ y : this._muncher.get_y() - this._muncher.get_height() / 2},dur - delay - 300,motion.easing.Sine.get_easeIn());
- co.doubleduck.utils.TweenChain.get(candy).tto({ alpha : 1},100).tto({ rotation : 90 - Math.random() * 180},dur - delay - 200).tto({ alpha : 0},100).call(($_=this._pinataBox,$bind($_,$_.removeChild)),[candy]);
- }
- }
- ,pourCandies: function(amount,dur) {
- var pourRatio = co.doubleduck.utils.Utils.map(amount,1,10,0,0.6);
- var canDelay = Math.floor(dur * pourRatio / amount);
- var halfDropTime = Math.floor(canDelay * amount / 2);
- var _g = 0;
- while(_g < amount) {
- var i = _g++;
- var candy = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/candies" + (i % 3 + 1) + ".png");
- var _g1 = img;
- _g1.set_x(_g1.get_x() - img.get_width() / 2);
- var _g11 = img;
- _g11.set_y(_g11.get_y() - img.get_height() / 2);
- candy.addChild(img);
- candy.set_alpha(0);
- candy.set_scaleX(candy.set_scaleY(0.6));
- candy.set_x(this._pinata.get_x());
- candy.set_y(this._pinata.get_y() + 30);
- this._pinataBox.addChild(candy);
- var delay = Math.floor(Math.random() * 250);
- co.doubleduck.utils.TweenChain.get(candy).wait(10 + i * canDelay).tto({ x : candy.get_x() + (50 - Math.random() * 100)},halfDropTime,motion.easing.Sine.get_easeOut()).tto({ x : candy.get_x()},halfDropTime,motion.easing.Sine.get_easeInOut());
- co.doubleduck.utils.TweenChain.get(candy).wait(10 + i * canDelay).tto({ y : this._muncher.get_y() - this._muncher.get_height() / 2},2 * halfDropTime,motion.easing.Sine.get_easeIn());
- co.doubleduck.utils.TweenChain.get(candy).wait(10 + i * canDelay).tto({ alpha : 1},100).tto({ rotation : 90 - Math.random() * 180},2 * halfDropTime - 200).tto({ alpha : 0},100).call(($_=this._pinataBox,$bind($_,$_.removeChild)),[candy]);
- }
- }
- ,destroy: function() {
- }
- ,__class__: co.doubleduck.pinata.core.Session
- });
- co.doubleduck.pinata.core.TutorStep = $hxClasses["co.doubleduck.pinata.core.TutorStep"] = { __ename__ : ["co","doubleduck","pinata","core","TutorStep"], __constructs__ : ["SHOW_BUBBLE","TAP_TAB_BTN","BUY_FIRST_UPGRADE","EXIT_SHOP","ADVANCE_LEVEL","SHOW_MISSIONS","CLOSE_MISSIONS","BUY_FIRST_AUTO","WORKS_OFFLINE","DONE_TUTOR"] };
- co.doubleduck.pinata.core.TutorStep.SHOW_BUBBLE = ["SHOW_BUBBLE",0];
- co.doubleduck.pinata.core.TutorStep.SHOW_BUBBLE.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.SHOW_BUBBLE.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN = ["TAP_TAB_BTN",1];
- co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.BUY_FIRST_UPGRADE = ["BUY_FIRST_UPGRADE",2];
- co.doubleduck.pinata.core.TutorStep.BUY_FIRST_UPGRADE.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.BUY_FIRST_UPGRADE.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.EXIT_SHOP = ["EXIT_SHOP",3];
- co.doubleduck.pinata.core.TutorStep.EXIT_SHOP.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.EXIT_SHOP.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.ADVANCE_LEVEL = ["ADVANCE_LEVEL",4];
- co.doubleduck.pinata.core.TutorStep.ADVANCE_LEVEL.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.ADVANCE_LEVEL.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS = ["SHOW_MISSIONS",5];
- co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.CLOSE_MISSIONS = ["CLOSE_MISSIONS",6];
- co.doubleduck.pinata.core.TutorStep.CLOSE_MISSIONS.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.CLOSE_MISSIONS.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.BUY_FIRST_AUTO = ["BUY_FIRST_AUTO",7];
- co.doubleduck.pinata.core.TutorStep.BUY_FIRST_AUTO.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.BUY_FIRST_AUTO.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.WORKS_OFFLINE = ["WORKS_OFFLINE",8];
- co.doubleduck.pinata.core.TutorStep.WORKS_OFFLINE.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.WORKS_OFFLINE.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorStep.DONE_TUTOR = ["DONE_TUTOR",9];
- co.doubleduck.pinata.core.TutorStep.DONE_TUTOR.toString = $estr;
- co.doubleduck.pinata.core.TutorStep.DONE_TUTOR.__enum__ = co.doubleduck.pinata.core.TutorStep;
- co.doubleduck.pinata.core.TutorOverlay = function() {
- openfl.display.Sprite.call(this);
- var numSaved = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.TUTOR_STAGE);
- if(numSaved != 0) {
- this._currStep = co.doubleduck.pinata.core.TutorStep.DONE_TUTOR;
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.TUTOR_STAGE,-1);
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.TUTOR_STEP,co.doubleduck.pinata.core.TutorStep.DONE_TUTOR[0]);
- } else {
- var stepSaved = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.TUTOR_STEP);
- if(stepSaved == "") stepSaved = Type.getEnumConstructs(co.doubleduck.pinata.core.TutorStep)[0];
- this._currStep = Type.createEnum(co.doubleduck.pinata.core.TutorStep,stepSaved);
- }
- this._isStepShowing = false;
- };
- $hxClasses["co.doubleduck.pinata.core.TutorOverlay"] = co.doubleduck.pinata.core.TutorOverlay;
- co.doubleduck.pinata.core.TutorOverlay.__name__ = ["co","doubleduck","pinata","core","TutorOverlay"];
- co.doubleduck.pinata.core.TutorOverlay._tutor = null;
- co.doubleduck.pinata.core.TutorOverlay.inst = function() {
- if(co.doubleduck.pinata.core.TutorOverlay._tutor == null) co.doubleduck.pinata.core.TutorOverlay._tutor = new co.doubleduck.pinata.core.TutorOverlay();
- return co.doubleduck.pinata.core.TutorOverlay._tutor;
- };
- co.doubleduck.pinata.core.TutorOverlay.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.TutorOverlay.prototype = $extend(openfl.display.Sprite.prototype,{
- hasPassedStep: function(step) {
- return this._currStep == null || this._currStep[1] > step[1];
- }
- ,tryShowStep: function(step,arg) {
- var _g = this;
- if(step != this._currStep || this._isStepShowing) return false;
- this._isStepShowing = false;
- switch(step[1]) {
- case 0:
- this._bubble = new openfl.display.Sprite();
- var bbl = co.doubleduck.utils.DDAssets.getImage("images/tutorial/bubble.png");
- var handle = arg.handle;
- var _g1 = bbl;
- _g1.set_x(_g1.get_x() - bbl.get_width() / 2);
- var _g2 = bbl;
- _g2.set_y(_g2.get_y() - bbl.get_height() / 2);
- this._bubble.addChild(bbl);
- this._bubble.set_x(co.doubleduck.pinata.Game.getScreenSize().width * 0.8);
- this._bubble.set_y(co.doubleduck.pinata.Game.getScreenSize().height - 200);
- this._bubble.set_alpha(0);
- this.addChild(this._bubble);
- co.doubleduck.utils.TweenChain.get(this._bubble).wait(500).tto({ alpha : 1},300).wait(800).call(handle).wait(700).call(function() {
- _g.tapHand(new openfl.geom.Point(co.doubleduck.pinata.Game.getScreenSize().width * 0.6,co.doubleduck.pinata.Game.getScreenSize().height * 0.35));
- });
- this.jiggleThat(this._bubble,0.03,3000);
- this._isStepShowing = true;
- break;
- case 1:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(20,co.doubleduck.pinata.Game.getScreenSize().height / 2 - 43));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this.tapHand(new openfl.geom.Point(25,co.doubleduck.pinata.Game.getScreenSize().height * 0.5 - 25));
- this._isStepShowing = true;
- break;
- case 2:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(co.doubleduck.pinata.Game.getScreenSize().width * 0.8,122));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this._msg = new openfl.display.Sprite();
- var msg = co.doubleduck.utils.DDAssets.getImage("images/tutorial/increase_hits.png");
- this._msg.addChild(msg);
- this._msg.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2 - this._msg.get_width() / 2 - 15);
- this._msg.set_y(140);
- this._msg.mouseEnabled = this._msg.mouseChildren = false;
- this.addChild(this._msg);
- this.hoverThat(this._msg,1200);
- this.tapHand(new openfl.geom.Point(co.doubleduck.pinata.Game.getScreenSize().width * 0.91,125));
- this._isStepShowing = true;
- break;
- case 3:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(90,20));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this.tapHand(new openfl.geom.Point(140,30));
- this._isStepShowing = true;
- break;
- case 4:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(co.doubleduck.pinata.Game.getScreenSize().width * 0.42,co.doubleduck.pinata.Game.getScreenSize().height - 40));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this._msg = new openfl.display.Sprite();
- var msg1 = co.doubleduck.utils.DDAssets.getImage("images/tutorial/next_level.png");
- this._msg.addChild(msg1);
- this._msg.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2 - this._msg.get_width() / 2);
- this._msg.set_y(co.doubleduck.pinata.Game.getScreenSize().height - this._msg.get_height() - 60);
- this._msg.mouseEnabled = this._msg.mouseChildren = false;
- this.addChild(this._msg);
- this.hoverThat(this._msg,1200);
- this.tapHand(new openfl.geom.Point(co.doubleduck.pinata.Game.getScreenSize().width * 0.5,co.doubleduck.pinata.Game.getScreenSize().height - 50));
- this._isStepShowing = true;
- break;
- case 5:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(20,co.doubleduck.pinata.Game.getScreenSize().height / 2 + 43));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this.tapHand(new openfl.geom.Point(25,co.doubleduck.pinata.Game.getScreenSize().height * 0.5 + 55));
- this._isStepShowing = true;
- break;
- case 6:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(90,20));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this._isStepShowing = true;
- break;
- case 7:
- this._blockOverlay = this.getOverlay(new openfl.geom.Point(co.doubleduck.pinata.Game.getScreenSize().width * 0.8,215));
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- this._msg = new openfl.display.Sprite();
- var msg2 = co.doubleduck.utils.DDAssets.getImage("images/tutorial/auto_hit.png");
- this._msg.addChild(msg2);
- this._msg.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2 - this._msg.get_width() / 2);
- this._msg.set_y(230);
- this._msg.mouseEnabled = this._msg.mouseChildren = false;
- this.addChild(this._msg);
- this.hoverThat(this._msg,1200);
- this._isStepShowing = true;
- break;
- case 8:
- this._blockOverlay = new openfl.display.Sprite();
- this._blockOverlay.get_graphics().beginFill(0);
- this._blockOverlay.get_graphics().drawRect(0,0,co.doubleduck.pinata.Game.getScreenSize().width,co.doubleduck.pinata.Game.getScreenSize().height);
- this._blockOverlay.get_graphics().endFill();
- this._blockOverlay.set_alpha(0.01);
- this.addChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.get(this._blockOverlay).tto({ alpha : 0.7},150);
- this._msg = new openfl.display.Sprite();
- var msg3 = co.doubleduck.utils.DDAssets.getImage("images/tutorial/away.png");
- msg3.set_x(-msg3.get_width() / 2);
- msg3.set_y(-msg3.get_height() / 2);
- this._msg.addChild(msg3);
- var btn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/modal_away/btn_ok.png"));
- btn.set_y(msg3.get_height() * 0.3);
- btn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleAwayOk));
- btn.set_alpha(0);
- co.doubleduck.utils.TweenChain.get(btn).wait(800).tto({ alpha : 1},100);
- this._msg.addChild(btn);
- this._msg.set_x(co.doubleduck.pinata.Game.getScreenSize().width / 2);
- this._msg.set_y(co.doubleduck.pinata.Game.getScreenSize().height / 2);
- this.addChild(this._msg);
- this._isStepShowing = true;
- break;
- case 9:
- break;
- }
- if(this._isStepShowing) {
- var data = { };
- data.tutorStep = this._currStep[0];
- data.candyCount = co.doubleduck.pinata.meta.Stats.getPCandies().toFullString();
- com.funtomic.GameOps.reportEvent("tutorStepStart",data);
- }
- return this._isStepShowing;
- }
- ,handleAwayOk: function(e) {
- (js.Boot.__cast(e.target , co.doubleduck.utils.Button)).removeEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleAwayOk));
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.WORKS_OFFLINE);
- }
- ,tapHand: function(pos) {
- if(this._hand == null) {
- this._hand = new openfl.display.Sprite();
- var hand = co.doubleduck.utils.DDAssets.getImage("images/tutorial/hand.png");
- var _g = hand;
- _g.set_x(_g.get_x() - hand.get_width() * 0.35);
- var _g1 = hand;
- _g1.set_y(_g1.get_y() - hand.get_height() * 0.1);
- this._hand.set_visible(false);
- this._hand.addChild(hand);
- this.addChild(this._hand);
- }
- if(!this._hand.get_visible()) {
- this._hand.set_alpha(0.01);
- this._hand.set_visible(true);
- this._hand.mouseEnabled = this._hand.mouseChildren = false;
- co.doubleduck.utils.TweenChain.get(this._hand).tto({ alpha : 1},250);
- }
- this._hand.set_x(pos.x);
- this._hand.set_y(pos.y);
- this._hand.set_scaleX(this._hand.set_scaleY(1));
- co.doubleduck.utils.TweenChain.get(this._hand).tto({ scaleX : 0.8, scaleY : 0.8},200,motion.easing.Sine.get_easeIn()).tto({ scaleX : 1, scaleY : 1},300,motion.easing.Sine.get_easeOut()).call($bind(this,this.tapHand),[pos]);
- }
- ,jiggleThat: function(obj,factor,duration) {
- obj.set_scaleX(obj.set_scaleY(1));
- var quart = Math.floor(duration / 4);
- co.doubleduck.utils.TweenChain.get(obj).tto({ scaleX : 1 + factor, scaleY : 1 - factor},quart,motion.easing.Sine.get_easeOut()).tto({ scaleX : 1 - factor, scaleY : 1 + factor},quart * 2,motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},quart,motion.easing.Sine.get_easeIn()).call($bind(this,this.jiggleThat),[obj,factor,duration]);
- }
- ,hoverThat: function(obj,duration) {
- var half = Math.floor(duration / 2);
- co.doubleduck.utils.TweenChain.get(obj).tto({ y : obj.get_y() + 10},half,motion.easing.Sine.get_easeInOut()).tto({ y : obj.get_y()},half,motion.easing.Sine.get_easeInOut()).wait(30).call($bind(this,this.hoverThat),[obj,duration]);
- }
- ,actedOnStep: function(step) {
- if(!(step == this._currStep && this._isStepShowing)) return false;
- var data = { };
- data.tutorStep = this._currStep[0];
- data.candyCount = co.doubleduck.pinata.meta.Stats.getPCandies().toFullString();
- com.funtomic.GameOps.reportEvent("tutorStepFinish",data);
- switch(step[1]) {
- case 0:
- co.doubleduck.utils.TweenChain.removeTweens(this._bubble);
- this.removeChild(this._bubble);
- if(this._hand != null) {
- co.doubleduck.utils.TweenChain.removeTweens(this._hand);
- this._hand.set_visible(false);
- }
- break;
- case 1:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.removeTweens(this._hand);
- this._hand.set_visible(false);
- break;
- case 2:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.removeTweens(this._msg);
- co.doubleduck.utils.TweenChain.get(this._msg).tto({ alpha : 0},150).call($bind(this,this.removeChild),[this._msg]);
- this._msg = null;
- co.doubleduck.utils.TweenChain.removeTweens(this._hand);
- this._hand.set_visible(false);
- break;
- case 3:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.removeTweens(this._hand);
- this._hand.set_visible(false);
- break;
- case 4:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.get(this._msg).tto({ alpha : 0},150).call($bind(this,this.removeChild),[this._msg]);
- this._msg = null;
- co.doubleduck.utils.TweenChain.removeTweens(this._hand);
- this._hand.set_visible(false);
- break;
- case 5:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.removeTweens(this._hand);
- this._hand.set_visible(false);
- break;
- case 6:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- break;
- case 7:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.removeTweens(this._msg);
- co.doubleduck.utils.TweenChain.get(this._msg).tto({ alpha : 0},150).call($bind(this,this.removeChild),[this._msg]);
- this._msg = null;
- break;
- case 8:
- co.doubleduck.utils.TweenChain.removeTweens(this._blockOverlay);
- this.removeChild(this._blockOverlay);
- co.doubleduck.utils.TweenChain.removeTweens(this._msg);
- co.doubleduck.utils.TweenChain.get(this._msg).tto({ alpha : 0},150).call($bind(this,this.removeChild),[this._msg]);
- this._msg = null;
- break;
- case 9:
- break;
- }
- this._isStepShowing = false;
- this._currStep = Type.createEnumIndex(co.doubleduck.pinata.core.TutorStep,this._currStep[1] + 1);
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.TUTOR_STEP,this._currStep[0]);
- return true;
- }
- ,getOverlay: function(pos,rad) {
- if(rad == null) rad = 40;
- var over = new openfl.display.Sprite();
- var scr = co.doubleduck.pinata.Game.getScreenSize();
- var box;
- box = new openfl.display.Sprite();
- box.get_graphics().beginFill(8947848);
- box.get_graphics().drawRect(0,0,scr.width,pos.y - rad);
- box.get_graphics().endFill();
- over.addChild(box);
- box = new openfl.display.Sprite();
- box.get_graphics().beginFill(8947848);
- box.get_graphics().drawRect(0,pos.y - rad,pos.x - rad,2 * rad);
- box.get_graphics().endFill();
- over.addChild(box);
- box = new openfl.display.Sprite();
- box.get_graphics().beginFill(8947848);
- box.get_graphics().drawRect(pos.x + rad,pos.y - rad,scr.width - pos.x - rad,2 * rad);
- box.get_graphics().endFill();
- over.addChild(box);
- box = new openfl.display.Sprite();
- box.get_graphics().beginFill(8947848);
- box.get_graphics().drawRect(0,pos.y + rad,scr.width,scr.height - pos.y - rad);
- box.get_graphics().endFill();
- over.addChild(box);
- over.mouseEnabled = over.mouseChildren = true;
- return over;
- }
- ,__class__: co.doubleduck.pinata.core.TutorOverlay
- });
- co.doubleduck.pinata.core.missions = {};
- co.doubleduck.pinata.core.missions.MissionItem = function(packId,missionInd) {
- openfl.display.Sprite.call(this);
- this._done = false;
- this._data = co.doubleduck.pinata.data.GameplayDB.getMissionData(packId,missionInd);
- this._type = Type.createEnum(co.doubleduck.pinata.core.missions.MissionType,(js.Boot.__cast(this._data.id , String)).toUpperCase());
- this._back = co.doubleduck.utils.DDAssets.getImage("images/missions/mission_bg.png");
- var _g = this._back;
- _g.set_y(_g.get_y() - this._back.get_height() / 2);
- this.addChild(this._back);
- this._checkmark = new co.doubleduck.utils.SimpleAnimSprite("images/missions/checkmark.png",1,4,[0,1,2,3],false);
- this._checkmark.setAnimFPS(24);
- this._checkmark.stopAnim();
- var _g1 = this._checkmark;
- _g1.set_y(_g1.get_y() - this._checkmark.get_height() / 2);
- this._checkmark.set_x(10);
- this._checkmark.set_visible(false);
- this.addChild(this._checkmark);
- var descStr = this._data.desc;
- var parts = descStr.split("#");
- var displayVal;
- var _g2 = this._type;
- switch(_g2[1]) {
- case 0:case 3:
- displayVal = co.doubleduck.pinata.meta.BigInt.fromString(this._data.value).toString();
- break;
- case 1:case 4:
- displayVal = this._data.value;
- break;
- case 2:
- displayVal = "";
- break;
- }
- descStr = parts[0] + displayVal + parts[1];
- this._desc = co.doubleduck.utils.Fonter.getString(descStr,"images/fonts/purple/");
- this._desc.set_x(66 + this._desc.get_width() / 2);
- if(this._type == co.doubleduck.pinata.core.missions.MissionType.GET_TOOL) {
- var toolName = co.doubleduck.utils.DDAssets.getImage("images/tools_menu/tools/" + Std.string(this._data.value) + "/name.png");
- var _g3 = toolName;
- _g3.set_y(_g3.get_y() - toolName.get_height() / 2);
- toolName.set_x(this._desc.get_width() / 2);
- this._desc.addChild(toolName);
- }
- this.addChild(this._desc);
- if(this.hasProgBar()) {
- this._desc.set_y(-13);
- this._prog = new co.doubleduck.utils.ProgBar(co.doubleduck.utils.DDAssets.getImage("images/missions/bar_bg.png"),co.doubleduck.utils.DDAssets.getImage("images/missions/bar_fill.png"));
- this._prog.set_x(57);
- this._prog.set_y(-2);
- this._prog.set_maskFrom(0.02);
- this._prog.set_maskTo(0.97);
- this._prog.setFillPerc(this.getCompletePerc());
- this.addChild(this._prog);
- }
- };
- $hxClasses["co.doubleduck.pinata.core.missions.MissionItem"] = co.doubleduck.pinata.core.missions.MissionItem;
- co.doubleduck.pinata.core.missions.MissionItem.__name__ = ["co","doubleduck","pinata","core","missions","MissionItem"];
- co.doubleduck.pinata.core.missions.MissionItem.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.missions.MissionItem.prototype = $extend(openfl.display.Sprite.prototype,{
- getType: function() {
- return this._type;
- }
- ,updateProgress: function(andNotify) {
- if(andNotify == null) andNotify = true;
- var perc = this.getCompletePerc();
- if(this.hasProgBar()) this._prog.setFillPerc(perc,150);
- if(andNotify && !this._done && perc >= 1) this.dispatchEvent(new openfl.events.Event("ReadyDoneEvent"));
- }
- ,markIfDone: function() {
- if(this.hasProgBar()) this._prog.setFillPerc(this.getCompletePerc());
- if(this.getCompletePerc() >= 1) {
- this._done = true;
- this._checkmark.set_visible(true);
- this._checkmark.replayAnim();
- this._checkmark.update(0);
- co.doubleduck.utils.TweenChain.get(this._checkmark).wait(500).call($bind(this,this.dispatchEvent),[new openfl.events.Event("DoneEvent")]);
- } else this.dispatchEvent(new openfl.events.Event("OngoingEvent"));
- }
- ,hasProgBar: function() {
- if(this._type == co.doubleduck.pinata.core.missions.MissionType.GET_TOOL) return false;
- return true;
- }
- ,getCompletePerc: function() {
- var res;
- var _g = this._type;
- switch(_g[1]) {
- case 0:
- var curr = co.doubleduck.pinata.meta.Stats.getPCandies();
- var max = co.doubleduck.pinata.meta.BigInt.fromString(this._data.value);
- if(co.doubleduck.pinata.meta.BigInt.isEqual(curr,max) || co.doubleduck.pinata.meta.BigInt.isGT(curr,max)) res = 1; else res = Math.min(0.99,co.doubleduck.pinata.meta.BigInt.roughDiv(curr,max));
- break;
- case 1:
- res = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION) / Std["int"](this._data.value);
- break;
- case 2:
- if(co.doubleduck.pinata.meta.Stats.getToolLevel(this._data.value) > 0) res = 1; else res = 0;
- break;
- case 3:
- var curr1 = co.doubleduck.pinata.meta.Stats.getHPS();
- var max1 = co.doubleduck.pinata.meta.BigInt.fromString(this._data.value);
- if(co.doubleduck.pinata.meta.BigInt.isEqual(curr1,max1) || co.doubleduck.pinata.meta.BigInt.isGT(curr1,max1)) res = 1; else res = Math.min(0.99,co.doubleduck.pinata.meta.BigInt.roughDiv(curr1,max1));
- break;
- case 4:
- res = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL) / Std.parseInt(this._data.value);
- break;
- }
- res = Math.min(1,Math.max(0,res));
- return res;
- }
- ,__class__: co.doubleduck.pinata.core.missions.MissionItem
- });
- co.doubleduck.pinata.core.missions.MissionType = $hxClasses["co.doubleduck.pinata.core.missions.MissionType"] = { __ename__ : ["co","doubleduck","pinata","core","missions","MissionType"], __constructs__ : ["HOLD_CANDIES","BEAT_PINATAS","GET_TOOL","REACH_HPS","REACH_LEVEL"] };
- co.doubleduck.pinata.core.missions.MissionType.HOLD_CANDIES = ["HOLD_CANDIES",0];
- co.doubleduck.pinata.core.missions.MissionType.HOLD_CANDIES.toString = $estr;
- co.doubleduck.pinata.core.missions.MissionType.HOLD_CANDIES.__enum__ = co.doubleduck.pinata.core.missions.MissionType;
- co.doubleduck.pinata.core.missions.MissionType.BEAT_PINATAS = ["BEAT_PINATAS",1];
- co.doubleduck.pinata.core.missions.MissionType.BEAT_PINATAS.toString = $estr;
- co.doubleduck.pinata.core.missions.MissionType.BEAT_PINATAS.__enum__ = co.doubleduck.pinata.core.missions.MissionType;
- co.doubleduck.pinata.core.missions.MissionType.GET_TOOL = ["GET_TOOL",2];
- co.doubleduck.pinata.core.missions.MissionType.GET_TOOL.toString = $estr;
- co.doubleduck.pinata.core.missions.MissionType.GET_TOOL.__enum__ = co.doubleduck.pinata.core.missions.MissionType;
- co.doubleduck.pinata.core.missions.MissionType.REACH_HPS = ["REACH_HPS",3];
- co.doubleduck.pinata.core.missions.MissionType.REACH_HPS.toString = $estr;
- co.doubleduck.pinata.core.missions.MissionType.REACH_HPS.__enum__ = co.doubleduck.pinata.core.missions.MissionType;
- co.doubleduck.pinata.core.missions.MissionType.REACH_LEVEL = ["REACH_LEVEL",4];
- co.doubleduck.pinata.core.missions.MissionType.REACH_LEVEL.toString = $estr;
- co.doubleduck.pinata.core.missions.MissionType.REACH_LEVEL.__enum__ = co.doubleduck.pinata.core.missions.MissionType;
- co.doubleduck.pinata.core.missions.MissionScr = function() {
- openfl.display.Sprite.call(this);
- this.noModalShowing = true;
- this.regLevelShowing = true;
- this._isOpened = false;
- this._midAnim = false;
- this._data = co.doubleduck.pinata.data.GameplayDB.getMissionPack(co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK));
- this._srcPaint = co.doubleduck.utils.DDAssets.getRawImage("images/missions/paintings/paint" + Std["int"](this._data.pinataId) + ".jpg");
- this._overlay = new openfl.display.Sprite();
- this.addChild(this._overlay);
- this._tabBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/btn_mission.png"));
- this._tabBtn.set_x(this._tabBtn.get_width() / 2 - 2);
- this._tabBtn.set_y(co.doubleduck.pinata.Game.getScreenSize().height / 2 + 45);
- this._tabBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleTabBtn));
- this.addChild(this._tabBtn);
- this._scrBox = new openfl.display.Sprite();
- this.addChild(this._scrBox);
- this._back = co.doubleduck.utils.DDAssets.getImage("images/missions/bg.png");
- var _g = this._scrBox;
- _g.set_x(_g.get_x() - this._back.get_width());
- this._backBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/missions/btn_back.png"));
- this._backBtn.set_x(this._backBtn.get_width() / 2 + 20);
- this._backBtn.set_y(this._backBtn.get_height() / 2 + 5);
- this._backBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleBackBtn));
- this._backBtn.enabled = false;
- this._painting = new openfl.display.Sprite();
- var piecesGot = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT).split(",");
- if(piecesGot.length > 0 && piecesGot[0] != "") {
- var _g1 = 0;
- while(_g1 < piecesGot.length) {
- var piece = piecesGot[_g1];
- ++_g1;
- var pcImg = this.getPiece(Std.parseInt(piece));
- this._painting.addChild(pcImg);
- }
- }
- this._painting.set_x(this._back.get_width() / 2 - this._srcPaint.width / 2);
- this._painting.set_y(this._back.get_height() / 2 - this._srcPaint.height / 2 - 8);
- this._overlay.get_graphics().beginFill(0);
- this._overlay.get_graphics().drawRect(0,0,co.doubleduck.pinata.Game.getScreenSize().width + this._back.get_width(),co.doubleduck.pinata.Game.getScreenSize().height);
- this._overlay.get_graphics().endFill();
- this._overlay.set_x(this._scrBox.get_x());
- this._overlay.set_visible(false);
- this.setupMission();
- this._scrBox.addChild(this._back);
- this._scrBox.addChild(this._painting);
- this._scrBox.addChild(this._backBtn);
- this._scrBox.addChild(this._currMission);
- co.doubleduck.pinata.meta.Stats.addListener("UpdateCandiesEvent",$bind(this,this.handleStatsEvent));
- co.doubleduck.pinata.meta.Stats.addListener("UpdateToolEvent",$bind(this,this.handleStatsEvent));
- co.doubleduck.pinata.meta.Stats.addListener("UpdateToolEvent",$bind(this,this.handleStatsEvent));
- co.doubleduck.pinata.meta.Stats.addListener("UpdateHPSEvent",$bind(this,this.handleStatsEvent));
- co.doubleduck.pinata.meta.Stats.addListener("UpdateToolEvent",$bind(this,this.handleStatsEvent));
- };
- $hxClasses["co.doubleduck.pinata.core.missions.MissionScr"] = co.doubleduck.pinata.core.missions.MissionScr;
- co.doubleduck.pinata.core.missions.MissionScr.__name__ = ["co","doubleduck","pinata","core","missions","MissionScr"];
- co.doubleduck.pinata.core.missions.MissionScr.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.missions.MissionScr.prototype = $extend(openfl.display.Sprite.prototype,{
- setupMission: function() {
- this._currMission = new co.doubleduck.pinata.core.missions.MissionItem(co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK),co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND));
- this._currMission.addEventListener("ReadyDoneEvent",$bind(this,this.handleItem));
- this._currMission.set_x(this._back.get_width() / 2 - this._currMission.get_width() / 2);
- this._currMission.set_y(this._back.get_height() - 45);
- }
- ,handleStatsEvent: function(e) {
- if(!co.doubleduck.pinata.core.TutorOverlay.inst().hasPassedStep(co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS)) return;
- if(!this.noModalShowing || !this.regLevelShowing) return;
- if(this._currMission == null) return;
- if(this._currMission.getType() == co.doubleduck.pinata.core.missions.MissionType.HOLD_CANDIES && e.type == "UpdateCandiesEvent" || this._currMission.getType() == co.doubleduck.pinata.core.missions.MissionType.BEAT_PINATAS && e.type == "UpdateToolEvent" || this._currMission.getType() == co.doubleduck.pinata.core.missions.MissionType.GET_TOOL && e.type == "UpdateToolEvent" || this._currMission.getType() == co.doubleduck.pinata.core.missions.MissionType.REACH_HPS && e.type == "UpdateHPSEvent" || this._currMission.getType() == co.doubleduck.pinata.core.missions.MissionType.REACH_LEVEL && e.type == "UpdateToolEvent") this._currMission.updateProgress();
- }
- ,animOpen: function(openType) {
- var _g = this;
- if(this._isOpened) return;
- this._isOpened = true;
- this._midAnim = true;
- co.doubleduck.utils.SoundMgr.playSound("menu_open");
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.OPEN));
- this._tabBtn.enabled = false;
- if(openType == "firstShow") {
- var _g1 = this._currMission;
- _g1.set_x(_g1.get_x() - co.doubleduck.pinata.Game.getScreenSize().width);
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION,0);
- }
- co.doubleduck.utils.TweenChain.removeTweens(this._overlay);
- this._overlay.set_alpha(0);
- this._overlay.set_visible(true);
- co.doubleduck.utils.TweenChain.get(this._overlay).tto({ alpha : 0.65},300);
- this._backBtn.set_alpha(0);
- this._backBtn.enabled = false;
- this._currMission.addEventListener("DoneEvent",$bind(this,this.handleItem));
- this._currMission.addEventListener("OngoingEvent",$bind(this,this.handleItem));
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ x : -this._scrBox.get_x()},300,motion.easing.Sine.get_easeInOut()).wait(400).call(function() {
- if(openType == "firstShow") co.doubleduck.utils.TweenChain.get(_g._currMission).tto({ x : _g._currMission.get_x() + co.doubleduck.pinata.Game.getScreenSize().width},300,motion.easing.Sine.get_easeOut()).wait(400).call(($_=_g._currMission,$bind($_,$_.markIfDone))); else _g._currMission.markIfDone();
- });
- }
- ,handleTabBtn: function(e) {
- if(co.doubleduck.pinata.core.TutorOverlay.inst().hasPassedStep(co.doubleduck.pinata.core.TutorStep.CLOSE_MISSIONS)) this.animOpen(""); else {
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.SHOW_MISSIONS);
- this.animOpen("firstShow");
- }
- }
- ,handleItem: function(e) {
- var _g = this;
- if(e.type == "ReadyDoneEvent") {
- this._currMission.removeEventListener("ReadyDoneEvent",$bind(this,this.handleItem));
- if(this._isOpened) {
- if(!this._midAnim) {
- this._backBtn.set_alpha(0);
- this._backBtn.enabled = false;
- this._currMission.addEventListener("DoneEvent",$bind(this,this.handleItem));
- this._currMission.addEventListener("OngoingEvent",$bind(this,this.handleItem));
- this._currMission.markIfDone();
- }
- } else {
- if(this._midAnim) {
- co.doubleduck.utils.TweenChain.removeTweens(this._overlay);
- co.doubleduck.utils.TweenChain.removeTweens(this);
- }
- this.animOpen("");
- }
- }
- if(e.type == "DoneEvent") {
- this._currMission.removeEventListener("ReadyDoneEvent",$bind(this,this.handleItem));
- this._currMission.removeEventListener("DoneEvent",$bind(this,this.handleItem));
- this._currMission.removeEventListener("OngoingEvent",$bind(this,this.handleItem));
- var piecesLeft = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT).split(",");
- var posInd = Std.random(piecesLeft.length);
- var piece = Std.parseInt(piecesLeft.splice(posInd,1)[0]);
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT,piecesLeft.join(","));
- var piecesGot = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT).split(",");
- if(piecesGot.length == 1 && piecesGot[0] == "") piecesGot.pop();
- piecesGot.push("" + piece);
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT,piecesGot.join(","));
- co.doubleduck.utils.TweenChain.removeTweens(this._painting);
- this._painting.set_alpha(1);
- var newPiece = this.getPiece(piece);
- newPiece.set_alpha(0);
- newPiece.set_scaleX(newPiece.set_scaleY(1.7));
- this._painting.addChild(newPiece);
- co.doubleduck.utils.TweenChain.get(newPiece).tto({ alpha : 1, scaleX : 1, scaleY : 1},600,motion.easing.Sine.get_easeIn());
- co.doubleduck.utils.TweenChain.get(this._currMission).wait(1000).tto({ x : this._currMission.get_x() + co.doubleduck.pinata.Game.getScreenSize().width},300,motion.easing.Sine.get_easeIn()).call(($_=this._scrBox,$bind($_,$_.removeChild)),[this._currMission]);
- this._currMission = null;
- var data = { };
- data.missionInd = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND);
- data.missionPackInd = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK);
- data.level = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL);
- data.currLevel = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL);
- data.candyCount = co.doubleduck.pinata.meta.Stats.getPCandies().toFullString();
- data.killCount = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT);
- data.toolsState = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.TOOLS_STATE);
- data.currTapHits = co.doubleduck.pinata.meta.Stats.getHitVal().toFullString();
- data.currHPS = co.doubleduck.pinata.meta.Stats.getHPS().toFullString();
- com.funtomic.GameOps.reportEvent("mission_done",data);
- var missionInd = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND);
- if(missionInd < 8) {
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND,missionInd + 1);
- this.loadNextMission(1200);
- } else {
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND,0);
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT,"0,1,2,3,4,5,6,7,8");
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT,"");
- var packInd = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK);
- if(co.doubleduck.pinata.data.GameplayDB.getMissionPack(packInd + 1) == null) {
- } else {
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK,packInd + 1);
- var pData = { };
- pData.type = "mission";
- pData.pinId = Std["int"](this._data.pinataId);
- pData.pinReward = co.doubleduck.pinata.meta.BigInt.fromString(this._data.reward);
- pData.posY = this._painting.get_y() + this._srcPaint.height / 2;
- this.dispatchEvent(new co.doubleduck.utils.DynamicEvent("WonPinataEvent",pData));
- co.doubleduck.utils.TweenChain.get(this._back).wait(1400).tto({ alpha : 0},350);
- co.doubleduck.utils.TweenChain.get(this._overlay).wait(1400).tto({ alpha : 0.01},350);
- co.doubleduck.utils.TweenChain.get(this._painting).wait(1600).call(co.doubleduck.utils.TweenAnimator.shake,[this._painting,3,8,20]).wait(200).tto({ alpha : 0},600).wait(50).call(function() {
- while(_g._painting.get_numChildren() > 0) _g._painting.removeChildAt(0);
- });
- }
- }
- }
- if(e.type == "OngoingEvent") {
- this._currMission.removeEventListener("DoneEvent",$bind(this,this.handleItem));
- this._currMission.removeEventListener("OngoingEvent",$bind(this,this.handleItem));
- co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.CLOSE_MISSIONS);
- co.doubleduck.utils.TweenChain.get(this._backBtn).tto({ alpha : 1},200).call(function() {
- _g._backBtn.enabled = true;
- _g._midAnim = false;
- });
- }
- }
- ,loadNextMission: function(delay) {
- co.doubleduck.pinata.data.Persistence.setInt(co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION,0);
- this.setupMission();
- var _g = this._currMission;
- _g.set_x(_g.get_x() - co.doubleduck.pinata.Game.getScreenSize().width);
- this._scrBox.addChild(this._currMission);
- this._currMission.addEventListener("DoneEvent",$bind(this,this.handleItem));
- this._currMission.addEventListener("OngoingEvent",$bind(this,this.handleItem));
- co.doubleduck.utils.TweenChain.get(this._currMission).wait(delay + 10).tto({ x : this._currMission.get_x() + co.doubleduck.pinata.Game.getScreenSize().width},300,motion.easing.Sine.get_easeOut()).wait(400).call(($_=this._currMission,$bind($_,$_.markIfDone)));
- }
- ,getPiece: function(ind) {
- var rect = new openfl.geom.Rectangle();
- rect.width = Math.floor(this._srcPaint.width / 3);
- rect.height = Math.floor(this._srcPaint.height / 3);
- rect.x = ind % 3 * rect.width;
- rect.y = Math.floor(ind / 3) * rect.height;
- var newPiece = new openfl.display.BitmapData(Math.floor(rect.width),Math.floor(rect.height));
- newPiece.copyPixels(this._srcPaint,rect,new openfl.geom.Point(0,0));
- var piece = new openfl.display.Bitmap(newPiece);
- var _g = piece;
- _g.set_x(_g.get_x() - rect.width / 2);
- var _g1 = piece;
- _g1.set_y(_g1.get_y() - rect.height / 2);
- var spr = new openfl.display.Sprite();
- spr.addChild(piece);
- spr.set_x(rect.x + rect.width / 2);
- spr.set_y(rect.y + rect.height / 2);
- return spr;
- }
- ,reshowNewPack: function() {
- co.doubleduck.utils.TweenChain.get(this._overlay).tto({ alpha : 0.65},250);
- co.doubleduck.utils.TweenChain.get(this._back).tto({ alpha : 1},150).call($bind(this,this.loadNextMission),[200]);
- }
- ,handleBackBtn: function(e) {
- var _g = this;
- if(!this._isOpened) return;
- this._isOpened = false;
- this._midAnim = true;
- co.doubleduck.utils.SoundMgr.playSound("menu_open");
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.CLOSE_MISSIONS);
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.CLOSE));
- this._backBtn.enabled = false;
- co.doubleduck.utils.TweenChain.removeTweens(this._overlay);
- co.doubleduck.utils.TweenChain.get(this._overlay).tto({ alpha : 0},300);
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ x : 0},300,motion.easing.Sine.get_easeInOut()).call(function() {
- _g._overlay.set_visible(false);
- _g._tabBtn.enabled = true;
- _g._midAnim = false;
- });
- }
- ,__class__: co.doubleduck.pinata.core.missions.MissionScr
- });
- co.doubleduck.pinata.core.pinatas = {};
- co.doubleduck.pinata.core.pinatas.Pinata = function() {
- openfl.display.Sprite.call(this);
- this._hittable = false;
- var slashFactor = 0.45;
- this._slashRange = new openfl.geom.Rectangle(this._body.get_x() - this._body.get_width() * slashFactor * 0.5,this._body.get_y() - this._body.get_height() * slashFactor * 0.5,this._body.get_width() * slashFactor,this._body.get_height() * slashFactor);
- this._swipeRadSq = co.doubleduck.pinata.Game.getScreenSize().width * 0.17;
- this._swipeRadSq *= this._swipeRadSq;
- this._swipeInPos = null;
- this._swipeWasOut = false;
- this._tapBox = new openfl.display.Sprite();
- this._tapBox.set_alpha(0.01);
- this._tapBox.get_graphics().beginFill(8947848);
- this._tapBox.get_graphics().drawRect(0,0,co.doubleduck.pinata.Game.getScreenSize().width,co.doubleduck.pinata.Game.getScreenSize().height);
- this._tapBox.get_graphics().endFill();
- this._tapBox.addEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleTouch));
- this._tapBox.addEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.handleTouch));
- this._tapBox.set_x(-co.doubleduck.pinata.Game.getScreenSize().width / 2);
- this._tapBox.set_y(-co.doubleduck.pinata.Game.getScreenSize().height * 0.3);
- this.addChild(this._tapBox);
- };
- $hxClasses["co.doubleduck.pinata.core.pinatas.Pinata"] = co.doubleduck.pinata.core.pinatas.Pinata;
- co.doubleduck.pinata.core.pinatas.Pinata.__name__ = ["co","doubleduck","pinata","core","pinatas","Pinata"];
- co.doubleduck.pinata.core.pinatas.Pinata.create = function(data) {
- var pinType = data.type;
- if(pinType == "gift") {
- if(co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL) != Std["int"](data.id)) pinType = "normal";
- }
- if(pinType == "normal") {
- var pinatas = data.pinatas;
- var pinId = pinatas[Std.random(pinatas.length)];
- var pinHp = co.doubleduck.pinata.core.pinatas.Pinata.rollFromRange(data.pinataHP);
- var pinReward = co.doubleduck.pinata.core.pinatas.Pinata.rollFromRange(data.candyReward);
- return new co.doubleduck.pinata.core.pinatas.RegPinata(pinId,pinHp,pinReward);
- } else if(pinType == "gift") return new co.doubleduck.pinata.core.pinatas.GiftPinata(data.giftData); else if(pinType == "mission") return new co.doubleduck.pinata.core.pinatas.MissionPinata(data.pinId,data.pinReward);
- return null;
- };
- co.doubleduck.pinata.core.pinatas.Pinata.rollFromRange = function(range,forceRatio) {
- if(forceRatio == null) forceRatio = -1;
- var rangeVals = range.split("-");
- var min = co.doubleduck.pinata.meta.BigInt.fromString(rangeVals[0]);
- var max = co.doubleduck.pinata.meta.BigInt.fromString(rangeVals[1]);
- if(co.doubleduck.pinata.meta.BigInt.isEqual(min,max)) return min;
- var delta = co.doubleduck.pinata.meta.BigInt.subtract(max,min);
- var scalar = co.doubleduck.utils.Utils.nrand();
- if(forceRatio != -1) scalar = forceRatio;
- delta = co.doubleduck.pinata.meta.BigInt.mulScalar(delta,scalar);
- return co.doubleduck.pinata.meta.BigInt.add(min,delta);
- };
- co.doubleduck.pinata.core.pinatas.Pinata.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.pinatas.Pinata.prototype = $extend(openfl.display.Sprite.prototype,{
- animIn: function() {
- }
- ,idleBodyAnim: function() {
- this._body.set_rotation(0);
- co.doubleduck.utils.TweenChain.get(this._body).tto({ rotation : 4},800,motion.easing.Sine.get_easeInOut()).tto({ rotation : 0},800,motion.easing.Sine.get_easeInOut()).wait(20).call($bind(this,this.idleBodyAnim));
- }
- ,hit: function(amount,angle) {
- if(angle == null) angle = -1;
- }
- ,getReward: function() {
- return this._reward;
- }
- ,animVanish: function() {
- }
- ,handleTouch: function(e) {
- if(e.type == openfl.events.MouseEvent.MOUSE_DOWN) this.hit(co.doubleduck.pinata.meta.Stats.getHitVal()); else if(e.type == openfl.events.MouseEvent.MOUSE_MOVE) {
- var dist = this.get_mouseX() * this.get_mouseX() + this.get_mouseY() * this.get_mouseY();
- if(dist <= this._swipeRadSq) {
- if(this._swipeWasOut) {
- if(this._swipeInPos == null) this._swipeInPos = new openfl.geom.Point(this.get_mouseX(),this.get_mouseY());
- }
- } else {
- if(!this._swipeWasOut) this._swipeWasOut = true;
- if(this._swipeInPos != null) {
- var angle = Math.atan2(this.get_mouseX() - this._swipeInPos.x,this._swipeInPos.y - this.get_mouseY());
- angle = angle * (180 / Math.PI) - 90;
- while(angle < 0) angle += 360;
- this.hit(co.doubleduck.pinata.meta.Stats.getHitVal(),angle);
- this._swipeInPos = null;
- }
- }
- }
- }
- ,__class__: co.doubleduck.pinata.core.pinatas.Pinata
- });
- co.doubleduck.pinata.core.pinatas.GiftPinata = function(giftData) {
- this._hitDuration = Std["int"](giftData.duration);
- var hits = giftData.hitsRange.split("-");
- this._hitsMin = co.doubleduck.pinata.meta.BigInt.fromString(hits[0]);
- this._hitsMax = co.doubleduck.pinata.meta.BigInt.fromString(hits[1]);
- this._hitsRatioMax = co.doubleduck.pinata.meta.BigInt.roughDiv(this._hitsMax,this._hitsMin);
- var rewards = giftData.rewardRange.split("-");
- this._rewardMin = co.doubleduck.pinata.meta.BigInt.fromString(rewards[0]);
- this._rewardMax = co.doubleduck.pinata.meta.BigInt.fromString(rewards[1]);
- this._rewardRatioMax = co.doubleduck.pinata.meta.BigInt.roughDiv(this._rewardMax,this._rewardMin);
- this._hasStarted = false;
- this._totalHits = co.doubleduck.pinata.meta.BigInt.fromInt(0);
- this._body = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/pinatas/bonus.png");
- var _g = img;
- _g.set_x(_g.get_x() - img.get_width() / 2);
- var _g1 = img;
- _g1.set_y(_g1.get_y() - img.get_height() / 2);
- this._shakeBox = new openfl.display.Sprite();
- this._shakeBox.addChild(img);
- this._body.addChild(this._shakeBox);
- this._body.set_y(40);
- this._timeBar = new co.doubleduck.utils.ProgBar(co.doubleduck.utils.DDAssets.getImage("images/ui/time_bar_bg.png"),co.doubleduck.utils.DDAssets.getImage("images/ui/time_bar_fill.png"));
- this._timeBar.mouseEnabled = this._timeBar.mouseChildren = false;
- this._timeBar.set_x(-this._timeBar.get_width() / 2);
- this._timeBar.set_y(this._body.get_y() - this._body.get_height() / 2 - this._timeBar.get_height() - 30);
- this._timeBar.setFillPerc(1);
- this._timeBar.set_maskFrom(0.2);
- this._timeBar.set_maskTo(0.95);
- this._timeBar.set_alpha(0);
- this._shakeBox.set_scaleX(this._shakeBox.set_scaleY(0.6));
- co.doubleduck.pinata.core.pinatas.Pinata.call(this);
- this.addChildAt(this._timeBar,0);
- this.addChildAt(this._body,0);
- this._tapToStartTitle = new openfl.display.Sprite();
- var tapImg = co.doubleduck.utils.DDAssets.getImage("images/ui/tapfast.png");
- var _g2 = tapImg;
- _g2.set_x(_g2.get_x() - tapImg.get_width() / 2);
- var _g3 = tapImg;
- _g3.set_y(_g3.get_y() - tapImg.get_height() / 2);
- this._tapToStartTitle.addChild(tapImg);
- this._tapToStartTitle.set_y(this._body.get_y() - this._body.get_height());
- this._tapToStartTitle.set_alpha(0);
- this._tapToStartTitle.mouseChildren = this._tapToStartTitle.mouseEnabled = false;
- this.addChild(this._tapToStartTitle);
- };
- $hxClasses["co.doubleduck.pinata.core.pinatas.GiftPinata"] = co.doubleduck.pinata.core.pinatas.GiftPinata;
- co.doubleduck.pinata.core.pinatas.GiftPinata.__name__ = ["co","doubleduck","pinata","core","pinatas","GiftPinata"];
- co.doubleduck.pinata.core.pinatas.GiftPinata.__super__ = co.doubleduck.pinata.core.pinatas.Pinata;
- co.doubleduck.pinata.core.pinatas.GiftPinata.prototype = $extend(co.doubleduck.pinata.core.pinatas.Pinata.prototype,{
- animIn: function() {
- var _g = this;
- co.doubleduck.utils.TweenChain.removeTweens(this._body);
- var _g1 = this._body;
- _g1.set_x(_g1.get_x() + 50);
- var _g2 = this._body;
- _g2.set_y(_g2.get_y() - 10);
- this._body.set_scaleX(this._body.set_scaleY(0.4));
- this._body.set_alpha(0);
- co.doubleduck.utils.TweenChain.get(this._body).wait(200).tto({ y : this._body.get_y() - 20},200,motion.easing.Sine.get_easeOut()).tto({ y : this._body.get_y() + 10},200,motion.easing.Sine.get_easeIn());
- co.doubleduck.utils.TweenChain.get(this._body).wait(200).tto({ x : 0, scaleX : 1, scaleY : 1, alpha : 1},400).call(function() {
- _g._hittable = true;
- });
- co.doubleduck.utils.TweenChain.get(this._tapToStartTitle).wait(450).tto({ alpha : 1},350);
- co.doubleduck.utils.TweenAnimator.nudge(this._tapToStartTitle);
- }
- ,hit: function(amount,angle) {
- if(angle == null) angle = -1;
- if(!this._hittable) return;
- if(!this._hasStarted) {
- this._hasStarted = true;
- var dur = this._hitDuration * 1000;
- this._timeBar.setFillPerc(0,dur);
- co.doubleduck.utils.TweenChain.get(this._timeBar).wait(Math.floor(dur / 2)).call($bind(this,this.timeHalfPast)).wait(Math.floor(dur / 2)).call($bind(this,this.timeOver));
- this._hpsHitter = new co.doubleduck.utils.Delayer(250);
- this._hpsHitter.handler = $bind(this,this.handleHPS);
- this._hpsHitter.start();
- co.doubleduck.utils.TweenChain.removeTweens(this._tapToStartTitle);
- co.doubleduck.utils.TweenChain.get(this._tapToStartTitle).tto({ alpha : 0},150).call($bind(this,this.removeChild),[this._tapToStartTitle]);
- this._tapToStartTitle = null;
- co.doubleduck.utils.TweenChain.get(this._timeBar).tto({ alpha : 1},200);
- }
- this._totalHits = co.doubleduck.pinata.meta.BigInt.add(this._totalHits,amount);
- this.recalcReward();
- co.doubleduck.utils.SoundMgr.playSound("hit" + (Std.random(4) + 1));
- co.doubleduck.utils.TweenChain.removeTweens(this._body);
- this._body.set_scaleX(this._body.set_scaleY(1));
- var factor;
- if(Math.random() > 0.5) factor = 0.07; else factor = -0.07;
- co.doubleduck.utils.TweenChain.get(this._body).tto({ scaleX : 1 + factor, scaleY : 1 - factor},45,motion.easing.Sine.get_easeOut()).tto({ scaleX : 1, scaleY : 1},45,motion.easing.Sine.get_easeIn());
- var slash = co.doubleduck.pinata.core.pinatas.SlashAnim.createNew(this._slashRange,angle);
- this.addChild(slash);
- var dmgText = co.doubleduck.utils.Fonter.getString(amount.toString(),"images/fonts/yellow_big/");
- dmgText.set_alpha(0.8);
- this.addChild(dmgText);
- co.doubleduck.utils.TweenChain.get(dmgText).tto({ x : Math.random() * 60 + 30},300);
- co.doubleduck.utils.TweenChain.get(dmgText).tto({ y : -(Math.random() * 50 + 20)},300,motion.easing.Sine.get_easeOut());
- co.doubleduck.utils.TweenChain.get(dmgText).wait(200).tto({ alpha : 0},700,motion.easing.Sine.get_easeOut()).wait(20).call($bind(this,this.removeChild),[dmgText]);
- }
- ,recalcReward: function() {
- var ratio = co.doubleduck.pinata.meta.BigInt.roughDiv(this._totalHits,this._hitsMin);
- var sizeRat = co.doubleduck.utils.Utils.map(ratio,0,this._hitsRatioMax,0.6,1);
- co.doubleduck.utils.TweenChain.get(this._shakeBox).tto({ scaleX : sizeRat, scaleY : sizeRat},100);
- ratio = co.doubleduck.utils.Utils.map(ratio,1,this._hitsRatioMax,1,this._rewardRatioMax);
- this._reward = co.doubleduck.pinata.meta.BigInt.mulScalar(this._rewardMin,ratio);
- if(this._rewardTitle != null) {
- this.removeChild(this._rewardTitle);
- this._rewardTitle = null;
- }
- this._rewardTitle = co.doubleduck.utils.Fonter.getString("$" + this._reward.toString(),"images/fonts/yellow_big/");
- this._rewardTitle.set_y(120);
- this._rewardTitle.mouseChildren = this._rewardTitle.mouseEnabled = false;
- this.addChild(this._rewardTitle);
- }
- ,handleHPS: function() {
- var hpsPart = co.doubleduck.pinata.meta.BigInt.mulScalar(co.doubleduck.pinata.meta.Stats.getHPS(),0.25);
- this._totalHits = co.doubleduck.pinata.meta.BigInt.add(this._totalHits,hpsPart);
- this.recalcReward();
- }
- ,timeHalfPast: function() {
- co.doubleduck.utils.TweenAnimator.shake(this._shakeBox,6,60);
- }
- ,timeOver: function() {
- this._hpsHitter.stop();
- this._hittable = false;
- this.recalcReward();
- var data = { };
- data.level = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL);
- data.candyCount = co.doubleduck.pinata.meta.Stats.getPCandies().toFullString();
- data.killCount = co.doubleduck.pinata.data.Persistence.getInt(co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT);
- data.toolsState = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.TOOLS_STATE);
- data.currTapHits = co.doubleduck.pinata.meta.Stats.getHitVal().toFullString();
- data.currHPS = co.doubleduck.pinata.meta.Stats.getHPS().toFullString();
- data.totalHits = this._totalHits.toFullString();
- com.funtomic.GameOps.reportEvent("gift_won",data);
- co.doubleduck.utils.TweenChain.get(this._timeBar).tto({ alpha : 0},250).call($bind(this,this.removeChild),[this._timeBar]);
- co.doubleduck.utils.TweenChain.get(this._rewardTitle).wait(500).tto({ alpha : 0.01},200);
- co.doubleduck.utils.TweenChain.removeTweens(this._shakeBox);
- this._shakeBox.set_x(this._shakeBox.set_y(0));
- co.doubleduck.utils.TweenAnimator.shake(this._shakeBox,20,25);
- co.doubleduck.utils.TweenChain.get(this._shakeBox).wait(1200).call($bind(this,this.explodeGift));
- }
- ,explodeGift: function() {
- var _g = this;
- var rpart = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/pinatas/bonus-r.png");
- img.set_x(-img.get_width());
- img.set_y(-img.get_height() / 2);
- rpart.set_scaleX(rpart.set_scaleY(this._shakeBox.get_scaleX()));
- rpart.addChild(img);
- var lpart = new openfl.display.Sprite();
- img = co.doubleduck.utils.DDAssets.getImage("images/pinatas/bonus-l.png");
- img.set_y(-img.get_height() / 2);
- lpart.set_scaleX(lpart.set_scaleY(this._shakeBox.get_scaleX()));
- lpart.addChild(img);
- rpart.set_x(this._body.get_x() + this._body.get_width() / 2);
- rpart.set_y(this._body.get_y());
- lpart.set_x(this._body.get_x() - this._body.get_width() / 2);
- lpart.set_y(this._body.get_y());
- co.doubleduck.utils.TweenChain.get(this).tto({ scaleX : 0.7, scaleY : 0.7},130,motion.easing.Sine.get_easeOut()).call(function() {
- _g.set_scaleX(_g.set_scaleY(1));
- _g.removeChild(_g._body);
- _g.addChildAt(rpart,_g.getChildIndex(_g._rewardTitle));
- _g.addChildAt(lpart,_g.getChildIndex(_g._rewardTitle));
- var dist = 50;
- _g.dispatchEvent(new openfl.events.Event("OpenedEvent"));
- co.doubleduck.utils.TweenChain.removeTweens(_g._rewardTitle);
- _g._rewardTitle.set_scaleY(_g._rewardTitle.set_scaleX(1.6));
- _g._rewardTitle.set_y(_g._body.get_y() - 90);
- _g._rewardTitle.set_alpha(1);
- co.doubleduck.utils.TweenChain.get(_g._rewardTitle).wait(1300).tto({ alpha : 0},600);
- co.doubleduck.utils.TweenChain.get(rpart).tto({ x : rpart.get_x() + dist, y : rpart.get_y() - dist, rotation : -20},350,motion.easing.Cubic.get_easeOut()).tto({ x : rpart.get_x() + dist * 1.05, y : rpart.get_y() - dist * 1.05, rotation : -22},300).tto({ x : rpart.get_x() + dist * 6, y : rpart.get_y() - dist * 3, rotation : -43},250,motion.easing.Cubic.get_easeIn());
- co.doubleduck.utils.TweenChain.get(lpart).tto({ x : lpart.get_x() - dist, y : lpart.get_y() - dist, rotation : 20},350,motion.easing.Cubic.get_easeOut()).call($bind(_g,_g.dispatchEvent),[new openfl.events.Event("ClearingEvent")]).tto({ x : lpart.get_x() - dist * 1.05, y : lpart.get_y() - dist * 1.05, rotation : 22},300).tto({ x : lpart.get_x() - dist * 6, y : lpart.get_y() - dist * 3, rotation : 43},250,motion.easing.Cubic.get_easeIn()).wait(1900).call($bind(_g,_g.dispatchEvent),[new openfl.events.Event("ClearedEvent")]);
- var explode = new co.doubleduck.pinata.core.pinatas.ExplodeAnim();
- explode.set_x(_g._body.get_x() - 59. * explode.get_scaleX());
- explode.set_y(_g._body.get_y() - 59. * explode.get_scaleY());
- _g.addChild(explode);
- });
- }
- ,animVanish: function() {
- this._hittable = false;
- co.doubleduck.utils.TweenChain.removeTweens(this._body);
- co.doubleduck.utils.TweenChain.removeTweens(this._timeBar);
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ alpha : 0},200).call($bind(this,this.dispatchEvent),[new openfl.events.Event("ClearedEvent")]);
- }
- ,__class__: co.doubleduck.pinata.core.pinatas.GiftPinata
- });
- co.doubleduck.pinata.core.pinatas.SlashAnim = function() {
- var behDatas = new Array();
- behDatas.push(new spritesheet.data.BehaviorData("idle",[0,1,2,3],false,19,80.,16.));
- var sheet = co.doubleduck.utils.DDAssets.getSpritesheet("images/strike.png",4,1,160,32,behDatas);
- co.doubleduck.utils.AnimSprite.call(this,sheet);
- this.showBehavior("idle");
- this.mouseChildren = this.mouseEnabled = false;
- this._lastTime = openfl.Lib.getTimer();
- this.addEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- this.addEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDone));
- };
- $hxClasses["co.doubleduck.pinata.core.pinatas.SlashAnim"] = co.doubleduck.pinata.core.pinatas.SlashAnim;
- co.doubleduck.pinata.core.pinatas.SlashAnim.__name__ = ["co","doubleduck","pinata","core","pinatas","SlashAnim"];
- co.doubleduck.pinata.core.pinatas.SlashAnim.createNew = function(range,angle) {
- if(angle == null) angle = -1;
- var slash = new co.doubleduck.pinata.core.pinatas.SlashAnim();
- slash.set_x(range.x + Math.random() * range.width);
- slash.set_y(range.y + Math.random() * range.height);
- if(angle == -1) slash.set_rotation(Math.random() * 360); else slash.set_rotation(angle);
- return slash;
- };
- co.doubleduck.pinata.core.pinatas.SlashAnim.__super__ = co.doubleduck.utils.AnimSprite;
- co.doubleduck.pinata.core.pinatas.SlashAnim.prototype = $extend(co.doubleduck.utils.AnimSprite.prototype,{
- handleTick: function(e) {
- var time = openfl.Lib.getTimer();
- var delta = time - this._lastTime;
- this.update(delta);
- this.bitmap.smoothing = true;
- this._lastTime = time;
- }
- ,handleDone: function(e) {
- this.removeEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- this.removeEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDone));
- if(this.parent != null) this.parent.removeChild(this);
- }
- ,__class__: co.doubleduck.pinata.core.pinatas.SlashAnim
- });
- co.doubleduck.pinata.core.pinatas.ExplodeAnim = function() {
- var behDatas = new Array();
- behDatas.push(new spritesheet.data.BehaviorData("idle",[0,1,2,3,4,5],false,19));
- var sheet = co.doubleduck.utils.DDAssets.getSpritesheet("images/explosion.png",6,1,118,118,behDatas);
- co.doubleduck.utils.AnimSprite.call(this,sheet);
- this.showBehavior("idle");
- this._lastTime = openfl.Lib.getTimer();
- this.set_scaleX(this.set_scaleY(1.5));
- this.set_alpha(0.6);
- this.addEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- this.addEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDone));
- };
- $hxClasses["co.doubleduck.pinata.core.pinatas.ExplodeAnim"] = co.doubleduck.pinata.core.pinatas.ExplodeAnim;
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.__name__ = ["co","doubleduck","pinata","core","pinatas","ExplodeAnim"];
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.__super__ = co.doubleduck.utils.AnimSprite;
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.prototype = $extend(co.doubleduck.utils.AnimSprite.prototype,{
- handleTick: function(e) {
- var time = openfl.Lib.getTimer();
- var delta = time - this._lastTime;
- this.update(delta);
- this.bitmap.smoothing = true;
- this._lastTime = time;
- }
- ,handleDone: function(e) {
- this.removeEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- this.removeEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDone));
- if(this.parent != null) this.parent.removeChild(this);
- }
- ,__class__: co.doubleduck.pinata.core.pinatas.ExplodeAnim
- });
- co.doubleduck.pinata.core.pinatas.RegPinata = function(pinataID,hp,reward) {
- this._id = pinataID;
- this._hp = hp;
- this._initialHp = this._hp.clone();
- this._reward = reward;
- this._rope = co.doubleduck.utils.DDAssets.getImage("images/rope.png");
- this._body = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/pinatas/p" + pinataID + ".png");
- var _g = img;
- _g.set_x(_g.get_x() - img.get_width() / 2);
- var _g1 = img;
- _g1.set_y(_g1.get_y() - img.get_height() / 2);
- this._body.addChild(img);
- this._rope.set_y(this._body.get_y() - this._rope.get_height());
- this._hpBar = new co.doubleduck.utils.ProgBar(co.doubleduck.utils.DDAssets.getImage("images/ui/hp_bg.png"),co.doubleduck.utils.DDAssets.getImage("images/ui/hp_fill.png"));
- this._hpBar.mouseEnabled = this._hpBar.mouseChildren = false;
- this._hpBar.set_x(-this._hpBar.get_width() / 2);
- this._hpBar.set_y(this._body.get_height() * 0.5 + 5);
- this._hpBar.setFillPerc(1);
- this._hpBar.set_maskFrom(0.06);
- this._hpBar.set_maskTo(0.94);
- this._hpBar.set_alpha(0);
- co.doubleduck.pinata.core.pinatas.Pinata.call(this);
- this.addChildAt(this._hpBar,0);
- this.addChildAt(this._body,0);
- this.addChildAt(this._rope,0);
- };
- $hxClasses["co.doubleduck.pinata.core.pinatas.RegPinata"] = co.doubleduck.pinata.core.pinatas.RegPinata;
- co.doubleduck.pinata.core.pinatas.RegPinata.__name__ = ["co","doubleduck","pinata","core","pinatas","RegPinata"];
- co.doubleduck.pinata.core.pinatas.RegPinata.__super__ = co.doubleduck.pinata.core.pinatas.Pinata;
- co.doubleduck.pinata.core.pinatas.RegPinata.prototype = $extend(co.doubleduck.pinata.core.pinatas.Pinata.prototype,{
- initHittable: function() {
- this._hittable = true;
- this.startTakeHPS(true);
- this.idleBodyAnim();
- }
- ,animIn: function() {
- co.doubleduck.utils.TweenChain.removeTweens(this._body);
- this._body.set_y(-(this.get_y() + this._body.get_height() / 2 + 10));
- this._body.set_rotation(30);
- this._rope.set_y(this._body.get_y() - this._rope.get_height());
- co.doubleduck.utils.TweenChain.get(this._body).tto({ y : 0},900,motion.easing.Bounce.get_easeOut()).call($bind(this,this.initHittable));
- co.doubleduck.utils.TweenChain.get(this._body).tto({ rotation : 0},300).tto({ rotation : 12},300).tto({ rotation : 0},200);
- co.doubleduck.utils.TweenChain.get(this._rope).tto({ y : -this._rope.get_height()},900,motion.easing.Bounce.get_easeOut());
- this._rope.set_rotation(10);
- this._rope.set_x(10);
- co.doubleduck.utils.TweenChain.get(this._rope).tto({ rotation : 1, x : 5},300).tto({ rotation : -2, x : -7},300).tto({ rotation : 0, x : 0},200);
- co.doubleduck.utils.TweenChain.get(this._hpBar).wait(700).tto({ alpha : 1},150);
- }
- ,hit: function(amount,angle) {
- if(angle == null) angle = -1;
- if(!this._hittable) return;
- co.doubleduck.utils.TweenChain.removeTweens(this._hpBar);
- this._hpBar.set_alpha(1);
- this._hpBar.setFillPerc(this._hpBar.getFillPerc());
- this._hp = co.doubleduck.pinata.meta.BigInt.mulScalar(this._initialHp,this._hpBar.getFillPerc());
- co.doubleduck.utils.SoundMgr.playSound("hit" + (Std.random(4) + 1));
- co.doubleduck.utils.TweenChain.removeTweens(this._body);
- this._body.set_scaleX(this._body.set_scaleY(1));
- var factor;
- if(Math.random() > 0.5) factor = 0.07; else factor = -0.07;
- co.doubleduck.utils.TweenChain.get(this._body).tto({ scaleX : 1 + factor, scaleY : 1 - factor},45,motion.easing.Sine.get_easeOut()).tto({ scaleX : 1, scaleY : 1},45,motion.easing.Sine.get_easeIn()).call($bind(this,this.idleBodyAnim));
- var slash = co.doubleduck.pinata.core.pinatas.SlashAnim.createNew(this._slashRange,angle);
- this.addChild(slash);
- var dmgText = co.doubleduck.utils.Fonter.getString(amount.toString(),"images/fonts/yellow_big/");
- dmgText.set_alpha(0.8);
- this.addChild(dmgText);
- co.doubleduck.utils.TweenChain.get(dmgText).tto({ x : Math.random() * 60 + 30},300);
- co.doubleduck.utils.TweenChain.get(dmgText).tto({ y : -(Math.random() * 50 + 20)},300,motion.easing.Sine.get_easeOut());
- co.doubleduck.utils.TweenChain.get(dmgText).wait(200).tto({ alpha : 0},700,motion.easing.Sine.get_easeOut()).wait(20).call($bind(this,this.removeChild),[dmgText]);
- this._hp = co.doubleduck.pinata.meta.BigInt.subtract(this._hp,amount);
- var ratio = co.doubleduck.pinata.meta.BigInt.roughDiv(this._hp,this._initialHp);
- this._hpBar.setFillPerc(ratio);
- if(co.doubleduck.pinata.meta.BigInt.isZero(this._hp)) {
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.SHOW_BUBBLE);
- this._hittable = false;
- this.animDie();
- } else this.startTakeHPS();
- }
- ,animVanish: function() {
- if(co.doubleduck.pinata.meta.BigInt.isZero(this._hp)) return;
- this._hittable = false;
- if(this._rope != null) {
- co.doubleduck.utils.TweenChain.removeTweens(this._rope);
- co.doubleduck.utils.TweenChain.get(this._rope).tto({ alpha : 0},50);
- }
- co.doubleduck.utils.TweenChain.removeTweens(this._body);
- co.doubleduck.utils.TweenChain.removeTweens(this._hpBar);
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ alpha : 0},200).call($bind(this,this.dispatchEvent),[new openfl.events.Event("ClearedEvent")]);
- }
- ,startTakeHPS: function(andListen) {
- if(andListen == null) andListen = false;
- var hps = co.doubleduck.pinata.meta.Stats.getHPS();
- if(!co.doubleduck.pinata.meta.BigInt.isZero(hps)) this.reapplyHPS(hps);
- if(andListen) co.doubleduck.pinata.meta.Stats.addListener("UpdateHPSEvent",$bind(this,this.updateHPS));
- }
- ,updateHPS: function(e) {
- this._hpBar.setFillPerc(this._hpBar.getFillPerc());
- this._hp = co.doubleduck.pinata.meta.BigInt.mulScalar(this._initialHp,this._hpBar.getFillPerc());
- this.startTakeHPS();
- }
- ,reapplyHPS: function(hps) {
- var _g = this;
- co.doubleduck.utils.TweenChain.removeTweens(this._hpBar);
- this._hpBar.set_alpha(1);
- this._hpBar.setFillPerc(this._hpBar.getFillPerc());
- var dur = Math.floor(co.doubleduck.pinata.meta.BigInt.roughDiv(this._hp,hps) * 1000) + 1;
- this._hpBar.setFillPerc(0,dur);
- co.doubleduck.utils.TweenChain.get(this._hpBar).wait(dur).call(function() {
- _g._hittable = false;
- _g._hp = co.doubleduck.pinata.meta.BigInt.fromInt(0);
- _g.animDie();
- });
- }
- ,animDie: function() {
- var _g = this;
- co.doubleduck.pinata.meta.Stats.removeListener("UpdateHPSEvent",$bind(this,this.updateHPS));
- if(this.contains(this._hpBar)) co.doubleduck.utils.TweenChain.get(this._hpBar).tto({ alpha : 0},50).call($bind(this,this.removeChild),[this._hpBar]);
- if(this.contains(this._rope)) co.doubleduck.utils.TweenChain.get(this._rope).tto({ y : -(this.get_y() + this._rope.get_height() + 10)},100).call($bind(this,this.removeChild),[this._rope]);
- var rpart = new openfl.display.Sprite();
- var img = co.doubleduck.utils.DDAssets.getImage("images/pinatas/p" + this._id + "-r.png");
- img.set_x(-img.get_width());
- img.set_y(-img.get_height() / 2);
- rpart.addChild(img);
- var lpart = new openfl.display.Sprite();
- img = co.doubleduck.utils.DDAssets.getImage("images/pinatas/p" + this._id + "-l.png");
- img.set_y(-img.get_height() / 2);
- lpart.addChild(img);
- rpart.set_x(this._body.get_x() + this._body.get_width() / 2);
- rpart.set_y(this._body.get_y());
- lpart.set_x(this._body.get_x() - this._body.get_width() / 2);
- lpart.set_y(this._body.get_y());
- co.doubleduck.utils.TweenChain.get(this).tto({ scaleX : 0.7, scaleY : 0.7},130,motion.easing.Sine.get_easeOut()).call(function() {
- co.doubleduck.utils.SoundMgr.playSound("pinata_crack");
- _g.set_scaleX(_g.set_scaleY(1));
- _g.removeChild(_g._body);
- _g.addChild(rpart);
- _g.addChild(lpart);
- var dist = 50;
- _g.dispatchEvent(new openfl.events.Event("OpenedEvent"));
- co.doubleduck.utils.TweenChain.get(rpart).tto({ x : rpart.get_x() + dist, y : rpart.get_y() - dist, rotation : -20},250,motion.easing.Sine.get_easeOut()).tto({ x : rpart.get_x() + dist, y : rpart.get_y() - dist * 2, alpha : 0},700);
- co.doubleduck.utils.TweenChain.get(lpart).tto({ x : lpart.get_x() - dist, y : lpart.get_y() - dist, rotation : 20},250,motion.easing.Sine.get_easeOut()).call($bind(_g,_g.dispatchEvent),[new openfl.events.Event("ClearingEvent")]).tto({ x : lpart.get_x() - dist, y : lpart.get_y() - dist * 2, alpha : 0},700).wait(100).call($bind(_g,_g.dispatchEvent),[new openfl.events.Event("ClearedEvent")]);
- var explode = new co.doubleduck.pinata.core.pinatas.ExplodeAnim();
- explode.set_x(_g._body.get_x() - 59. * explode.get_scaleX());
- explode.set_y(_g._body.get_y() - 59. * explode.get_scaleY());
- _g.addChild(explode);
- });
- }
- ,__class__: co.doubleduck.pinata.core.pinatas.RegPinata
- });
- co.doubleduck.pinata.core.pinatas.MissionPinata = function(pinataID,reward) {
- co.doubleduck.pinata.core.pinatas.RegPinata.call(this,pinataID,co.doubleduck.pinata.meta.BigInt.fromInt(1),reward);
- this.removeChild(this._hpBar);
- this.removeChild(this._rope);
- };
- $hxClasses["co.doubleduck.pinata.core.pinatas.MissionPinata"] = co.doubleduck.pinata.core.pinatas.MissionPinata;
- co.doubleduck.pinata.core.pinatas.MissionPinata.__name__ = ["co","doubleduck","pinata","core","pinatas","MissionPinata"];
- co.doubleduck.pinata.core.pinatas.MissionPinata.__super__ = co.doubleduck.pinata.core.pinatas.RegPinata;
- co.doubleduck.pinata.core.pinatas.MissionPinata.prototype = $extend(co.doubleduck.pinata.core.pinatas.RegPinata.prototype,{
- __class__: co.doubleduck.pinata.core.pinatas.MissionPinata
- });
- co.doubleduck.pinata.core.tools = {};
- co.doubleduck.pinata.core.tools.ToolAnims = function() {
- openfl.display.Sprite.call(this);
- this.mouseEnabled = this.mouseChildren = false;
- this._toolAnimsToShow = this.getToolsToShow();
- this._toolAnims = new haxe.ds.StringMap();
- var _g = 0;
- var _g1 = this._toolAnimsToShow;
- while(_g < _g1.length) {
- var toolId = _g1[_g];
- ++_g;
- var toolAnim = this.getToolAnim(toolId);
- this._toolAnims.set(toolId,toolAnim);
- this.addChild(toolAnim);
- }
- co.doubleduck.pinata.meta.Stats.addListener("UpdateToolEvent",$bind(this,this.handleToolUpdrade));
- };
- $hxClasses["co.doubleduck.pinata.core.tools.ToolAnims"] = co.doubleduck.pinata.core.tools.ToolAnims;
- co.doubleduck.pinata.core.tools.ToolAnims.__name__ = ["co","doubleduck","pinata","core","tools","ToolAnims"];
- co.doubleduck.pinata.core.tools.ToolAnims.animRamInto = function(obj) {
- if(Math.random() > 0.5) {
- obj.set_x(-obj.get_width());
- var dir = Math.random();
- var scr = co.doubleduck.pinata.Game.getScreenSize();
- obj.set_y(scr.height * (dir * 0.4 + 0.1));
- obj.set_rotation((1 - dir) * 60 + 60);
- var targetPos = new openfl.geom.Point(scr.width * 0.35,scr.height * (dir * 0.2 + 0.2));
- var recoilPos = new openfl.geom.Point(co.doubleduck.utils.Utils.map(0.8,0,1,obj.get_x(),targetPos.x),co.doubleduck.utils.Utils.map(0.8,0,1,obj.get_y(),targetPos.y));
- co.doubleduck.utils.TweenChain.get(obj).tto({ x : targetPos.x, y : targetPos.y},300,motion.easing.Sine.get_easeOut()).tto({ x : recoilPos.x, y : recoilPos.y},100,motion.easing.Sine.get_easeOut()).tto({ x : targetPos.x, y : targetPos.y},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ x : recoilPos.x, y : recoilPos.y},100,motion.easing.Sine.get_easeOut()).tto({ x : targetPos.x, y : targetPos.y},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ x : recoilPos.x, y : recoilPos.y},100,motion.easing.Sine.get_easeOut()).tto({ x : targetPos.x, y : targetPos.y},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ x : obj.get_x(), y : obj.get_y()},300,motion.easing.Sine.get_easeIn()).wait(20 + Std.random(550)).call(co.doubleduck.pinata.core.tools.ToolAnims.animRamInto,[obj]);
- } else {
- var scr1 = co.doubleduck.pinata.Game.getScreenSize();
- obj.set_x(scr1.width + obj.get_width());
- var dir1 = Math.random();
- obj.set_y(scr1.height * (dir1 * 0.4 + 0.1));
- obj.set_rotation(dir1 * 60 - 120);
- var targetPos1 = new openfl.geom.Point(scr1.width * 0.65,scr1.height * (dir1 * 0.2 + 0.2));
- var recoilPos1 = new openfl.geom.Point(co.doubleduck.utils.Utils.map(0.8,0,1,obj.get_x(),targetPos1.x),co.doubleduck.utils.Utils.map(0.8,0,1,obj.get_y(),targetPos1.y));
- co.doubleduck.utils.TweenChain.get(obj).tto({ x : targetPos1.x, y : targetPos1.y},300,motion.easing.Sine.get_easeOut()).tto({ x : recoilPos1.x, y : recoilPos1.y},100,motion.easing.Sine.get_easeOut()).tto({ x : targetPos1.x, y : targetPos1.y},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ x : recoilPos1.x, y : recoilPos1.y},100,motion.easing.Sine.get_easeOut()).tto({ x : targetPos1.x, y : targetPos1.y},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ x : recoilPos1.x, y : recoilPos1.y},100,motion.easing.Sine.get_easeOut()).tto({ x : targetPos1.x, y : targetPos1.y},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ x : obj.get_x(), y : obj.get_y()},300,motion.easing.Sine.get_easeIn()).wait(20 + Std.random(550)).call(co.doubleduck.pinata.core.tools.ToolAnims.animRamInto,[obj]);
- }
- };
- co.doubleduck.pinata.core.tools.ToolAnims.animBatSmack = function(obj,init) {
- if(init == null) init = false;
- if(init) {
- var bmp = obj.getChildAt(0);
- var _g = bmp;
- _g.set_y(_g.get_y() - bmp.get_height());
- }
- if(Math.random() > 0.5) {
- var scr = co.doubleduck.pinata.Game.getScreenSize();
- obj.set_x(scr.width * 0.32);
- var dir = Math.random();
- obj.set_y(scr.height * (dir * 0.2 + 0.27));
- var baseRot = (1 - dir) * 60 - 30;
- obj.set_rotation(baseRot - 10);
- obj.set_alpha(0);
- co.doubleduck.utils.TweenChain.get(obj).tto({ alpha : 1, rotation : baseRot},200,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot - 20},100,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot + 20},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ rotation : baseRot - 20},100,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot + 20},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ rotation : baseRot - 20},100,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot + 20},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ rotation : baseRot},100,motion.easing.Sine.get_easeOut()).wait(50).tto({ alpha : 0, rotation : baseRot - 10},200,motion.easing.Sine.get_easeIn()).wait(20 + Std.random(550)).call(co.doubleduck.pinata.core.tools.ToolAnims.animBatSmack,[obj]);
- } else {
- var scr1 = co.doubleduck.pinata.Game.getScreenSize();
- obj.set_x(scr1.width * 0.68);
- var dir1 = Math.random();
- obj.set_y(scr1.height * (dir1 * 0.2 + 0.27));
- var baseRot1 = dir1 * 60 - 30;
- obj.set_rotation(baseRot1 + 10);
- co.doubleduck.utils.TweenChain.get(obj).tto({ alpha : 1, rotation : baseRot1},200,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot1 + 20},100,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot1 - 20},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ rotation : baseRot1 + 20},100,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot1 - 20},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ rotation : baseRot1 + 20},100,motion.easing.Sine.get_easeOut()).tto({ rotation : baseRot1 - 20},60,motion.easing.Sine.get_easeIn()).wait(30).tto({ rotation : baseRot1},100,motion.easing.Sine.get_easeOut()).wait(50).tto({ alpha : 0, rotation : baseRot1 + 10},200,motion.easing.Sine.get_easeIn()).wait(20 + Std.random(550)).call(co.doubleduck.pinata.core.tools.ToolAnims.animBatSmack,[obj]);
- }
- };
- co.doubleduck.pinata.core.tools.ToolAnims.animRandomly = function(obj) {
- co.doubleduck.utils.TweenChain.get(obj).tto({ x : 100 + Math.random() * 100, y : 100 + Math.random() * 100},400,motion.easing.Sine.get_easeInOut()).tto({ x : 100 + Math.random() * 100, y : 100 + Math.random() * 100},400,motion.easing.Sine.get_easeInOut()).wait(20).call(co.doubleduck.pinata.core.tools.ToolAnims.animRandomly,[obj]);
- };
- co.doubleduck.pinata.core.tools.ToolAnims.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.tools.ToolAnims.prototype = $extend(openfl.display.Sprite.prototype,{
- toggleShow: function(flag) {
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ alpha : flag?1:0},100);
- }
- ,getToolsToShow: function() {
- var res = new Array();
- var _g = 0;
- var _g1 = co.doubleduck.pinata.data.GameplayDB.getTools();
- while(_g < _g1.length) {
- var curr = _g1[_g];
- ++_g;
- if(curr.id == "good-ol-bat") continue;
- if(co.doubleduck.pinata.meta.Stats.getToolLevel(curr.id) >= 1) res.push(curr.id);
- if(res.length > 3) res.shift();
- }
- return res;
- }
- ,handleToolUpdrade: function(e) {
- var currTools = this.getToolsToShow();
- if(currTools.join(",") != this._toolAnimsToShow.join(",")) {
- if(this._toolAnimsToShow.length == currTools.length) {
- var oldTool = this._toolAnims.get(this._toolAnimsToShow[0]);
- this._toolAnims.remove(this._toolAnimsToShow[0]);
- co.doubleduck.utils.TweenChain.removeTweens(oldTool);
- this.removeChild(oldTool);
- oldTool = null;
- }
- var newToolId = currTools[currTools.length - 1];
- var newTool = this.getToolAnim(newToolId);
- this._toolAnims.set(newToolId,newTool);
- this.addChild(newTool);
- this._toolAnimsToShow = currTools;
- }
- }
- ,getToolAnim: function(toolId) {
- var tool = new openfl.display.Sprite();
- var bmp = co.doubleduck.utils.DDAssets.getImage("images/tools_menu/tools/" + toolId + "/anim.png");
- var _g = bmp;
- _g.set_x(_g.get_x() - bmp.get_width() / 2);
- tool.addChild(bmp);
- var type = co.doubleduck.pinata.data.GameplayDB.getToolData(toolId).animType;
- switch(type) {
- case "smack":
- co.doubleduck.pinata.core.tools.ToolAnims.animBatSmack(tool,true);
- break;
- case "ram":
- co.doubleduck.pinata.core.tools.ToolAnims.animRamInto(tool);
- break;
- }
- return tool;
- }
- ,__class__: co.doubleduck.pinata.core.tools.ToolAnims
- });
- co.doubleduck.pinata.core.tools.ToolItem = function(data) {
- co.doubleduck.pinata.meta.ScrolledItem.call(this);
- this._data = data;
- this._id = this._data.id;
- this._dir = "images/tools_menu/tools/" + this._id + "/";
- var toolLvl = co.doubleduck.pinata.meta.Stats.getToolLevel(this._id);
- this._hasBuyNotif = false;
- this._back = co.doubleduck.utils.DDAssets.getImage("images/tools_menu/item_bg.png");
- this.addChild(this._back);
- this._icon = co.doubleduck.utils.DDAssets.getImage(this._dir + "pic.png");
- this._icon.set_y(this._back.get_height() / 2 - this._icon.get_height() / 2);
- this._icon.set_x(this._icon.get_y());
- this.addChild(this._icon);
- this._title = co.doubleduck.utils.DDAssets.getImage(this._dir + "name.png");
- this._title.set_y(this._icon.get_y());
- this._title.set_x(this._icon.get_x() + this._icon.get_width() + 5);
- this.addChild(this._title);
- this.setupVals();
- var notif = co.doubleduck.utils.DDAssets.getImage("images/ui/attention_tag.png");
- var _g = notif;
- _g.set_x(_g.get_x() - notif.get_width() / 2);
- var _g1 = notif;
- _g1.set_y(_g1.get_y() - notif.get_height() / 2);
- this._notif = new openfl.display.Sprite();
- this._notif.addChild(notif);
- this._notif.set_x(this._upgradeBtn.get_x() - this._upgradeBtn.get_width() / 2 + 10);
- this._notif.set_y(this._upgradeBtn.get_y() - this._upgradeBtn.get_height() / 2 + 10);
- this._notif.set_visible(false);
- this.addChild(this._notif);
- co.doubleduck.pinata.meta.Stats.addListener("UpdateCandiesEvent",$bind(this,this.handleCandies));
- };
- $hxClasses["co.doubleduck.pinata.core.tools.ToolItem"] = co.doubleduck.pinata.core.tools.ToolItem;
- co.doubleduck.pinata.core.tools.ToolItem.__name__ = ["co","doubleduck","pinata","core","tools","ToolItem"];
- co.doubleduck.pinata.core.tools.ToolItem.__super__ = co.doubleduck.pinata.meta.ScrolledItem;
- co.doubleduck.pinata.core.tools.ToolItem.prototype = $extend(co.doubleduck.pinata.meta.ScrolledItem.prototype,{
- getToolId: function() {
- return this._id;
- }
- ,setBuyNotif: function(flag) {
- if(this._notif.get_visible() == flag) return;
- if(flag) this.animNotif(); else co.doubleduck.utils.TweenChain.removeTweens(this._notif);
- this._notif.set_visible(flag);
- }
- ,animNotif: function() {
- co.doubleduck.utils.TweenChain.removeTweens(this._notif);
- this._notif.set_scaleX(this._notif.set_scaleY(1));
- co.doubleduck.utils.TweenChain.get(this._notif).tto({ scaleX : 1.15, scaleY : 1.15},350,motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},250,motion.easing.Sine.get_easeInOut()).call($bind(this,this.animNotif),[]);
- }
- ,setupVals: function() {
- if(this._upgradeBtn != null) {
- this._upgradeBtn.removeEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleUpgrade));
- this.removeChild(this._upgradeBtn);
- this._upgradeBtn = null;
- }
- if(this._hpsVal != null) {
- this.removeChild(this._hpsVal);
- this._hpsVal = null;
- }
- if(this._levelVal != null) {
- this.removeChild(this._levelVal);
- this._levelVal = null;
- }
- if(this._btnHPS != null) {
- this.removeChild(this._btnHPS);
- this._btnHPS = null;
- }
- if(this._btnPrice != null) {
- this.removeChild(this._btnPrice);
- this._btnPrice = null;
- }
- var toolLvl = co.doubleduck.pinata.meta.Stats.getToolLevel(this._id);
- if(toolLvl == 0) {
- this._icon.set_alpha(0.5);
- this._upgradeBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/tools_menu/btn_buy.png"));
- } else {
- this._icon.set_alpha(1);
- this._upgradeBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/tools_menu/btn_upgrade.png"));
- var hps = co.doubleduck.pinata.meta.Stats.getHPSForTool(this._id);
- this._hpsVal = co.doubleduck.utils.Fonter.getString(hps.toString() + (this._id == "good-ol-bat"?"#":"~"),"images/fonts/purple/");
- this._hpsVal.set_x(this._icon.get_x() + this._icon.get_width() + 5 + this._hpsVal.get_width() / 2);
- this._hpsVal.set_y(this._icon.get_y() + this._icon.get_height() - this._hpsVal.get_height() / 2);
- this.addChild(this._hpsVal);
- this._levelVal = co.doubleduck.utils.Fonter.getString("*" + toolLvl,"images/fonts/yellow_small/");
- this._levelVal.set_x(this._hpsVal.get_x() - this._hpsVal.get_width() / 2 + this._levelVal.get_width() / 2);
- this._levelVal.set_y(this._hpsVal.get_y() - this._hpsVal.get_height() / 2 - this._levelVal.get_height() / 2);
- this.addChild(this._levelVal);
- }
- this._upgradeBtn.set_y(this._back.get_height() - this._upgradeBtn.get_height() / 2 - 5);
- this._upgradeBtn.set_x(this._back.get_width() - this._upgradeBtn.get_width() / 2 - 4);
- this._upgradeBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleUpgrade));
- if(this._notif != null) this.addChildAt(this._upgradeBtn,this.getChildIndex(this._notif)); else this.addChild(this._upgradeBtn);
- var nextHps = co.doubleduck.pinata.meta.Stats.getHPSForTool(this._id,co.doubleduck.pinata.meta.Stats.getToolLevel(this._id) + 1);
- this._btnHPS = co.doubleduck.utils.Fonter.getString(nextHps.toString() + (this._id == "good-ol-bat"?"#":"~"),"images/fonts/purple/");
- this._btnHPS.mouseChildren = this._btnHPS.mouseEnabled = false;
- this._btnHPS.set_x(this._upgradeBtn.get_x());
- this._btnHPS.set_y(this._upgradeBtn.get_y() - this._upgradeBtn.get_height() * 0.08);
- this.addChild(this._btnHPS);
- this._nextPrice = co.doubleduck.pinata.meta.Stats.getPriceForTool(this._id,co.doubleduck.pinata.meta.Stats.getToolLevel(this._id) + 1);
- this._btnPrice = co.doubleduck.utils.Fonter.getString("$" + this._nextPrice.toString(),"images/fonts/yellow_small/");
- this._btnPrice.mouseChildren = this._btnPrice.mouseEnabled = false;
- this._btnPrice.set_x(this._upgradeBtn.get_x());
- this._btnPrice.set_y(this._upgradeBtn.get_y() + this._upgradeBtn.get_height() * 0.22);
- this.addChild(this._btnPrice);
- this.handleCandies();
- }
- ,capPlayerBuy: function() {
- return this._upgradeBtn.enabled;
- }
- ,handleCandies: function(e) {
- var prevVal = this._upgradeBtn.enabled;
- if(co.doubleduck.pinata.meta.BigInt.isGT(this._nextPrice,co.doubleduck.pinata.meta.Stats.getPCandies())) {
- this.set_alpha(0.5);
- this._upgradeBtn.enabled = false;
- } else {
- this.set_alpha(1);
- this._upgradeBtn.enabled = true;
- }
- if(this._upgradeBtn.enabled != prevVal) this.dispatchEvent(new openfl.events.Event("RetestNotifEvent"));
- }
- ,depressItem: function() {
- if(this._upgradeBtn != null) this._upgradeBtn.dePress();
- }
- ,handleUpgrade: function(e) {
- var toolLvl = co.doubleduck.pinata.meta.Stats.getToolLevel(this._id);
- var pcandies = co.doubleduck.pinata.meta.Stats.getPCandies();
- var nextPrice = co.doubleduck.pinata.meta.Stats.getPriceForTool(this._id,co.doubleduck.pinata.meta.Stats.getToolLevel(this._id) + 1);
- if(!co.doubleduck.pinata.meta.BigInt.isGT(nextPrice,pcandies)) {
- toolLvl = toolLvl + 1;
- pcandies = co.doubleduck.pinata.meta.BigInt.subtract(pcandies,nextPrice);
- co.doubleduck.pinata.meta.Stats.setPCandies(pcandies);
- co.doubleduck.pinata.meta.Stats.setToolLevel(this._id,toolLvl);
- co.doubleduck.utils.SoundMgr.playSound("purchase");
- this.setupVals();
- this.dispatchEvent(new openfl.events.Event("UpgradedEvent"));
- this.dispatchEvent(new openfl.events.Event("RetestNotifEvent"));
- var data = { };
- data.candyCount = co.doubleduck.pinata.meta.Stats.getPCandies().toFullString();
- data.toolName = this._id;
- data.toolLevel = toolLvl + "";
- com.funtomic.GameOps.reportEvent("toolUpgrade",data);
- if(this._id == "good-ol-bat" && toolLvl == 2) {
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.BUY_FIRST_UPGRADE);
- co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.EXIT_SHOP);
- }
- if(this._id == "pinata-smasher" && toolLvl == 1) co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.BUY_FIRST_AUTO);
- }
- }
- ,destroy: function() {
- }
- ,__class__: co.doubleduck.pinata.core.tools.ToolItem
- });
- co.doubleduck.pinata.core.tools.ToolsScr = function() {
- openfl.display.Sprite.call(this);
- this._isOpened = false;
- this._toolsData = co.doubleduck.pinata.data.GameplayDB.getTools();
- this._notifOnTools = new Array();
- this._tabBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/btn_tools.png"));
- this._tabBtn.set_x(this._tabBtn.get_width() / 2 - 2);
- this._tabBtn.set_y(co.doubleduck.pinata.Game.getScreenSize().height / 2 - 45);
- this._tabBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleTabBtn));
- this.addChild(this._tabBtn);
- var notif = co.doubleduck.utils.DDAssets.getImage("images/ui/attention_tag.png");
- var _g = notif;
- _g.set_x(_g.get_x() - notif.get_width() / 2);
- var _g1 = notif;
- _g1.set_y(_g1.get_y() - notif.get_height() / 2);
- this._notif = new openfl.display.Sprite();
- this._notif.addChild(notif);
- this._notif.set_x(this._tabBtn.get_x() + this._tabBtn.get_width() * 0.35);
- this._notif.set_y(this._tabBtn.get_y() - this._tabBtn.get_height() * 0.45);
- this._notif.set_visible(false);
- this.addChild(this._notif);
- this._scrBox = new openfl.display.Sprite();
- this.addChild(this._scrBox);
- this._back = co.doubleduck.utils.DDAssets.getImage("images/tools_menu/bg.png");
- var _g2 = this._scrBox;
- _g2.set_x(_g2.get_x() - this._back.get_width());
- this._topBar = co.doubleduck.utils.DDAssets.getImage("images/tools_menu/header.png");
- this.setupList();
- this._backBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/tools_menu/btn_back.png"));
- this._backBtn.set_x(this._backBtn.get_width() / 2 + 20);
- this._backBtn.set_y(this._backBtn.get_height() / 2 + 5);
- this._backBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleBackBtn));
- this._backBtn.enabled = false;
- this._scrBox.addChild(this._back);
- this._scrBox.addChild(this._toolsList);
- this._scrBox.addChild(this._topBar);
- this._scrBox.addChild(this._backBtn);
- co.doubleduck.pinata.meta.Stats.addListener("UpdateCandiesEvent",$bind(this,this.handlePCandies));
- };
- $hxClasses["co.doubleduck.pinata.core.tools.ToolsScr"] = co.doubleduck.pinata.core.tools.ToolsScr;
- co.doubleduck.pinata.core.tools.ToolsScr.__name__ = ["co","doubleduck","pinata","core","tools","ToolsScr"];
- co.doubleduck.pinata.core.tools.ToolsScr.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.core.tools.ToolsScr.prototype = $extend(openfl.display.Sprite.prototype,{
- handlePCandies: function(e) {
- if(!co.doubleduck.pinata.core.TutorOverlay.inst().hasPassedStep(co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN) && !co.doubleduck.pinata.meta.BigInt.isGT(co.doubleduck.pinata.meta.Stats.getPriceForTool("good-ol-bat",2),co.doubleduck.pinata.meta.Stats.getPCandies())) {
- if(co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN)) this.set_visible(true);
- }
- }
- ,closeIdOpened: function() {
- if(this._isOpened) this.handleBackBtn(null);
- }
- ,addToNotif: function(tool) {
- if(this._notifOnTools.length >= 2) this._notifOnTools.shift().setBuyNotif(false);
- this._notifOnTools.push(tool);
- }
- ,setupList: function() {
- if(this._toolsList != null) {
- this._scrBox.removeChild(this._toolsList);
- this._toolsList = null;
- }
- var scrollRect = co.doubleduck.pinata.Game.getScreenSize().clone();
- scrollRect.height -= this._topBar.get_height() + 10;
- this._toolsList = new co.doubleduck.pinata.meta.ScrolledList(scrollRect,true);
- this._toolsList.itemPadding = 10;
- this._toolsList.set_y(co.doubleduck.pinata.Game.getScreenSize().height - scrollRect.height);
- var prevName = "";
- var _g = 0;
- var _g1 = this._toolsData;
- while(_g < _g1.length) {
- var currData = _g1[_g];
- ++_g;
- if(currData.showWhenPrev != null) {
- var prevLevel = co.doubleduck.pinata.meta.Stats.getToolLevel(prevName);
- if(prevLevel < Std["int"](currData.showWhenPrev)) break;
- }
- var newItem = new co.doubleduck.pinata.core.tools.ToolItem(currData);
- newItem.addEventListener("UpgradedEvent",$bind(this,this.recheckList));
- newItem.addEventListener("RetestNotifEvent",$bind(this,this.retestNotif));
- this.addToNotif(newItem);
- this._toolsList.addItem(newItem);
- prevName = currData.id;
- }
- }
- ,recheckList: function(e) {
- var tool = e.target;
- var prevName = "";
- var _g = 0;
- var _g1 = this._toolsData;
- while(_g < _g1.length) {
- var currData = _g1[_g];
- ++_g;
- if(prevName == "") {
- if(currData.id == tool.getToolId()) prevName = currData.id;
- continue;
- }
- if(currData.showWhenPrev != null) {
- var prevLevel = co.doubleduck.pinata.meta.Stats.getToolLevel(prevName);
- if(prevLevel != Std["int"](currData.showWhenPrev)) break;
- }
- var newItem = new co.doubleduck.pinata.core.tools.ToolItem(currData);
- newItem.addEventListener("UpgradedEvent",$bind(this,this.recheckList));
- newItem.addEventListener("RetestNotifEvent",$bind(this,this.retestNotif));
- this.addToNotif(newItem);
- this._toolsList.addItem(newItem);
- prevName = currData.id;
- }
- }
- ,retestNotif: function(e) {
- var hasNotif = false;
- var _g1 = 0;
- var _g = this._notifOnTools.length;
- while(_g1 < _g) {
- var i = _g1++;
- var tool = this._notifOnTools[i];
- var toolNotif = false;
- if(tool.capPlayerBuy()) {
- if(i + 1 == this._notifOnTools.length) {
- hasNotif = true;
- toolNotif = true;
- } else {
- var currLevel = co.doubleduck.pinata.meta.Stats.getToolLevel(this._notifOnTools[i].getToolId());
- var nextLevel = co.doubleduck.pinata.meta.Stats.getToolLevel(this._notifOnTools[i + 1].getToolId());
- if(Math.floor(currLevel / 5) <= Math.floor(nextLevel / 5)) {
- hasNotif = true;
- toolNotif = true;
- }
- }
- }
- tool.setBuyNotif(toolNotif);
- }
- this.toggleNotif(hasNotif);
- }
- ,toggleNotif: function(flag) {
- if(this._notif.get_visible() == flag) return;
- if(flag) this.animNotif();
- this._notif.set_visible(flag);
- }
- ,animNotif: function() {
- co.doubleduck.utils.TweenChain.removeTweens(this._notif);
- this._notif.set_scaleX(this._notif.set_scaleY(1));
- co.doubleduck.utils.TweenChain.get(this._notif).tto({ scaleX : 1.15, scaleY : 1.15},350,motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},250,motion.easing.Sine.get_easeInOut()).call($bind(this,this.animNotif),[]);
- }
- ,handleTabBtn: function(e) {
- var _g = this;
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.TAP_TAB_BTN);
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.OPEN));
- this._isOpened = true;
- co.doubleduck.utils.SoundMgr.playSound("menu_open");
- this._tabBtn.enabled = false;
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ x : -this._scrBox.get_x()},300,motion.easing.Sine.get_easeInOut()).call(function() {
- _g._backBtn.enabled = true;
- co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.BUY_FIRST_UPGRADE);
- var newestTool = _g._notifOnTools[_g._notifOnTools.length - 1];
- if(newestTool.getToolId() == "pinata-smasher" && co.doubleduck.pinata.meta.Stats.getToolLevel("pinata-smasher") == 0 && newestTool.capPlayerBuy()) co.doubleduck.pinata.core.TutorOverlay.inst().tryShowStep(co.doubleduck.pinata.core.TutorStep.BUY_FIRST_AUTO);
- });
- }
- ,handleBackBtn: function(e) {
- var _g = this;
- this._isOpened = false;
- co.doubleduck.pinata.core.TutorOverlay.inst().actedOnStep(co.doubleduck.pinata.core.TutorStep.EXIT_SHOP);
- co.doubleduck.utils.SoundMgr.playSound("menu_open");
- this._backBtn.enabled = false;
- co.doubleduck.utils.TweenChain.removeTweens(this);
- co.doubleduck.utils.TweenChain.get(this).tto({ x : 0},300,motion.easing.Sine.get_easeInOut()).call(function() {
- _g._tabBtn.enabled = true;
- });
- }
- ,__class__: co.doubleduck.pinata.core.tools.ToolsScr
- });
- co.doubleduck.pinata.data = {};
- co.doubleduck.pinata.data.GameplayDB = function() {
- this.data = JSON.parse(openfl.Assets.getText("data/gameplay.js"));
- };
- $hxClasses["co.doubleduck.pinata.data.GameplayDB"] = co.doubleduck.pinata.data.GameplayDB;
- co.doubleduck.pinata.data.GameplayDB.__name__ = ["co","doubleduck","pinata","data","GameplayDB"];
- co.doubleduck.pinata.data.GameplayDB._instance = null;
- co.doubleduck.pinata.data.GameplayDB.instance = function() {
- if(co.doubleduck.pinata.data.GameplayDB._instance == null) co.doubleduck.pinata.data.GameplayDB._instance = new co.doubleduck.pinata.data.GameplayDB();
- return co.doubleduck.pinata.data.GameplayDB._instance;
- };
- co.doubleduck.pinata.data.GameplayDB.getLevelData = function(levelId) {
- var levels = co.doubleduck.pinata.data.GameplayDB.getLevels();
- if(levelId <= levels.length && levels[levelId - 1].id == levelId) return levels[levelId - 1];
- var _g = 0;
- while(_g < levels.length) {
- var dat = levels[_g];
- ++_g;
- if(dat.id == levelId) return dat;
- }
- return null;
- };
- co.doubleduck.pinata.data.GameplayDB.getLevels = function() {
- return co.doubleduck.pinata.data.GameplayDB.getData().levelsData;
- };
- co.doubleduck.pinata.data.GameplayDB.getToolData = function(toolId) {
- var tools = co.doubleduck.pinata.data.GameplayDB.getTools();
- var _g = 0;
- while(_g < tools.length) {
- var dat = tools[_g];
- ++_g;
- if(dat.id == toolId) return dat;
- }
- return null;
- };
- co.doubleduck.pinata.data.GameplayDB.getTools = function() {
- return co.doubleduck.pinata.data.GameplayDB.getData().toolsData;
- };
- co.doubleduck.pinata.data.GameplayDB.getMissionsData = function() {
- return co.doubleduck.pinata.data.GameplayDB.getData().missionsData;
- };
- co.doubleduck.pinata.data.GameplayDB.getMissionPack = function(packId) {
- var packs = co.doubleduck.pinata.data.GameplayDB.getMissionsData().data;
- var _g = 0;
- while(_g < packs.length) {
- var dat = packs[_g];
- ++_g;
- if(Std["int"](dat.packId) == packId) return dat;
- }
- return null;
- };
- co.doubleduck.pinata.data.GameplayDB.getMissionTypeData = function(typeId) {
- var typesData = co.doubleduck.pinata.data.GameplayDB.getMissionsData().types;
- var _g = 0;
- while(_g < typesData.length) {
- var dat = typesData[_g];
- ++_g;
- if(dat.id == typeId) return dat;
- }
- return null;
- };
- co.doubleduck.pinata.data.GameplayDB.getMissionData = function(packId,missionInd) {
- var pack = co.doubleduck.pinata.data.GameplayDB.getMissionPack(packId);
- var mission = pack.missions[missionInd];
- var typeData = co.doubleduck.pinata.data.GameplayDB.getMissionTypeData(mission.id);
- var data = { };
- data.id = mission.id;
- data.desc = typeData.desc;
- data.value = mission.value;
- return data;
- };
- co.doubleduck.pinata.data.GameplayDB.getData = function() {
- return co.doubleduck.pinata.data.GameplayDB.instance().data;
- };
- co.doubleduck.pinata.data.GameplayDB.setData = function(data) {
- co.doubleduck.pinata.data.GameplayDB.instance().data = data;
- };
- co.doubleduck.pinata.data.GameplayDB.prototype = {
- __class__: co.doubleduck.pinata.data.GameplayDB
- };
- co.doubleduck.pinata.data.Persistence = function() { };
- $hxClasses["co.doubleduck.pinata.data.Persistence"] = co.doubleduck.pinata.data.Persistence;
- co.doubleduck.pinata.data.Persistence.__name__ = ["co","doubleduck","pinata","data","Persistence"];
- co.doubleduck.pinata.data.Persistence._storageAdapter = null;
- co.doubleduck.pinata.data.Persistence.init = function(domain) {
- if(domain == null) domain = "";
- co.doubleduck.pinata.data.Persistence._storageAdapter = co.doubleduck.utils.data.StorageAdapter.get(domain,co.doubleduck.utils.data.StorageAdapterType.LOCAL_STORAGE);
- };
- co.doubleduck.pinata.data.Persistence.initGameData = function() {
- co.doubleduck.pinata.data.Persistence.initString(co.doubleduck.pinata.data.DataKey.MUTE_STATE,"false");
- co.doubleduck.pinata.data.Persistence.initString(co.doubleduck.pinata.data.DataKey.PLAYER_CANDIES,"0K");
- co.doubleduck.pinata.data.Persistence.initString(co.doubleduck.pinata.data.DataKey.TOOLS_STATE,"good-ol-bat" + ":1");
- co.doubleduck.pinata.data.Persistence.initString(co.doubleduck.pinata.data.DataKey.TUTOR_STEP,"");
- co.doubleduck.pinata.data.Persistence.initString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT,"0,1,2,3,4,5,6,7,8");
- co.doubleduck.pinata.data.Persistence.initString(co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT,"");
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL,1);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL,1);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.LATEST_TIME_KEPT,0);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.TUTOR_STAGE,0);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.RUNS_COUNTER,0);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT,0);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK,1);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND,0);
- co.doubleduck.pinata.data.Persistence.initInt(co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION,0);
- };
- co.doubleduck.pinata.data.Persistence.getInt = function(key) {
- return co.doubleduck.pinata.data.Persistence._storageAdapter.getInt(key);
- };
- co.doubleduck.pinata.data.Persistence.setInt = function(key,val) {
- co.doubleduck.pinata.data.Persistence._storageAdapter.setInt(key,val);
- };
- co.doubleduck.pinata.data.Persistence.initInt = function(key,defaultValue) {
- if(defaultValue == null) defaultValue = 0;
- co.doubleduck.pinata.data.Persistence._storageAdapter.initInt(key,defaultValue);
- };
- co.doubleduck.pinata.data.Persistence.getFloat = function(key) {
- return co.doubleduck.pinata.data.Persistence._storageAdapter.getFloat(key);
- };
- co.doubleduck.pinata.data.Persistence.setFloat = function(key,val) {
- co.doubleduck.pinata.data.Persistence._storageAdapter.setFloat(key,val);
- };
- co.doubleduck.pinata.data.Persistence.initFloat = function(key,defaultValue) {
- if(defaultValue == null) defaultValue = 0;
- co.doubleduck.pinata.data.Persistence._storageAdapter.initFloat(key,defaultValue);
- };
- co.doubleduck.pinata.data.Persistence.getString = function(key) {
- return co.doubleduck.pinata.data.Persistence._storageAdapter.getString(key);
- };
- co.doubleduck.pinata.data.Persistence.setString = function(key,val) {
- co.doubleduck.pinata.data.Persistence._storageAdapter.setString(key,val);
- };
- co.doubleduck.pinata.data.Persistence.initString = function(key,defaultValue) {
- if(defaultValue == null) defaultValue = "";
- co.doubleduck.pinata.data.Persistence._storageAdapter.initString(key,defaultValue);
- };
- co.doubleduck.pinata.data.Persistence.clear = function() {
- co.doubleduck.pinata.data.Persistence._storageAdapter.clear();
- };
- co.doubleduck.pinata.data.Persistence.adapter = function() {
- return co.doubleduck.pinata.data.Persistence._storageAdapter;
- };
- co.doubleduck.pinata.data.DataKey = $hxClasses["co.doubleduck.pinata.data.DataKey"] = { __ename__ : ["co","doubleduck","pinata","data","DataKey"], __constructs__ : ["MUTE_STATE","PLAYER_CANDIES","ACTIVE_LEVEL","TOOLS_STATE","UNLOCKED_LEVEL","LATEST_TIME_KEPT","TUTOR_STAGE","TUTOR_STEP","RUNS_COUNTER","PINATA_KILL_COUNT","CURR_MISSION_PACK","CURR_MISSION_IND","CURR_PIECES_LEFT","CURR_PIECES_GOT","PINATAS_BEAT_MISSION"] };
- co.doubleduck.pinata.data.DataKey.MUTE_STATE = ["MUTE_STATE",0];
- co.doubleduck.pinata.data.DataKey.MUTE_STATE.toString = $estr;
- co.doubleduck.pinata.data.DataKey.MUTE_STATE.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.PLAYER_CANDIES = ["PLAYER_CANDIES",1];
- co.doubleduck.pinata.data.DataKey.PLAYER_CANDIES.toString = $estr;
- co.doubleduck.pinata.data.DataKey.PLAYER_CANDIES.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL = ["ACTIVE_LEVEL",2];
- co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL.toString = $estr;
- co.doubleduck.pinata.data.DataKey.ACTIVE_LEVEL.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.TOOLS_STATE = ["TOOLS_STATE",3];
- co.doubleduck.pinata.data.DataKey.TOOLS_STATE.toString = $estr;
- co.doubleduck.pinata.data.DataKey.TOOLS_STATE.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL = ["UNLOCKED_LEVEL",4];
- co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL.toString = $estr;
- co.doubleduck.pinata.data.DataKey.UNLOCKED_LEVEL.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.LATEST_TIME_KEPT = ["LATEST_TIME_KEPT",5];
- co.doubleduck.pinata.data.DataKey.LATEST_TIME_KEPT.toString = $estr;
- co.doubleduck.pinata.data.DataKey.LATEST_TIME_KEPT.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.TUTOR_STAGE = ["TUTOR_STAGE",6];
- co.doubleduck.pinata.data.DataKey.TUTOR_STAGE.toString = $estr;
- co.doubleduck.pinata.data.DataKey.TUTOR_STAGE.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.TUTOR_STEP = ["TUTOR_STEP",7];
- co.doubleduck.pinata.data.DataKey.TUTOR_STEP.toString = $estr;
- co.doubleduck.pinata.data.DataKey.TUTOR_STEP.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.RUNS_COUNTER = ["RUNS_COUNTER",8];
- co.doubleduck.pinata.data.DataKey.RUNS_COUNTER.toString = $estr;
- co.doubleduck.pinata.data.DataKey.RUNS_COUNTER.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT = ["PINATA_KILL_COUNT",9];
- co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT.toString = $estr;
- co.doubleduck.pinata.data.DataKey.PINATA_KILL_COUNT.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK = ["CURR_MISSION_PACK",10];
- co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK.toString = $estr;
- co.doubleduck.pinata.data.DataKey.CURR_MISSION_PACK.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND = ["CURR_MISSION_IND",11];
- co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND.toString = $estr;
- co.doubleduck.pinata.data.DataKey.CURR_MISSION_IND.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT = ["CURR_PIECES_LEFT",12];
- co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT.toString = $estr;
- co.doubleduck.pinata.data.DataKey.CURR_PIECES_LEFT.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT = ["CURR_PIECES_GOT",13];
- co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT.toString = $estr;
- co.doubleduck.pinata.data.DataKey.CURR_PIECES_GOT.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION = ["PINATAS_BEAT_MISSION",14];
- co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION.toString = $estr;
- co.doubleduck.pinata.data.DataKey.PINATAS_BEAT_MISSION.__enum__ = co.doubleduck.pinata.data.DataKey;
- co.doubleduck.pinata.meta.AwayModal = function(reward) {
- openfl.display.Sprite.call(this);
- this._over = new openfl.display.Sprite();
- this._over.get_graphics().beginFill(0);
- this._over.get_graphics().drawRect(0,0,co.doubleduck.pinata.Game.getScreenSize().width,co.doubleduck.pinata.Game.getScreenSize().height);
- this._over.get_graphics().endFill();
- this._over.set_alpha(0.7);
- var _g = this._over;
- _g.set_x(_g.get_x() - co.doubleduck.pinata.Game.getScreenSize().width / 2);
- var _g1 = this._over;
- _g1.set_y(_g1.get_y() - co.doubleduck.pinata.Game.getScreenSize().height / 2);
- this.addChild(this._over);
- this._back = co.doubleduck.utils.DDAssets.getImage("images/ui/modal_away/bg.png");
- var _g2 = this._back;
- _g2.set_x(_g2.get_x() - this._back.get_width() / 2);
- var _g3 = this._back;
- _g3.set_y(_g3.get_y() - this._back.get_height() / 2);
- this.addChild(this._back);
- this._reward = co.doubleduck.utils.Fonter.getString("$" + reward.toString(),"images/fonts/yellow_big/");
- this._reward.set_y(this._back.get_y() + this._back.get_height() * 0.6);
- this.addChild(this._reward);
- this._okBtn = new co.doubleduck.utils.Button(co.doubleduck.utils.DDAssets.getRawImage("images/ui/modal_away/btn_ok.png"));
- this._okBtn.addEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleOk));
- this._okBtn.set_y(this._back.get_y() + this._back.get_height() * 0.8);
- this.addChild(this._okBtn);
- };
- $hxClasses["co.doubleduck.pinata.meta.AwayModal"] = co.doubleduck.pinata.meta.AwayModal;
- co.doubleduck.pinata.meta.AwayModal.__name__ = ["co","doubleduck","pinata","meta","AwayModal"];
- co.doubleduck.pinata.meta.AwayModal.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.meta.AwayModal.prototype = $extend(openfl.display.Sprite.prototype,{
- handleOk: function(e) {
- var _g = this;
- this._okBtn.enabled = false;
- this._okBtn.removeEventListener("BUTTON_ACT_EVENT",$bind(this,this.handleOk));
- co.doubleduck.utils.TweenChain.get(this).wait(50).tto({ alpha : 0.01},150).call(function() {
- if(_g.callWhenDone != null) _g.callWhenDone();
- if(_g.parent != null) _g.parent.removeChild(_g);
- });
- }
- ,__class__: co.doubleduck.pinata.meta.AwayModal
- });
- co.doubleduck.pinata.meta.BigInt = function(dat) {
- this._data = dat;
- };
- $hxClasses["co.doubleduck.pinata.meta.BigInt"] = co.doubleduck.pinata.meta.BigInt;
- co.doubleduck.pinata.meta.BigInt.__name__ = ["co","doubleduck","pinata","meta","BigInt"];
- co.doubleduck.pinata.meta.BigInt.fromString = function(val) {
- if(co.doubleduck.pinata.meta.BigInt.isAlpha(HxOverrides.cca(val,val.length - 1))) {
- var suff = val.charAt(val.length - 1);
- val = HxOverrides.substr(val,0,val.length - 1);
- var zeros = (co.doubleduck.pinata.meta.BigInt.SUFFIX.indexOf(suff) + 1) * 3;
- while(zeros > 0) {
- val = val + "0";
- zeros--;
- }
- }
- while(val.length % 3 > 0) val = "0" + val;
- var res = new Array();
- while(val.length > 0) {
- var part = HxOverrides.substr(val,val.length - 3,3);
- res.push(Std.parseInt(part));
- val = HxOverrides.substr(val,0,val.length - 3);
- }
- while(res.length > 1 && res[res.length - 1] == 0) res.pop();
- return new co.doubleduck.pinata.meta.BigInt(res);
- };
- co.doubleduck.pinata.meta.BigInt.fromInt = function(val) {
- return co.doubleduck.pinata.meta.BigInt.fromString("" + val);
- };
- co.doubleduck.pinata.meta.BigInt.add = function(lval,rval) {
- if(co.doubleduck.pinata.meta.BigInt.isZero(lval)) return rval.clone(); else if(co.doubleduck.pinata.meta.BigInt.isZero(rval)) return lval.clone();
- var level = 0;
- var carry = 0;
- var done = false;
- var res = new Array();
- var ldat = lval._data;
- var rdat = rval._data;
- while(!done) {
- var curr = carry;
- if(level < ldat.length) curr += ldat[level]; else curr += 0;
- if(level < rdat.length) curr += rdat[level]; else curr += 0;
- carry = Math.floor(curr / 1000);
- curr -= carry * 1000;
- res.push(curr);
- level++;
- done = carry == 0 && (level >= ldat.length && level >= rdat.length);
- }
- while(res.length > 1 && res[res.length - 1] == 0) res.pop();
- return new co.doubleduck.pinata.meta.BigInt(res);
- };
- co.doubleduck.pinata.meta.BigInt.subtract = function(lval,rval) {
- if(co.doubleduck.pinata.meta.BigInt.isZero(rval)) return lval.clone(); else if(!co.doubleduck.pinata.meta.BigInt.isGT(lval,rval)) return co.doubleduck.pinata.meta.BigInt.fromInt(0);
- var level = 0;
- var carry = 0;
- var done = false;
- var res = new Array();
- var ldat = lval._data;
- var rdat = rval._data;
- while(!done) {
- var curr = carry;
- if(level < ldat.length) curr += ldat[level]; else curr += 0;
- if(level < rdat.length) curr -= rdat[level]; else curr -= 0;
- carry = Math.floor(curr / 1000);
- curr -= carry * 1000;
- res.push(curr);
- level++;
- done = carry == 0 && (level >= ldat.length && level >= rdat.length);
- }
- while(res.length > 1 && res[res.length - 1] == 0) res.pop();
- return new co.doubleduck.pinata.meta.BigInt(res);
- };
- co.doubleduck.pinata.meta.BigInt.roughDiv = function(lval,rval) {
- var accuracy = 8;
- var ldat = lval.toFullString();
- var rdat = rval.toFullString();
- var fixDat = function(val) {
- if(val.length == 0) return "0";
- return val;
- };
- while(ldat.length > accuracy || rdat.length > accuracy) {
- ldat = fixDat(ldat);
- rdat = fixDat(rdat);
- ldat = HxOverrides.substr(ldat,0,ldat.length - 1);
- rdat = HxOverrides.substr(rdat,0,rdat.length - 1);
- }
- ldat = fixDat(ldat);
- rdat = fixDat(rdat);
- var lint = Std.parseInt(ldat);
- var rint = Std.parseInt(rdat);
- if(rint == 0) return Math.POSITIVE_INFINITY;
- return lint / rint;
- };
- co.doubleduck.pinata.meta.BigInt.mulScalar = function(lval,rval) {
- if(rval == 0 || co.doubleduck.pinata.meta.BigInt.isZero(lval)) return co.doubleduck.pinata.meta.BigInt.fromInt(0); else if(rval == 1) return lval.clone();
- var ldat = lval._data;
- var res = new Array();
- var _g1 = 0;
- var _g = ldat.length;
- while(_g1 < _g) {
- var i = _g1++;
- var miniRes = ldat[i] * rval;
- res[i] = Math.floor(miniRes);
- miniRes -= Math.floor(miniRes);
- var addTo = i - 1;
- while(addTo >= 0) {
- miniRes *= 1000;
- res[addTo] += Math.floor(miniRes);
- miniRes -= Math.floor(miniRes);
- addTo--;
- }
- }
- var done = false;
- var curr = 0;
- var carry = 0;
- while(!done) {
- if(curr >= res.length) res.push(0);
- res[curr] += carry;
- carry = Math.floor(res[curr] / 1000);
- res[curr] -= carry * 1000;
- curr++;
- done = curr >= res.length && carry == 0;
- }
- while(res.length > 1 && res[res.length - 1] == 0) res.pop();
- return new co.doubleduck.pinata.meta.BigInt(res);
- };
- co.doubleduck.pinata.meta.BigInt.isGT = function(lval,rval) {
- var ldat = lval._data;
- var rdat = rval._data;
- if(ldat.length != rdat.length) return ldat.length > rdat.length; else {
- var _g1 = 0;
- var _g = ldat.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(ldat[ldat.length - i - 1] != rdat[rdat.length - i - 1]) return ldat[ldat.length - i - 1] > rdat[rdat.length - i - 1];
- }
- }
- return false;
- };
- co.doubleduck.pinata.meta.BigInt.isEqual = function(lval,rval) {
- var ldat = lval._data;
- var rdat = rval._data;
- if(ldat.length != rdat.length) return false; else {
- var _g1 = 0;
- var _g = ldat.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(ldat[i] != rdat[i]) return false;
- }
- }
- return true;
- };
- co.doubleduck.pinata.meta.BigInt.isZero = function(val) {
- var dat = val._data;
- return dat.length == 1 && dat[0] == 0;
- };
- co.doubleduck.pinata.meta.BigInt.isNum = function(code) {
- return code >= HxOverrides.cca("0",0) && code <= HxOverrides.cca("9",0);
- };
- co.doubleduck.pinata.meta.BigInt.isAlpha = function(code) {
- return code >= HxOverrides.cca("a",0) && code <= HxOverrides.cca("z",0) || code >= HxOverrides.cca("A",0) && code <= HxOverrides.cca("Z",0);
- };
- co.doubleduck.pinata.meta.BigInt.prototype = {
- toString: function() {
- var level = this._data.length - 1;
- var num;
- if(this._data[this._data.length - 1] < 10 && this._data.length > 1) {
- num = this._data[this._data.length - 1] * 1000;
- num += this._data[this._data.length - 2];
- level--;
- } else num = this._data[this._data.length - 1];
- var res = co.doubleduck.utils.Fonter.commafyNum(num);
- if(level > 0) res += co.doubleduck.pinata.meta.BigInt.SUFFIX.charAt(level - 1);
- return res;
- }
- ,toFullString: function() {
- var res = "";
- var _g1 = 0;
- var _g = this._data.length;
- while(_g1 < _g) {
- var i = _g1++;
- var curr = "" + this._data[i];
- while(curr.length < 3) curr = "0" + curr;
- res = curr + res;
- }
- while(res.charAt(0) == "0" && res.length > 1) res = HxOverrides.substr(res,1,res.length - 1);
- return res;
- }
- ,dataString: function() {
- return "" + Std.string(this._data);
- }
- ,clone: function() {
- var dat = this._data.slice();
- return new co.doubleduck.pinata.meta.BigInt(dat);
- }
- ,__class__: co.doubleduck.pinata.meta.BigInt
- };
- co.doubleduck.pinata.meta.FlowEvents = function() { };
- $hxClasses["co.doubleduck.pinata.meta.FlowEvents"] = co.doubleduck.pinata.meta.FlowEvents;
- co.doubleduck.pinata.meta.FlowEvents.__name__ = ["co","doubleduck","pinata","meta","FlowEvents"];
- co.doubleduck.pinata.meta.Menu = function(data) {
- openfl.display.Sprite.call(this);
- co.doubleduck.utils.Utils.delayedCall(0.1,$bind(this,this.dispatchEvent),[new openfl.events.Event(co.doubleduck.pinata.meta.FlowEvents.START_SESSION)]);
- };
- $hxClasses["co.doubleduck.pinata.meta.Menu"] = co.doubleduck.pinata.meta.Menu;
- co.doubleduck.pinata.meta.Menu.__name__ = ["co","doubleduck","pinata","meta","Menu"];
- co.doubleduck.pinata.meta.Menu.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.meta.Menu.prototype = $extend(openfl.display.Sprite.prototype,{
- destroy: function() {
- }
- ,__class__: co.doubleduck.pinata.meta.Menu
- });
- co.doubleduck.pinata.meta.ScrolledList = function(size,dirVertical) {
- this.scrollable = true;
- this.itemSnap = false;
- this.itemPadding = 0;
- openfl.display.Sprite.call(this);
- this._touch = size.clone();
- this._dirVertical = dirVertical;
- this._items = new Array();
- this._itemBox = new openfl.display.Sprite();
- this.addChild(this._itemBox);
- this._maxPos = new openfl.geom.Point(0,0);
- this.addEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.handleStage));
- };
- $hxClasses["co.doubleduck.pinata.meta.ScrolledList"] = co.doubleduck.pinata.meta.ScrolledList;
- co.doubleduck.pinata.meta.ScrolledList.__name__ = ["co","doubleduck","pinata","meta","ScrolledList"];
- co.doubleduck.pinata.meta.ScrolledList.__super__ = openfl.display.Sprite;
- co.doubleduck.pinata.meta.ScrolledList.prototype = $extend(openfl.display.Sprite.prototype,{
- handleStage: function(e) {
- this.removeEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.handleStage));
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleOverlay));
- }
- ,addItem: function(item) {
- if(this._dirVertical) {
- item.set_y(this._maxPos.y);
- item.set_x(this._touch.width / 2 - item.get_width() / 2);
- this._maxPos.y += item.get_height() + this.itemPadding;
- } else {
- item.set_x(this._maxPos.x);
- item.set_y(this._touch.height / 2 - item.get_height() / 2);
- this._maxPos.x += item.get_width() + this.itemPadding;
- }
- this._items.push(item);
- this._itemBox.addChild(item);
- }
- ,getLength: function() {
- return this._items.length;
- }
- ,getItem: function(index) {
- return this._items[index];
- }
- ,stopScroll: function() {
- if(this._touchPos != null) this.handleOverlay(new openfl.events.MouseEvent(openfl.events.MouseEvent.MOUSE_UP));
- }
- ,focusOnIndex: function(index,force) {
- if(force == null) force = false;
- this.focusOnItem(this._items[index],force);
- }
- ,focusOnItem: function(item,force) {
- if(force == null) force = false;
- co.doubleduck.utils.TweenChain.removeTweens(this._itemBox);
- if(this._dirVertical) {
- var snapPos = this._touch.y + this._touch.height / 2;
- var target = snapPos - (item.get_y() + item.get_height() / 2);
- target = Math.min(target,0);
- target = Math.max(target,this._touch.height - Math.max(this._maxPos.y,this._touch.height));
- if(force) this._itemBox.set_y(target); else co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ y : target},200,motion.easing.Sine.get_easeOut());
- } else {
- var snapPos1 = this._touch.x + this._touch.width / 2;
- var target1 = snapPos1 - (item.get_x() + item.get_width() / 2);
- target1 = Math.min(target1,0);
- target1 = Math.max(target1,this._touch.width - Math.max(this._maxPos.x,this._touch.width));
- if(force) this._itemBox.set_x(target1); else co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ x : target1},200,motion.easing.Sine.get_easeOut());
- }
- }
- ,handleOverlay: function(e) {
- if(!this.scrollable) return;
- var pos = this.globalToLocal(new openfl.geom.Point(e.stageX,e.stageY));
- if(e.type == openfl.events.MouseEvent.MOUSE_DOWN) {
- if(this._touch.contains(pos.x,pos.y) && this.get_visible() && this.get_alpha() > 0) {
- this._touchPos = pos;
- this._srcPos = new openfl.geom.Point(this._itemBox.get_x(),this._itemBox.get_y());
- this._depressed = false;
- this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleOverlay));
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.handleOverlay));
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.handleOverlay));
- }
- } else if(e.type == openfl.events.MouseEvent.MOUSE_MOVE) {
- if(this._touchPos != null) {
- var delta;
- if(this._dirVertical) delta = pos.y - this._touchPos.y; else delta = pos.x - this._touchPos.x;
- if(!this._depressed && Math.abs(delta) > 5) {
- this._depressed = true;
- co.doubleduck.utils.TweenChain.removeTweens(this._itemBox);
- var _g1 = 0;
- var _g = this._items.length;
- while(_g1 < _g) {
- var i = _g1++;
- var item = this._items[i];
- item.depressItem();
- }
- }
- var target;
- target = (this._dirVertical?this._srcPos.y:this._srcPos.x) + delta;
- var maxVal;
- if(this._dirVertical) maxVal = this._maxPos.y; else maxVal = this._maxPos.x;
- var touchVal;
- if(this._dirVertical) touchVal = this._touch.height; else touchVal = this._touch.width;
- touchVal = Math.min(touchVal,maxVal);
- if(target > 0) target *= 0.3; else if(target < touchVal - maxVal) target = (target - (touchVal - maxVal)) * 0.3 + (touchVal - maxVal);
- if(this._dirVertical) this._itemBox.set_y(target); else this._itemBox.set_x(target);
- }
- } else if(e.type == openfl.events.MouseEvent.MOUSE_UP) {
- if(this._touchPos != null) {
- this._touchPos = null;
- this._srcPos = null;
- if(this._depressed) {
- co.doubleduck.utils.TweenChain.removeTweens(this._itemBox);
- if(this._dirVertical) {
- if(this._itemBox.get_y() > 0) co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ y : 0},190,motion.easing.Sine.get_easeIn()); else if(this._itemBox.get_y() < this._touch.height - this._maxPos.y) co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ y : this._touch.height - Math.max(this._maxPos.y,this._touch.height)},190,motion.easing.Sine.get_easeIn()); else if(this.itemSnap && this._items.length > 0) {
- if(this._itemBox.get_y() < -4 && this._itemBox.get_y() > this._touch.height - this._maxPos.y + 4) {
- var snapPos = this._touch.y + this._touch.height / 2;
- var closest = this._items[0];
- var closestDist = Math.abs(closest.get_y() + closest.get_height() / 2 + this._itemBox.get_y() - snapPos);
- var _g11 = 1;
- var _g2 = this._items.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- var item1 = this._items[i1];
- var currDist = Math.abs(item1.get_y() + item1.get_height() / 2 + this._itemBox.get_y() - snapPos);
- if(currDist < closestDist) {
- closest = item1;
- closestDist = currDist;
- }
- }
- co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ y : snapPos - (closest.get_y() + closest.get_height() / 2)},100,motion.easing.Sine.get_easeOut());
- }
- }
- } else if(this._itemBox.get_x() > 0) co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ x : 0},190,motion.easing.Sine.get_easeIn()); else if(this._itemBox.get_x() < this._touch.width - this._maxPos.x) co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ x : this._touch.width - Math.max(this._maxPos.x,this._touch.width)},190,motion.easing.Sine.get_easeIn()); else if(this.itemSnap && this._items.length > 0) {
- if(this._itemBox.get_x() < -4 && this._itemBox.get_x() > this._touch.width - this._maxPos.x + 4) {
- var snapPos1 = this._touch.x + this._touch.width / 2;
- var closest1 = this._items[0];
- var closestDist1 = Math.abs(closest1.get_x() + closest1.get_width() / 2 + this._itemBox.get_x() - snapPos1);
- var _g12 = 1;
- var _g3 = this._items.length;
- while(_g12 < _g3) {
- var i2 = _g12++;
- var item2 = this._items[i2];
- var currDist1 = Math.abs(item2.get_x() + item2.get_width() / 2 + this._itemBox.get_x() - snapPos1);
- if(currDist1 < closestDist1) {
- closest1 = item2;
- closestDist1 = currDist1;
- }
- }
- co.doubleduck.utils.TweenChain.get(this._itemBox).tto({ x : snapPos1 - (closest1.get_x() + closest1.get_width() / 2)},100,motion.easing.Sine.get_easeOut());
- }
- }
- }
- this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.handleOverlay));
- this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.handleOverlay));
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleOverlay));
- }
- }
- }
- ,destroy: function() {
- openfl.Lib.current.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.handleOverlay));
- openfl.Lib.current.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.handleOverlay));
- openfl.Lib.current.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.handleOverlay));
- co.doubleduck.utils.TweenChain.removeTweens(this._itemBox);
- while(this._items.length > 0) {
- var curr = this._items.pop();
- this._itemBox.removeChild(curr);
- curr.destroy();
- }
- }
- ,__class__: co.doubleduck.pinata.meta.ScrolledList
- });
- co.doubleduck.pinata.meta.Stats = function() { };
- $hxClasses["co.doubleduck.pinata.meta.Stats"] = co.doubleduck.pinata.meta.Stats;
- co.doubleduck.pinata.meta.Stats.__name__ = ["co","doubleduck","pinata","meta","Stats"];
- co.doubleduck.pinata.meta.Stats._toolsData = null;
- co.doubleduck.pinata.meta.Stats._eventer = null;
- co.doubleduck.pinata.meta.Stats._toolsState = null;
- co.doubleduck.pinata.meta.Stats._toolHPS = null;
- co.doubleduck.pinata.meta.Stats._toolPrice = null;
- co.doubleduck.pinata.meta.Stats._currHitVal = null;
- co.doubleduck.pinata.meta.Stats._currHPSVal = null;
- co.doubleduck.pinata.meta.Stats._playerCandies = null;
- co.doubleduck.pinata.meta.Stats.addListener = function(type,listener) {
- co.doubleduck.pinata.meta.Stats.init();
- co.doubleduck.pinata.meta.Stats._eventer.addEventListener(type,listener);
- };
- co.doubleduck.pinata.meta.Stats.removeListener = function(type,listener) {
- co.doubleduck.pinata.meta.Stats.init();
- co.doubleduck.pinata.meta.Stats._eventer.removeEventListener(type,listener);
- };
- co.doubleduck.pinata.meta.Stats.notifyOnEvent = function(type) {
- co.doubleduck.pinata.meta.Stats.init();
- if(co.doubleduck.pinata.meta.Stats._eventer.hasEventListener(type)) co.doubleduck.pinata.meta.Stats._eventer.dispatchEvent(new openfl.events.Event(type));
- };
- co.doubleduck.pinata.meta.Stats.getHitVal = function() {
- if(co.doubleduck.pinata.meta.Stats._currHitVal == null) {
- co.doubleduck.pinata.meta.Stats.init();
- co.doubleduck.pinata.meta.Stats._currHitVal = co.doubleduck.pinata.meta.Stats.getHPSForTool("good-ol-bat");
- }
- return co.doubleduck.pinata.meta.Stats._currHitVal;
- };
- co.doubleduck.pinata.meta.Stats.getHPS = function() {
- if(co.doubleduck.pinata.meta.Stats._currHPSVal == null) {
- co.doubleduck.pinata.meta.Stats.init();
- co.doubleduck.pinata.meta.Stats._currHPSVal = co.doubleduck.pinata.meta.BigInt.fromInt(0);
- var toolsData = co.doubleduck.pinata.data.GameplayDB.getTools();
- var _g = 0;
- while(_g < toolsData.length) {
- var toolData = toolsData[_g];
- ++_g;
- if(toolData.id == "good-ol-bat") continue;
- if(co.doubleduck.pinata.meta.Stats.getToolLevel(toolData.id) >= 1) co.doubleduck.pinata.meta.Stats._currHPSVal = co.doubleduck.pinata.meta.BigInt.add(co.doubleduck.pinata.meta.Stats._currHPSVal,co.doubleduck.pinata.meta.Stats.getHPSForTool(toolData.id));
- }
- }
- return co.doubleduck.pinata.meta.Stats._currHPSVal;
- };
- co.doubleduck.pinata.meta.Stats.getPCandies = function() {
- if(co.doubleduck.pinata.meta.Stats._playerCandies == null) co.doubleduck.pinata.meta.Stats._playerCandies = co.doubleduck.pinata.meta.BigInt.fromString(co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.PLAYER_CANDIES));
- return co.doubleduck.pinata.meta.Stats._playerCandies;
- };
- co.doubleduck.pinata.meta.Stats.setPCandies = function(val) {
- co.doubleduck.pinata.meta.Stats.init();
- co.doubleduck.pinata.meta.Stats._playerCandies = val;
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.PLAYER_CANDIES,co.doubleduck.pinata.meta.Stats._playerCandies.toFullString());
- co.doubleduck.pinata.meta.Stats.notifyOnEvent("UpdateCandiesEvent");
- };
- co.doubleduck.pinata.meta.Stats.getToolLevel = function(toolId) {
- co.doubleduck.pinata.meta.Stats.init();
- var _g = 0;
- var _g1 = co.doubleduck.pinata.meta.Stats._toolsState;
- while(_g < _g1.length) {
- var tool = _g1[_g];
- ++_g;
- if(tool.id == toolId) return tool.lvl;
- }
- return 0;
- };
- co.doubleduck.pinata.meta.Stats.setToolLevel = function(toolId,toolLvl) {
- co.doubleduck.pinata.meta.Stats.init();
- var found = false;
- var _g = 0;
- var _g1 = co.doubleduck.pinata.meta.Stats._toolsState;
- while(_g < _g1.length) {
- var tool = _g1[_g];
- ++_g;
- if(tool.id == toolId) {
- tool.lvl = toolLvl;
- found = true;
- }
- }
- if(!found) {
- var tool1 = { };
- tool1.id = toolId;
- tool1.lvl = toolLvl;
- co.doubleduck.pinata.meta.Stats._toolsState.push(tool1);
- }
- var datas = "";
- var _g2 = 0;
- var _g11 = co.doubleduck.pinata.meta.Stats._toolsState;
- while(_g2 < _g11.length) {
- var tool2 = _g11[_g2];
- ++_g2;
- if(datas.length > 0) datas += ",";
- datas += tool2.id + ":" + tool2.lvl;
- }
- co.doubleduck.pinata.data.Persistence.setString(co.doubleduck.pinata.data.DataKey.TOOLS_STATE,datas);
- co.doubleduck.pinata.meta.Stats.notifyOnEvent("UpdateToolEvent");
- var newToolHPS = co.doubleduck.pinata.meta.Stats.getHPSForTool(toolId);
- if(toolId == "good-ol-bat") co.doubleduck.pinata.meta.Stats._currHitVal = newToolHPS; else {
- if(toolLvl > 1) co.doubleduck.pinata.meta.Stats._currHPSVal = co.doubleduck.pinata.meta.BigInt.subtract(co.doubleduck.pinata.meta.Stats._currHPSVal,co.doubleduck.pinata.meta.Stats.getHPSForTool(toolId,toolLvl - 1));
- co.doubleduck.pinata.meta.Stats._currHPSVal = co.doubleduck.pinata.meta.BigInt.add(co.doubleduck.pinata.meta.Stats._currHPSVal,newToolHPS);
- co.doubleduck.pinata.meta.Stats.notifyOnEvent("UpdateHPSEvent");
- }
- };
- co.doubleduck.pinata.meta.Stats.getHPSForTool = function(toolId,toolLvl) {
- if(toolLvl == null) toolLvl = -1;
- co.doubleduck.pinata.meta.Stats.init();
- if(toolLvl == -1) toolLvl = co.doubleduck.pinata.meta.Stats.getToolLevel(toolId);
- if(toolLvl == 0) return co.doubleduck.pinata.meta.BigInt.fromInt(0);
- if(co.doubleduck.pinata.meta.Stats._toolHPS.exists(toolId + ":" + toolLvl)) return co.doubleduck.pinata.meta.Stats._toolHPS.get(toolId + ":" + toolLvl);
- var toolDat = co.doubleduck.pinata.data.GameplayDB.getToolData(toolId);
- var hps = co.doubleduck.pinata.meta.Stats.calcValueForLevel(toolDat.hpsData,toolLvl);
- co.doubleduck.pinata.meta.Stats._toolHPS.set(toolId + ":" + toolLvl,hps);
- return hps;
- };
- co.doubleduck.pinata.meta.Stats.getPriceForTool = function(toolId,toolLvl) {
- if(toolLvl == null) toolLvl = -1;
- co.doubleduck.pinata.meta.Stats.init();
- if(toolLvl == -1) toolLvl = co.doubleduck.pinata.meta.Stats.getToolLevel(toolId);
- if(toolLvl == 0) return co.doubleduck.pinata.meta.BigInt.fromInt(0);
- if(co.doubleduck.pinata.meta.Stats._toolPrice.exists(toolId + ":" + toolLvl)) return co.doubleduck.pinata.meta.Stats._toolPrice.get(toolId + ":" + toolLvl);
- var toolDat = co.doubleduck.pinata.data.GameplayDB.getToolData(toolId);
- var price = co.doubleduck.pinata.meta.Stats.calcValueForLevel(toolDat.priceData,toolLvl);
- co.doubleduck.pinata.meta.Stats._toolPrice.set(toolId + ":" + toolLvl,price);
- return price;
- };
- co.doubleduck.pinata.meta.Stats.calcValueForLevel = function(valsData,level) {
- var ranges = valsData.split(",");
- var _g1 = 0;
- var _g = ranges.length;
- while(_g1 < _g) {
- var i = _g1++;
- var curr = ranges[i];
- if(i == ranges.length - 1) {
- var prev = ranges[i - 1].split("-")[1];
- var val = co.doubleduck.pinata.meta.BigInt.fromString(prev.split(":")[0]);
- var count = level - Std.parseInt(prev.split(":")[1]);
- var amount = co.doubleduck.pinata.meta.BigInt.fromString(curr);
- return co.doubleduck.pinata.meta.BigInt.add(val,co.doubleduck.pinata.meta.BigInt.mulScalar(amount,count));
- } else {
- var spl = curr.split("-");
- var fromLevel = Std.parseInt(spl[0].split(":")[1]);
- var toLevel = Std.parseInt(spl[1].split(":")[1]);
- if(level >= fromLevel && level <= toLevel) {
- var ratio = co.doubleduck.utils.Utils.map(level,fromLevel,toLevel);
- var intFrom = co.doubleduck.pinata.meta.BigInt.fromString(spl[0].split(":")[0]);
- var intTo = co.doubleduck.pinata.meta.BigInt.fromString(spl[1].split(":")[0]);
- var delta = co.doubleduck.pinata.meta.BigInt.subtract(intTo,intFrom);
- delta = co.doubleduck.pinata.meta.BigInt.mulScalar(delta,ratio);
- return co.doubleduck.pinata.meta.BigInt.add(intFrom,delta);
- }
- }
- }
- return co.doubleduck.pinata.meta.BigInt.fromInt(0);
- };
- co.doubleduck.pinata.meta.Stats.init = function() {
- if(co.doubleduck.pinata.meta.Stats._toolsState == null) {
- var datas = co.doubleduck.pinata.data.Persistence.getString(co.doubleduck.pinata.data.DataKey.TOOLS_STATE).split(",");
- co.doubleduck.pinata.meta.Stats._toolsState = new Array();
- var _g = 0;
- while(_g < datas.length) {
- var data = datas[_g];
- ++_g;
- var parts = data.split(":");
- var tool = { };
- tool.id = parts[0];
- tool.lvl = Std.parseInt(parts[1]);
- co.doubleduck.pinata.meta.Stats._toolsState.push(tool);
- }
- }
- if(co.doubleduck.pinata.meta.Stats._toolHPS == null) co.doubleduck.pinata.meta.Stats._toolHPS = new haxe.ds.StringMap();
- if(co.doubleduck.pinata.meta.Stats._toolPrice == null) co.doubleduck.pinata.meta.Stats._toolPrice = new haxe.ds.StringMap();
- if(co.doubleduck.pinata.meta.Stats._eventer == null) co.doubleduck.pinata.meta.Stats._eventer = new openfl.events.EventDispatcher();
- };
- co.doubleduck.utils.SimpleAnimSprite = function(sheet,rows,cols,frames,shouldLoop) {
- if(shouldLoop == null) shouldLoop = false;
- var behDatas = new Array();
- behDatas.push(new spritesheet.data.BehaviorData("simple",frames,shouldLoop,24));
- var sprSheet = co.doubleduck.utils.DDAssets.getSpritesheet(sheet,cols,rows,-1,-1,behDatas);
- co.doubleduck.utils.AnimSprite.call(this,sprSheet);
- this.showBehavior("simple");
- this._lastTime = openfl.Lib.getTimer();
- this.addEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDone));
- this.addEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- };
- $hxClasses["co.doubleduck.utils.SimpleAnimSprite"] = co.doubleduck.utils.SimpleAnimSprite;
- co.doubleduck.utils.SimpleAnimSprite.__name__ = ["co","doubleduck","utils","SimpleAnimSprite"];
- co.doubleduck.utils.SimpleAnimSprite.__super__ = co.doubleduck.utils.AnimSprite;
- co.doubleduck.utils.SimpleAnimSprite.prototype = $extend(co.doubleduck.utils.AnimSprite.prototype,{
- setAnimFPS: function(fps) {
- this.resolveBehavior("simple").frameRate = fps;
- this.replayAnim();
- }
- ,stopAnim: function() {
- this.removeEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- }
- ,replayAnim: function() {
- this.showBehavior("simple",true);
- if(!this.hasEventListener(openfl.events.Event.ENTER_FRAME)) {
- this._lastTime = openfl.Lib.getTimer();
- this.addEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- }
- }
- ,handleTick: function(e) {
- var time = openfl.Lib.getTimer();
- var delta = time - this._lastTime;
- this.update(delta);
- this._lastTime = time;
- }
- ,handleDone: function(e) {
- this.removeEventListener(openfl.events.Event.COMPLETE,$bind(this,this.handleDone));
- this.removeEventListener(openfl.events.Event.ENTER_FRAME,$bind(this,this.handleTick));
- }
- ,__class__: co.doubleduck.utils.SimpleAnimSprite
- });
- co.doubleduck.utils.Button = function(asset,centered,data,smoothing) {
- if(smoothing == null) smoothing = false;
- if(centered == null) centered = true;
- this.enabled = true;
- this.clickSound = null;
- openfl.display.Sprite.call(this);
- if(co.doubleduck.utils.Button.DOWN_EVENT == null) {
- co.doubleduck.utils.Button.DOWN_EVENT = openfl.events.MouseEvent.MOUSE_DOWN;
- co.doubleduck.utils.Button.OUT_EVENT = openfl.events.MouseEvent.MOUSE_OUT;
- co.doubleduck.utils.Button.UP_EVENT = openfl.events.MouseEvent.MOUSE_UP;
- }
- this.data = data;
- if(co.doubleduck.utils.Button.NORM_TRANS == null) co.doubleduck.utils.Button.NORM_TRANS = new openfl.geom.ColorTransform();
- if(co.doubleduck.utils.Button.DARK_TRANS == null) {
- co.doubleduck.utils.Button.DARK_TRANS = new openfl.geom.ColorTransform();
- co.doubleduck.utils.Button.DARK_TRANS.redOffset = -50;
- co.doubleduck.utils.Button.DARK_TRANS.greenOffset = -50;
- co.doubleduck.utils.Button.DARK_TRANS.blueOffset = -50;
- }
- if(co.doubleduck.utils.DDAssets.globalSmoothing) smoothing = true;
- this._image = new openfl.display.Bitmap(asset,openfl.display.PixelSnapping.AUTO,smoothing);
- this.addChild(this._image);
- if(centered) {
- this._imagePos = new openfl.geom.Point(-this._image.get_width() / 2,-this._image.get_height() / 2);
- this._image.set_x(this._imagePos.x);
- this._image.set_y(this._imagePos.y);
- } else this._imagePos = new openfl.geom.Point(0,0);
- this.addEventListener(co.doubleduck.utils.Button.DOWN_EVENT,$bind(this,this.handleMouse));
- this.pushMode = co.doubleduck.utils.ButtonPushMode.TINT_SCALE;
- this.actOnPress = false;
- this._effectApplied = false;
- };
- $hxClasses["co.doubleduck.utils.Button"] = co.doubleduck.utils.Button;
- co.doubleduck.utils.Button.__name__ = ["co","doubleduck","utils","Button"];
- co.doubleduck.utils.Button.NORM_TRANS = null;
- co.doubleduck.utils.Button.DARK_TRANS = null;
- co.doubleduck.utils.Button.__super__ = openfl.display.Sprite;
- co.doubleduck.utils.Button.prototype = $extend(openfl.display.Sprite.prototype,{
- dePress: function() {
- this.removeEventListener(co.doubleduck.utils.Button.OUT_EVENT,$bind(this,this.handleMouse));
- this.removeEventListener(co.doubleduck.utils.Button.UP_EVENT,$bind(this,this.handleMouse));
- this.endEffect();
- }
- ,handleMouse: function(e) {
- if(!this.enabled) return;
- if(e.type == co.doubleduck.utils.Button.DOWN_EVENT) {
- this.applyEffect();
- var effectTween = co.doubleduck.utils.TweenChain.get(this._image);
- if(this.actOnPress) effectTween.wait(10).call($bind(this,this.endEffect)).call($bind(this,this.dispatchEvent),[new openfl.events.Event("BUTTON_ACT_EVENT")]); else {
- effectTween.wait(100).call($bind(this,this.endEffect));
- this.addEventListener(co.doubleduck.utils.Button.OUT_EVENT,$bind(this,this.handleMouse));
- this.addEventListener(co.doubleduck.utils.Button.UP_EVENT,$bind(this,this.handleMouse));
- }
- }
- if(e.type == co.doubleduck.utils.Button.OUT_EVENT) {
- this.removeEventListener(co.doubleduck.utils.Button.OUT_EVENT,$bind(this,this.handleMouse));
- this.removeEventListener(co.doubleduck.utils.Button.UP_EVENT,$bind(this,this.handleMouse));
- this.endEffect();
- }
- if(e.type == co.doubleduck.utils.Button.UP_EVENT) {
- this.removeEventListener(co.doubleduck.utils.Button.OUT_EVENT,$bind(this,this.handleMouse));
- this.removeEventListener(co.doubleduck.utils.Button.UP_EVENT,$bind(this,this.handleMouse));
- this.endEffect();
- this.act();
- }
- }
- ,applyEffect: function() {
- this._effectApplied = true;
- if(this.clickSound != null) co.doubleduck.utils.SoundMgr.playSound(this.clickSound); else if(co.doubleduck.utils.Button.defaultClickSound != null) co.doubleduck.utils.SoundMgr.playSound(co.doubleduck.utils.Button.defaultClickSound);
- if(this.pushMode == co.doubleduck.utils.ButtonPushMode.TINT_ONLY || this.pushMode == co.doubleduck.utils.ButtonPushMode.TINT_SCALE) this._image.get_transform().set_colorTransform(co.doubleduck.utils.Button.DARK_TRANS);
- if(this.pushMode == co.doubleduck.utils.ButtonPushMode.SCALE_ONLY || this.pushMode == co.doubleduck.utils.ButtonPushMode.TINT_SCALE) {
- this._image.set_scaleX(this._image.set_scaleY(0.93));
- this._image.set_x(this._imagePos.x * 0.93);
- this._image.set_y(this._imagePos.y * 0.93);
- }
- if(this.pushMode == co.doubleduck.utils.ButtonPushMode.JUICY_JIGGLE) {
- co.doubleduck.utils.TweenChain.removeTweens(this._image);
- this._image.set_scaleX(1.3);
- this._image.set_x(this._imagePos.x * this._image.get_scaleX());
- co.doubleduck.utils.TweenChain.get(this._image).tto({ scaleX : 1, x : this._imagePos.x},600,motion.easing.Elastic.get_easeOut());
- this._image.set_scaleY(0.7);
- this._image.set_y(this._imagePos.y * this._image.get_scaleY());
- co.doubleduck.utils.TweenChain.get(this._image).tto({ scaleY : 1, y : this._imagePos.y},600,motion.easing.Elastic.get_easeOut());
- }
- }
- ,endEffect: function() {
- if(!this._effectApplied) return;
- if(this.pushMode == co.doubleduck.utils.ButtonPushMode.TINT_ONLY || this.pushMode == co.doubleduck.utils.ButtonPushMode.TINT_SCALE) this._image.get_transform().set_colorTransform(co.doubleduck.utils.Button.NORM_TRANS);
- if(this.pushMode == co.doubleduck.utils.ButtonPushMode.SCALE_ONLY || this.pushMode == co.doubleduck.utils.ButtonPushMode.TINT_SCALE) {
- this._image.set_scaleX(this._image.set_scaleY(1));
- this._image.set_x(this._imagePos.x);
- this._image.set_y(this._imagePos.y);
- }
- if(this.pushMode == co.doubleduck.utils.ButtonPushMode.JUICY_JIGGLE) {
- }
- }
- ,act: function() {
- this.dispatchEvent(new openfl.events.Event("BUTTON_ACT_EVENT"));
- }
- ,__class__: co.doubleduck.utils.Button
- });
- co.doubleduck.utils.ButtonPushMode = $hxClasses["co.doubleduck.utils.ButtonPushMode"] = { __ename__ : ["co","doubleduck","utils","ButtonPushMode"], __constructs__ : ["TINT_ONLY","SCALE_ONLY","TINT_SCALE","JUICY_JIGGLE"] };
- co.doubleduck.utils.ButtonPushMode.TINT_ONLY = ["TINT_ONLY",0];
- co.doubleduck.utils.ButtonPushMode.TINT_ONLY.toString = $estr;
- co.doubleduck.utils.ButtonPushMode.TINT_ONLY.__enum__ = co.doubleduck.utils.ButtonPushMode;
- co.doubleduck.utils.ButtonPushMode.SCALE_ONLY = ["SCALE_ONLY",1];
- co.doubleduck.utils.ButtonPushMode.SCALE_ONLY.toString = $estr;
- co.doubleduck.utils.ButtonPushMode.SCALE_ONLY.__enum__ = co.doubleduck.utils.ButtonPushMode;
- co.doubleduck.utils.ButtonPushMode.TINT_SCALE = ["TINT_SCALE",2];
- co.doubleduck.utils.ButtonPushMode.TINT_SCALE.toString = $estr;
- co.doubleduck.utils.ButtonPushMode.TINT_SCALE.__enum__ = co.doubleduck.utils.ButtonPushMode;
- co.doubleduck.utils.ButtonPushMode.JUICY_JIGGLE = ["JUICY_JIGGLE",3];
- co.doubleduck.utils.ButtonPushMode.JUICY_JIGGLE.toString = $estr;
- co.doubleduck.utils.ButtonPushMode.JUICY_JIGGLE.__enum__ = co.doubleduck.utils.ButtonPushMode;
- haxe.ds = {};
- haxe.ds.StringMap = function() {
- this.h = { };
- };
- $hxClasses["haxe.ds.StringMap"] = haxe.ds.StringMap;
- haxe.ds.StringMap.__name__ = ["haxe","ds","StringMap"];
- haxe.ds.StringMap.__interfaces__ = [IMap];
- haxe.ds.StringMap.prototype = {
- set: function(key,value) {
- this.h["$" + key] = value;
- }
- ,get: function(key) {
- return this.h["$" + key];
- }
- ,exists: function(key) {
- return this.h.hasOwnProperty("$" + key);
- }
- ,remove: function(key) {
- key = "$" + key;
- if(!this.h.hasOwnProperty(key)) return false;
- delete(this.h[key]);
- return true;
- }
- ,keys: function() {
- var a = [];
- for( var key in this.h ) {
- if(this.h.hasOwnProperty(key)) a.push(key.substr(1));
- }
- return HxOverrides.iter(a);
- }
- ,iterator: function() {
- return { ref : this.h, it : this.keys(), hasNext : function() {
- return this.it.hasNext();
- }, next : function() {
- var i = this.it.next();
- return this.ref["$" + i];
- }};
- }
- ,toString: function() {
- var s = new StringBuf();
- s.b += "{";
- var it = this.keys();
- while( it.hasNext() ) {
- var i = it.next();
- if(i == null) s.b += "null"; else s.b += "" + i;
- s.b += " => ";
- s.add(Std.string(this.get(i)));
- if(it.hasNext()) s.b += ", ";
- }
- s.b += "}";
- return s.b;
- }
- ,__class__: haxe.ds.StringMap
- };
- co.doubleduck.utils.DDAssets = function() { };
- $hxClasses["co.doubleduck.utils.DDAssets"] = co.doubleduck.utils.DDAssets;
- co.doubleduck.utils.DDAssets.__name__ = ["co","doubleduck","utils","DDAssets"];
- co.doubleduck.utils.DDAssets.activeLocale = null;
- co.doubleduck.utils.DDAssets.availLocales = null;
- co.doubleduck.utils.DDAssets.getRawImage = function(path,cache) {
- if(cache == null) cache = true;
- path = co.doubleduck.utils.DDAssets.getLocalisedPath(path);
- var result = co.doubleduck.utils.DDAssets._cache.get(path);
- if(result == null) {
- result = openfl.Assets.getBitmapData(path,false);
- if(cache) co.doubleduck.utils.DDAssets._cache.set(path,result);
- }
- return result;
- };
- co.doubleduck.utils.DDAssets.getCenteredImage = function(path,cache) {
- if(cache == null) cache = true;
- var bmp = co.doubleduck.utils.DDAssets.getImage(path,cache);
- var _g = bmp;
- _g.set_x(_g.get_x() - bmp.get_width() / 2);
- var _g1 = bmp;
- _g1.set_y(_g1.get_y() - bmp.get_height() / 2);
- var spr = new openfl.display.Sprite();
- spr.addChild(bmp);
- return spr;
- };
- co.doubleduck.utils.DDAssets.getImage = function(path,cache) {
- if(cache == null) cache = true;
- var bmp = new openfl.display.Bitmap(co.doubleduck.utils.DDAssets.getRawImage(path,cache));
- bmp.smoothing = co.doubleduck.utils.DDAssets.globalSmoothing;
- return bmp;
- };
- co.doubleduck.utils.DDAssets.getSpritesheet = function(path,columns,rows,tileWidth,tileHeight,behaviours,cache) {
- if(cache == null) cache = true;
- if(tileHeight == null) tileHeight = 0;
- if(tileWidth == null) tileWidth = 0;
- if(rows == null) rows = 0;
- if(columns == null) columns = 0;
- path = co.doubleduck.utils.DDAssets.getLocalisedPath(path);
- var result = co.doubleduck.utils.DDAssets._spritesheetCache.get(path);
- if(result == null) {
- var bmpData = openfl.Assets.getBitmapData(path,false);
- if(tileWidth == -1) tileWidth = Math.floor(bmpData.width / columns);
- if(tileHeight == -1) tileHeight = Math.floor(bmpData.height / rows);
- result = spritesheet.importers.BitmapImporter.create(bmpData,columns,rows,tileWidth,tileHeight);
- var _g = 0;
- while(_g < behaviours.length) {
- var behaviour = behaviours[_g];
- ++_g;
- result.addBehavior(behaviour);
- }
- if(cache) co.doubleduck.utils.DDAssets._spritesheetCache.set(path,result);
- }
- return result;
- };
- co.doubleduck.utils.DDAssets.getLocalisedPath = function(path) {
- if(!co.doubleduck.utils.DDAssets.localisedPaths.exists(path)) {
- var fileParts = path.split(".");
- var fileName = fileParts[0];
- var fileExt = fileParts[1];
- var localisedVersion = fileName + "-" + co.doubleduck.utils.DDAssets.activeLocale + "." + fileExt;
- if(openfl.Assets.exists(localisedVersion,"IMAGE")) co.doubleduck.utils.DDAssets.localisedPaths.set(path,localisedVersion); else co.doubleduck.utils.DDAssets.localisedPaths.set(path,path);
- }
- return co.doubleduck.utils.DDAssets.localisedPaths.get(path);
- };
- co.doubleduck.utils.Delayer = function(dur) {
- this._leftDur = this._totalDur = dur;
- this._isRunning = false;
- };
- $hxClasses["co.doubleduck.utils.Delayer"] = co.doubleduck.utils.Delayer;
- co.doubleduck.utils.Delayer.__name__ = ["co","doubleduck","utils","Delayer"];
- co.doubleduck.utils.Delayer.prototype = {
- start: function() {
- this._isRunning = true;
- co.doubleduck.utils.TweenChain.get(this).tto({ _leftDur : 0},this._leftDur).call($bind(this,this.act)).call($bind(this,this.restart));
- }
- ,pause: function() {
- this._isRunning = false;
- co.doubleduck.utils.TweenChain.removeTweens(this);
- }
- ,stop: function() {
- this._isRunning = false;
- co.doubleduck.utils.TweenChain.removeTweens(this);
- this._leftDur = this._totalDur;
- }
- ,restart: function() {
- this.stop();
- this.start();
- }
- ,isRunning: function() {
- return this._isRunning;
- }
- ,setDuration: function(dur) {
- if(this._isRunning) co.doubleduck.utils.TweenChain.removeTweens(this);
- var ratio = this._leftDur / this._totalDur;
- this._totalDur = dur;
- this._leftDur = Math.floor(dur * ratio);
- if(this._isRunning) this.start();
- }
- ,act: function() {
- if(this.handler != null) this.handler();
- }
- ,__class__: co.doubleduck.utils.Delayer
- };
- openfl.events.Event = function(type,bubbles,cancelable) {
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = false;
- this.type = type;
- this.bubbles = bubbles;
- this.cancelable = cancelable;
- this.eventPhase = openfl.events.EventPhase.AT_TARGET;
- };
- $hxClasses["openfl.events.Event"] = openfl.events.Event;
- openfl.events.Event.__name__ = ["openfl","events","Event"];
- openfl.events.Event.prototype = {
- clone: function() {
- var event = new openfl.events.Event(this.type,this.bubbles,this.cancelable);
- event.eventPhase = this.eventPhase;
- event.target = this.target;
- event.currentTarget = this.currentTarget;
- return event;
- }
- ,isDefaultPrevented: function() {
- return this.__isCancelled || this.__isCancelledNow;
- }
- ,stopImmediatePropagation: function() {
- this.__isCancelled = true;
- this.__isCancelledNow = true;
- }
- ,stopPropagation: function() {
- this.__isCancelled = true;
- }
- ,toString: function() {
- return "[Event type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + "]";
- }
- ,__class__: openfl.events.Event
- };
- co.doubleduck.utils.DynamicEvent = function(name,data) {
- openfl.events.Event.call(this,name);
- this.data = data;
- };
- $hxClasses["co.doubleduck.utils.DynamicEvent"] = co.doubleduck.utils.DynamicEvent;
- co.doubleduck.utils.DynamicEvent.__name__ = ["co","doubleduck","utils","DynamicEvent"];
- co.doubleduck.utils.DynamicEvent.__super__ = openfl.events.Event;
- co.doubleduck.utils.DynamicEvent.prototype = $extend(openfl.events.Event.prototype,{
- __class__: co.doubleduck.utils.DynamicEvent
- });
- co.doubleduck.utils.Fonter = function() {
- throw "DDError: The static class 'Fonter' should not be instantiated.";
- };
- $hxClasses["co.doubleduck.utils.Fonter"] = co.doubleduck.utils.Fonter;
- co.doubleduck.utils.Fonter.__name__ = ["co","doubleduck","utils","Fonter"];
- co.doubleduck.utils.Fonter._kernCache = null;
- co.doubleduck.utils.Fonter.commafyNum = function(num) {
- var numStr = "" + num;
- var numSuffix = "";
- if(num - Math.floor(num) != 0) {
- var splitted = numStr.split(".");
- numSuffix = "." + splitted[1];
- numStr = splitted[0];
- }
- var numRes = "";
- while(numStr.length > 0) if(numStr.length > 3) {
- numRes = "," + HxOverrides.substr(numStr,numStr.length - 3,3) + numRes;
- numStr = numStr.substring(0,numStr.length - 3);
- } else {
- numRes = numStr + numRes;
- numStr = "";
- }
- return numRes + numSuffix;
- };
- co.doubleduck.utils.Fonter.getMultilineString = function(str,bmpFont,delim) {
- if(delim == null) delim = "|";
- var lines = str.split(delim);
- var mlText = new openfl.display.Sprite();
- var hLineHeight = 0;
- var _g = 0;
- while(_g < lines.length) {
- var line = lines[_g];
- ++_g;
- var lineImg = co.doubleduck.utils.Fonter.getString(line,bmpFont);
- if(mlText.get_numChildren() > 0) {
- var prevLine = mlText.getChildAt(mlText.get_numChildren() - 1);
- lineImg.set_y(prevLine.get_y() + prevLine.get_height() * 1.2);
- } else hLineHeight = lineImg.get_height() / 2;
- mlText.addChild(lineImg);
- }
- var hHeight = mlText.get_height() / 2;
- var finalText = new openfl.display.Sprite();
- var _g1 = 0;
- var _g2 = mlText.get_numChildren();
- while(_g1 < _g2) {
- var i = _g1++;
- var lineImg1 = mlText.getChildAt(i);
- var _g21 = lineImg1;
- _g21.set_y(_g21.get_y() - (hHeight - hLineHeight));
- while(lineImg1.get_numChildren() > 0) {
- var letter = lineImg1.getChildAt(0);
- lineImg1.removeChild(letter);
- var _g22 = letter;
- _g22.set_x(_g22.get_x() + lineImg1.get_x());
- var _g23 = letter;
- _g23.set_y(_g23.get_y() + lineImg1.get_y());
- finalText.addChild(letter);
- }
- }
- return finalText;
- };
- co.doubleduck.utils.Fonter.getString = function(str,bmpFont) {
- if(bmpFont == null) {
- if(co.doubleduck.utils.Fonter._defaultFont == null) throw "DDError: Fonter.getString() called with no default font and no specific font.";
- bmpFont = co.doubleduck.utils.Fonter._defaultFont;
- }
- if(bmpFont.charAt(bmpFont.length - 1) != "/") bmpFont += "/";
- var kernDat = co.doubleduck.utils.Fonter.getFontKernData(bmpFont);
- var strBox = new openfl.display.Sprite();
- var _g1 = 0;
- var _g = str.length;
- while(_g1 < _g) {
- var i = _g1++;
- var chr = str.charAt(i);
- var chrBmp = co.doubleduck.utils.Fonter.getChar(chr,bmpFont);
- chrBmp.set_x(0);
- if(strBox.get_numChildren() > 0) {
- var prevChar = strBox.getChildAt(strBox.get_numChildren() - 1);
- chrBmp.set_x(prevChar.get_x() + prevChar.get_width() + co.doubleduck.utils.Fonter.kernFor(str.charAt(i - 1),chr,kernDat) * co.doubleduck.utils.DDAssets.scale);
- }
- strBox.addChild(chrBmp);
- }
- var lastChar = strBox.getChildAt(strBox.get_numChildren() - 1);
- var hWidth = (lastChar.get_x() + lastChar.get_width()) / 2;
- var _g11 = 0;
- var _g2 = strBox.get_numChildren();
- while(_g11 < _g2) {
- var i1 = _g11++;
- var _g21 = strBox.getChildAt(i1);
- _g21.set_x(_g21.get_x() - hWidth);
- }
- return strBox;
- };
- co.doubleduck.utils.Fonter.getChar = function(chr,bmpFont) {
- var code = co.doubleduck.utils.Fonter.UTF8Code(chr);
- if(bmpFont == null) {
- if(co.doubleduck.utils.Fonter._defaultFont == null) throw "DDError: Fonter.getChar() - requested sprite with no default font and no specific font.";
- bmpFont = co.doubleduck.utils.Fonter._defaultFont;
- }
- if(bmpFont.charAt(bmpFont.length - 1) != "/") bmpFont += "/";
- var fontMap = co.doubleduck.utils.Fonter.getFontMap(bmpFont);
- if(!fontMap.exists(code)) {
- var bmpData = co.doubleduck.utils.DDAssets.getRawImage(bmpFont + "c" + code + ".png",false);
- if(bmpData == null) throw "DDError: Fonter.getChar() - requested char without asset - '" + chr + "' code: " + code + ".";
- fontMap.set(code,bmpData);
- bmpData;
- }
- var smoothing = co.doubleduck.utils.DDAssets.globalSmoothing;
- var chrBmp = new openfl.display.Bitmap(fontMap.get(code),openfl.display.PixelSnapping.AUTO,smoothing);
- var _g = chrBmp;
- _g.set_x(_g.get_x() - chrBmp.get_width() / 2);
- var _g1 = chrBmp;
- _g1.set_y(_g1.get_y() - chrBmp.get_height() / 2);
- return chrBmp;
- };
- co.doubleduck.utils.Fonter.getFontMap = function(fontUri) {
- if(co.doubleduck.utils.Fonter._fontCache == null) co.doubleduck.utils.Fonter._fontCache = new haxe.ds.StringMap();
- if(!co.doubleduck.utils.Fonter._fontCache.exists(fontUri)) {
- var v = new haxe.ds.IntMap();
- co.doubleduck.utils.Fonter._fontCache.set(fontUri,v);
- v;
- }
- return co.doubleduck.utils.Fonter._fontCache.get(fontUri);
- };
- co.doubleduck.utils.Fonter.kernFor = function(prev,curr,data) {
- var anyTo = data.get("any");
- if(data.exists(prev)) {
- var prevTo = data.get(prev);
- if(prevTo.exists(curr)) return prevTo.get(curr);
- if(anyTo.exists(curr)) {
- var avg = prevTo.get("any") + anyTo.get(curr);
- avg = avg / 2;
- return avg;
- }
- return prevTo.get("any");
- }
- if(anyTo.exists(curr)) return anyTo.get(curr);
- return anyTo.get("any");
- };
- co.doubleduck.utils.Fonter.getFontKernData = function(fontUri) {
- if(co.doubleduck.utils.Fonter._kernCache == null) co.doubleduck.utils.Fonter._kernCache = new haxe.ds.StringMap();
- var data;
- if(co.doubleduck.utils.Fonter._kernCache.exists(fontUri)) data = co.doubleduck.utils.Fonter._kernCache.get(fontUri); else {
- data = new haxe.ds.StringMap();
- var rawData = null;
- try {
- var strData = openfl.Assets.getText(fontUri + "kern.txt");
- if(strData != null) rawData = JSON.parse(strData);
- } catch( err ) {
- rawData = null;
- }
- if(rawData != null) {
- var froms = Reflect.fields(rawData);
- var _g = 0;
- while(_g < froms.length) {
- var fromMe = froms[_g];
- ++_g;
- if(!data.exists(fromMe)) {
- var value = new haxe.ds.StringMap();
- data.set(fromMe,value);
- }
- var fromDat = Reflect.field(rawData,fromMe);
- var tos = Reflect.fields(fromDat);
- var _g1 = 0;
- while(_g1 < tos.length) {
- var toMe = tos[_g1];
- ++_g1;
- var kern = Reflect.field(fromDat,toMe);
- var this1 = data.get(fromMe);
- this1.set(toMe,kern);
- }
- }
- } else {
- var value1 = new haxe.ds.StringMap();
- data.set("any",value1);
- var this2 = data.get("any");
- this2.set("any",0);
- }
- co.doubleduck.utils.Fonter._kernCache.set(fontUri,data);
- data;
- }
- return data;
- };
- co.doubleduck.utils.Fonter.UTF8Code = function(chr) {
- if(chr.length != 1) throw "DDError: Fonter.UTF8Code() - Got param '" + chr + "' and it's not a single character.";
- var pos = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~".indexOf(chr);
- if(pos == -1) throw "DDError: Fonter.UTF8Code() - Got param '" + chr + "' and it's in the charset.";
- return pos + 32;
- };
- co.doubleduck.utils.Fonter.prototype = {
- __class__: co.doubleduck.utils.Fonter
- };
- openfl.display.BitmapData = function(width,height,transparent,fillColor) {
- if(fillColor == null) fillColor = -1;
- if(transparent == null) transparent = true;
- this.transparent = transparent;
- if(width > 0 && height > 0) {
- this.width = width;
- this.height = height;
- this.rect = new openfl.geom.Rectangle(0,0,width,height);
- if(transparent) {
- if((function($this) {
- var $r;
- var $int = fillColor & -16777216;
- $r = $int < 0?4294967296.0 + $int:$int + 0.0;
- return $r;
- }(this)) == 0) fillColor = 0;
- } else fillColor = -16777216 | fillColor & 16777215;
- this.__image = new lime.graphics.Image(null,0,0,width,height,fillColor);
- this.__image.set_transparent(transparent);
- this.__isValid = true;
- }
- this.__createUVs();
- };
- $hxClasses["openfl.display.BitmapData"] = openfl.display.BitmapData;
- openfl.display.BitmapData.__name__ = ["openfl","display","BitmapData"];
- openfl.display.BitmapData.__interfaces__ = [openfl.display.IBitmapDrawable];
- openfl.display.BitmapData.fromBase64 = function(base64,type,onload) {
- var bitmapData = new openfl.display.BitmapData(0,0,true);
- bitmapData.__loadFromBase64(base64,type,onload);
- return bitmapData;
- };
- openfl.display.BitmapData.fromBytes = function(bytes,rawAlpha,onload) {
- var bitmapData = new openfl.display.BitmapData(0,0,true);
- bitmapData.__loadFromBytes(bytes,rawAlpha,onload);
- return bitmapData;
- };
- openfl.display.BitmapData.fromCanvas = function(canvas,transparent) {
- if(transparent == null) transparent = true;
- var bitmapData = new openfl.display.BitmapData(0,0,transparent);
- bitmapData.__loadFromImage(lime.graphics.Image.fromCanvas(canvas));
- bitmapData.__image.set_transparent(transparent);
- return bitmapData;
- };
- openfl.display.BitmapData.fromFile = function(path,onload,onerror) {
- var bitmapData = new openfl.display.BitmapData(0,0,true);
- bitmapData.__loadFromFile(path,onload,onerror);
- return bitmapData;
- };
- openfl.display.BitmapData.fromImage = function(image,transparent) {
- if(transparent == null) transparent = true;
- var bitmapData = new openfl.display.BitmapData(0,0,transparent);
- bitmapData.__loadFromImage(image);
- bitmapData.__image.set_transparent(transparent);
- return bitmapData;
- };
- openfl.display.BitmapData.__flipPixel = function(pixel) {
- return (pixel & 255) << 24 | (pixel >> 8 & 255) << 16 | (pixel >> 16 & 255) << 8 | pixel >> 24 & 255;
- };
- openfl.display.BitmapData.__ucompare = function(n1,n2) {
- var tmp1;
- var tmp2;
- tmp1 = n1 >> 24 & 255;
- tmp2 = n2 >> 24 & 255;
- if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else {
- tmp1 = n1 >> 16 & 255;
- tmp2 = n2 >> 16 & 255;
- if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else {
- tmp1 = n1 >> 8 & 255;
- tmp2 = n2 >> 8 & 255;
- if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else {
- tmp1 = n1 & 255;
- tmp2 = n2 & 255;
- if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else return 0;
- }
- }
- }
- };
- openfl.display.BitmapData.prototype = {
- applyFilter: function(sourceBitmapData,sourceRect,destPoint,filter) {
- if(!this.__isValid || sourceBitmapData == null || !sourceBitmapData.__isValid) return;
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(this.__image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(this.__image);
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(sourceBitmapData.__image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(sourceBitmapData.__image);
- filter.__applyFilter(this.__image.buffer.__srcImageData,sourceBitmapData.__image.buffer.__srcImageData,sourceRect,destPoint);
- this.__image.dirty = true;
- }
- ,clone: function() {
- if(!this.__isValid) return new openfl.display.BitmapData(this.width,this.height,this.transparent); else return openfl.display.BitmapData.fromImage(this.__image.clone(),this.transparent);
- }
- ,colorTransform: function(rect,colorTransform) {
- this.__image.colorTransform(rect.__toLimeRectangle(),colorTransform.__toLimeColorMatrix());
- }
- ,copyChannel: function(sourceBitmapData,sourceRect,destPoint,sourceChannel,destChannel) {
- if(!this.__isValid) return;
- var sourceChannel1;
- switch(sourceChannel) {
- case 1:
- sourceChannel1 = lime.graphics.ImageChannel.RED;
- break;
- case 2:
- sourceChannel1 = lime.graphics.ImageChannel.GREEN;
- break;
- case 4:
- sourceChannel1 = lime.graphics.ImageChannel.BLUE;
- break;
- case 8:
- sourceChannel1 = lime.graphics.ImageChannel.ALPHA;
- break;
- default:
- return;
- }
- var destChannel1;
- switch(destChannel) {
- case 1:
- destChannel1 = lime.graphics.ImageChannel.RED;
- break;
- case 2:
- destChannel1 = lime.graphics.ImageChannel.GREEN;
- break;
- case 4:
- destChannel1 = lime.graphics.ImageChannel.BLUE;
- break;
- case 8:
- destChannel1 = lime.graphics.ImageChannel.ALPHA;
- break;
- default:
- return;
- }
- this.__image.copyChannel(sourceBitmapData.__image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),sourceChannel1,destChannel1);
- }
- ,copyPixels: function(sourceBitmapData,sourceRect,destPoint,alphaBitmapData,alphaPoint,mergeAlpha) {
- if(mergeAlpha == null) mergeAlpha = false;
- if(!this.__isValid || sourceBitmapData == null) return;
- this.__image.copyPixels(sourceBitmapData.__image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),alphaBitmapData != null?alphaBitmapData.__image:null,alphaPoint != null?alphaPoint.__toLimeVector2():null,mergeAlpha);
- }
- ,dispose: function() {
- this.__image = null;
- this.width = 0;
- this.height = 0;
- this.rect = null;
- this.__isValid = false;
- }
- ,draw: function(source,matrix,colorTransform,blendMode,clipRect,smoothing) {
- if(smoothing == null) smoothing = false;
- if(!this.__isValid) return;
- var _g = this.__image.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(this.__image);
- lime.graphics.utils.ImageCanvasUtil.sync(this.__image);
- var buffer = this.__image.buffer;
- var renderSession = new openfl._internal.renderer.RenderSession();
- renderSession.context = buffer.__srcContext;
- renderSession.roundPixels = true;
- if(!smoothing) {
- buffer.__srcContext.mozImageSmoothingEnabled = false;
- buffer.__srcContext.webkitImageSmoothingEnabled = false;
- buffer.__srcContext.imageSmoothingEnabled = false;
- }
- var matrixCache = source.__worldTransform;
- if(matrix != null) source.__worldTransform = matrix; else source.__worldTransform = new openfl.geom.Matrix();
- source.__updateChildren(false);
- source.__renderCanvas(renderSession);
- source.__worldTransform = matrixCache;
- source.__updateChildren(true);
- if(!smoothing) {
- buffer.__srcContext.mozImageSmoothingEnabled = true;
- buffer.__srcContext.webkitImageSmoothingEnabled = true;
- buffer.__srcContext.imageSmoothingEnabled = true;
- }
- buffer.__srcContext.setTransform(1,0,0,1,0,0);
- break;
- default:
- }
- }
- ,encode: function(rect,compressor,byteArray) {
- if(!this.__isValid || rect == null) return byteArray = null;
- if(js.Boot.__instanceof(compressor,openfl.display.PNGEncoderOptions)) return byteArray = this.__image.encode("png"); else if(js.Boot.__instanceof(compressor,openfl.display.JPEGEncoderOptions)) return byteArray = this.__image.encode("jpg",(js.Boot.__cast(compressor , openfl.display.JPEGEncoderOptions)).quality);
- return byteArray = null;
- }
- ,fillRect: function(rect,color) {
- if(!this.__isValid || rect == null) return;
- this.__image.fillRect(rect.__toLimeRectangle(),color);
- }
- ,floodFill: function(x,y,color) {
- if(!this.__isValid) return;
- this.__image.floodFill(x,y,color);
- }
- ,generateFilterRect: function(sourceRect,filter) {
- return sourceRect.clone();
- }
- ,getBuffer: function(gl) {
- if(this.__buffer == null) {
- var data = [this.width,this.height,0,1,1,0,this.height,0,0,1,this.width,0,0,1,0,0,0,0,0,0];
- this.__buffer = gl.createBuffer();
- gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer);
- gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(data),gl.STATIC_DRAW);
- gl.bindBuffer(gl.ARRAY_BUFFER,null);
- }
- return this.__buffer;
- }
- ,getColorBoundsRect: function(mask,color,findColor) {
- if(findColor == null) findColor = true;
- return this.__image.get_rect().__toFlashRectangle();
- }
- ,getPixel: function(x,y) {
- if(!this.__isValid) return 0;
- return this.__image.getPixel(x,y);
- }
- ,getPixel32: function(x,y) {
- if(!this.__isValid) return 0;
- return this.__image.getPixel32(x,y);
- }
- ,getPixels: function(rect) {
- if(!this.__isValid) return null;
- if(rect == null) rect = this.rect;
- return this.__image.getPixels(rect.__toLimeRectangle());
- }
- ,getTexture: function(gl) {
- if(this.__texture == null) {
- this.__texture = gl.createTexture();
- gl.bindTexture(gl.TEXTURE_2D,this.__texture);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);
- this.__image.dirty = true;
- }
- if(this.__image.dirty) {
- gl.bindTexture(gl.TEXTURE_2D,this.__texture);
- var textureImage = this.__image.clone();
- textureImage.set_premultiplied(true);
- gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,this.width,this.height,0,gl.RGBA,gl.UNSIGNED_BYTE,textureImage.get_data());
- gl.bindTexture(gl.TEXTURE_2D,null);
- this.__image.dirty = false;
- }
- return this.__texture;
- }
- ,getVector: function(rect) {
- var pixels = this.getPixels(rect);
- var length = pixels.length / 4 | 0;
- var result;
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(length);
- this1.data = this2;
- this1.length = length;
- this1.fixed = true;
- result = this1;
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- var value = pixels.readUnsignedInt();
- if(!result.fixed) {
- if(i >= result.length) result.length = i + 1;
- if(result.data.length < result.length) {
- var data;
- var this3;
- this3 = new Array(result.data.length + 10);
- data = this3;
- haxe.ds._Vector.Vector_Impl_.blit(result.data,0,data,0,result.data.length);
- result.data = data;
- }
- }
- result.data[i] = value;
- }
- return result;
- }
- ,histogram: function(hRect) {
- var rect;
- if(hRect != null) rect = hRect; else rect = new openfl.geom.Rectangle(0,0,this.width,this.height);
- var pixels = this.getPixels(rect);
- var result;
- var _g = [];
- var _g1 = 0;
- while(_g1 < 4) {
- var i = _g1++;
- _g.push((function($this) {
- var $r;
- var _g2 = [];
- {
- var _g3 = 0;
- while(_g3 < 256) {
- var j = _g3++;
- _g2.push(0);
- }
- }
- $r = _g2;
- return $r;
- }(this)));
- }
- result = _g;
- var _g21 = 0;
- var _g11 = pixels.length;
- while(_g21 < _g11) {
- var i1 = _g21++;
- ++result[i1 % 4][pixels.readUnsignedByte()];
- }
- return result;
- }
- ,hitTest: function(firstPoint,firstAlphaThreshold,secondObject,secondBitmapDataPoint,secondAlphaThreshold) {
- if(secondAlphaThreshold == null) secondAlphaThreshold = 1;
- if(!this.__isValid) return false;
- openfl.Lib.notImplemented("BitmapData.hitTest");
- return false;
- }
- ,lock: function() {
- }
- ,merge: function(sourceBitmapData,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
- if(!this.__isValid || sourceBitmapData == null || !sourceBitmapData.__isValid || sourceRect == null || destPoint == null) return;
- this.__image.merge(sourceBitmapData.__image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
- }
- ,noise: function(randomSeed,low,high,channelOptions,grayScale) {
- if(grayScale == null) grayScale = false;
- if(channelOptions == null) channelOptions = 7;
- if(high == null) high = 255;
- if(low == null) low = 0;
- if(!this.__isValid) return;
- openfl.Lib.notImplemented("BitmapData.noise");
- }
- ,paletteMap: function(sourceBitmapData,sourceRect,destPoint,redArray,greenArray,blueArray,alphaArray) {
- var sw = sourceRect.width | 0;
- var sh = sourceRect.height | 0;
- var pixels = this.getPixels(sourceRect);
- pixels.position = 0;
- var pixelValue;
- var r;
- var g;
- var b;
- var a;
- var color;
- var c1;
- var c2;
- var c3;
- var c4;
- var _g1 = 0;
- var _g = sh * sw;
- while(_g1 < _g) {
- var i = _g1++;
- pixelValue = pixels.readUnsignedInt();
- if(alphaArray == null) c1 = pixelValue & -16777216; else c1 = alphaArray[pixelValue >> 24 & 255];
- if(redArray == null) c2 = pixelValue & 16711680; else c2 = redArray[pixelValue >> 16 & 255];
- if(greenArray == null) c3 = pixelValue & 65280; else c3 = greenArray[pixelValue >> 8 & 255];
- if(blueArray == null) c4 = pixelValue & 255; else c4 = blueArray[pixelValue & 255];
- a = (c1 >> 24 & 255) + (c2 >> 24 & 255) + (c3 >> 24 & 255) + (c4 >> 24 & 255);
- if(a > 255) a == 255;
- r = (c1 >> 16 & 255) + (c2 >> 16 & 255) + (c3 >> 16 & 255) + (c4 >> 16 & 255);
- if(r > 255) r == 255;
- g = (c1 >> 8 & 255) + (c2 >> 8 & 255) + (c3 >> 8 & 255) + (c4 >> 8 & 255);
- if(g > 255) g == 255;
- b = (c1 & 255) + (c2 & 255) + (c3 & 255) + (c4 & 255);
- if(b > 255) b == 255;
- color = a << 24 | r << 16 | g << 8 | b;
- pixels.position = i * 4;
- pixels.writeUnsignedInt(color);
- }
- pixels.position = 0;
- var destRect = new openfl.geom.Rectangle(destPoint.x,destPoint.y,sw,sh);
- this.setPixels(destRect,pixels);
- }
- ,perlinNoise: function(baseX,baseY,numOctaves,randomSeed,stitch,fractalNoise,channelOptions,grayScale,offsets) {
- if(grayScale == null) grayScale = false;
- if(channelOptions == null) channelOptions = 7;
- openfl.Lib.notImplemented("BitmapData.perlinNoise");
- }
- ,scroll: function(x,y) {
- openfl.Lib.notImplemented("BitmapData.scroll");
- }
- ,setPixel: function(x,y,color) {
- if(!this.__isValid) return;
- this.__image.setPixel(x,y,color);
- }
- ,setPixel32: function(x,y,color) {
- if(!this.__isValid) return;
- this.__image.setPixel32(x,y,color);
- }
- ,setPixels: function(rect,byteArray) {
- if(!this.__isValid || rect == null) return;
- this.__image.setPixels(rect.__toLimeRectangle(),byteArray);
- }
- ,setVector: function(rect,inputVector) {
- var byteArray = new lime.utils.ByteArray();
- byteArray.set_length(inputVector.length * 4);
- var _g = 0;
- while(_g < inputVector.length) {
- var color = inputVector.data[_g];
- ++_g;
- byteArray.writeUnsignedInt(color);
- }
- byteArray.position = 0;
- this.setPixels(rect,byteArray);
- }
- ,threshold: function(sourceBitmapData,sourceRect,destPoint,operation,threshold,color,mask,copySource) {
- if(copySource == null) copySource = false;
- if(mask == null) mask = -1;
- if(color == null) color = 0;
- if(sourceBitmapData == this && sourceRect.equals(this.rect) && destPoint.x == 0 && destPoint.y == 0) {
- var hits = 0;
- threshold = (threshold & 255) << 24 | (threshold >> 8 & 255) << 16 | (threshold >> 16 & 255) << 8 | threshold >> 24 & 255;
- color = (color & 255) << 24 | (color >> 8 & 255) << 16 | (color >> 16 & 255) << 8 | color >> 24 & 255;
- var memory = new lime.utils.ByteArray();
- memory.set_length(this.width * this.height * 4);
- memory = this.getPixels(this.rect);
- memory.position = 0;
- openfl.Memory.select(memory);
- var thresholdMask = threshold & mask;
- var width_yy;
- var position;
- var pixelMask;
- var pixelValue;
- var i;
- var test;
- var _g1 = 0;
- var _g = this.height;
- while(_g1 < _g) {
- var yy = _g1++;
- width_yy = this.width * yy;
- var _g3 = 0;
- var _g2 = this.width;
- while(_g3 < _g2) {
- var xx = _g3++;
- position = (width_yy + xx) * 4;
- pixelValue = openfl.Memory._setPositionTemporarily(position,function() {
- return openfl.Memory.gcRef.readInt();
- });
- pixelMask = pixelValue & mask;
- i = openfl.display.BitmapData.__ucompare(pixelMask,thresholdMask);
- test = false;
- if(operation == "==") test = i == 0; else if(operation == "<") test = i == -1; else if(operation == ">") test = i == 1; else if(operation == "!=") test = i != 0; else if(operation == "<=") test = i == 0 || i == -1; else if(operation == ">=") test = i == 0 || i == 1;
- if(test) {
- openfl.Memory.setI32(position,color);
- hits++;
- }
- }
- }
- memory.position = 0;
- this.setPixels(this.rect,memory);
- openfl.Memory.select(null);
- return hits;
- } else {
- var sx = sourceRect.x | 0;
- var sy = sourceRect.y | 0;
- var sw = sourceBitmapData.width | 0;
- var sh = sourceBitmapData.height | 0;
- var dx = destPoint.x | 0;
- var dy = destPoint.y | 0;
- var bw = this.width - sw - dx;
- var bh = this.height - sh - dy;
- var dw;
- if(bw < 0) dw = sw + (this.width - sw - dx); else dw = sw;
- var dh;
- if(bw < 0) dh = sh + (this.height - sh - dy); else dh = sh;
- var hits1 = 0;
- threshold = (threshold & 255) << 24 | (threshold >> 8 & 255) << 16 | (threshold >> 16 & 255) << 8 | threshold >> 24 & 255;
- color = (color & 255) << 24 | (color >> 8 & 255) << 16 | (color >> 16 & 255) << 8 | color >> 24 & 255;
- var canvasMemory = sw * sh * 4;
- var sourceMemory = 0;
- if(copySource) sourceMemory = sw * sh * 4;
- var totalMemory = canvasMemory + sourceMemory;
- var memory1 = new lime.utils.ByteArray();
- if(memory1.allocated < totalMemory) memory1.___resizeBuffer(memory1.allocated = Std["int"](Math.max(totalMemory,memory1.allocated * 2))); else if(memory1.allocated > totalMemory) memory1.___resizeBuffer(memory1.allocated = totalMemory);
- memory1.length = totalMemory;
- totalMemory;
- memory1.position = 0;
- var bitmapData = sourceBitmapData.clone();
- var pixels = bitmapData.getPixels(sourceRect);
- memory1.writeBytes(pixels);
- memory1.position = canvasMemory;
- if(copySource) memory1.writeBytes(pixels);
- memory1.position = 0;
- openfl.Memory.select(memory1);
- var thresholdMask1 = threshold & mask;
- var position1;
- var pixelMask1;
- var pixelValue1;
- var i1;
- var test1;
- var _g4 = 0;
- while(_g4 < dh) {
- var yy1 = _g4++;
- var _g11 = 0;
- while(_g11 < dw) {
- var xx1 = _g11++;
- position1 = (xx1 + sx + (yy1 + sy) * sw) * 4;
- pixelValue1 = openfl.Memory._setPositionTemporarily(position1,function() {
- return openfl.Memory.gcRef.readInt();
- });
- pixelMask1 = pixelValue1 & mask;
- i1 = openfl.display.BitmapData.__ucompare(pixelMask1,thresholdMask1);
- test1 = false;
- if(operation == "==") test1 = i1 == 0; else if(operation == "<") test1 = i1 == -1; else if(operation == ">") test1 = i1 == 1; else if(operation == "!=") test1 = i1 != 0; else if(operation == "<=") test1 = i1 == 0 || i1 == -1; else if(operation == ">=") test1 = i1 == 0 || i1 == 1;
- if(test1) {
- openfl.Memory.setI32(position1,color);
- hits1++;
- } else if(copySource) openfl.Memory.setI32(position1,openfl.Memory._setPositionTemporarily(canvasMemory + position1,function() {
- return openfl.Memory.gcRef.readInt();
- }));
- }
- }
- memory1.position = 0;
- bitmapData.setPixels(sourceRect,memory1);
- this.copyPixels(bitmapData,bitmapData.rect,destPoint);
- openfl.Memory.select(null);
- return hits1;
- }
- }
- ,unlock: function(changeRect) {
- }
- ,__createUVs: function() {
- if(this.__uvData == null) this.__uvData = new openfl.display.TextureUvs();
- this.__uvData.x0 = 0;
- this.__uvData.y0 = 0;
- this.__uvData.x1 = 1;
- this.__uvData.y1 = 0;
- this.__uvData.x2 = 1;
- this.__uvData.y2 = 1;
- this.__uvData.x3 = 0;
- this.__uvData.y3 = 1;
- }
- ,__loadFromBase64: function(base64,type,onload) {
- var _g = this;
- lime.graphics.Image.fromBase64(base64,type,function(image) {
- _g.__loadFromImage(image);
- if(onload != null) onload(_g);
- });
- }
- ,__loadFromBytes: function(bytes,rawAlpha,onload) {
- var _g = this;
- lime.graphics.Image.fromBytes(bytes,function(image) {
- _g.__loadFromImage(image);
- if(rawAlpha != null) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(_g.__image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(_g.__image);
- var data = _g.__image.buffer.data;
- var _g2 = 0;
- var _g1 = rawAlpha.length;
- while(_g2 < _g1) {
- var i = _g2++;
- data[i * 4 + 3] = rawAlpha.readUnsignedByte();
- }
- _g.__image.dirty = true;
- }
- if(onload != null) onload(_g);
- });
- }
- ,__loadFromFile: function(path,onload,onerror) {
- var _g = this;
- lime.graphics.Image.fromFile(path,function(image) {
- _g.__loadFromImage(image);
- if(onload != null) onload(_g);
- },onerror);
- }
- ,__loadFromImage: function(image) {
- this.__image = image;
- this.width = image.width;
- this.height = image.height;
- this.rect = new openfl.geom.Rectangle(0,0,image.width,image.height);
- this.__isValid = true;
- }
- ,__renderCanvas: function(renderSession) {
- if(!this.__isValid) return;
- lime.graphics.utils.ImageCanvasUtil.sync(this.__image);
- var context = renderSession.context;
- if(this.__worldTransform == null) this.__worldTransform = new openfl.geom.Matrix();
- context.globalAlpha = 1;
- var transform = this.__worldTransform;
- if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
- context.drawImage(this.__image.buffer.get_src(),0,0);
- }
- ,__renderMask: function(renderSession) {
- }
- ,__sync: function() {
- lime.graphics.utils.ImageCanvasUtil.sync(this.__image);
- }
- ,__updateChildren: function(transformOnly) {
- }
- ,__class__: openfl.display.BitmapData
- };
- co.doubleduck.utils.SplashBG = function(width,height,transparent,fillRGBA,onload) {
- if(fillRGBA == null) fillRGBA = -1;
- if(transparent == null) transparent = true;
- openfl.display.BitmapData.call(this,0,0,transparent,fillRGBA);
- if(co.doubleduck.utils.SplashBG.preload != null) {
- this.__image = co.doubleduck.utils.SplashBG.preload;
- width = this.__image.width;
- height = this.__image.height;
- } else this.__loadFromBase64(haxe.Resource.getString(co.doubleduck.utils.SplashBG.resourceName),co.doubleduck.utils.SplashBG.resourceType,function(b) {
- if(co.doubleduck.utils.SplashBG.preload == null) co.doubleduck.utils.SplashBG.preload = b.__image;
- if(onload != null) onload(b);
- });
- };
- $hxClasses["co.doubleduck.utils.SplashBG"] = co.doubleduck.utils.SplashBG;
- co.doubleduck.utils.SplashBG.__name__ = ["co","doubleduck","utils","SplashBG"];
- co.doubleduck.utils.SplashBG.preload = null;
- co.doubleduck.utils.SplashBG.__super__ = openfl.display.BitmapData;
- co.doubleduck.utils.SplashBG.prototype = $extend(openfl.display.BitmapData.prototype,{
- __class__: co.doubleduck.utils.SplashBG
- });
- co.doubleduck.utils.ProgBG = function(width,height,transparent,fillRGBA,onload) {
- if(fillRGBA == null) fillRGBA = -1;
- if(transparent == null) transparent = true;
- openfl.display.BitmapData.call(this,0,0,transparent,fillRGBA);
- if(co.doubleduck.utils.ProgBG.preload != null) {
- this.__image = co.doubleduck.utils.ProgBG.preload;
- width = this.__image.width;
- height = this.__image.height;
- } else this.__loadFromBase64(haxe.Resource.getString(co.doubleduck.utils.ProgBG.resourceName),co.doubleduck.utils.ProgBG.resourceType,function(b) {
- if(co.doubleduck.utils.ProgBG.preload == null) co.doubleduck.utils.ProgBG.preload = b.__image;
- if(onload != null) onload(b);
- });
- };
- $hxClasses["co.doubleduck.utils.ProgBG"] = co.doubleduck.utils.ProgBG;
- co.doubleduck.utils.ProgBG.__name__ = ["co","doubleduck","utils","ProgBG"];
- co.doubleduck.utils.ProgBG.preload = null;
- co.doubleduck.utils.ProgBG.__super__ = openfl.display.BitmapData;
- co.doubleduck.utils.ProgBG.prototype = $extend(openfl.display.BitmapData.prototype,{
- __class__: co.doubleduck.utils.ProgBG
- });
- co.doubleduck.utils.ProgFill = function(width,height,transparent,fillRGBA,onload) {
- if(fillRGBA == null) fillRGBA = -1;
- if(transparent == null) transparent = true;
- openfl.display.BitmapData.call(this,0,0,transparent,fillRGBA);
- if(co.doubleduck.utils.ProgFill.preload != null) {
- this.__image = co.doubleduck.utils.ProgFill.preload;
- width = this.__image.width;
- height = this.__image.height;
- } else this.__loadFromBase64(haxe.Resource.getString(co.doubleduck.utils.ProgFill.resourceName),co.doubleduck.utils.ProgFill.resourceType,function(b) {
- if(co.doubleduck.utils.ProgFill.preload == null) co.doubleduck.utils.ProgFill.preload = b.__image;
- if(onload != null) onload(b);
- });
- };
- $hxClasses["co.doubleduck.utils.ProgFill"] = co.doubleduck.utils.ProgFill;
- co.doubleduck.utils.ProgFill.__name__ = ["co","doubleduck","utils","ProgFill"];
- co.doubleduck.utils.ProgFill.preload = null;
- co.doubleduck.utils.ProgFill.__super__ = openfl.display.BitmapData;
- co.doubleduck.utils.ProgFill.prototype = $extend(openfl.display.BitmapData.prototype,{
- __class__: co.doubleduck.utils.ProgFill
- });
- co.doubleduck.utils.ProgBar = function(back,fill) {
- this._maskTo = 1;
- this._maskFrom = 0;
- openfl.display.Sprite.call(this);
- this._back = back;
- this._fill = fill;
- this.addChild(this._back);
- this._fillPerc = { };
- this._fillPerc.val = 0;
- this._fillWidth = fill.get_width();
- this._fillHeight = fill.get_height();
- this._mask = new openfl.display.Sprite();
- this.setupMask();
- this.updateMask();
- this._fill.set_mask(this._mask);
- this.addChild(this._fill);
- this.addChild(this._mask);
- };
- $hxClasses["co.doubleduck.utils.ProgBar"] = co.doubleduck.utils.ProgBar;
- co.doubleduck.utils.ProgBar.__name__ = ["co","doubleduck","utils","ProgBar"];
- co.doubleduck.utils.ProgBar.__super__ = openfl.display.Sprite;
- co.doubleduck.utils.ProgBar.prototype = $extend(openfl.display.Sprite.prototype,{
- setFillVals: function(width,height) {
- this._fillWidth = width;
- this._fillHeight = height;
- this.setupMask();
- }
- ,setFillPerc: function(value,duration) {
- if(duration == null) duration = 0;
- if(value == 0) value = 0.001;
- co.doubleduck.utils.TweenChain.removeTweens(this._fillPerc);
- if(duration <= 0) {
- this._fillPerc.val = value;
- this.updateMask();
- } else co.doubleduck.utils.TweenChain.get(this._fillPerc).tto({ val : value},duration,null,$bind(this,this.updateMask));
- }
- ,getFillPerc: function() {
- return this._fillPerc.val;
- }
- ,set_maskFrom: function(val) {
- this._maskFrom = val;
- this.setupMask();
- return this._maskFrom;
- }
- ,set_maskTo: function(val) {
- this._maskTo = val;
- this.setupMask();
- return this._maskTo;
- }
- ,setupMask: function() {
- this._mask.get_graphics().clear();
- this._mask.get_graphics().beginFill(0);
- this._mask.get_graphics().drawRect(0,0,this._fillWidth * (this._maskTo - this._maskFrom),this._fillHeight);
- this._mask.get_graphics().endFill();
- this._mask.set_x(this._fillWidth * this._maskFrom);
- }
- ,updateMask: function(obj) {
- this._mask.set_scaleX(this._fillPerc.val);
- }
- ,__class__: co.doubleduck.utils.ProgBar
- ,__properties__: $extend(openfl.display.Sprite.prototype.__properties__,{set_maskTo:"set_maskTo",set_maskFrom:"set_maskFrom"})
- });
- co.doubleduck.utils.SoundMgr = function() { };
- $hxClasses["co.doubleduck.utils.SoundMgr"] = co.doubleduck.utils.SoundMgr;
- co.doubleduck.utils.SoundMgr.__name__ = ["co","doubleduck","utils","SoundMgr"];
- co.doubleduck.utils.SoundMgr._muted = null;
- co.doubleduck.utils.SoundMgr._sounds = null;
- co.doubleduck.utils.SoundMgr._perstistence = null;
- co.doubleduck.utils.SoundMgr.forceFileType = function(type) {
- co.doubleduck.utils.SoundMgr._fileType = type;
- };
- co.doubleduck.utils.SoundMgr.init = function(persistence) {
- co.doubleduck.utils.SoundMgr._perstistence = persistence;
- if(co.doubleduck.utils.SoundMgr._sounds == null) {
- co.doubleduck.utils.SoundMgr._sounds = new haxe.ds.StringMap();
- co.doubleduck.utils.SoundMgr._muted = co.doubleduck.utils.SoundMgr._perstistence.getValue("MUTE_STATE") == "true";
- }
- co.doubleduck.utils.SoundMgr.available = true;
- };
- co.doubleduck.utils.SoundMgr.getMute = function() {
- return co.doubleduck.utils.SoundMgr._muted;
- };
- co.doubleduck.utils.SoundMgr.setMute = function(value) {
- co.doubleduck.utils.SoundMgr._muted = value;
- if(co.doubleduck.utils.SoundMgr._muted) co.doubleduck.utils.SoundMgr._perstistence.setValue("MUTE_STATE","true"); else co.doubleduck.utils.SoundMgr._perstistence.setValue("MUTE_STATE","true");
- co.doubleduck.utils.SoundMgr.stopAll();
- };
- co.doubleduck.utils.SoundMgr.isAvailable = function() {
- return co.doubleduck.utils.SoundMgr.available && !(co.doubleduck.utils.SoundMgr.isAndroidBrowser && !co.doubleduck.utils.SoundMgr.isChrome);
- return co.doubleduck.utils.SoundMgr.available;
- };
- co.doubleduck.utils.SoundMgr.playSound = function(name,loop,startingPos,music,forceType) {
- if(forceType == null) forceType = "";
- if(music == null) music = false;
- if(startingPos == null) startingPos = 0;
- if(loop == null) loop = false;
- if(co.doubleduck.utils.SoundMgr._muted || !co.doubleduck.utils.SoundMgr.isAvailable()) return null;
- var sound;
- var fileType = co.doubleduck.utils.SoundMgr.fileType();
- if(forceType != "") fileType = forceType;
- if(music) {
- if(co.doubleduck.utils.SoundMgr.isChrome) {
- var audio = co.doubleduck.utils.SoundMgr.audios.get("musics/" + name);
- audio.loop = loop;
- audio.play();
- return name;
- }
- sound = openfl.Assets.getSound("musics/" + name + fileType,true);
- } else sound = openfl.Assets.getSound("sounds/" + name + fileType,true);
- if(sound != null) {
- var newHandle = co.doubleduck.utils.SoundMgr.newHandle();
- var loops;
- if(loop) loops = 10000; else loops = 0;
- if(startingPos > 0) {
- if(startingPos >= sound.length * 1000 * 0.925) startingPos = 0;
- }
- var chan = sound.play(startingPos,loops);
- chan.addEventListener(openfl.events.Event.SOUND_COMPLETE,co.doubleduck.utils.SoundMgr.handleSoundFinish);
- var data = { };
- data.sName = name;
- data.sChannel = chan;
- data.isLoop = loop;
- data.isMusic = music;
- data.forceType = forceType;
- co.doubleduck.utils.SoundMgr._sounds.set(newHandle,data);
- return newHandle;
- }
- return null;
- };
- co.doubleduck.utils.SoundMgr.pauseSound = function(sHandle) {
- if(!co.doubleduck.utils.SoundMgr._sounds.exists(sHandle)) return;
- var sound = co.doubleduck.utils.SoundMgr._sounds.get(sHandle);
- sound.pausePos = sound.sChannel.get_position();
- sound.sChannel.stop();
- };
- co.doubleduck.utils.SoundMgr.resumeSound = function(sHandle) {
- if(!co.doubleduck.utils.SoundMgr._sounds.exists(sHandle)) return;
- var dat = co.doubleduck.utils.SoundMgr._sounds.get(sHandle);
- co.doubleduck.utils.SoundMgr.stopSound(sHandle);
- co.doubleduck.utils.SoundMgr.forceNextHandle(sHandle);
- co.doubleduck.utils.SoundMgr.playSound(dat.sName,dat.isLoop,dat.pausePos,dat.isMusic,dat.forceType);
- };
- co.doubleduck.utils.SoundMgr.stopSound = function(handle,isMusic) {
- if(isMusic == null) isMusic = false;
- if(isMusic) {
- if(co.doubleduck.utils.SoundMgr.isChrome) {
- var audio = co.doubleduck.utils.SoundMgr.audios.get("musics/" + handle);
- audio.pause();
- audio.currentTime = 0;
- return;
- }
- }
- if(handle == null || handle.length == 0) return;
- if(co.doubleduck.utils.SoundMgr._sounds.exists(handle)) {
- var data = co.doubleduck.utils.SoundMgr._sounds.get(handle);
- var chan = data.sChannel;
- chan.stop();
- chan.removeEventListener(openfl.events.Event.SOUND_COMPLETE,co.doubleduck.utils.SoundMgr.handleSoundFinish);
- chan = null;
- co.doubleduck.utils.SoundMgr._sounds.remove(handle);
- }
- };
- co.doubleduck.utils.SoundMgr.setSoundVolume = function(handle,volume,isMusic) {
- if(isMusic == null) isMusic = false;
- if(isMusic) {
- if(co.doubleduck.utils.SoundMgr.isChrome) {
- var audio = co.doubleduck.utils.SoundMgr.audios.get("musics/" + handle);
- audio.volume = volume;
- return;
- }
- }
- if(handle == null || handle.length == 0) return;
- if(co.doubleduck.utils.SoundMgr._sounds.exists(handle)) {
- var data = co.doubleduck.utils.SoundMgr._sounds.get(handle);
- var chan = data.sChannel;
- var soundTransform = chan.get_soundTransform();
- soundTransform.volume = volume;
- chan.set_soundTransform(soundTransform);
- }
- };
- co.doubleduck.utils.SoundMgr.stopAll = function() {
- var iter = co.doubleduck.utils.SoundMgr._sounds.keys();
- while(iter.hasNext()) {
- var cKey = iter.next();
- co.doubleduck.utils.SoundMgr.stopSound(cKey);
- }
- };
- co.doubleduck.utils.SoundMgr.handleSoundFinish = function(e) {
- var chan = e.target;
- chan.removeEventListener(openfl.events.Event.SOUND_COMPLETE,co.doubleduck.utils.SoundMgr.handleSoundFinish);
- var $it0 = co.doubleduck.utils.SoundMgr._sounds.keys();
- while( $it0.hasNext() ) {
- var cKey = $it0.next();
- if(co.doubleduck.utils.SoundMgr._sounds.get(cKey).sChannel == chan) {
- co.doubleduck.utils.SoundMgr._sounds.remove(cKey);
- return;
- }
- }
- };
- co.doubleduck.utils.SoundMgr.forceNextHandle = function(handle) {
- co.doubleduck.utils.SoundMgr._forceHandle = handle;
- };
- co.doubleduck.utils.SoundMgr.newHandle = function() {
- if(co.doubleduck.utils.SoundMgr._forceHandle != "") {
- var retHandle = co.doubleduck.utils.SoundMgr._forceHandle;
- co.doubleduck.utils.SoundMgr._forceHandle = "";
- return retHandle;
- }
- co.doubleduck.utils.SoundMgr._idCounter++;
- return "snd" + (co.doubleduck.utils.SoundMgr._idCounter - 1);
- };
- co.doubleduck.utils.SoundMgr.fileType = function() {
- co.doubleduck.utils.SoundMgr._fileType = ".ogg";
- return co.doubleduck.utils.SoundMgr._fileType;
- };
- co.doubleduck.utils.TweenAnimator = function() { };
- $hxClasses["co.doubleduck.utils.TweenAnimator"] = co.doubleduck.utils.TweenAnimator;
- co.doubleduck.utils.TweenAnimator.__name__ = ["co","doubleduck","utils","TweenAnimator"];
- co.doubleduck.utils.TweenAnimator.spin = function(obj,duration,amount) {
- if(amount == null) amount = 0;
- if(duration == null) duration = 1000;
- obj.set_rotation(0);
- if(amount > 0) {
- amount--;
- if(amount == 0) return;
- }
- co.doubleduck.utils.TweenChain.get(obj).tto({ rotation : 360},duration).call(co.doubleduck.utils.TweenAnimator.spin,[obj,duration,amount]);
- };
- co.doubleduck.utils.TweenAnimator.nudge = function(obj,duration,amount) {
- if(amount == null) amount = 0;
- if(duration == null) duration = 550;
- obj.set_scaleX(obj.set_scaleY(1));
- if(amount > 0) {
- amount--;
- if(amount == 0) return;
- }
- co.doubleduck.utils.TweenChain.get(obj).tto({ scaleX : 1.15, scaleY : 1.15},Math.floor(duration / 2),motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},Math.floor(duration / 2),motion.easing.Sine.get_easeInOut()).call(co.doubleduck.utils.TweenAnimator.nudge,[obj,duration,amount]);
- };
- co.doubleduck.utils.TweenAnimator.hover = function(obj,duration,amount) {
- if(amount == null) amount = 0;
- if(duration == null) duration = 1200;
- if(amount > 0) {
- amount--;
- if(amount == 0) return;
- }
- co.doubleduck.utils.TweenChain.get(obj).tto({ y : obj.get_y() - 5},Math.floor(duration / 4),motion.easing.Sine.get_easeOut()).tto({ y : obj.get_y() + 5},Math.floor(duration / 2),motion.easing.Sine.get_easeInOut()).tto({ y : obj.get_y()},Math.floor(duration / 4),motion.easing.Sine.get_easeIn()).call(co.doubleduck.utils.TweenAnimator.hover,[obj,duration,amount]);
- };
- co.doubleduck.utils.TweenAnimator.slowJiggle = function(obj,factor,duration,amount) {
- if(amount == null) amount = 0;
- if(duration == null) duration = 2400;
- if(factor == null) factor = 0.03;
- if(amount > 0) {
- amount--;
- if(amount == 0) return;
- }
- co.doubleduck.utils.TweenChain.get(obj).tto({ scaleX : 1 + factor, scaleY : 1 - factor},Math.floor(duration / 4),motion.easing.Sine.get_easeOut()).tto({ scaleX : 1 - factor, scaleY : 1 + factor},Math.floor(duration / 2),motion.easing.Sine.get_easeInOut()).tto({ scaleX : 1, scaleY : 1},Math.floor(duration / 4),motion.easing.Sine.get_easeIn()).call(co.doubleduck.utils.TweenAnimator.slowJiggle,[obj,duration,amount]);
- };
- co.doubleduck.utils.TweenAnimator.shake = function(obj,strength,speed,amount) {
- if(amount == null) amount = 0;
- if(speed == null) speed = 50;
- if(strength == null) strength = 10;
- if(amount > 0) {
- amount--;
- if(amount == 0) return;
- }
- co.doubleduck.utils.TweenChain.get(obj).tto({ x : obj.get_x() - strength / 2 + Math.random() * strength, y : obj.get_y() - strength / 2 + Math.random() * strength},speed,motion.easing.Sine.get_easeOut()).tto({ x : obj.get_x() - strength / 2 + Math.random() * strength, y : obj.get_y() - strength / 2 + Math.random() * strength},2 * speed,motion.easing.Sine.get_easeInOut()).tto({ x : obj.get_x(), y : obj.get_y()},speed,motion.easing.Sine.get_easeIn()).call(co.doubleduck.utils.TweenAnimator.shake,[obj,strength,speed,amount]);
- };
- co.doubleduck.utils.TweenChain = function(obj,overwrite,debug) {
- if(debug == null) debug = false;
- if(overwrite == null) overwrite = false;
- if(co.doubleduck.utils.TweenChain.allowNew) {
- this._chains = [];
- this._currIndex = 0;
- this._obj = obj;
- this._debug = debug;
- this._overwrite = overwrite;
- this._activated = false;
- } else throw "Wrong call to function new(), use TweenChain.get()";
- };
- $hxClasses["co.doubleduck.utils.TweenChain"] = co.doubleduck.utils.TweenChain;
- co.doubleduck.utils.TweenChain.__name__ = ["co","doubleduck","utils","TweenChain"];
- co.doubleduck.utils.TweenChain.get = function(obj,overwrite,debug) {
- if(debug == null) debug = false;
- if(overwrite == null) overwrite = false;
- co.doubleduck.utils.TweenChain.allowNew = true;
- var ret = new co.doubleduck.utils.TweenChain(obj,overwrite,debug);
- co.doubleduck.utils.TweenChain.activeChains.push(ret);
- ret._id = co.doubleduck.utils.TweenChain.count;
- co.doubleduck.utils.TweenChain.count++;
- co.doubleduck.utils.TweenChain.allowNew = false;
- return ret;
- };
- co.doubleduck.utils.TweenChain.removeTweens = function(obj) {
- var arr = [];
- var _g = 0;
- var _g1 = co.doubleduck.utils.TweenChain.activeChains;
- while(_g < _g1.length) {
- var i = _g1[_g];
- ++_g;
- if(i._obj == obj) {
- if(i._runningTween != null) motion.Actuate.stop(obj,null,false,false);
- i._chains = [];
- arr.push(i);
- }
- }
- var _g2 = 0;
- while(_g2 < arr.length) {
- var i1 = arr[_g2];
- ++_g2;
- HxOverrides.remove(co.doubleduck.utils.TweenChain.activeChains,i1);
- }
- };
- co.doubleduck.utils.TweenChain.getActiveChains = function(withoutNulls) {
- if(withoutNulls == null) withoutNulls = false;
- if(withoutNulls) {
- var arr = [];
- var _g = 0;
- var _g1 = co.doubleduck.utils.TweenChain.activeChains;
- while(_g < _g1.length) {
- var i = _g1[_g];
- ++_g;
- if(i._obj != null) arr.push(i);
- }
- return arr;
- }
- return co.doubleduck.utils.TweenChain.activeChains;
- };
- co.doubleduck.utils.TweenChain.purge = function() {
- motion.Actuate.reset();
- co.doubleduck.utils.TweenChain.activeChains = null;
- co.doubleduck.utils.TweenChain.activeChains = [];
- };
- co.doubleduck.utils.TweenChain.prototype = {
- tto: function(props,duration,ease,onUpdate) {
- var chain = this.getNewChainHash();
- if(duration == 0) chain.set("type",co.doubleduck.utils.ChainTypes.APPLY); else {
- if(ease == null) ease = motion.easing.Linear.get_easeNone();
- chain.set("type",co.doubleduck.utils.ChainTypes.TWEEN);
- chain.set("duration",duration / 1000);
- chain.set("ease",ease);
- chain.set("onUpdate",onUpdate);
- }
- chain.set("props",props);
- this.addToQueue(chain);
- return this;
- }
- ,wait: function(duration) {
- if(duration == null) duration = 10;
- if(duration == 0) return this;
- var chain = this.getNewChainHash();
- chain.set("duration",duration / 1000);
- chain.set("type",co.doubleduck.utils.ChainTypes.TIMER);
- this.addToQueue(chain);
- return this;
- }
- ,call: function(handler,params) {
- var chain = this.getNewChainHash();
- if(params == null) params = [];
- chain.set("handler",handler);
- chain.set("params",params);
- chain.set("type",co.doubleduck.utils.ChainTypes.CALL);
- this.addToQueue(chain);
- return this;
- }
- ,addToQueue: function(d) {
- this._chains.push(d);
- if(!this._activated) {
- if(d.get("duration") == 0) {
- if(d.get("type") == co.doubleduck.utils.ChainTypes.APPLY) motion.Actuate.apply(this._obj,d.get("props")); else if(d.get("type") == co.doubleduck.utils.ChainTypes.CALL) Reflect.callMethod(d.get("handler"),d.get("handler"),d.get("params"));
- this._currIndex++;
- } else {
- this._activated = true;
- this.act();
- }
- }
- }
- ,act: function() {
- if(this._currIndex >= this._chains.length) {
- this.destroy();
- return;
- }
- var currChain = this._chains[this._currIndex];
- this._currIndex++;
- this._runningTween = null;
- this.debugTrace(this._currIndex + "/" + this._chains.length + " :: " + Std.string(currChain));
- if(currChain.get("type") == co.doubleduck.utils.ChainTypes.TWEEN) {
- if(currChain.get("onUpdate") == null) this._runningTween = motion.Actuate.tween(this._obj,currChain.get("duration"),currChain.get("props"),this._overwrite).ease(currChain.get("ease")).onComplete($bind(this,this.doneActuateTween)); else this._runningTween = motion.Actuate.tween(this._obj,currChain.get("duration"),currChain.get("props"),this._overwrite).ease(currChain.get("ease")).onUpdate(currChain.get("onUpdate"),[this._obj]).onComplete($bind(this,this.doneActuateTween));
- this._runningTween.autoVisible(co.doubleduck.utils.TweenChain.autoVisible);
- } else if(currChain.get("type") == co.doubleduck.utils.ChainTypes.APPLY) {
- motion.Actuate.apply(this._obj,currChain.get("props"));
- this.act();
- } else if(currChain.get("type") == co.doubleduck.utils.ChainTypes.TIMER) motion.Actuate.timer(currChain.get("duration")).onComplete($bind(this,this.act)); else if(currChain.get("type") == co.doubleduck.utils.ChainTypes.CALL) {
- Reflect.callMethod(currChain.get("handler"),currChain.get("handler"),currChain.get("params"));
- this.act();
- }
- }
- ,doneActuateTween: function() {
- var currChain = this._chains[this._currIndex - 1];
- var _g = 0;
- var _g1 = Reflect.fields(currChain.get("props"));
- while(_g < _g1.length) {
- var prop = _g1[_g];
- ++_g;
- var val = Reflect.getProperty(currChain.get("props"),prop);
- Reflect.setProperty(this._obj,prop,val);
- }
- this.act();
- }
- ,destroy: function() {
- HxOverrides.remove(co.doubleduck.utils.TweenChain.activeChains,this);
- this._chains = null;
- if(this._obj == null) co.doubleduck.utils.TweenChain.removeTweens(this._obj);
- }
- ,debugTrace: function(d) {
- if(this._debug) null;
- }
- ,getNewChainHash: function() {
- var ret = new haxe.ds.StringMap();
- ret.set("type",null);
- ret.set("duration",0);
- return ret;
- }
- ,__class__: co.doubleduck.utils.TweenChain
- };
- co.doubleduck.utils.ChainTypes = $hxClasses["co.doubleduck.utils.ChainTypes"] = { __ename__ : ["co","doubleduck","utils","ChainTypes"], __constructs__ : ["TWEEN","TIMER","CALL","APPLY"] };
- co.doubleduck.utils.ChainTypes.TWEEN = ["TWEEN",0];
- co.doubleduck.utils.ChainTypes.TWEEN.toString = $estr;
- co.doubleduck.utils.ChainTypes.TWEEN.__enum__ = co.doubleduck.utils.ChainTypes;
- co.doubleduck.utils.ChainTypes.TIMER = ["TIMER",1];
- co.doubleduck.utils.ChainTypes.TIMER.toString = $estr;
- co.doubleduck.utils.ChainTypes.TIMER.__enum__ = co.doubleduck.utils.ChainTypes;
- co.doubleduck.utils.ChainTypes.CALL = ["CALL",2];
- co.doubleduck.utils.ChainTypes.CALL.toString = $estr;
- co.doubleduck.utils.ChainTypes.CALL.__enum__ = co.doubleduck.utils.ChainTypes;
- co.doubleduck.utils.ChainTypes.APPLY = ["APPLY",3];
- co.doubleduck.utils.ChainTypes.APPLY.toString = $estr;
- co.doubleduck.utils.ChainTypes.APPLY.__enum__ = co.doubleduck.utils.ChainTypes;
- co.doubleduck.utils.Utils = function() { };
- $hxClasses["co.doubleduck.utils.Utils"] = co.doubleduck.utils.Utils;
- co.doubleduck.utils.Utils.__name__ = ["co","doubleduck","utils","Utils"];
- co.doubleduck.utils.Utils.delayedCall = function(delay,call,args,obj) {
- if(obj != null) co.doubleduck.utils.TweenChain.get(obj).wait(delay * 1000 | 0).call(call,args); else motion.Actuate.timer(delay).onComplete(call,args);
- };
- co.doubleduck.utils.Utils.rectOverlap = function(r1,r2) {
- if(r2.contains(r1.x,r1.y)) return true;
- if(r2.contains(r1.x + r1.width,r1.y + r1.height)) return true;
- if(r2.contains(r1.x + r1.width,r1.y)) return true;
- if(r2.contains(r1.x,r1.y + r1.height)) return true;
- if(r1.contains(r2.x,r2.y)) return true;
- if(r1.contains(r2.x + r2.width,r2.y + r2.height)) return true;
- if(r1.contains(r2.x + r2.width,r2.y)) return true;
- if(r1.contains(r2.x,r2.y + r2.height)) return true;
- return false;
- };
- co.doubleduck.utils.Utils.map = function(value,aMin,aMax,bMin,bMax) {
- if(bMax == null) bMax = 1;
- if(bMin == null) bMin = 0;
- if(value <= aMin) return bMin;
- if(value >= aMax) return bMax;
- return (value - aMin) * (bMax - bMin) / (aMax - aMin) + bMin;
- };
- co.doubleduck.utils.Utils.nrand = function() {
- return (Math.random() + Math.random()) / 2;
- };
- co.doubleduck.utils.Utils.getDeviceType = function() {
- return co.doubleduck.utils.DeviceType.HTML5;
- return null;
- };
- co.doubleduck.utils.Utils.shuffleArray = function(arr) {
- var tmp;
- var j;
- var i = arr.length;
- while(i > 0) {
- j = Std["int"](Math.random() * i);
- tmp = arr[--i];
- arr[i] = arr[j];
- arr[j] = tmp;
- }
- };
- co.doubleduck.utils.Utils.sign = function(n) {
- if(n < 0) return -1;
- return 1;
- };
- co.doubleduck.utils.DeviceType = $hxClasses["co.doubleduck.utils.DeviceType"] = { __ename__ : ["co","doubleduck","utils","DeviceType"], __constructs__ : ["iPhone3","iPhone4","iPhone5","iPad","iPadRetina","Android","DesktopFlash","DesktopNative","HTML5"] };
- co.doubleduck.utils.DeviceType.iPhone3 = ["iPhone3",0];
- co.doubleduck.utils.DeviceType.iPhone3.toString = $estr;
- co.doubleduck.utils.DeviceType.iPhone3.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.iPhone4 = ["iPhone4",1];
- co.doubleduck.utils.DeviceType.iPhone4.toString = $estr;
- co.doubleduck.utils.DeviceType.iPhone4.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.iPhone5 = ["iPhone5",2];
- co.doubleduck.utils.DeviceType.iPhone5.toString = $estr;
- co.doubleduck.utils.DeviceType.iPhone5.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.iPad = ["iPad",3];
- co.doubleduck.utils.DeviceType.iPad.toString = $estr;
- co.doubleduck.utils.DeviceType.iPad.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.iPadRetina = ["iPadRetina",4];
- co.doubleduck.utils.DeviceType.iPadRetina.toString = $estr;
- co.doubleduck.utils.DeviceType.iPadRetina.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.Android = ["Android",5];
- co.doubleduck.utils.DeviceType.Android.toString = $estr;
- co.doubleduck.utils.DeviceType.Android.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.DesktopFlash = ["DesktopFlash",6];
- co.doubleduck.utils.DeviceType.DesktopFlash.toString = $estr;
- co.doubleduck.utils.DeviceType.DesktopFlash.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.DesktopNative = ["DesktopNative",7];
- co.doubleduck.utils.DeviceType.DesktopNative.toString = $estr;
- co.doubleduck.utils.DeviceType.DesktopNative.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.DeviceType.HTML5 = ["HTML5",8];
- co.doubleduck.utils.DeviceType.HTML5.toString = $estr;
- co.doubleduck.utils.DeviceType.HTML5.__enum__ = co.doubleduck.utils.DeviceType;
- co.doubleduck.utils.data = {};
- co.doubleduck.utils.data.StorageAdapter = function() { };
- $hxClasses["co.doubleduck.utils.data.StorageAdapter"] = co.doubleduck.utils.data.StorageAdapter;
- co.doubleduck.utils.data.StorageAdapter.__name__ = ["co","doubleduck","utils","data","StorageAdapter"];
- co.doubleduck.utils.data.StorageAdapter.get = function(domain,type) {
- if(type == co.doubleduck.utils.data.StorageAdapterType.LOCAL_STORAGE) return new co.doubleduck.utils.data.LocalStorageAdapter(domain); else if(type == co.doubleduck.utils.data.StorageAdapterType.SHARED_OBJECT) return new co.doubleduck.utils.data.SharedObjectAdapter(domain);
- return null;
- };
- co.doubleduck.utils.data.StorageAdapter.prototype = {
- getValue: function(key) {
- throw "DDException: function not implemented!";
- return null;
- }
- ,setValue: function(key,value) {
- throw "DDException: function not implemented!";
- return null;
- }
- ,removeValue: function(key) {
- throw "DDException: function not implemented!";
- return null;
- }
- ,rawData: function() {
- throw "DDException: function not implemented!";
- return null;
- }
- ,clear: function() {
- throw "DDException: function not implemented!";
- return null;
- }
- ,getString: function(key) {
- var result = this.getValue(key[0]);
- return result;
- }
- ,setString: function(key,value) {
- this.setValue(key[0],value);
- }
- ,initString: function(key,defaultValue) {
- if(defaultValue == null) defaultValue = "";
- if(this.getString(key) == null) this.setString(key,defaultValue);
- }
- ,getFloat: function(key) {
- var result = this.getValue(key[0]);
- return result;
- }
- ,setFloat: function(key,value) {
- this.setValue(key[0],value);
- }
- ,initFloat: function(key,defaultValue) {
- if(defaultValue == null) defaultValue = 0;
- if(this.getString(key) == null) this.setFloat(key,defaultValue);
- }
- ,getInt: function(key) {
- var result = Std["int"](this.getValue(key[0]));
- return result;
- }
- ,setInt: function(key,value) {
- this.setValue(key[0],value);
- }
- ,initInt: function(key,defaultValue) {
- if(defaultValue == null) defaultValue = 0;
- if(this.getString(key) == null) this.setInt(key,defaultValue);
- }
- ,__class__: co.doubleduck.utils.data.StorageAdapter
- };
- co.doubleduck.utils.data.LocalStorageAdapter = function(domain) {
- this._domain = domain;
- this._ls = this.getLocalStorage();
- };
- $hxClasses["co.doubleduck.utils.data.LocalStorageAdapter"] = co.doubleduck.utils.data.LocalStorageAdapter;
- co.doubleduck.utils.data.LocalStorageAdapter.__name__ = ["co","doubleduck","utils","data","LocalStorageAdapter"];
- co.doubleduck.utils.data.LocalStorageAdapter.__super__ = co.doubleduck.utils.data.StorageAdapter;
- co.doubleduck.utils.data.LocalStorageAdapter.prototype = $extend(co.doubleduck.utils.data.StorageAdapter.prototype,{
- getValue: function(key) {
- var result = this._ls.getItem(this._domain + key);
- if(result == null) return null;
- return JSON.parse(result);
- }
- ,setValue: function(key,value) {
- this._ls.setItem(this._domain + key,JSON.stringify(value));
- }
- ,removeValue: function(key) {
- this._ls.removeItem(this._domain + key);
- }
- ,clear: function() {
- this._ls.clear();
- }
- ,rawData: function() {
- return this._ls;
- }
- ,getLocalStorage: function() {
- var ls = js.Browser.getLocalStorage();
- if(ls != null) try {
- ls.setItem("ddstoragetest","1");
- ls.getItem("ddstoragetest");
- ls.removeItem("ddstoragetest");
- return ls;
- } catch( e ) {
- }
- return new co.doubleduck.utils.data.DummyLocalStorage();
- }
- ,__class__: co.doubleduck.utils.data.LocalStorageAdapter
- });
- co.doubleduck.utils.data.DummyLocalStorage = function() {
- this.data = { };
- };
- $hxClasses["co.doubleduck.utils.data.DummyLocalStorage"] = co.doubleduck.utils.data.DummyLocalStorage;
- co.doubleduck.utils.data.DummyLocalStorage.__name__ = ["co","doubleduck","utils","data","DummyLocalStorage"];
- co.doubleduck.utils.data.DummyLocalStorage.prototype = {
- setItem: function(key,value) {
- Reflect.setProperty(this.data,key,value);
- }
- ,getItem: function(key) {
- return Reflect.getProperty(this.data,key);
- }
- ,removeItem: function(key) {
- Reflect.deleteField(this.data,key);
- }
- ,clear: function() {
- this.data = { };
- }
- ,__class__: co.doubleduck.utils.data.DummyLocalStorage
- };
- co.doubleduck.utils.data.SharedObjectAdapter = function(domain) {
- this._domain = domain;
- var localPath = "";
- this._data = openfl.net.SharedObject.getLocal(domain + "savedata",localPath);
- };
- $hxClasses["co.doubleduck.utils.data.SharedObjectAdapter"] = co.doubleduck.utils.data.SharedObjectAdapter;
- co.doubleduck.utils.data.SharedObjectAdapter.__name__ = ["co","doubleduck","utils","data","SharedObjectAdapter"];
- co.doubleduck.utils.data.SharedObjectAdapter.__super__ = co.doubleduck.utils.data.StorageAdapter;
- co.doubleduck.utils.data.SharedObjectAdapter.prototype = $extend(co.doubleduck.utils.data.StorageAdapter.prototype,{
- getValue: function(key) {
- return Reflect.getProperty(this._data.data,key);
- }
- ,setValue: function(key,value) {
- this._data.data[key] = value;
- this._data.flush();
- }
- ,removeValue: function(key) {
- Reflect.deleteField(this._data.data,key);
- this._data.flush();
- }
- ,clear: function() {
- this._data.clear();
- this._data.flush();
- }
- ,rawData: function() {
- return this._data;
- }
- ,__class__: co.doubleduck.utils.data.SharedObjectAdapter
- });
- co.doubleduck.utils.data.StorageAdapterType = $hxClasses["co.doubleduck.utils.data.StorageAdapterType"] = { __ename__ : ["co","doubleduck","utils","data","StorageAdapterType"], __constructs__ : ["LOCAL_STORAGE","SHARED_OBJECT"] };
- co.doubleduck.utils.data.StorageAdapterType.LOCAL_STORAGE = ["LOCAL_STORAGE",0];
- co.doubleduck.utils.data.StorageAdapterType.LOCAL_STORAGE.toString = $estr;
- co.doubleduck.utils.data.StorageAdapterType.LOCAL_STORAGE.__enum__ = co.doubleduck.utils.data.StorageAdapterType;
- co.doubleduck.utils.data.StorageAdapterType.SHARED_OBJECT = ["SHARED_OBJECT",1];
- co.doubleduck.utils.data.StorageAdapterType.SHARED_OBJECT.toString = $estr;
- co.doubleduck.utils.data.StorageAdapterType.SHARED_OBJECT.__enum__ = co.doubleduck.utils.data.StorageAdapterType;
- var com = {};
- com.funtomic = {};
- com.funtomic.GameOpsStatus = $hxClasses["com.funtomic.GameOpsStatus"] = { __ename__ : ["com","funtomic","GameOpsStatus"], __constructs__ : ["UNINITIALIZED","INITIALIZING","INITIALIZED","QUITTING"] };
- com.funtomic.GameOpsStatus.UNINITIALIZED = ["UNINITIALIZED",0];
- com.funtomic.GameOpsStatus.UNINITIALIZED.toString = $estr;
- com.funtomic.GameOpsStatus.UNINITIALIZED.__enum__ = com.funtomic.GameOpsStatus;
- com.funtomic.GameOpsStatus.INITIALIZING = ["INITIALIZING",1];
- com.funtomic.GameOpsStatus.INITIALIZING.toString = $estr;
- com.funtomic.GameOpsStatus.INITIALIZING.__enum__ = com.funtomic.GameOpsStatus;
- com.funtomic.GameOpsStatus.INITIALIZED = ["INITIALIZED",2];
- com.funtomic.GameOpsStatus.INITIALIZED.toString = $estr;
- com.funtomic.GameOpsStatus.INITIALIZED.__enum__ = com.funtomic.GameOpsStatus;
- com.funtomic.GameOpsStatus.QUITTING = ["QUITTING",3];
- com.funtomic.GameOpsStatus.QUITTING.toString = $estr;
- com.funtomic.GameOpsStatus.QUITTING.__enum__ = com.funtomic.GameOpsStatus;
- com.funtomic.GameOps = function() { };
- $hxClasses["com.funtomic.GameOps"] = com.funtomic.GameOps;
- com.funtomic.GameOps.__name__ = ["com","funtomic","GameOps"];
- com.funtomic.GameOps.gameVersion = null;
- com.funtomic.GameOps.domain = null;
- com.funtomic.GameOps.userID = null;
- com.funtomic.GameOps.fbId = null;
- com.funtomic.GameOps.experimentId = null;
- com.funtomic.GameOps.alternativeId = null;
- com.funtomic.GameOps.FBAppId = null;
- com.funtomic.GameOps.platform = null;
- com.funtomic.GameOps.url = null;
- com.funtomic.GameOps.lastLevelNumber = null;
- com.funtomic.GameOps.gameConfig = null;
- com.funtomic.GameOps.elapsedPlayTimeAtInit = null;
- com.funtomic.GameOps.elapsedGameTime = null;
- com.funtomic.GameOps.levelsWon = null;
- com.funtomic.GameOps.sessionId = null;
- com.funtomic.GameOps.init = function(pDomain,pGameVersion,pDefaultConfig,pGameState,callback) {
- if(com.funtomic.GameOps.status != com.funtomic.GameOpsStatus.UNINITIALIZED) return;
- com.funtomic.GameOps.status = com.funtomic.GameOpsStatus.INITIALIZING;
- com.funtomic.GameOps.domain = pDomain;
- com.funtomic.GameOps.gameVersion = pGameVersion;
- com.funtomic.GameOps.readLocalStorage();
- com.funtomic.GameOps.readGameStateLocalStorage();
- com.funtomic.GameOps.startUpdateTimers();
- com.funtomic.GameOps.url = window.location.href;
- com.funtomic.GameOps.startTimer("session");
- com.funtomic.GameOps.platform = "web";
- com.funtomic.GameOps.sessionId = com.funtomic.GameOps.generateRandomString(20);
- if(com.funtomic.GameOps.localStorage.installDate == null) {
- com.funtomic.GameOps.localStorage.installDate = Math.round(new Date().getTime() / 1000);
- com.funtomic.GameOps.firstSession = true;
- com.funtomic.GameOps.reportEvent("first_run");
- }
- com.funtomic.GameOps.elapsedGameTime = com.funtomic.GameOps.storageGet("FuntomicGameOps-ElapsedGameTime",0);
- if(com.funtomic.GameOps.localStorage.elapsedGameTime != null) {
- com.funtomic.GameOps.elapsedGameTime = com.funtomic.GameOps.localStorage.elapsedGameTime;
- Reflect.deleteField(com.funtomic.GameOps.localStorage,"elapsedGameTime");
- }
- if(com.funtomic.GameOps.localStorage.originalVersion == null) com.funtomic.GameOps.localStorage.originalVersion = com.funtomic.GameOps.gameVersion;
- com.funtomic.GameOps.elapsedPlayTimeAtInit = com.funtomic.GameOps.elapsedGameTime;
- com.funtomic.GameOps.userID = com.funtomic.GameOps.localStorage.userID;
- try {
- var html5ApiUserId = flambe.System.external.call("HTML5API_getUserId");
- if(html5ApiUserId != null) {
- com.funtomic.GameOpsLogger.verbose(["html5ApiUserId is: " + html5ApiUserId]);
- com.funtomic.GameOps.userID = html5ApiUserId;
- }
- } catch( e ) {
- com.funtomic.GameOpsLogger.verbose(["there is no HTML5API_getUserId function"]);
- }
- com.funtomic.GameOps.levelsWon = 0;
- if(com.funtomic.GameOps.localStorage.config == null || com.funtomic.GameOps.localStorage.configForVersion != null && com.funtomic.GameOps.localStorage.configForVersion != com.funtomic.GameOps.gameVersion) com.funtomic.GameOps.localStorage.config = pDefaultConfig;
- com.funtomic.GameOps.gameConfig = com.funtomic.GameOps.localStorage.config;
- if(com.funtomic.GameOps.localStorage.experimentId != null) com.funtomic.GameOps.experimentId = com.funtomic.GameOps.localStorage.experimentId;
- if(com.funtomic.GameOps.localStorage.alternativeId != null) com.funtomic.GameOps.alternativeId = com.funtomic.GameOps.localStorage.alternativeId;
- var lastSessionEndEvent = com.funtomic.GameOps.storageGet("FuntomicGameOps-SessionEndEvent",null);
- if(lastSessionEndEvent != null) {
- com.funtomic.GameOps.reportEvents([lastSessionEndEvent]);
- com.funtomic.GameOps.storageRemove("FuntomicGameOps-SessionEndEvent");
- }
- var sessionEndTimer = new haxe.Timer(5000);
- sessionEndTimer.run = function() {
- com.funtomic.GameOps.sessionEnd();
- };
- window.addEventListener("pagehide",function(e1) {
- com.funtomic.GameOps.sessionEnd();
- });
- window.addEventListener("beforeunload",function(e2) {
- com.funtomic.GameOps.sessionEnd();
- });
- com.funtomic.GameOps.reportEvent("session_start");
- com.funtomic.GameOps.gameStateGameOpsData.elapsed_game_time = com.funtomic.GameOps.elapsedGameTime;
- com.funtomic.GameOps.gameStateGameOpsData.install_date = com.funtomic.GameOps.localStorage.installDate;
- com.funtomic.GameOps.writeLocalStorage();
- com.funtomic.GameOps.writeGameStateLocalStorage();
- pGameState.game_ops_data = com.funtomic.GameOps.gameStateGameOpsData;
- com.funtomic.GameOps.loadGameConfig(pGameState,callback);
- };
- com.funtomic.GameOps.loadGameConfig = function(gameState,callback) {
- com.funtomic.GameOpsLogger.verbose(["Fetching game config for: ",com.funtomic.GameOps.domain]);
- var request = new haxe.Http(null);
- //request.url = com.funtomic.GameOps.apiURLPrefix + com.funtomic.GameOps.apiConfigLocation;
- request.setParameter("domain",com.funtomic.GameOps.domain);
- request.setParameter("game_state",JSON.stringify(gameState));
- request.setParameter("game_ops_version",com.funtomic.GameOps.gameOpsVersion);
- request.setParameter("game_version",com.funtomic.GameOps.gameVersion);
- request.setParameter("platform_name",com.funtomic.GameOps.platform);
- if(com.funtomic.GameOps.userID != null) request.setParameter("user_id",com.funtomic.GameOps.userID);
- if(com.funtomic.GameOps.experimentId != null) request.setParameter("experiment_id",com.funtomic.GameOps.experimentId);
- if(com.funtomic.GameOps.alternativeId != null) request.setParameter("alternative_id",com.funtomic.GameOps.alternativeId);
- if(com.funtomic.GameOps.localStorage.userEmail != null) request.setParameter("user_email",com.funtomic.GameOps.localStorage.userEmail);
- if(com.funtomic.GameOps.localStorage.configMd5 != null) request.setParameter("config_md5",com.funtomic.GameOps.localStorage.configMd5);
- request.onData = function(data) {
- com.funtomic.GameOps.onConfigLoadSuccess(data);
- if(callback != null) callback(true);
- com.funtomic.GameOps.afterInit();
- };
- request.onStatus = com.funtomic.GameOps.onConfigLoadReturned;
- request.onError = function(msg) {
- com.funtomic.GameOps.IOErrorHandler(msg);
- com.funtomic.GameOps.status = com.funtomic.GameOpsStatus.UNINITIALIZED;
- if(callback != null) callback(false);
- com.funtomic.GameOps.afterInit();
- };
- request.request(true);
- };
- com.funtomic.GameOps.onConfigLoadReturned = function(status) {
- switch(status) {
- case 500:
- com.funtomic.GameOps.onConfigLoadFailure();
- break;
- case 0:
- com.funtomic.GameOps.onConfigLoadTimeout();
- break;
- }
- };
- com.funtomic.GameOps.onConfigLoadTimeout = function() {
- com.funtomic.GameOpsLogger.error(["Timeout while fetching game config from server"]);
- };
- com.funtomic.GameOps.onConfigLoadFailure = function() {
- com.funtomic.GameOpsLogger.error(["Error loading config"]);
- };
- com.funtomic.GameOps.IOErrorHandler = function(msg) {
- com.funtomic.GameOpsLogger.error(["Error caught ",msg]);
- };
- com.funtomic.GameOps.onConfigLoadSuccess = function(resultString) {
- var result = JSON.parse(resultString);
- com.funtomic.GameOpsLogger.verbose(["Config successfuly loaded",resultString]);
- if(result != null) {
- if(result.user_id != null) {
- com.funtomic.GameOps.userID = result.user_id;
- com.funtomic.GameOps.localStorage.userID = result.user_id;
- }
- if(result.is_debug_mode) com.funtomic.GameOps.isDebugMode = result.is_debug_mode;
- if(result.install_date) com.funtomic.GameOps.localStorage.installDate = result.install_date;
- com.funtomic.GameOps.experimentId = result.experiment_id;
- com.funtomic.GameOps.localStorage.experimentId = com.funtomic.GameOps.experimentId;
- com.funtomic.GameOps.alternativeId = result.alternative_id;
- com.funtomic.GameOps.localStorage.alternativeId = com.funtomic.GameOps.alternativeId;
- if(result.config != null) com.funtomic.GameOps.localStorage.config = result.config;
- com.funtomic.GameOps.gameConfig = com.funtomic.GameOps.localStorage.config;
- com.funtomic.GameOps.localStorage.configMd5 = result.config_md5;
- com.funtomic.GameOps.localStorage.configForVersion = com.funtomic.GameOps.gameVersion;
- com.funtomic.GameOps.localStorage.googlePublicKey = result.google_public_key;
- com.funtomic.GameOps.localStorage.appstoreId = result.appstore_id;
- com.funtomic.GameOps.writeLocalStorage();
- com.funtomic.GameOps.status = com.funtomic.GameOpsStatus.INITIALIZED;
- com.funtomic.GameOps.reportUnsentEvents();
- }
- };
- com.funtomic.GameOps.afterInit = function() {
- com.funtomic.GameOpsLogger.debug(["Executing " + com.funtomic.GameOps.deferredReportEvents.length + " deferred event report calls"]);
- var _g = 0;
- var _g1 = com.funtomic.GameOps.deferredReportEvents;
- while(_g < _g1.length) {
- var repotEventFunc = _g1[_g];
- ++_g;
- repotEventFunc();
- }
- com.funtomic.GameOps.deferredReportEvents = new Array();
- };
- com.funtomic.GameOps.getConfig = function() {
- return com.funtomic.GameOps.gameConfig;
- };
- com.funtomic.GameOps.getEventsStaticParams = function(events) {
- return { domain : com.funtomic.GameOps.domain, uuid : com.funtomic.GameOps.userID, platform : com.funtomic.GameOps.platform, install_date : com.funtomic.GameOps.localStorage.installDate, original_version : com.funtomic.GameOps.localStorage.originalVersion, partial_data : com.funtomic.GameOps.localStorage.partialData, events : events};
- };
- com.funtomic.GameOps.reportEvents = function(events) {
- if(com.funtomic.GameOps.status != com.funtomic.GameOpsStatus.INITIALIZED) {
- com.funtomic.GameOps.queueEvents(events);
- return;
- }
- var data = com.funtomic.GameOps.getEventsStaticParams(events);
- var url = com.funtomic.GameOps.apiURLPrefix + com.funtomic.GameOps.apiEventsLocation;
- var request = new haxe.Http(url);
- request.addParameter("data",JSON.stringify(data));
- com.funtomic.GameOpsLogger.verbose(["Posting event to:",url]);
- request.onData = com.funtomic.GameOps.eventReportSucceeded;
- request.onStatus = function(status) {
- com.funtomic.GameOps.onEventReportReturned(status,events);
- };
- request.onError = com.funtomic.GameOps.IOErrorHandler;
- request.request(true);
- com.funtomic.GameOps.sessionEnd();
- };
- com.funtomic.GameOps.onEventReportReturned = function(status,events) {
- switch(status) {
- case 500:
- com.funtomic.GameOps.eventReportFailed();
- break;
- case 0:
- com.funtomic.GameOps.eventReportTimeout(events);
- break;
- }
- };
- com.funtomic.GameOps.eventReportTimeout = function(events) {
- com.funtomic.GameOpsLogger.error(["Report event timeout"]);
- com.funtomic.GameOps.queueEvents(events);
- };
- com.funtomic.GameOps.eventReportFailed = function() {
- com.funtomic.GameOpsLogger.error(["Report event failed"]);
- com.funtomic.GameOps.localStorage.unsentEvents = new Array();
- com.funtomic.GameOps.writeLocalStorage();
- };
- com.funtomic.GameOps.eventReportSucceeded = function(data) {
- com.funtomic.GameOpsLogger.verbose(["Event Posted " + data]);
- com.funtomic.GameOps.reportUnsentEvents();
- };
- com.funtomic.GameOps.reportEvent = function(eventType,params) {
- var _g = com.funtomic.GameOps.status;
- switch(_g[1]) {
- case 1:
- com.funtomic.GameOps.deferredReportEvents.push(function() {
- com.funtomic.GameOps.reportEvent(eventType,params);
- });
- break;
- default:
- var event = com.funtomic.GameOps.prepareEventObject(eventType,params);
- com.funtomic.GameOps.reportEvents([event]);
- }
- };
- com.funtomic.GameOps.prepareEventObject = function(eventType,params) {
- var date = DateTools.format(new Date(),"%Y-%m-%d %H:%M:%S");
- var tmpDate = Std.string(new Date());
- var timezone;
- var pos = tmpDate.indexOf("+");
- timezone = HxOverrides.substr(tmpDate,pos,5);
- date += timezone;
- var event = { event_type : eventType, date : date};
- if(com.funtomic.GameOps.experimentId != null) event.experiment_id = com.funtomic.GameOps.experimentId;
- if(com.funtomic.GameOps.alternativeId != null) event.alternative_id = com.funtomic.GameOps.alternativeId;
- event.elapsed_play_time = Math.round(com.funtomic.GameOps.elapsedPlayTimeAtInit + com.funtomic.GameOps.sampleTimer("session") / 1000);
- event.session_id = com.funtomic.GameOps.sessionId;
- event.game_ops_version = com.funtomic.GameOps.gameOpsVersion;
- event.game_version = com.funtomic.GameOps.gameVersion;
- if(com.funtomic.GameOps.url != null) event.url = com.funtomic.GameOps.url;
- if(com.funtomic.GameOps.firstSession) event.first_session = true;
- if(com.funtomic.GameOps.fbId != null) event.fb_id = com.funtomic.GameOps.fbId;
- event = com.funtomic.GameOps.extendObject(event,params);
- return event;
- };
- com.funtomic.GameOps.queueEvents = function(events) {
- com.funtomic.GameOpsLogger.verbose(["Queuing events:" + JSON.stringify(events)]);
- if(com.funtomic.GameOps.localStorage.unsentEvents == null) com.funtomic.GameOps.localStorage.unsentEvents = new Array();
- var _g = 0;
- while(_g < events.length) {
- var event = events[_g];
- ++_g;
- com.funtomic.GameOps.localStorage.unsentEvents.push(event);
- }
- if(com.funtomic.GameOps.localStorage.unsentEvents.length > com.funtomic.GameOps.MAX_SAVED_UNSENT_EVENTS) {
- com.funtomic.GameOps.localStorage.unsentEvents = new Array();
- com.funtomic.GameOps.localStorage.partialData = true;
- }
- com.funtomic.GameOps.writeLocalStorage();
- com.funtomic.GameOpsLogger.verbose(["There are now " + Std.string(com.funtomic.GameOps.localStorage.unsentEvents.length) + " unsent events."]);
- };
- com.funtomic.GameOps.reportUnsentEvents = function() {
- if(com.funtomic.GameOps.localStorage.unsentEvents != null && com.funtomic.GameOps.localStorage.unsentEvents.length > 0) {
- com.funtomic.GameOpsLogger.verbose(["reporting unsent events",com.funtomic.GameOps.localStorage.unsentEvents.length]);
- com.funtomic.GameOps.reportEvents(com.funtomic.GameOps.localStorage.unsentEvents);
- com.funtomic.GameOps.localStorage.unsentEvents = new Array();
- com.funtomic.GameOps.writeLocalStorage();
- }
- };
- com.funtomic.GameOps.levelStarted = function(levelNumber,extraParams,sceneEntityForFps) {
- com.funtomic.GameOps.startTimer("level_" + levelNumber);
- if(sceneEntityForFps != null) com.funtomic.GameOpsFpsDetector.start(sceneEntityForFps);
- com.funtomic.GameOps.levelsNumbers.push(levelNumber);
- if(com.funtomic.GameOps.gameStateGameOpsData.progress == null) com.funtomic.GameOps.gameStateGameOpsData.progress = { };
- if(com.funtomic.GameOps.gameStateGameOpsData.progress.top_level == null || com.funtomic.GameOps.gameStateGameOpsData.progress.top_level < levelNumber) {
- com.funtomic.GameOps.gameStateGameOpsData.progress.top_level = levelNumber;
- com.funtomic.GameOps.writeGameStateLocalStorage();
- }
- var data = { level : levelNumber};
- if(extraParams != null) data = com.funtomic.GameOps.extendObject(extraParams,data);
- com.funtomic.GameOps.reportEvent("level_started",data);
- };
- com.funtomic.GameOps.levelEnded = function(levelNumber,won,extraParams) {
- var levelDuration = com.funtomic.GameOps.stopTimer("level_" + levelNumber);
- if(levelDuration == -1) {
- com.funtomic.GameOpsLogger.error(["levelEnded was called without a matching startLevel!"]);
- return;
- }
- if(won) com.funtomic.GameOps.levelsWon++;
- var data = { level : levelNumber, level_duration : Math.round(levelDuration / 1000), won : won == null?"null":"" + won};
- var averageFps = com.funtomic.GameOpsFpsDetector.stop();
- if(averageFps != -1) data.average_fps = averageFps;
- if(com.funtomic.GameOps.movesDuration.length > 0) {
- data.moves_duration = com.funtomic.GameOps.movesDuration.join(",");
- com.funtomic.GameOps.movesDuration = new Array();
- }
- if(extraParams != null) data = com.funtomic.GameOps.extendObject(extraParams,data);
- com.funtomic.GameOps.reportEvent("level_ended",data);
- if(won && levelNumber == com.funtomic.GameOps.lastLevelNumber) com.funtomic.GameOps.reportEvent("game_completion");
- };
- com.funtomic.GameOps.sessionEnd = function(sendInNextPlay,extraParams) {
- if(sendInNextPlay == null) sendInNextPlay = true;
- var sessionDuration = com.funtomic.GameOps.sampleTimer("session");
- if(sessionDuration == -1) {
- com.funtomic.GameOpsLogger.error(["sessionEnd was called without a matching sessionStart!"]);
- return;
- }
- var lnu = new Array();
- var _g = 0;
- var _g1 = com.funtomic.GameOps.levelsNumbers;
- while(_g < _g1.length) {
- var lvlNum = _g1[_g];
- ++_g;
- if(HxOverrides.indexOf(lnu,lvlNum,0) == -1) lnu.push(lvlNum);
- }
- var data = { session_duration : Math.round(sessionDuration / 1000), levels_numbers : lnu.toString(), won_percent : 0, levels_count : com.funtomic.GameOps.levelsNumbers.length, levels_won : com.funtomic.GameOps.levelsWon, sent_by : "application"};
- if(extraParams != null) data = com.funtomic.GameOps.extendObject(extraParams,data);
- if(data.levels_count > 0) data.won_percent = com.funtomic.GameOps.levelsWon / com.funtomic.GameOps.levelsNumbers.length * 100;
- com.funtomic.GameOps.updateTotalElapsedTime(sessionDuration / 1000);
- var event = com.funtomic.GameOps.prepareEventObject("session_end",data);
- if(sendInNextPlay) {
- com.funtomic.GameOpsLogger.verbose(["writing session end event to local storage"]);
- com.funtomic.GameOps.storageSet("FuntomicGameOps-SessionEndEvent",event);
- } else com.funtomic.GameOps.reportEvents([event]);
- };
- com.funtomic.GameOps.setLastLevelNumber = function(pLastLevelNumber) {
- com.funtomic.GameOps.lastLevelNumber = pLastLevelNumber;
- };
- com.funtomic.GameOps.updateTotalElapsedTime = function(sessionDuration) {
- com.funtomic.GameOps.storageSet("FuntomicGameOps-ElapsedGameTime",com.funtomic.GameOps.elapsedPlayTimeAtInit + sessionDuration);
- };
- com.funtomic.GameOps.startTimer = function(key) {
- com.funtomic.GameOpsLogger.verbose(["Timer '" + key + "' started."]);
- Reflect.setField(com.funtomic.GameOps.timers,key,[com.funtomic.GameOps.getTimestamp(),0.0]);
- };
- com.funtomic.GameOps.sampleTimer = function(key,remove) {
- if(remove == null) remove = false;
- if(Reflect.field(com.funtomic.GameOps.timers,key) == null) return -1;
- var elapsed = Reflect.field(com.funtomic.GameOps.timers,key)[1];
- if(remove) Reflect.deleteField(com.funtomic.GameOps.timers,key);
- com.funtomic.GameOpsLogger.verbose(["Timer '" + key + "' sampled. Current elapsed time is " + elapsed]);
- return elapsed;
- };
- com.funtomic.GameOps.stopTimer = function(key) {
- com.funtomic.GameOpsLogger.verbose(["Timer '" + key + "' stopped"]);
- return com.funtomic.GameOps.sampleTimer(key,true);
- };
- com.funtomic.GameOps.startUpdateTimers = function() {
- if(com.funtomic.GameOps.setFlag("UpdateTimers")) {
- var updateTimers = new haxe.Timer(5000);
- updateTimers.run = function() {
- var _g = 0;
- var _g1 = Reflect.fields(com.funtomic.GameOps.timers);
- while(_g < _g1.length) {
- var key = _g1[_g];
- ++_g;
- var toAdd = com.funtomic.GameOps.getTimestamp() - Reflect.field(com.funtomic.GameOps.timers,key)[0];
- if(toAdd > 5000) toAdd = 5000;
- Reflect.field(com.funtomic.GameOps.timers,key)[1] += toAdd;
- }
- };
- }
- };
- com.funtomic.GameOps.getTimestamp = function() {
- return new Date().getTime();
- };
- com.funtomic.GameOps.extendObject = function(obj1,obj2) {
- var _g = 0;
- var _g1 = Reflect.fields(obj2);
- while(_g < _g1.length) {
- var k = _g1[_g];
- ++_g;
- var value = Reflect.field(obj2,k);
- var key;
- if(k == null) key = "null"; else key = "" + k;
- obj1[key] = value;
- }
- return obj1;
- };
- com.funtomic.GameOps.generateRandomString = function(strlen) {
- var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- var num_chars = chars.length - 1;
- var randomChar = "";
- var _g = 0;
- while(_g < strlen) {
- var i = _g++;
- randomChar += chars.charAt(Math.floor(Math.random() * num_chars));
- }
- return randomChar;
- };
- com.funtomic.GameOps.storageSet = function(key,value) {
- return flambe.System.storage.set(com.funtomic.GameOps.domain + key,value);
- };
- com.funtomic.GameOps.storageGet = function(key,defaultValue) {
- return flambe.System.storage.get(com.funtomic.GameOps.domain + key,defaultValue);
- };
- com.funtomic.GameOps.storageRemove = function(key) {
- return flambe.System.storage.remove(com.funtomic.GameOps.domain + key);
- };
- com.funtomic.GameOps.writeLocalStorage = function() {
- com.funtomic.GameOps.storageSet("FuntomicGameOps",com.funtomic.GameOps.localStorage);
- };
- com.funtomic.GameOps.writeGameStateLocalStorage = function() {
- com.funtomic.GameOps.storageSet("FuntomicGameOps-GameState",com.funtomic.GameOps.gameStateGameOpsData);
- };
- com.funtomic.GameOps.readLocalStorage = function() {
- com.funtomic.GameOps.localStorage = com.funtomic.GameOps.storageGet("FuntomicGameOps",{ });
- };
- com.funtomic.GameOps.readGameStateLocalStorage = function() {
- com.funtomic.GameOps.gameStateGameOpsData = com.funtomic.GameOps.storageGet("FuntomicGameOps-GameState",{ });
- };
- com.funtomic.GameOps.setFlag = function(name) {
- if(Reflect.field(com.funtomic.GameOps.flags,name) == true) {
- com.funtomic.GameOpsLogger.debug([name + " is already running."]);
- return false;
- } else {
- com.funtomic.GameOps.flags[name] = true;
- return true;
- }
- };
- com.funtomic.GameOps.unsetFlag = function(name) {
- Reflect.deleteField(com.funtomic.GameOps.flags,name);
- };
- var flambe = {};
- flambe.debug = {};
- flambe.debug.FpsDisplay = function() {
- this._fpsFrames = 0;
- this._fpsTime = 0;
- };
- $hxClasses["flambe.debug.FpsDisplay"] = flambe.debug.FpsDisplay;
- flambe.debug.FpsDisplay.__name__ = ["flambe","debug","FpsDisplay"];
- flambe.debug.FpsDisplay.prototype = {
- reset: function() {
- }
- ,dispose: function() {
- }
- ,onUpdate: function(dt) {
- }
- ,__class__: flambe.debug.FpsDisplay
- };
- com.funtomic.GameOpsFpsDetector = function() {
- flambe.debug.FpsDisplay.call(this);
- this._isCounting = false;
- };
- $hxClasses["com.funtomic.GameOpsFpsDetector"] = com.funtomic.GameOpsFpsDetector;
- com.funtomic.GameOpsFpsDetector.__name__ = ["com","funtomic","GameOpsFpsDetector"];
- com.funtomic.GameOpsFpsDetector._instance = null;
- com.funtomic.GameOpsFpsDetector.start = function(sceneEntity) {
- sceneEntity.addChild(new flambe.Entity().add(com.funtomic.GameOpsFpsDetector._instance = new com.funtomic.GameOpsFpsDetector()));
- com.funtomic.GameOpsFpsDetector._instance.statrCount();
- };
- com.funtomic.GameOpsFpsDetector.stop = function() {
- if(com.funtomic.GameOpsFpsDetector._instance == null) return -1;
- return com.funtomic.GameOpsFpsDetector._instance.stopCount();
- };
- com.funtomic.GameOpsFpsDetector.__super__ = flambe.debug.FpsDisplay;
- com.funtomic.GameOpsFpsDetector.prototype = $extend(flambe.debug.FpsDisplay.prototype,{
- onUpdate: function(dt) {
- if(!this._isCounting) return;
- ++this._fpsFrames;
- this._fpsTime += dt;
- if(this._fpsTime > 1) {
- this._fpsResults.push(this._fpsFrames / this._fpsTime);
- this.reset();
- }
- }
- ,statrCount: function() {
- this.reset();
- this._fpsResults = new Array();
- this._isCounting = true;
- }
- ,stopCount: function() {
- if(!this._isCounting || this._fpsResults.length == 0) return -1;
- this._isCounting = false;
- var sum = 0;
- var _g = 0;
- var _g1 = this._fpsResults;
- while(_g < _g1.length) {
- var fps = _g1[_g];
- ++_g;
- sum += fps;
- }
- com.funtomic.GameOpsFpsDetector._instance.dispose();
- return (sum / this._fpsResults.length * 100 | 0) / 100;
- }
- ,__class__: com.funtomic.GameOpsFpsDetector
- });
- com.funtomic.GameOpsLogger = function() { };
- $hxClasses["com.funtomic.GameOpsLogger"] = com.funtomic.GameOpsLogger;
- com.funtomic.GameOpsLogger.__name__ = ["com","funtomic","GameOpsLogger"];
- com.funtomic.GameOpsLogger.verbose = function(params) {
- com.funtomic.GameOpsLogger.log(2,params.join(" "));
- };
- com.funtomic.GameOpsLogger.debug = function(params) {
- com.funtomic.GameOpsLogger.log(1,params.join(" "));
- };
- com.funtomic.GameOpsLogger.error = function(params) {
- com.funtomic.GameOpsLogger.log(0,"ERROR - " + params.join(" "));
- null;
- };
- com.funtomic.GameOpsLogger.log = function(logLevel,message) {
- if(logLevel <= com.funtomic.GameOpsLogger.logLevel) {
- var now = new Date();
- var datetimeString = now.getDay() + "." + now.getMonth() + "." + now.getFullYear() + " " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
- null;
- }
- };
- com.funtomic.KiziWidget = function() { };
- $hxClasses["com.funtomic.KiziWidget"] = com.funtomic.KiziWidget;
- com.funtomic.KiziWidget.__name__ = ["com","funtomic","KiziWidget"];
- com.funtomic.KiziWidget.levelStarted = function() {
- try {
- HTML5API_levelStarted();
- } catch( e ) {
- }
- };
- com.funtomic.KiziWidget.levelEnded = function() {
- try {
- HTML5API_levelEnded();
- } catch( e ) {
- }
- };
- com.funtomic.KiziWidget.preloaderStarted = function() {
- try {
- HTML5API_preloaderStarted();
- } catch( e ) {
- }
- };
- com.funtomic.KiziWidget.preloaderEnded = function() {
- try {
- HTML5API_preloaderEnded();
- } catch( e ) {
- }
- };
- com.funtomic.KiziWidget.getUserId = function() {
- try {
- return HTML5API_getUserId();
- } catch( e ) {
- }
- return null;
- };
- com.funtomic.KiziWidget.isAdPlaying = function() {
- try {
- return HTML5API_isAdPlaying();
- } catch( e ) {
- }
- return false;
- };
- com.funtomic.KiziWidget.onAdStart = function(func) {
- try {
- HTML5API_onAdStart(func);
- } catch( e ) {
- }
- };
- com.funtomic.KiziWidget.onAdComplete = function(func) {
- try {
- HTML5API_onAdComplete(func);
- } catch( e ) {
- }
- };
- com.funtomic.KiziWidget.showMidroll = function() {
- try {
- return HTML5API_showMidroll();
- } catch( e ) {
- }
- return false;
- };
- com.funtomic.KiziWidget.setWidgetState = function(params) {
- try {
- HTML5API_setWidgetState(params);
- } catch( e ) {
- }
- };
- flambe.Disposer = function() { };
- $hxClasses["flambe.Disposer"] = flambe.Disposer;
- flambe.Disposer.__name__ = ["flambe","Disposer"];
- flambe.Entity = function() {
- };
- $hxClasses["flambe.Entity"] = flambe.Entity;
- flambe.Entity.__name__ = ["flambe","Entity"];
- flambe.Entity.prototype = {
- addChild: function(something) {
- return null;
- }
- ,add: function(something) {
- return null;
- }
- ,__class__: flambe.Entity
- };
- flambe.External = function() {
- };
- $hxClasses["flambe.External"] = flambe.External;
- flambe.External.__name__ = ["flambe","External"];
- flambe.External.prototype = {
- call: function(name,params) {
- if(params == null) params = [];
- var object = window;
- var method = object;
- var _g = 0;
- var _g1 = name.split(".");
- while(_g < _g1.length) {
- var fieldName = _g1[_g];
- ++_g;
- object = method;
- method = Reflect.field(object,fieldName);
- }
- return method.apply(object,params);
- }
- ,__class__: flambe.External
- };
- flambe.Storage = function() {
- };
- $hxClasses["flambe.Storage"] = flambe.Storage;
- flambe.Storage.__name__ = ["flambe","Storage"];
- flambe.Storage._adapter = null;
- flambe.Storage._domain = null;
- flambe.Storage.setStorageAdapter = function(domain,adapter) {
- flambe.Storage._domain = domain;
- flambe.Storage._adapter = adapter;
- };
- flambe.Storage.prototype = {
- get: function(key,defaultValue) {
- if(key.indexOf(flambe.Storage._domain) == 0) key = HxOverrides.substr(key,flambe.Storage._domain.length,null);
- if(flambe.Storage._adapter.getValue(key) == null) {
- flambe.Storage._adapter.setValue(key,defaultValue);
- return defaultValue;
- }
- return flambe.Storage._adapter.getValue(key);
- }
- ,set: function(key,value) {
- if(key.indexOf(flambe.Storage._domain) == 0) key = HxOverrides.substr(key,flambe.Storage._domain.length,null);
- flambe.Storage._adapter.setValue(key,value);
- return true;
- }
- ,remove: function(key) {
- flambe.Storage._adapter.removeValue(key);
- }
- ,__class__: flambe.Storage
- };
- flambe.System = function() { };
- $hxClasses["flambe.System"] = flambe.System;
- flambe.System.__name__ = ["flambe","System"];
- haxe.StackItem = $hxClasses["haxe.StackItem"] = { __ename__ : ["haxe","StackItem"], __constructs__ : ["CFunction","Module","FilePos","Method","LocalFunction"] };
- haxe.StackItem.CFunction = ["CFunction",0];
- haxe.StackItem.CFunction.toString = $estr;
- haxe.StackItem.CFunction.__enum__ = haxe.StackItem;
- haxe.StackItem.Module = function(m) { var $x = ["Module",1,m]; $x.__enum__ = haxe.StackItem; $x.toString = $estr; return $x; };
- haxe.StackItem.FilePos = function(s,file,line) { var $x = ["FilePos",2,s,file,line]; $x.__enum__ = haxe.StackItem; $x.toString = $estr; return $x; };
- haxe.StackItem.Method = function(classname,method) { var $x = ["Method",3,classname,method]; $x.__enum__ = haxe.StackItem; $x.toString = $estr; return $x; };
- haxe.StackItem.LocalFunction = function(v) { var $x = ["LocalFunction",4,v]; $x.__enum__ = haxe.StackItem; $x.toString = $estr; return $x; };
- haxe.CallStack = function() { };
- $hxClasses["haxe.CallStack"] = haxe.CallStack;
- haxe.CallStack.__name__ = ["haxe","CallStack"];
- haxe.CallStack.callStack = function() {
- var oldValue = Error.prepareStackTrace;
- Error.prepareStackTrace = function(error,callsites) {
- var stack = [];
- var _g = 0;
- while(_g < callsites.length) {
- var site = callsites[_g];
- ++_g;
- var method = null;
- var fullName = site.getFunctionName();
- if(fullName != null) {
- var idx = fullName.lastIndexOf(".");
- if(idx >= 0) {
- var className = HxOverrides.substr(fullName,0,idx);
- var methodName = HxOverrides.substr(fullName,idx + 1,null);
- method = haxe.StackItem.Method(className,methodName);
- }
- }
- stack.push(haxe.StackItem.FilePos(method,site.getFileName(),site.getLineNumber()));
- }
- return stack;
- };
- var a = haxe.CallStack.makeStack(new Error().stack);
- a.shift();
- Error.prepareStackTrace = oldValue;
- return a;
- };
- haxe.CallStack.exceptionStack = function() {
- return [];
- };
- haxe.CallStack.toString = function(stack) {
- var b = new StringBuf();
- var _g = 0;
- while(_g < stack.length) {
- var s = stack[_g];
- ++_g;
- b.b += "\nCalled from ";
- haxe.CallStack.itemToString(b,s);
- }
- return b.b;
- };
- haxe.CallStack.itemToString = function(b,s) {
- switch(s[1]) {
- case 0:
- b.b += "a C function";
- break;
- case 1:
- var m = s[2];
- b.b += "module ";
- if(m == null) b.b += "null"; else b.b += "" + m;
- break;
- case 2:
- var line = s[4];
- var file = s[3];
- var s1 = s[2];
- if(s1 != null) {
- haxe.CallStack.itemToString(b,s1);
- b.b += " (";
- }
- if(file == null) b.b += "null"; else b.b += "" + file;
- b.b += " line ";
- if(line == null) b.b += "null"; else b.b += "" + line;
- if(s1 != null) b.b += ")";
- break;
- case 3:
- var meth = s[3];
- var cname = s[2];
- if(cname == null) b.b += "null"; else b.b += "" + cname;
- b.b += ".";
- if(meth == null) b.b += "null"; else b.b += "" + meth;
- break;
- case 4:
- var n = s[2];
- b.b += "local function #";
- if(n == null) b.b += "null"; else b.b += "" + n;
- break;
- }
- };
- haxe.CallStack.makeStack = function(s) {
- if(typeof(s) == "string") {
- var stack = s.split("\n");
- var m = [];
- var _g = 0;
- while(_g < stack.length) {
- var line = stack[_g];
- ++_g;
- m.push(haxe.StackItem.Module(line));
- }
- return m;
- } else return s;
- };
- haxe.Http = function(url) {
- this.url = url;
- this.headers = new List();
- this.params = new List();
- this.async = true;
- };
- $hxClasses["haxe.Http"] = haxe.Http;
- haxe.Http.__name__ = ["haxe","Http"];
- haxe.Http.prototype = {
- setParameter: function(param,value) {
- this.params = Lambda.filter(this.params,function(p) {
- return p.param != param;
- });
- this.params.push({ param : param, value : value});
- return this;
- }
- ,addParameter: function(param,value) {
- this.params.push({ param : param, value : value});
- return this;
- }
- ,request: function(post) {
- var me = this;
- me.responseData = null;
- var r = this.req = js.Browser.createXMLHttpRequest();
- var onreadystatechange = function(_) {
- if(r.readyState != 4) return;
- var s;
- try {
- s = r.status;
- } catch( e ) {
- s = null;
- }
- if(s == undefined) s = null;
- if(s != null) me.onStatus(s);
- if(s != null && s >= 200 && s < 400) {
- me.req = null;
- me.onData(me.responseData = r.responseText);
- } else if(s == null) {
- me.req = null;
- me.onError("Failed to connect or resolve host");
- } else switch(s) {
- case 12029:
- me.req = null;
- me.onError("Failed to connect to host");
- break;
- case 12007:
- me.req = null;
- me.onError("Unknown host");
- break;
- default:
- me.req = null;
- me.responseData = r.responseText;
- me.onError("Http Error #" + r.status);
- }
- };
- if(this.async) r.onreadystatechange = onreadystatechange;
- var uri = this.postData;
- if(uri != null) post = true; else {
- var $it0 = this.params.iterator();
- while( $it0.hasNext() ) {
- var p = $it0.next();
- if(uri == null) uri = ""; else uri += "&";
- uri += encodeURIComponent(p.param) + "=" + encodeURIComponent(p.value);
- }
- }
- try {
- if(post) r.open("POST",this.url,this.async); else if(uri != null) {
- var question = this.url.split("?").length <= 1;
- r.open("GET",this.url + (question?"?":"&") + uri,this.async);
- uri = null;
- } else r.open("GET",this.url,this.async);
- } catch( e1 ) {
- me.req = null;
- this.onError(e1.toString());
- return;
- }
- if(!Lambda.exists(this.headers,function(h) {
- return h.header == "Content-Type";
- }) && post && this.postData == null) r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- var $it1 = this.headers.iterator();
- while( $it1.hasNext() ) {
- var h1 = $it1.next();
- r.setRequestHeader(h1.header,h1.value);
- }
- r.send(uri);
- if(!this.async) onreadystatechange(null);
- }
- ,onData: function(data) {
- }
- ,onError: function(msg) {
- }
- ,onStatus: function(status) {
- }
- ,__class__: haxe.Http
- };
- haxe.Log = function() { };
- $hxClasses["haxe.Log"] = haxe.Log;
- haxe.Log.__name__ = ["haxe","Log"];
- haxe.Log.trace = function(v,infos) {
- js.Boot.__trace(v,infos);
- };
- haxe.Resource = function() { };
- $hxClasses["haxe.Resource"] = haxe.Resource;
- haxe.Resource.__name__ = ["haxe","Resource"];
- haxe.Resource.content = null;
- haxe.Resource.getString = function(name) {
- var _g = 0;
- var _g1 = haxe.Resource.content;
- while(_g < _g1.length) {
- var x = _g1[_g];
- ++_g;
- if(x.name == name) {
- if(x.str != null) return x.str;
- var b = haxe.crypto.Base64.decode(x.data);
- return b.toString();
- }
- }
- return null;
- };
- haxe.Resource.getBytes = function(name) {
- var _g = 0;
- var _g1 = haxe.Resource.content;
- while(_g < _g1.length) {
- var x = _g1[_g];
- ++_g;
- if(x.name == name) {
- if(x.str != null) return haxe.io.Bytes.ofString(x.str);
- return haxe.crypto.Base64.decode(x.data);
- }
- }
- return null;
- };
- haxe.Serializer = function() {
- this.buf = new StringBuf();
- this.cache = new Array();
- this.useCache = haxe.Serializer.USE_CACHE;
- this.useEnumIndex = haxe.Serializer.USE_ENUM_INDEX;
- this.shash = new haxe.ds.StringMap();
- this.scount = 0;
- };
- $hxClasses["haxe.Serializer"] = haxe.Serializer;
- haxe.Serializer.__name__ = ["haxe","Serializer"];
- haxe.Serializer.run = function(v) {
- var s = new haxe.Serializer();
- s.serialize(v);
- return s.toString();
- };
- haxe.Serializer.prototype = {
- toString: function() {
- return this.buf.b;
- }
- ,serializeString: function(s) {
- var x = this.shash.get(s);
- if(x != null) {
- this.buf.b += "R";
- if(x == null) this.buf.b += "null"; else this.buf.b += "" + x;
- return;
- }
- this.shash.set(s,this.scount++);
- this.buf.b += "y";
- s = encodeURIComponent(s);
- if(s.length == null) this.buf.b += "null"; else this.buf.b += "" + s.length;
- this.buf.b += ":";
- if(s == null) this.buf.b += "null"; else this.buf.b += "" + s;
- }
- ,serializeRef: function(v) {
- var vt = typeof(v);
- var _g1 = 0;
- var _g = this.cache.length;
- while(_g1 < _g) {
- var i = _g1++;
- var ci = this.cache[i];
- if(typeof(ci) == vt && ci == v) {
- this.buf.b += "r";
- if(i == null) this.buf.b += "null"; else this.buf.b += "" + i;
- return true;
- }
- }
- this.cache.push(v);
- return false;
- }
- ,serializeFields: function(v) {
- var _g = 0;
- var _g1 = Reflect.fields(v);
- while(_g < _g1.length) {
- var f = _g1[_g];
- ++_g;
- this.serializeString(f);
- this.serialize(Reflect.field(v,f));
- }
- this.buf.b += "g";
- }
- ,serialize: function(v) {
- {
- var _g = Type["typeof"](v);
- switch(_g[1]) {
- case 0:
- this.buf.b += "n";
- break;
- case 1:
- var v1 = v;
- if(v1 == 0) {
- this.buf.b += "z";
- return;
- }
- this.buf.b += "i";
- if(v1 == null) this.buf.b += "null"; else this.buf.b += "" + v1;
- break;
- case 2:
- var v2 = v;
- if(Math.isNaN(v2)) this.buf.b += "k"; else if(!Math.isFinite(v2)) if(v2 < 0) this.buf.b += "m"; else this.buf.b += "p"; else {
- this.buf.b += "d";
- if(v2 == null) this.buf.b += "null"; else this.buf.b += "" + v2;
- }
- break;
- case 3:
- if(v) this.buf.b += "t"; else this.buf.b += "f";
- break;
- case 6:
- var c = _g[2];
- if(c == String) {
- this.serializeString(v);
- return;
- }
- if(this.useCache && this.serializeRef(v)) return;
- switch(c) {
- case Array:
- var ucount = 0;
- this.buf.b += "a";
- var l = v.length;
- var _g1 = 0;
- while(_g1 < l) {
- var i = _g1++;
- if(v[i] == null) ucount++; else {
- if(ucount > 0) {
- if(ucount == 1) this.buf.b += "n"; else {
- this.buf.b += "u";
- if(ucount == null) this.buf.b += "null"; else this.buf.b += "" + ucount;
- }
- ucount = 0;
- }
- this.serialize(v[i]);
- }
- }
- if(ucount > 0) {
- if(ucount == 1) this.buf.b += "n"; else {
- this.buf.b += "u";
- if(ucount == null) this.buf.b += "null"; else this.buf.b += "" + ucount;
- }
- }
- this.buf.b += "h";
- break;
- case List:
- this.buf.b += "l";
- var v3 = v;
- var $it0 = v3.iterator();
- while( $it0.hasNext() ) {
- var i1 = $it0.next();
- this.serialize(i1);
- }
- this.buf.b += "h";
- break;
- case Date:
- var d = v;
- this.buf.b += "v";
- this.buf.add(HxOverrides.dateStr(d));
- break;
- case haxe.ds.StringMap:
- this.buf.b += "b";
- var v4 = v;
- var $it1 = v4.keys();
- while( $it1.hasNext() ) {
- var k = $it1.next();
- this.serializeString(k);
- this.serialize(v4.get(k));
- }
- this.buf.b += "h";
- break;
- case haxe.ds.IntMap:
- this.buf.b += "q";
- var v5 = v;
- var $it2 = v5.keys();
- while( $it2.hasNext() ) {
- var k1 = $it2.next();
- this.buf.b += ":";
- if(k1 == null) this.buf.b += "null"; else this.buf.b += "" + k1;
- this.serialize(v5.get(k1));
- }
- this.buf.b += "h";
- break;
- case haxe.ds.ObjectMap:
- this.buf.b += "M";
- var v6 = v;
- var $it3 = v6.keys();
- while( $it3.hasNext() ) {
- var k2 = $it3.next();
- var id = Reflect.field(k2,"__id__");
- Reflect.deleteField(k2,"__id__");
- this.serialize(k2);
- k2.__id__ = id;
- this.serialize(v6.h[k2.__id__]);
- }
- this.buf.b += "h";
- break;
- case haxe.io.Bytes:
- var v7 = v;
- var i2 = 0;
- var max = v7.length - 2;
- var charsBuf = new StringBuf();
- var b64 = haxe.Serializer.BASE64;
- while(i2 < max) {
- var b1 = v7.get(i2++);
- var b2 = v7.get(i2++);
- var b3 = v7.get(i2++);
- charsBuf.add(b64.charAt(b1 >> 2));
- charsBuf.add(b64.charAt((b1 << 4 | b2 >> 4) & 63));
- charsBuf.add(b64.charAt((b2 << 2 | b3 >> 6) & 63));
- charsBuf.add(b64.charAt(b3 & 63));
- }
- if(i2 == max) {
- var b11 = v7.get(i2++);
- var b21 = v7.get(i2++);
- charsBuf.add(b64.charAt(b11 >> 2));
- charsBuf.add(b64.charAt((b11 << 4 | b21 >> 4) & 63));
- charsBuf.add(b64.charAt(b21 << 2 & 63));
- } else if(i2 == max + 1) {
- var b12 = v7.get(i2++);
- charsBuf.add(b64.charAt(b12 >> 2));
- charsBuf.add(b64.charAt(b12 << 4 & 63));
- }
- var chars = charsBuf.b;
- this.buf.b += "s";
- if(chars.length == null) this.buf.b += "null"; else this.buf.b += "" + chars.length;
- this.buf.b += ":";
- if(chars == null) this.buf.b += "null"; else this.buf.b += "" + chars;
- break;
- default:
- if(this.useCache) this.cache.pop();
- if(v.hxSerialize != null) {
- this.buf.b += "C";
- this.serializeString(Type.getClassName(c));
- if(this.useCache) this.cache.push(v);
- v.hxSerialize(this);
- this.buf.b += "g";
- } else {
- this.buf.b += "c";
- this.serializeString(Type.getClassName(c));
- if(this.useCache) this.cache.push(v);
- this.serializeFields(v);
- }
- }
- break;
- case 4:
- if(this.useCache && this.serializeRef(v)) return;
- this.buf.b += "o";
- this.serializeFields(v);
- break;
- case 7:
- var e = _g[2];
- if(this.useCache) {
- if(this.serializeRef(v)) return;
- this.cache.pop();
- }
- if(this.useEnumIndex) this.buf.b += "j"; else this.buf.b += "w";
- this.serializeString(Type.getEnumName(e));
- if(this.useEnumIndex) {
- this.buf.b += ":";
- this.buf.b += Std.string(v[1]);
- } else this.serializeString(v[0]);
- this.buf.b += ":";
- var l1 = v.length;
- this.buf.b += Std.string(l1 - 2);
- var _g11 = 2;
- while(_g11 < l1) {
- var i3 = _g11++;
- this.serialize(v[i3]);
- }
- if(this.useCache) this.cache.push(v);
- break;
- case 5:
- throw "Cannot serialize function";
- break;
- default:
- throw "Cannot serialize " + Std.string(v);
- }
- }
- }
- ,__class__: haxe.Serializer
- };
- haxe.Unserializer = function(buf) {
- this.buf = buf;
- this.length = buf.length;
- this.pos = 0;
- this.scache = new Array();
- this.cache = new Array();
- var r = haxe.Unserializer.DEFAULT_RESOLVER;
- if(r == null) {
- r = Type;
- haxe.Unserializer.DEFAULT_RESOLVER = r;
- }
- this.setResolver(r);
- };
- $hxClasses["haxe.Unserializer"] = haxe.Unserializer;
- haxe.Unserializer.__name__ = ["haxe","Unserializer"];
- haxe.Unserializer.initCodes = function() {
- var codes = new Array();
- var _g1 = 0;
- var _g = haxe.Unserializer.BASE64.length;
- while(_g1 < _g) {
- var i = _g1++;
- codes[haxe.Unserializer.BASE64.charCodeAt(i)] = i;
- }
- return codes;
- };
- haxe.Unserializer.prototype = {
- setResolver: function(r) {
- if(r == null) this.resolver = { resolveClass : function(_) {
- return null;
- }, resolveEnum : function(_1) {
- return null;
- }}; else this.resolver = r;
- }
- ,get: function(p) {
- return this.buf.charCodeAt(p);
- }
- ,readDigits: function() {
- var k = 0;
- var s = false;
- var fpos = this.pos;
- while(true) {
- var c = this.buf.charCodeAt(this.pos);
- if(c != c) break;
- if(c == 45) {
- if(this.pos != fpos) break;
- s = true;
- this.pos++;
- continue;
- }
- if(c < 48 || c > 57) break;
- k = k * 10 + (c - 48);
- this.pos++;
- }
- if(s) k *= -1;
- return k;
- }
- ,unserializeObject: function(o) {
- while(true) {
- if(this.pos >= this.length) throw "Invalid object";
- if(this.buf.charCodeAt(this.pos) == 103) break;
- var k = this.unserialize();
- if(!(typeof(k) == "string")) throw "Invalid object key";
- var v = this.unserialize();
- o[k] = v;
- }
- this.pos++;
- }
- ,unserializeEnum: function(edecl,tag) {
- if(this.get(this.pos++) != 58) throw "Invalid enum format";
- var nargs = this.readDigits();
- if(nargs == 0) return Type.createEnum(edecl,tag);
- var args = new Array();
- while(nargs-- > 0) args.push(this.unserialize());
- return Type.createEnum(edecl,tag,args);
- }
- ,unserialize: function() {
- var _g = this.get(this.pos++);
- switch(_g) {
- case 110:
- return null;
- case 116:
- return true;
- case 102:
- return false;
- case 122:
- return 0;
- case 105:
- return this.readDigits();
- case 100:
- var p1 = this.pos;
- while(true) {
- var c = this.buf.charCodeAt(this.pos);
- if(c >= 43 && c < 58 || c == 101 || c == 69) this.pos++; else break;
- }
- return Std.parseFloat(HxOverrides.substr(this.buf,p1,this.pos - p1));
- case 121:
- var len = this.readDigits();
- if(this.get(this.pos++) != 58 || this.length - this.pos < len) throw "Invalid string length";
- var s = HxOverrides.substr(this.buf,this.pos,len);
- this.pos += len;
- s = decodeURIComponent(s.split("+").join(" "));
- this.scache.push(s);
- return s;
- case 107:
- return Math.NaN;
- case 109:
- return Math.NEGATIVE_INFINITY;
- case 112:
- return Math.POSITIVE_INFINITY;
- case 97:
- var buf = this.buf;
- var a = new Array();
- this.cache.push(a);
- while(true) {
- var c1 = this.buf.charCodeAt(this.pos);
- if(c1 == 104) {
- this.pos++;
- break;
- }
- if(c1 == 117) {
- this.pos++;
- var n = this.readDigits();
- a[a.length + n - 1] = null;
- } else a.push(this.unserialize());
- }
- return a;
- case 111:
- var o = { };
- this.cache.push(o);
- this.unserializeObject(o);
- return o;
- case 114:
- var n1 = this.readDigits();
- if(n1 < 0 || n1 >= this.cache.length) throw "Invalid reference";
- return this.cache[n1];
- case 82:
- var n2 = this.readDigits();
- if(n2 < 0 || n2 >= this.scache.length) throw "Invalid string reference";
- return this.scache[n2];
- case 120:
- throw this.unserialize();
- break;
- case 99:
- var name = this.unserialize();
- var cl = this.resolver.resolveClass(name);
- if(cl == null) throw "Class not found " + name;
- var o1 = Type.createEmptyInstance(cl);
- this.cache.push(o1);
- this.unserializeObject(o1);
- return o1;
- case 119:
- var name1 = this.unserialize();
- var edecl = this.resolver.resolveEnum(name1);
- if(edecl == null) throw "Enum not found " + name1;
- var e = this.unserializeEnum(edecl,this.unserialize());
- this.cache.push(e);
- return e;
- case 106:
- var name2 = this.unserialize();
- var edecl1 = this.resolver.resolveEnum(name2);
- if(edecl1 == null) throw "Enum not found " + name2;
- this.pos++;
- var index = this.readDigits();
- var tag = Type.getEnumConstructs(edecl1)[index];
- if(tag == null) throw "Unknown enum index " + name2 + "@" + index;
- var e1 = this.unserializeEnum(edecl1,tag);
- this.cache.push(e1);
- return e1;
- case 108:
- var l = new List();
- this.cache.push(l);
- var buf1 = this.buf;
- while(this.buf.charCodeAt(this.pos) != 104) l.add(this.unserialize());
- this.pos++;
- return l;
- case 98:
- var h = new haxe.ds.StringMap();
- this.cache.push(h);
- var buf2 = this.buf;
- while(this.buf.charCodeAt(this.pos) != 104) {
- var s1 = this.unserialize();
- h.set(s1,this.unserialize());
- }
- this.pos++;
- return h;
- case 113:
- var h1 = new haxe.ds.IntMap();
- this.cache.push(h1);
- var buf3 = this.buf;
- var c2 = this.get(this.pos++);
- while(c2 == 58) {
- var i = this.readDigits();
- h1.set(i,this.unserialize());
- c2 = this.get(this.pos++);
- }
- if(c2 != 104) throw "Invalid IntMap format";
- return h1;
- case 77:
- var h2 = new haxe.ds.ObjectMap();
- this.cache.push(h2);
- var buf4 = this.buf;
- while(this.buf.charCodeAt(this.pos) != 104) {
- var s2 = this.unserialize();
- h2.set(s2,this.unserialize());
- }
- this.pos++;
- return h2;
- case 118:
- var d;
- var s3 = HxOverrides.substr(this.buf,this.pos,19);
- d = HxOverrides.strDate(s3);
- this.cache.push(d);
- this.pos += 19;
- return d;
- case 115:
- var len1 = this.readDigits();
- var buf5 = this.buf;
- if(this.get(this.pos++) != 58 || this.length - this.pos < len1) throw "Invalid bytes length";
- var codes = haxe.Unserializer.CODES;
- if(codes == null) {
- codes = haxe.Unserializer.initCodes();
- haxe.Unserializer.CODES = codes;
- }
- var i1 = this.pos;
- var rest = len1 & 3;
- var size;
- size = (len1 >> 2) * 3 + (rest >= 2?rest - 1:0);
- var max = i1 + (len1 - rest);
- var bytes = haxe.io.Bytes.alloc(size);
- var bpos = 0;
- while(i1 < max) {
- var c11 = codes[StringTools.fastCodeAt(buf5,i1++)];
- var c21 = codes[StringTools.fastCodeAt(buf5,i1++)];
- bytes.set(bpos++,c11 << 2 | c21 >> 4);
- var c3 = codes[StringTools.fastCodeAt(buf5,i1++)];
- bytes.set(bpos++,c21 << 4 | c3 >> 2);
- var c4 = codes[StringTools.fastCodeAt(buf5,i1++)];
- bytes.set(bpos++,c3 << 6 | c4);
- }
- if(rest >= 2) {
- var c12 = codes[StringTools.fastCodeAt(buf5,i1++)];
- var c22 = codes[StringTools.fastCodeAt(buf5,i1++)];
- bytes.set(bpos++,c12 << 2 | c22 >> 4);
- if(rest == 3) {
- var c31 = codes[StringTools.fastCodeAt(buf5,i1++)];
- bytes.set(bpos++,c22 << 4 | c31 >> 2);
- }
- }
- this.pos += len1;
- this.cache.push(bytes);
- return bytes;
- case 67:
- var name3 = this.unserialize();
- var cl1 = this.resolver.resolveClass(name3);
- if(cl1 == null) throw "Class not found " + name3;
- var o2 = Type.createEmptyInstance(cl1);
- this.cache.push(o2);
- o2.hxUnserialize(this);
- if(this.get(this.pos++) != 103) throw "Invalid custom data";
- return o2;
- default:
- }
- this.pos--;
- throw "Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos;
- }
- ,__class__: haxe.Unserializer
- };
- haxe.io = {};
- haxe.io.Bytes = function(length,b) {
- this.length = length;
- this.b = b;
- };
- $hxClasses["haxe.io.Bytes"] = haxe.io.Bytes;
- haxe.io.Bytes.__name__ = ["haxe","io","Bytes"];
- haxe.io.Bytes.alloc = function(length) {
- var a = new Array();
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- a.push(0);
- }
- return new haxe.io.Bytes(length,a);
- };
- haxe.io.Bytes.ofString = function(s) {
- var a = new Array();
- var i = 0;
- while(i < s.length) {
- var c = StringTools.fastCodeAt(s,i++);
- if(55296 <= c && c <= 56319) c = c - 55232 << 10 | StringTools.fastCodeAt(s,i++) & 1023;
- if(c <= 127) a.push(c); else if(c <= 2047) {
- a.push(192 | c >> 6);
- a.push(128 | c & 63);
- } else if(c <= 65535) {
- a.push(224 | c >> 12);
- a.push(128 | c >> 6 & 63);
- a.push(128 | c & 63);
- } else {
- a.push(240 | c >> 18);
- a.push(128 | c >> 12 & 63);
- a.push(128 | c >> 6 & 63);
- a.push(128 | c & 63);
- }
- }
- return new haxe.io.Bytes(a.length,a);
- };
- haxe.io.Bytes.ofData = function(b) {
- return new haxe.io.Bytes(b.length,b);
- };
- haxe.io.Bytes.prototype = {
- get: function(pos) {
- return this.b[pos];
- }
- ,set: function(pos,v) {
- this.b[pos] = v & 255;
- }
- ,getString: function(pos,len) {
- if(pos < 0 || len < 0 || pos + len > this.length) throw haxe.io.Error.OutsideBounds;
- var s = "";
- var b = this.b;
- var fcc = String.fromCharCode;
- var i = pos;
- var max = pos + len;
- while(i < max) {
- var c = b[i++];
- if(c < 128) {
- if(c == 0) break;
- s += fcc(c);
- } else if(c < 224) s += fcc((c & 63) << 6 | b[i++] & 127); else if(c < 240) {
- var c2 = b[i++];
- s += fcc((c & 31) << 12 | (c2 & 127) << 6 | b[i++] & 127);
- } else {
- var c21 = b[i++];
- var c3 = b[i++];
- var u = (c & 15) << 18 | (c21 & 127) << 12 | (c3 & 127) << 6 | b[i++] & 127;
- s += fcc((u >> 10) + 55232);
- s += fcc(u & 1023 | 56320);
- }
- }
- return s;
- }
- ,toString: function() {
- return this.getString(0,this.length);
- }
- ,__class__: haxe.io.Bytes
- };
- haxe.crypto = {};
- haxe.crypto.Base64 = function() { };
- $hxClasses["haxe.crypto.Base64"] = haxe.crypto.Base64;
- haxe.crypto.Base64.__name__ = ["haxe","crypto","Base64"];
- haxe.crypto.Base64.decode = function(str,complement) {
- if(complement == null) complement = true;
- if(complement) while(HxOverrides.cca(str,str.length - 1) == 61) str = HxOverrides.substr(str,0,-1);
- return new haxe.crypto.BaseCode(haxe.crypto.Base64.BYTES).decodeBytes(haxe.io.Bytes.ofString(str));
- };
- haxe.crypto.BaseCode = function(base) {
- var len = base.length;
- var nbits = 1;
- while(len > 1 << nbits) nbits++;
- if(nbits > 8 || len != 1 << nbits) throw "BaseCode : base length must be a power of two.";
- this.base = base;
- this.nbits = nbits;
- };
- $hxClasses["haxe.crypto.BaseCode"] = haxe.crypto.BaseCode;
- haxe.crypto.BaseCode.__name__ = ["haxe","crypto","BaseCode"];
- haxe.crypto.BaseCode.prototype = {
- encodeBytes: function(b) {
- var nbits = this.nbits;
- var base = this.base;
- var size = b.length * 8 / nbits | 0;
- var out = haxe.io.Bytes.alloc(size + (b.length * 8 % nbits == 0?0:1));
- var buf = 0;
- var curbits = 0;
- var mask = (1 << nbits) - 1;
- var pin = 0;
- var pout = 0;
- while(pout < size) {
- while(curbits < nbits) {
- curbits += 8;
- buf <<= 8;
- buf |= b.get(pin++);
- }
- curbits -= nbits;
- out.set(pout++,base.b[buf >> curbits & mask]);
- }
- if(curbits > 0) out.set(pout++,base.b[buf << nbits - curbits & mask]);
- return out;
- }
- ,initTable: function() {
- var tbl = new Array();
- var _g = 0;
- while(_g < 256) {
- var i = _g++;
- tbl[i] = -1;
- }
- var _g1 = 0;
- var _g2 = this.base.length;
- while(_g1 < _g2) {
- var i1 = _g1++;
- tbl[this.base.b[i1]] = i1;
- }
- this.tbl = tbl;
- }
- ,decodeBytes: function(b) {
- var nbits = this.nbits;
- var base = this.base;
- if(this.tbl == null) this.initTable();
- var tbl = this.tbl;
- var size = b.length * nbits >> 3;
- var out = haxe.io.Bytes.alloc(size);
- var buf = 0;
- var curbits = 0;
- var pin = 0;
- var pout = 0;
- while(pout < size) {
- while(curbits < 8) {
- curbits += nbits;
- buf <<= nbits;
- var i = tbl[b.get(pin++)];
- if(i == -1) throw "BaseCode : invalid encoded char";
- buf |= i;
- }
- curbits -= 8;
- out.set(pout++,buf >> curbits & 255);
- }
- return out;
- }
- ,__class__: haxe.crypto.BaseCode
- };
- haxe.crypto.Sha1 = function() {
- };
- $hxClasses["haxe.crypto.Sha1"] = haxe.crypto.Sha1;
- haxe.crypto.Sha1.__name__ = ["haxe","crypto","Sha1"];
- haxe.crypto.Sha1.encode = function(s) {
- var sh = new haxe.crypto.Sha1();
- var h = sh.doEncode(haxe.crypto.Sha1.str2blks(s));
- return sh.hex(h);
- };
- haxe.crypto.Sha1.str2blks = function(s) {
- var nblk = (s.length + 8 >> 6) + 1;
- var blks = new Array();
- var _g1 = 0;
- var _g = nblk * 16;
- while(_g1 < _g) {
- var i = _g1++;
- blks[i] = 0;
- }
- var _g11 = 0;
- var _g2 = s.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- var p = i1 >> 2;
- blks[p] |= HxOverrides.cca(s,i1) << 24 - ((i1 & 3) << 3);
- }
- var i2 = s.length;
- var p1 = i2 >> 2;
- blks[p1] |= 128 << 24 - ((i2 & 3) << 3);
- blks[nblk * 16 - 1] = s.length * 8;
- return blks;
- };
- haxe.crypto.Sha1.prototype = {
- doEncode: function(x) {
- var w = new Array();
- var a = 1732584193;
- var b = -271733879;
- var c = -1732584194;
- var d = 271733878;
- var e = -1009589776;
- var i = 0;
- while(i < x.length) {
- var olda = a;
- var oldb = b;
- var oldc = c;
- var oldd = d;
- var olde = e;
- var j = 0;
- while(j < 80) {
- if(j < 16) w[j] = x[i + j]; else w[j] = this.rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16],1);
- var t = (a << 5 | a >>> 27) + this.ft(j,b,c,d) + e + w[j] + this.kt(j);
- e = d;
- d = c;
- c = b << 30 | b >>> 2;
- b = a;
- a = t;
- j++;
- }
- a += olda;
- b += oldb;
- c += oldc;
- d += oldd;
- e += olde;
- i += 16;
- }
- return [a,b,c,d,e];
- }
- ,rol: function(num,cnt) {
- return num << cnt | num >>> 32 - cnt;
- }
- ,ft: function(t,b,c,d) {
- if(t < 20) return b & c | ~b & d;
- if(t < 40) return b ^ c ^ d;
- if(t < 60) return b & c | b & d | c & d;
- return b ^ c ^ d;
- }
- ,kt: function(t) {
- if(t < 20) return 1518500249;
- if(t < 40) return 1859775393;
- if(t < 60) return -1894007588;
- return -899497514;
- }
- ,hex: function(a) {
- var str = "";
- var hex_chr = "0123456789abcdef";
- var _g = 0;
- while(_g < a.length) {
- var num = a[_g];
- ++_g;
- var j = 7;
- while(j >= 0) {
- str += hex_chr.charAt(num >>> (j << 2) & 15);
- j--;
- }
- }
- return str;
- }
- ,__class__: haxe.crypto.Sha1
- };
- haxe.ds.BalancedTree = function() {
- };
- $hxClasses["haxe.ds.BalancedTree"] = haxe.ds.BalancedTree;
- haxe.ds.BalancedTree.__name__ = ["haxe","ds","BalancedTree"];
- haxe.ds.BalancedTree.prototype = {
- set: function(key,value) {
- this.root = this.setLoop(key,value,this.root);
- }
- ,get: function(key) {
- var node = this.root;
- while(node != null) {
- var c = this.compare(key,node.key);
- if(c == 0) return node.value;
- if(c < 0) node = node.left; else node = node.right;
- }
- return null;
- }
- ,setLoop: function(k,v,node) {
- if(node == null) return new haxe.ds.TreeNode(null,k,v,null);
- var c = this.compare(k,node.key);
- if(c == 0) return new haxe.ds.TreeNode(node.left,k,v,node.right,node == null?0:node._height); else if(c < 0) {
- var nl = this.setLoop(k,v,node.left);
- return this.balance(nl,node.key,node.value,node.right);
- } else {
- var nr = this.setLoop(k,v,node.right);
- return this.balance(node.left,node.key,node.value,nr);
- }
- }
- ,balance: function(l,k,v,r) {
- var hl;
- if(l == null) hl = 0; else hl = l._height;
- var hr;
- if(r == null) hr = 0; else hr = r._height;
- if(hl > hr + 2) {
- if((function($this) {
- var $r;
- var _this = l.left;
- $r = _this == null?0:_this._height;
- return $r;
- }(this)) >= (function($this) {
- var $r;
- var _this1 = l.right;
- $r = _this1 == null?0:_this1._height;
- return $r;
- }(this))) return new haxe.ds.TreeNode(l.left,l.key,l.value,new haxe.ds.TreeNode(l.right,k,v,r)); else return new haxe.ds.TreeNode(new haxe.ds.TreeNode(l.left,l.key,l.value,l.right.left),l.right.key,l.right.value,new haxe.ds.TreeNode(l.right.right,k,v,r));
- } else if(hr > hl + 2) {
- if((function($this) {
- var $r;
- var _this2 = r.right;
- $r = _this2 == null?0:_this2._height;
- return $r;
- }(this)) > (function($this) {
- var $r;
- var _this3 = r.left;
- $r = _this3 == null?0:_this3._height;
- return $r;
- }(this))) return new haxe.ds.TreeNode(new haxe.ds.TreeNode(l,k,v,r.left),r.key,r.value,r.right); else return new haxe.ds.TreeNode(new haxe.ds.TreeNode(l,k,v,r.left.left),r.left.key,r.left.value,new haxe.ds.TreeNode(r.left.right,r.key,r.value,r.right));
- } else return new haxe.ds.TreeNode(l,k,v,r,(hl > hr?hl:hr) + 1);
- }
- ,compare: function(k1,k2) {
- return Reflect.compare(k1,k2);
- }
- ,__class__: haxe.ds.BalancedTree
- };
- haxe.ds.TreeNode = function(l,k,v,r,h) {
- if(h == null) h = -1;
- this.left = l;
- this.key = k;
- this.value = v;
- this.right = r;
- if(h == -1) this._height = ((function($this) {
- var $r;
- var _this = $this.left;
- $r = _this == null?0:_this._height;
- return $r;
- }(this)) > (function($this) {
- var $r;
- var _this1 = $this.right;
- $r = _this1 == null?0:_this1._height;
- return $r;
- }(this))?(function($this) {
- var $r;
- var _this2 = $this.left;
- $r = _this2 == null?0:_this2._height;
- return $r;
- }(this)):(function($this) {
- var $r;
- var _this3 = $this.right;
- $r = _this3 == null?0:_this3._height;
- return $r;
- }(this))) + 1; else this._height = h;
- };
- $hxClasses["haxe.ds.TreeNode"] = haxe.ds.TreeNode;
- haxe.ds.TreeNode.__name__ = ["haxe","ds","TreeNode"];
- haxe.ds.TreeNode.prototype = {
- __class__: haxe.ds.TreeNode
- };
- haxe.ds.EnumValueMap = function() {
- haxe.ds.BalancedTree.call(this);
- };
- $hxClasses["haxe.ds.EnumValueMap"] = haxe.ds.EnumValueMap;
- haxe.ds.EnumValueMap.__name__ = ["haxe","ds","EnumValueMap"];
- haxe.ds.EnumValueMap.__interfaces__ = [IMap];
- haxe.ds.EnumValueMap.__super__ = haxe.ds.BalancedTree;
- haxe.ds.EnumValueMap.prototype = $extend(haxe.ds.BalancedTree.prototype,{
- compare: function(k1,k2) {
- var d = k1[1] - k2[1];
- if(d != 0) return d;
- var p1 = k1.slice(2);
- var p2 = k2.slice(2);
- if(p1.length == 0 && p2.length == 0) return 0;
- return this.compareArgs(p1,p2);
- }
- ,compareArgs: function(a1,a2) {
- var ld = a1.length - a2.length;
- if(ld != 0) return ld;
- var _g1 = 0;
- var _g = a1.length;
- while(_g1 < _g) {
- var i = _g1++;
- var d = this.compareArg(a1[i],a2[i]);
- if(d != 0) return d;
- }
- return 0;
- }
- ,compareArg: function(v1,v2) {
- if(Reflect.isEnumValue(v1) && Reflect.isEnumValue(v2)) return this.compare(v1,v2); else if((v1 instanceof Array) && v1.__enum__ == null && ((v2 instanceof Array) && v2.__enum__ == null)) return this.compareArgs(v1,v2); else return Reflect.compare(v1,v2);
- }
- ,__class__: haxe.ds.EnumValueMap
- });
- haxe.ds.IntMap = function() {
- this.h = { };
- };
- $hxClasses["haxe.ds.IntMap"] = haxe.ds.IntMap;
- haxe.ds.IntMap.__name__ = ["haxe","ds","IntMap"];
- haxe.ds.IntMap.__interfaces__ = [IMap];
- haxe.ds.IntMap.prototype = {
- set: function(key,value) {
- this.h[key] = value;
- }
- ,get: function(key) {
- return this.h[key];
- }
- ,exists: function(key) {
- return this.h.hasOwnProperty(key);
- }
- ,keys: function() {
- var a = [];
- for( var key in this.h ) {
- if(this.h.hasOwnProperty(key)) a.push(key | 0);
- }
- return HxOverrides.iter(a);
- }
- ,__class__: haxe.ds.IntMap
- };
- haxe.ds.ObjectMap = function() {
- this.h = { };
- this.h.__keys__ = { };
- };
- $hxClasses["haxe.ds.ObjectMap"] = haxe.ds.ObjectMap;
- haxe.ds.ObjectMap.__name__ = ["haxe","ds","ObjectMap"];
- haxe.ds.ObjectMap.__interfaces__ = [IMap];
- haxe.ds.ObjectMap.prototype = {
- set: function(key,value) {
- var id = key.__id__ || (key.__id__ = ++haxe.ds.ObjectMap.count);
- this.h[id] = value;
- this.h.__keys__[id] = key;
- }
- ,remove: function(key) {
- var id = key.__id__;
- if(this.h.__keys__[id] == null) return false;
- delete(this.h[id]);
- delete(this.h.__keys__[id]);
- return true;
- }
- ,keys: function() {
- var a = [];
- for( var key in this.h.__keys__ ) {
- if(this.h.hasOwnProperty(key)) a.push(this.h.__keys__[key]);
- }
- return HxOverrides.iter(a);
- }
- ,iterator: function() {
- return { ref : this.h, it : this.keys(), hasNext : function() {
- return this.it.hasNext();
- }, next : function() {
- var i = this.it.next();
- return this.ref[i.__id__];
- }};
- }
- ,__class__: haxe.ds.ObjectMap
- };
- haxe.ds._Vector = {};
- haxe.ds._Vector.Vector_Impl_ = function() { };
- $hxClasses["haxe.ds._Vector.Vector_Impl_"] = haxe.ds._Vector.Vector_Impl_;
- haxe.ds._Vector.Vector_Impl_.__name__ = ["haxe","ds","_Vector","Vector_Impl_"];
- haxe.ds._Vector.Vector_Impl_.blit = function(src,srcPos,dest,destPos,len) {
- var _g = 0;
- while(_g < len) {
- var i = _g++;
- dest[destPos + i] = src[srcPos + i];
- }
- };
- haxe.ds._Vector.Vector_Impl_.toArray = function(this1) {
- var a = new Array();
- var len = this1.length;
- var _g = 0;
- while(_g < len) {
- var i = _g++;
- a[i] = this1[i];
- }
- return a;
- };
- haxe.io.Eof = function() { };
- $hxClasses["haxe.io.Eof"] = haxe.io.Eof;
- haxe.io.Eof.__name__ = ["haxe","io","Eof"];
- haxe.io.Eof.prototype = {
- toString: function() {
- return "Eof";
- }
- ,__class__: haxe.io.Eof
- };
- haxe.io.Error = $hxClasses["haxe.io.Error"] = { __ename__ : ["haxe","io","Error"], __constructs__ : ["Blocked","Overflow","OutsideBounds","Custom"] };
- haxe.io.Error.Blocked = ["Blocked",0];
- haxe.io.Error.Blocked.toString = $estr;
- haxe.io.Error.Blocked.__enum__ = haxe.io.Error;
- haxe.io.Error.Overflow = ["Overflow",1];
- haxe.io.Error.Overflow.toString = $estr;
- haxe.io.Error.Overflow.__enum__ = haxe.io.Error;
- haxe.io.Error.OutsideBounds = ["OutsideBounds",2];
- haxe.io.Error.OutsideBounds.toString = $estr;
- haxe.io.Error.OutsideBounds.__enum__ = haxe.io.Error;
- haxe.io.Error.Custom = function(e) { var $x = ["Custom",3,e]; $x.__enum__ = haxe.io.Error; $x.toString = $estr; return $x; };
- haxe.io.Path = function(path) {
- var c1 = path.lastIndexOf("/");
- var c2 = path.lastIndexOf("\\");
- if(c1 < c2) {
- this.dir = HxOverrides.substr(path,0,c2);
- path = HxOverrides.substr(path,c2 + 1,null);
- this.backslash = true;
- } else if(c2 < c1) {
- this.dir = HxOverrides.substr(path,0,c1);
- path = HxOverrides.substr(path,c1 + 1,null);
- } else this.dir = null;
- var cp = path.lastIndexOf(".");
- if(cp != -1) {
- this.ext = HxOverrides.substr(path,cp + 1,null);
- this.file = HxOverrides.substr(path,0,cp);
- } else {
- this.ext = null;
- this.file = path;
- }
- };
- $hxClasses["haxe.io.Path"] = haxe.io.Path;
- haxe.io.Path.__name__ = ["haxe","io","Path"];
- haxe.io.Path.withoutExtension = function(path) {
- var s = new haxe.io.Path(path);
- s.ext = null;
- return s.toString();
- };
- haxe.io.Path.prototype = {
- toString: function() {
- return (this.dir == null?"":this.dir + (this.backslash?"\\":"/")) + this.file + (this.ext == null?"":"." + this.ext);
- }
- ,__class__: haxe.io.Path
- };
- var js = {};
- js.Boot = function() { };
- $hxClasses["js.Boot"] = js.Boot;
- js.Boot.__name__ = ["js","Boot"];
- js.Boot.__unhtml = function(s) {
- return s.split("&").join("&").split("<").join("<").split(">").join(">");
- };
- js.Boot.__trace = function(v,i) {
- var msg;
- if(i != null) msg = i.fileName + ":" + i.lineNumber + ": "; else msg = "";
- msg += js.Boot.__string_rec(v,"");
- if(i != null && i.customParams != null) {
- var _g = 0;
- var _g1 = i.customParams;
- while(_g < _g1.length) {
- var v1 = _g1[_g];
- ++_g;
- msg += "," + js.Boot.__string_rec(v1,"");
- }
- }
- var d;
- if(typeof(document) != "undefined" && (d = document.getElementById("haxe:trace")) != null) d.innerHTML += js.Boot.__unhtml(msg) + "<br/>"; else if(typeof console != "undefined" && console.log != null) console.log(msg);
- };
- js.Boot.__clear_trace = function() {
- var d = document.getElementById("haxe:trace");
- if(d != null) d.innerHTML = "";
- };
- js.Boot.isClass = function(o) {
- return o.__name__;
- };
- js.Boot.isEnum = function(e) {
- return e.__ename__;
- };
- js.Boot.getClass = function(o) {
- if((o instanceof Array) && o.__enum__ == null) return Array; else {
- var cl = o.__class__;
- if(cl != null) return cl;
- var name = js.Boot.__nativeClassName(o);
- if(name != null) return js.Boot.__resolveNativeClass(name);
- return null;
- }
- };
- js.Boot.__string_rec = function(o,s) {
- if(o == null) return "null";
- if(s.length >= 5) return "<...>";
- var t = typeof(o);
- if(t == "function" && (o.__name__ || o.__ename__)) t = "object";
- switch(t) {
- case "object":
- if(o instanceof Array) {
- if(o.__enum__) {
- if(o.length == 2) return o[0];
- var str = o[0] + "(";
- s += "\t";
- var _g1 = 2;
- var _g = o.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
- }
- return str + ")";
- }
- var l = o.length;
- var i1;
- var str1 = "[";
- s += "\t";
- var _g2 = 0;
- while(_g2 < l) {
- var i2 = _g2++;
- str1 += (i2 > 0?",":"") + js.Boot.__string_rec(o[i2],s);
- }
- str1 += "]";
- return str1;
- }
- var tostr;
- try {
- tostr = o.toString;
- } catch( e ) {
- return "???";
- }
- if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
- var s2 = o.toString();
- if(s2 != "[object Object]") return s2;
- }
- var k = null;
- var str2 = "{\n";
- s += "\t";
- var hasp = o.hasOwnProperty != null;
- for( var k in o ) {
- if(hasp && !o.hasOwnProperty(k)) {
- continue;
- }
- if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
- continue;
- }
- if(str2.length != 2) str2 += ", \n";
- str2 += s + k + " : " + js.Boot.__string_rec(o[k],s);
- }
- s = s.substring(1);
- str2 += "\n" + s + "}";
- return str2;
- case "function":
- return "<function>";
- case "string":
- return o;
- default:
- return String(o);
- }
- };
- js.Boot.__interfLoop = function(cc,cl) {
- if(cc == null) return false;
- if(cc == cl) return true;
- var intf = cc.__interfaces__;
- if(intf != null) {
- var _g1 = 0;
- var _g = intf.length;
- while(_g1 < _g) {
- var i = _g1++;
- var i1 = intf[i];
- if(i1 == cl || js.Boot.__interfLoop(i1,cl)) return true;
- }
- }
- return js.Boot.__interfLoop(cc.__super__,cl);
- };
- js.Boot.__instanceof = function(o,cl) {
- if(cl == null) return false;
- switch(cl) {
- case Int:
- return (o|0) === o;
- case Float:
- return typeof(o) == "number";
- case Bool:
- return typeof(o) == "boolean";
- case String:
- return typeof(o) == "string";
- case Array:
- return (o instanceof Array) && o.__enum__ == null;
- case Dynamic:
- return true;
- default:
- if(o != null) {
- if(typeof(cl) == "function") {
- if(o instanceof cl) return true;
- if(js.Boot.__interfLoop(js.Boot.getClass(o),cl)) return true;
- } else if(typeof(cl) == "object" && js.Boot.__isNativeObj(cl)) {
- if(o instanceof cl) return true;
- }
- } else return false;
- if(cl == Class && o.__name__ != null) return true;
- if(cl == Enum && o.__ename__ != null) return true;
- return o.__enum__ == cl;
- }
- };
- js.Boot.__cast = function(o,t) {
- if(js.Boot.__instanceof(o,t)) return o; else throw "Cannot cast " + Std.string(o) + " to " + Std.string(t);
- };
- js.Boot.__nativeClassName = function(o) {
- var name = js.Boot.__toStr.call(o).slice(8,-1);
- if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") return null;
- return name;
- };
- js.Boot.__isNativeObj = function(o) {
- return js.Boot.__nativeClassName(o) != null;
- };
- js.Boot.__resolveNativeClass = function(name) {
- if(typeof window != "undefined") return window[name]; else return global[name];
- };
- js.Browser = function() { };
- $hxClasses["js.Browser"] = js.Browser;
- js.Browser.__name__ = ["js","Browser"];
- js.Browser.getLocalStorage = function() {
- try {
- var s = window.localStorage;
- s.getItem("");
- return s;
- } catch( e ) {
- return null;
- }
- };
- js.Browser.createXMLHttpRequest = function() {
- if(typeof XMLHttpRequest != "undefined") return new XMLHttpRequest();
- if(typeof ActiveXObject != "undefined") return new ActiveXObject("Microsoft.XMLHTTP");
- throw "Unable to create XMLHttpRequest object.";
- };
- lime.AssetCache = function() {
- this.enabled = true;
- this.audio = new haxe.ds.StringMap();
- this.font = new haxe.ds.StringMap();
- this.image = new haxe.ds.StringMap();
- };
- $hxClasses["lime.AssetCache"] = lime.AssetCache;
- lime.AssetCache.__name__ = ["lime","AssetCache"];
- lime.AssetCache.prototype = {
- clear: function(prefix) {
- if(prefix == null) {
- this.audio = new haxe.ds.StringMap();
- this.font = new haxe.ds.StringMap();
- this.image = new haxe.ds.StringMap();
- } else {
- var keys = this.audio.keys();
- while( keys.hasNext() ) {
- var key = keys.next();
- if(StringTools.startsWith(key,prefix)) this.audio.remove(key);
- }
- var keys1 = this.font.keys();
- while( keys1.hasNext() ) {
- var key1 = keys1.next();
- if(StringTools.startsWith(key1,prefix)) this.font.remove(key1);
- }
- var keys2 = this.image.keys();
- while( keys2.hasNext() ) {
- var key2 = keys2.next();
- if(StringTools.startsWith(key2,prefix)) this.image.remove(key2);
- }
- }
- }
- ,__class__: lime.AssetCache
- };
- lime.Assets = function() { };
- $hxClasses["lime.Assets"] = lime.Assets;
- lime.Assets.__name__ = ["lime","Assets"];
- lime.Assets.exists = function(id,type) {
- lime.Assets.initialize();
- if(type == null) type = "BINARY";
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) return library.exists(symbolName,type);
- return false;
- };
- lime.Assets.getAudioBuffer = function(id,useCache) {
- if(useCache == null) useCache = true;
- lime.Assets.initialize();
- if(useCache && lime.Assets.cache.enabled && lime.Assets.cache.audio.exists(id)) {
- var audio = lime.Assets.cache.audio.get(id);
- if(lime.Assets.isValidAudio(audio)) return audio;
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"SOUND")) {
- if(library.isLocal(symbolName,"SOUND")) {
- var audio1 = library.getAudioBuffer(symbolName);
- if(useCache && lime.Assets.cache.enabled) lime.Assets.cache.audio.set(id,audio1);
- return audio1;
- } else null;
- } else null;
- } else null;
- return null;
- };
- lime.Assets.getBytes = function(id) {
- lime.Assets.initialize();
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"BINARY")) {
- if(library.isLocal(symbolName,"BINARY")) return library.getBytes(symbolName); else null;
- } else null;
- } else null;
- return null;
- };
- lime.Assets.getFont = function(id,useCache) {
- if(useCache == null) useCache = true;
- lime.Assets.initialize();
- if(useCache && lime.Assets.cache.enabled && lime.Assets.cache.font.exists(id)) return lime.Assets.cache.font.get(id);
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"FONT")) {
- if(library.isLocal(symbolName,"FONT")) {
- var font = library.getFont(symbolName);
- if(useCache && lime.Assets.cache.enabled) lime.Assets.cache.font.set(id,font);
- return font;
- } else null;
- } else null;
- } else null;
- return null;
- };
- lime.Assets.getImage = function(id,useCache) {
- if(useCache == null) useCache = true;
- lime.Assets.initialize();
- if(useCache && lime.Assets.cache.enabled && lime.Assets.cache.image.exists(id)) {
- var image = lime.Assets.cache.image.get(id);
- if(lime.Assets.isValidImage(image)) return image;
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"IMAGE")) {
- if(library.isLocal(symbolName,"IMAGE")) {
- var image1 = library.getImage(symbolName);
- if(useCache && lime.Assets.cache.enabled) lime.Assets.cache.image.set(id,image1);
- return image1;
- } else null;
- } else null;
- } else null;
- return null;
- };
- lime.Assets.getLibrary = function(name) {
- if(name == null || name == "") name = "default";
- return lime.Assets.libraries.get(name);
- };
- lime.Assets.getPath = function(id) {
- lime.Assets.initialize();
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,null)) return library.getPath(symbolName); else null;
- } else null;
- return null;
- };
- lime.Assets.getText = function(id) {
- lime.Assets.initialize();
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"TEXT")) {
- if(library.isLocal(symbolName,"TEXT")) return library.getText(symbolName); else null;
- } else null;
- } else null;
- return null;
- };
- lime.Assets.initialize = function() {
- if(!lime.Assets.initialized) {
- lime.Assets.registerLibrary("default",new DefaultAssetLibrary());
- lime.Assets.initialized = true;
- }
- };
- lime.Assets.isLocal = function(id,type,useCache) {
- if(useCache == null) useCache = true;
- lime.Assets.initialize();
- if(useCache && lime.Assets.cache.enabled) {
- if(type == "IMAGE" || type == null) {
- if(lime.Assets.cache.image.exists(id)) return true;
- }
- if(type == "FONT" || type == null) {
- if(lime.Assets.cache.font.exists(id)) return true;
- }
- if(type == "SOUND" || type == "MUSIC" || type == null) {
- if(lime.Assets.cache.audio.exists(id)) return true;
- }
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) return library.isLocal(symbolName,type);
- return false;
- };
- lime.Assets.isValidAudio = function(buffer) {
- return buffer != null;
- return true;
- };
- lime.Assets.isValidImage = function(buffer) {
- return true;
- };
- lime.Assets.list = function(type) {
- lime.Assets.initialize();
- var items = [];
- var $it0 = lime.Assets.libraries.iterator();
- while( $it0.hasNext() ) {
- var library = $it0.next();
- var libraryItems = library.list(type);
- if(libraryItems != null) items = items.concat(libraryItems);
- }
- return items;
- };
- lime.Assets.loadAudioBuffer = function(id,handler,useCache) {
- if(useCache == null) useCache = true;
- lime.Assets.initialize();
- if(useCache && lime.Assets.cache.enabled && lime.Assets.cache.audio.exists(id)) {
- var audio = lime.Assets.cache.audio.get(id);
- if(lime.Assets.isValidAudio(audio)) {
- handler(audio);
- return;
- }
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"SOUND")) {
- if(useCache && lime.Assets.cache.enabled) library.loadAudioBuffer(symbolName,function(audio1) {
- var value = audio1;
- lime.Assets.cache.audio.set(id,value);
- handler(audio1);
- }); else library.loadAudioBuffer(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- lime.Assets.loadBytes = function(id,handler) {
- lime.Assets.initialize();
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"BINARY")) {
- library.loadBytes(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- lime.Assets.loadImage = function(id,handler,useCache) {
- if(useCache == null) useCache = true;
- lime.Assets.initialize();
- if(useCache && lime.Assets.cache.enabled && lime.Assets.cache.image.exists(id)) {
- var image = lime.Assets.cache.image.get(id);
- if(lime.Assets.isValidImage(image)) {
- handler(image);
- return;
- }
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"IMAGE")) {
- if(useCache && lime.Assets.cache.enabled) library.loadImage(symbolName,function(image1) {
- lime.Assets.cache.image.set(id,image1);
- handler(image1);
- }); else library.loadImage(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- lime.Assets.loadLibrary = function(name,handler) {
- lime.Assets.initialize();
- var data = lime.Assets.getText("libraries/" + name + ".json");
- if(data != null && data != "") {
- var info = JSON.parse(data);
- var library = Type.createInstance(Type.resolveClass(info.type),info.args);
- lime.Assets.libraries.set(name,library);
- library.eventCallback = lime.Assets.library_onEvent;
- library.load(handler);
- } else null;
- };
- lime.Assets.loadText = function(id,handler) {
- lime.Assets.initialize();
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = lime.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"TEXT")) {
- library.loadText(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- lime.Assets.registerLibrary = function(name,library) {
- if(lime.Assets.libraries.exists(name)) lime.Assets.unloadLibrary(name);
- if(library != null) library.eventCallback = lime.Assets.library_onEvent;
- lime.Assets.libraries.set(name,library);
- };
- lime.Assets.unloadLibrary = function(name) {
- lime.Assets.initialize();
- var library = lime.Assets.libraries.get(name);
- if(library != null) {
- lime.Assets.cache.clear(name + ":");
- library.eventCallback = null;
- }
- lime.Assets.libraries.remove(name);
- };
- lime.Assets.library_onEvent = function(library,type) {
- if(type == "change") lime.Assets.cache.clear();
- };
- lime._Assets = {};
- lime._Assets.AssetType_Impl_ = function() { };
- $hxClasses["lime._Assets.AssetType_Impl_"] = lime._Assets.AssetType_Impl_;
- lime._Assets.AssetType_Impl_.__name__ = ["lime","_Assets","AssetType_Impl_"];
- lime._backend = {};
- lime._backend.html5 = {};
- lime._backend.html5.HTML5Application = function(parent) {
- this.parent = parent;
- lime.audio.AudioManager.init();
- };
- $hxClasses["lime._backend.html5.HTML5Application"] = lime._backend.html5.HTML5Application;
- lime._backend.html5.HTML5Application.__name__ = ["lime","_backend","html5","HTML5Application"];
- lime._backend.html5.HTML5Application.prototype = {
- convertKeyCode: function(keyCode) {
- if(keyCode >= 65 && keyCode <= 90) return keyCode + 32;
- switch(keyCode) {
- case 16:
- return 1073742049;
- case 17:
- return 1073742048;
- case 18:
- return 1073742050;
- case 20:
- return 1073741881;
- case 144:
- return 1073741907;
- case 37:
- return 1073741904;
- case 38:
- return 1073741906;
- case 39:
- return 1073741903;
- case 40:
- return 1073741905;
- case 45:
- return 1073741897;
- case 46:
- return 127;
- case 36:
- return 1073741898;
- case 35:
- return 1073741901;
- case 33:
- return 1073741899;
- case 34:
- return 1073741902;
- case 112:
- return 1073741882;
- case 113:
- return 1073741883;
- case 114:
- return 1073741884;
- case 115:
- return 1073741885;
- case 116:
- return 1073741886;
- case 117:
- return 1073741887;
- case 118:
- return 1073741888;
- case 119:
- return 1073741889;
- case 120:
- return 1073741890;
- case 121:
- return 1073741891;
- case 122:
- return 1073741892;
- case 123:
- return 1073741893;
- }
- return keyCode;
- }
- ,create: function(config) {
- this.parent.config = config;
- if(config != null) {
- var $window = new lime.ui.Window(config);
- var renderer = new lime.graphics.Renderer($window);
- this.parent.addWindow($window);
- this.parent.addRenderer(renderer);
- }
- }
- ,exec: function() {
- window.addEventListener("keydown",$bind(this,this.handleKeyEvent),false);
- window.addEventListener("keyup",$bind(this,this.handleKeyEvent),false);
- window.addEventListener("focus",$bind(this,this.handleWindowEvent),false);
- window.addEventListener("blur",$bind(this,this.handleWindowEvent),false);
- window.addEventListener("resize",$bind(this,this.handleWindowEvent),false);
- window.addEventListener("beforeunload",$bind(this,this.handleWindowEvent),false);
-
- var lastTime = 0;
- var vendors = ['ms', 'moz', 'webkit', 'o'];
- for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
- window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
- window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
- || window[vendors[x]+'CancelRequestAnimationFrame'];
- }
-
- if (!window.requestAnimationFrame)
- window.requestAnimationFrame = function(callback, element) {
- var currTime = new Date().getTime();
- var timeToCall = Math.max(0, 16 - (currTime - lastTime));
- var id = window.setTimeout(function() { callback(currTime + timeToCall); },
- timeToCall);
- lastTime = currTime + timeToCall;
- return id;
- };
-
- if (!window.cancelAnimationFrame)
- window.cancelAnimationFrame = function(id) {
- clearTimeout(id);
- };
-
- window.requestAnimFrame = window.requestAnimationFrame;
- ;
- this.cacheTime = new Date().getTime();
- this.handleUpdateEvent();
- return 0;
- }
- ,handleKeyEvent: function(event) {
- if(this.parent.windows[0] != null) {
- var _g = event.keyCode;
- switch(_g) {
- case 32:case 37:case 38:case 39:case 40:
- event.preventDefault();
- break;
- }
- var keyCode = this.convertKeyCode(event.keyCode != null?event.keyCode:event.which);
- var modifier;
- modifier = (event.shiftKey?3:0) | (event.ctrlKey?192:0) | (event.altKey?768:0) | (event.metaKey?3072:0);
- if(event.type == "keydown") {
- var listeners = this.parent.windows[0].onKeyDown.listeners;
- var repeat = this.parent.windows[0].onKeyDown.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](keyCode,modifier);
- if(!repeat[i]) {
- this.parent.windows[0].onKeyDown.remove(listeners[i]);
- length--;
- } else i++;
- }
- } else {
- var listeners1 = this.parent.windows[0].onKeyUp.listeners;
- var repeat1 = this.parent.windows[0].onKeyUp.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](keyCode,modifier);
- if(!repeat1[i1]) {
- this.parent.windows[0].onKeyUp.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- }
- }
- }
- ,handleUpdateEvent: function(__) {
- var currentTime = new Date().getTime();
- var deltaTime = currentTime - this.cacheTime;
- this.cacheTime = currentTime;
- var listeners = this.parent.onUpdate.listeners;
- var repeat = this.parent.onUpdate.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](deltaTime | 0);
- if(!repeat[i]) {
- this.parent.onUpdate.remove(listeners[i]);
- length--;
- } else i++;
- }
- if(this.parent.renderers[0] != null) {
- if(!this.initialized) {
- this.initialized = true;
- this.parent.init(this.parent.renderers[0].context);
- }
- var listeners1 = this.parent.renderers[0].onRender.listeners;
- var repeat1 = this.parent.renderers[0].onRender.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](this.parent.renderers[0].context);
- if(!repeat1[i1]) {
- this.parent.renderers[0].onRender.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- this.parent.renderers[0].flip();
- }
- window.requestAnimationFrame($bind(this,this.handleUpdateEvent));
- }
- ,handleWindowEvent: function(event) {
- if(this.parent.windows[0] != null) {
- var _g = event.type;
- switch(_g) {
- case "focus":
- var listeners = this.parent.windows[0].onWindowFocusIn.listeners;
- var repeat = this.parent.windows[0].onWindowFocusIn.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i]();
- if(!repeat[i]) {
- this.parent.windows[0].onWindowFocusIn.remove(listeners[i]);
- length--;
- } else i++;
- }
- var listeners1 = this.parent.windows[0].onWindowActivate.listeners;
- var repeat1 = this.parent.windows[0].onWindowActivate.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1]();
- if(!repeat1[i1]) {
- this.parent.windows[0].onWindowActivate.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- break;
- case "blur":
- var listeners2 = this.parent.windows[0].onWindowFocusOut.listeners;
- var repeat2 = this.parent.windows[0].onWindowFocusOut.repeat;
- var length2 = listeners2.length;
- var i2 = 0;
- while(i2 < length2) {
- listeners2[i2]();
- if(!repeat2[i2]) {
- this.parent.windows[0].onWindowFocusOut.remove(listeners2[i2]);
- length2--;
- } else i2++;
- }
- var listeners3 = this.parent.windows[0].onWindowDeactivate.listeners;
- var repeat3 = this.parent.windows[0].onWindowDeactivate.repeat;
- var length3 = listeners3.length;
- var i3 = 0;
- while(i3 < length3) {
- listeners3[i3]();
- if(!repeat3[i3]) {
- this.parent.windows[0].onWindowDeactivate.remove(listeners3[i3]);
- length3--;
- } else i3++;
- }
- break;
- case "resize":
- var cacheWidth = this.parent.windows[0].width;
- var cacheHeight = this.parent.windows[0].height;
- this.parent.windows[0].backend.handleResize();
- if(this.parent.windows[0].width != cacheWidth || this.parent.windows[0].height != cacheHeight) {
- var listeners4 = this.parent.windows[0].onWindowResize.listeners;
- var repeat4 = this.parent.windows[0].onWindowResize.repeat;
- var length4 = listeners4.length;
- var i4 = 0;
- while(i4 < length4) {
- listeners4[i4](this.parent.windows[0].width,this.parent.windows[0].height);
- if(!repeat4[i4]) {
- this.parent.windows[0].onWindowResize.remove(listeners4[i4]);
- length4--;
- } else i4++;
- }
- }
- break;
- case "beforeunload":
- var listeners5 = this.parent.windows[0].onWindowClose.listeners;
- var repeat5 = this.parent.windows[0].onWindowClose.repeat;
- var length5 = listeners5.length;
- var i5 = 0;
- while(i5 < length5) {
- listeners5[i5]();
- if(!repeat5[i5]) {
- this.parent.windows[0].onWindowClose.remove(listeners5[i5]);
- length5--;
- } else i5++;
- }
- break;
- }
- }
- }
- ,__class__: lime._backend.html5.HTML5Application
- };
- lime._backend.html5.HTML5Mouse = function() { };
- $hxClasses["lime._backend.html5.HTML5Mouse"] = lime._backend.html5.HTML5Mouse;
- lime._backend.html5.HTML5Mouse.__name__ = ["lime","_backend","html5","HTML5Mouse"];
- lime._backend.html5.HTML5Mouse.__cursor = null;
- lime._backend.html5.HTML5Mouse.__hidden = null;
- lime._backend.html5.HTML5Mouse.hide = function() {
- if(!lime._backend.html5.HTML5Mouse.__hidden) {
- lime._backend.html5.HTML5Mouse.__hidden = true;
- var _g = 0;
- var _g1 = lime.app.Application.current.windows;
- while(_g < _g1.length) {
- var $window = _g1[_g];
- ++_g;
- $window.backend.element.style.cursor = "none";
- }
- }
- };
- lime._backend.html5.HTML5Mouse.show = function() {
- if(lime._backend.html5.HTML5Mouse.__hidden) {
- lime._backend.html5.HTML5Mouse.__hidden = false;
- var cacheValue = lime._backend.html5.HTML5Mouse.__cursor;
- lime._backend.html5.HTML5Mouse.__cursor = null;
- lime._backend.html5.HTML5Mouse.set_cursor(cacheValue);
- }
- };
- lime._backend.html5.HTML5Mouse.get_cursor = function() {
- if(lime._backend.html5.HTML5Mouse.__cursor == null) return lime.ui.MouseCursor.DEFAULT;
- return lime._backend.html5.HTML5Mouse.__cursor;
- };
- lime._backend.html5.HTML5Mouse.set_cursor = function(value) {
- if(lime._backend.html5.HTML5Mouse.__cursor != value) {
- if(!lime._backend.html5.HTML5Mouse.__hidden) {
- var _g = 0;
- var _g1 = lime.app.Application.current.windows;
- while(_g < _g1.length) {
- var $window = _g1[_g];
- ++_g;
- switch(value[1]) {
- case 0:
- $window.backend.element.style.cursor = "default";
- break;
- case 1:
- $window.backend.element.style.cursor = "crosshair";
- break;
- case 3:
- $window.backend.element.style.cursor = "move";
- break;
- case 4:
- $window.backend.element.style.cursor = "pointer";
- break;
- case 5:
- $window.backend.element.style.cursor = "nesw-resize";
- break;
- case 6:
- $window.backend.element.style.cursor = "ns-resize";
- break;
- case 7:
- $window.backend.element.style.cursor = "nwse-resize";
- break;
- case 8:
- $window.backend.element.style.cursor = "ew-resize";
- break;
- case 9:
- $window.backend.element.style.cursor = "text";
- break;
- case 10:
- $window.backend.element.style.cursor = "wait";
- break;
- case 11:
- $window.backend.element.style.cursor = "wait";
- break;
- default:
- $window.backend.element.style.cursor = "auto";
- }
- }
- }
- lime._backend.html5.HTML5Mouse.__cursor = value;
- }
- return lime._backend.html5.HTML5Mouse.__cursor;
- };
- lime._backend.html5.HTML5Renderer = function(parent) {
- this.parent = parent;
- };
- $hxClasses["lime._backend.html5.HTML5Renderer"] = lime._backend.html5.HTML5Renderer;
- lime._backend.html5.HTML5Renderer.__name__ = ["lime","_backend","html5","HTML5Renderer"];
- lime._backend.html5.HTML5Renderer.prototype = {
- create: function() {
- this.createContext();
- {
- var _g = this.parent.context;
- switch(_g[1]) {
- case 0:
- this.parent.window.backend.canvas.addEventListener("webglcontextlost",$bind(this,this.handleEvent),false);
- this.parent.window.backend.canvas.addEventListener("webglcontextrestored",$bind(this,this.handleEvent),false);
- break;
- default:
- }
- }
- }
- ,createContext: function() {
- if(this.parent.window.backend.div != null) this.parent.context = lime.graphics.RenderContext.DOM(this.parent.window.backend.div); else if(this.parent.window.backend.canvas != null) {
- var webgl = null;
- if(webgl == null) this.parent.context = lime.graphics.RenderContext.CANVAS(this.parent.window.backend.canvas.getContext("2d")); else {
- lime.graphics.opengl.GL.context = webgl;
- this.parent.context = lime.graphics.RenderContext.OPENGL(lime.graphics.opengl.GL.context);
- }
- }
- }
- ,flip: function() {
- }
- ,handleEvent: function(event) {
- var _g = event.type;
- switch(_g) {
- case "webglcontextlost":
- event.preventDefault();
- this.parent.context = null;
- var listeners = this.parent.onRenderContextLost.listeners;
- var repeat = this.parent.onRenderContextLost.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i]();
- if(!repeat[i]) {
- this.parent.onRenderContextLost.remove(listeners[i]);
- length--;
- } else i++;
- }
- break;
- case "webglcontextrestored":
- this.createContext();
- var listeners1 = this.parent.onRenderContextRestored.listeners;
- var repeat1 = this.parent.onRenderContextRestored.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](this.parent.context);
- if(!repeat1[i1]) {
- this.parent.onRenderContextRestored.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- break;
- default:
- }
- }
- ,render: function() {
- }
- ,__class__: lime._backend.html5.HTML5Renderer
- };
- lime._backend.html5.HTML5Window = function(parent) {
- this.parent = parent;
- if(parent.config != null && Object.prototype.hasOwnProperty.call(parent.config,"element")) this.element = parent.config.element;
- };
- $hxClasses["lime._backend.html5.HTML5Window"] = lime._backend.html5.HTML5Window;
- lime._backend.html5.HTML5Window.__name__ = ["lime","_backend","html5","HTML5Window"];
- lime._backend.html5.HTML5Window.prototype = {
- close: function() {
- }
- ,create: function(application) {
- this.setWidth = this.parent.width;
- this.setHeight = this.parent.height;
- if(js.Boot.__instanceof(this.element,HTMLCanvasElement)) this.canvas = this.element; else this.canvas = window.document.createElement("canvas");
- if(this.canvas != null) {
- var style = this.canvas.style;
- style.setProperty("-webkit-transform","translateZ(0)",null);
- style.setProperty("transform","translateZ(0)",null);
- } else if(this.div != null) {
- var style1 = this.div.style;
- style1.setProperty("-webkit-transform","translate3D(0,0,0)",null);
- style1.setProperty("transform","translate3D(0,0,0)",null);
- style1.position = "relative";
- style1.overflow = "hidden";
- style1.setProperty("-webkit-user-select","none",null);
- style1.setProperty("-moz-user-select","none",null);
- style1.setProperty("-ms-user-select","none",null);
- style1.setProperty("-o-user-select","none",null);
- }
- if(this.parent.width == 0 && this.parent.height == 0) {
- if(this.element != null) {
- this.parent.width = this.element.clientWidth;
- this.parent.height = this.element.clientHeight;
- } else {
- this.parent.width = window.innerWidth;
- this.parent.height = window.innerHeight;
- }
- this.parent.fullscreen = true;
- }
- if(this.canvas != null) {
- this.canvas.width = this.parent.width;
- this.canvas.height = this.parent.height;
- } else {
- this.div.style.width = this.parent.width + "px";
- this.div.style.height = this.parent.height + "px";
- }
- this.handleResize();
- if(this.element != null) {
- if(this.canvas != null) {
- if(this.element != this.canvas) this.element.appendChild(this.canvas);
- } else this.element.appendChild(this.div);
- var events = ["mousedown","mousemove","mouseup","wheel"];
- var standardTouch = typeof(window.ontouchstart) != "undefined";
- if(!standardTouch) {
- var _g = 0;
- while(_g < events.length) {
- var event = events[_g];
- ++_g;
- this.element.addEventListener(event,$bind(this,this.handleMouseEvent),true);
- }
- }
- window.document.addEventListener("dragstart",function(e) {
- if(e.target.nodeName.toLowerCase() == "img") {
- e.preventDefault();
- return false;
- }
- return true;
- },false);
- this.element.addEventListener("touchstart",$bind(this,this.handleTouchEvent),true);
- this.element.addEventListener("touchmove",$bind(this,this.handleTouchEvent),true);
- this.element.addEventListener("touchend",$bind(this,this.handleTouchEvent),true);
- }
- }
- ,handleMouseEvent: function(event) {
- var x = 0.0;
- var y = 0.0;
- if(event.type != "wheel") {
- if(this.element != null) {
- if(this.canvas != null) {
- var rect = this.canvas.getBoundingClientRect();
- x = (event.clientX - rect.left) * (this.parent.width / rect.width);
- y = (event.clientY - rect.top) * (this.parent.height / rect.height);
- } else if(this.div != null) {
- var rect1 = this.div.getBoundingClientRect();
- x = event.clientX - rect1.left;
- y = event.clientY - rect1.top;
- } else {
- var rect2 = this.element.getBoundingClientRect();
- x = (event.clientX - rect2.left) * (this.parent.width / rect2.width);
- y = (event.clientY - rect2.top) * (this.parent.height / rect2.height);
- }
- } else {
- x = event.clientX;
- y = event.clientY;
- }
- var _g = event.type;
- switch(_g) {
- case "mousedown":
- var listeners = this.parent.onMouseDown.listeners;
- var repeat = this.parent.onMouseDown.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](x,y,event.button);
- if(!repeat[i]) {
- this.parent.onMouseDown.remove(listeners[i]);
- length--;
- } else i++;
- }
- break;
- case "mouseup":
- var listeners1 = this.parent.onMouseUp.listeners;
- var repeat1 = this.parent.onMouseUp.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](x,y,event.button);
- if(!repeat1[i1]) {
- this.parent.onMouseUp.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- break;
- case "mousemove":
- var listeners2 = this.parent.onMouseMove.listeners;
- var repeat2 = this.parent.onMouseMove.repeat;
- var length2 = listeners2.length;
- var i2 = 0;
- while(i2 < length2) {
- listeners2[i2](x,y,event.button);
- if(!repeat2[i2]) {
- this.parent.onMouseMove.remove(listeners2[i2]);
- length2--;
- } else i2++;
- }
- break;
- default:
- }
- } else {
- var listeners3 = this.parent.onMouseWheel.listeners;
- var repeat3 = this.parent.onMouseWheel.repeat;
- var length3 = listeners3.length;
- var i3 = 0;
- while(i3 < length3) {
- listeners3[i3](event.deltaX,event.deltaY);
- if(!repeat3[i3]) {
- this.parent.onMouseWheel.remove(listeners3[i3]);
- length3--;
- } else i3++;
- }
- }
- }
- ,handleResize: function() {
- var stretch = this.parent.fullscreen || this.setWidth == 0 && this.setHeight == 0;
- if(this.element != null && (this.div == null || this.div != null && stretch)) {
- if(stretch) {
- if(this.parent.width != this.element.clientWidth || this.parent.height != this.element.clientHeight) {
- this.parent.width = this.element.clientWidth;
- this.parent.height = this.element.clientHeight;
- if(this.canvas != null) {
- if(this.element != this.canvas) {
- this.canvas.width = this.element.clientWidth;
- this.canvas.height = this.element.clientHeight;
- }
- } else {
- this.div.style.width = this.element.clientWidth + "px";
- this.div.style.height = this.element.clientHeight + "px";
- }
- }
- } else {
- var scaleX = this.element.clientWidth / this.setWidth;
- var scaleY = this.element.clientHeight / this.setHeight;
- var currentRatio = scaleX / scaleY;
- var targetRatio = Math.min(scaleX,scaleY);
- if(this.canvas != null) {
- if(this.element != this.canvas) {
- this.canvas.style.width = this.setWidth * targetRatio + "px";
- this.canvas.style.height = this.setHeight * targetRatio + "px";
- this.canvas.style.marginLeft = (this.element.clientWidth - this.setWidth * targetRatio) / 2 + "px";
- this.canvas.style.marginTop = (this.element.clientHeight - this.setHeight * targetRatio) / 2 + "px";
- }
- } else {
- this.div.style.width = this.setWidth * targetRatio + "px";
- this.div.style.height = this.setHeight * targetRatio + "px";
- this.div.style.marginLeft = (this.element.clientWidth - this.setWidth * targetRatio) / 2 + "px";
- this.div.style.marginTop = (this.element.clientHeight - this.setHeight * targetRatio) / 2 + "px";
- }
- }
- }
- }
- ,handleTouchEvent: function(event) {
- event.preventDefault();
- var touch = event.changedTouches[0];
- var id = touch.identifier;
- var x = 0.0;
- var y = 0.0;
- if(this.element != null) {
- if(this.canvas != null) {
- var rect = this.canvas.getBoundingClientRect();
- x = (touch.clientX - rect.left) * (this.parent.width / rect.width);
- y = (touch.clientY - rect.top) * (this.parent.height / rect.height);
- } else if(this.div != null) {
- var rect1 = this.div.getBoundingClientRect();
- x = touch.clientX - rect1.left;
- y = touch.clientY - rect1.top;
- } else {
- var rect2 = this.element.getBoundingClientRect();
- x = (touch.clientX - rect2.left) * (this.parent.width / rect2.width);
- y = (touch.clientY - rect2.top) * (this.parent.height / rect2.height);
- }
- } else {
- x = touch.clientX;
- y = touch.clientY;
- }
- var _g = event.type;
- switch(_g) {
- case "touchstart":
- var listeners = this.parent.onTouchStart.listeners;
- var repeat = this.parent.onTouchStart.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](x,y,id);
- if(!repeat[i]) {
- this.parent.onTouchStart.remove(listeners[i]);
- length--;
- } else i++;
- }
- break;
- case "touchmove":
- var listeners1 = this.parent.onTouchMove.listeners;
- var repeat1 = this.parent.onTouchMove.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](x,y,id);
- if(!repeat1[i1]) {
- this.parent.onTouchMove.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- break;
- case "touchend":
- var listeners2 = this.parent.onTouchEnd.listeners;
- var repeat2 = this.parent.onTouchEnd.repeat;
- var length2 = listeners2.length;
- var i2 = 0;
- while(i2 < length2) {
- listeners2[i2](x,y,id);
- if(!repeat2[i2]) {
- this.parent.onTouchEnd.remove(listeners2[i2]);
- length2--;
- } else i2++;
- }
- break;
- default:
- }
- }
- ,move: function(x,y) {
- }
- ,resize: function(width,height) {
- }
- ,setIcon: function(image) {
- }
- ,__class__: lime._backend.html5.HTML5Window
- };
- lime.app = {};
- lime.app.Module = function() {
- };
- $hxClasses["lime.app.Module"] = lime.app.Module;
- lime.app.Module.__name__ = ["lime","app","Module"];
- lime.app.Module.prototype = {
- __class__: lime.app.Module
- };
- lime.app.Application = function() {
- this.onUpdate = new lime.app.Event();
- lime.app.Module.call(this);
- if(lime.app.Application.current == null) lime.app.Application.current = this;
- this.renderers = new Array();
- this.windows = new Array();
- this.backend = new lime._backend.html5.HTML5Application(this);
- this.onUpdate.add($bind(this,this.update));
- };
- $hxClasses["lime.app.Application"] = lime.app.Application;
- lime.app.Application.__name__ = ["lime","app","Application"];
- lime.app.Application.current = null;
- lime.app.Application.__super__ = lime.app.Module;
- lime.app.Application.prototype = $extend(lime.app.Module.prototype,{
- addRenderer: function(renderer) {
- renderer.onRender.add($bind(this,this.render));
- renderer.onRenderContextLost.add($bind(this,this.onRenderContextLost));
- renderer.onRenderContextRestored.add($bind(this,this.onRenderContextRestored));
- this.renderers.push(renderer);
- }
- ,addWindow: function(window) {
- this.windows.push(window);
- window.onKeyDown.add($bind(this,this.onKeyDown));
- window.onKeyUp.add($bind(this,this.onKeyUp));
- window.onMouseDown.add($bind(this,this.onMouseDown));
- window.onMouseMove.add($bind(this,this.onMouseMove));
- window.onMouseUp.add($bind(this,this.onMouseUp));
- window.onMouseWheel.add($bind(this,this.onMouseWheel));
- window.onTouchStart.add($bind(this,this.onTouchStart));
- window.onTouchMove.add($bind(this,this.onTouchMove));
- window.onTouchEnd.add($bind(this,this.onTouchEnd));
- window.onWindowActivate.add($bind(this,this.onWindowActivate));
- window.onWindowClose.add($bind(this,this.onWindowClose));
- window.onWindowDeactivate.add($bind(this,this.onWindowDeactivate));
- window.onWindowFocusIn.add($bind(this,this.onWindowFocusIn));
- window.onWindowFocusOut.add($bind(this,this.onWindowFocusOut));
- window.onWindowMove.add($bind(this,this.onWindowMove));
- window.onWindowResize.add($bind(this,this.onWindowResize));
- window.create(this);
- }
- ,create: function(config) {
- this.backend.create(config);
- }
- ,exec: function() {
- lime.app.Application.current = this;
- return this.backend.exec();
- }
- ,init: function(context) {
- }
- ,onKeyDown: function(keyCode,modifier) {
- }
- ,onKeyUp: function(keyCode,modifier) {
- }
- ,onMouseDown: function(x,y,button) {
- }
- ,onMouseMove: function(x,y,button) {
- }
- ,onMouseUp: function(x,y,button) {
- }
- ,onMouseWheel: function(deltaX,deltaY) {
- }
- ,onRenderContextLost: function() {
- }
- ,onRenderContextRestored: function(context) {
- }
- ,onTouchEnd: function(x,y,id) {
- }
- ,onTouchMove: function(x,y,id) {
- }
- ,onTouchStart: function(x,y,id) {
- }
- ,onWindowActivate: function() {
- }
- ,onWindowClose: function() {
- }
- ,onWindowDeactivate: function() {
- }
- ,onWindowFocusIn: function() {
- }
- ,onWindowFocusOut: function() {
- }
- ,onWindowMove: function(x,y) {
- }
- ,onWindowResize: function(width,height) {
- }
- ,removeRenderer: function(renderer) {
- if(renderer != null && HxOverrides.indexOf(this.renderers,renderer,0) > -1) HxOverrides.remove(this.renderers,renderer);
- }
- ,removeWindow: function(window) {
- if(window != null && HxOverrides.indexOf(this.windows,window,0) > -1) {
- window.close();
- HxOverrides.remove(this.windows,window);
- }
- }
- ,render: function(context) {
- }
- ,update: function(deltaTime) {
- }
- ,get_renderer: function() {
- return this.renderers[0];
- }
- ,get_window: function() {
- return this.windows[0];
- }
- ,__class__: lime.app.Application
- ,__properties__: {get_window:"get_window",get_renderer:"get_renderer"}
- });
- lime.app.Event = function() {
- this.listeners = new Array();
- this.priorities = new Array();
- this.repeat = new Array();
- };
- $hxClasses["lime.app.Event"] = lime.app.Event;
- lime.app.Event.__name__ = ["lime","app","Event"];
- lime.app.Event.prototype = {
- add: function(listener,once,priority) {
- if(priority == null) priority = 0;
- if(once == null) once = false;
- var _g1 = 0;
- var _g = this.priorities.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(priority > this.priorities[i]) {
- this.listeners.splice(i,0,listener);
- this.priorities.splice(i,0,priority);
- this.repeat.splice(i,0,!once);
- return;
- }
- }
- this.listeners.push(listener);
- this.priorities.push(priority);
- this.repeat.push(!once);
- }
- ,remove: function(listener) {
- var index = HxOverrides.indexOf(this.listeners,listener,0);
- if(index > -1) {
- this.listeners.splice(index,1);
- this.priorities.splice(index,1);
- this.repeat.splice(index,1);
- }
- }
- ,__class__: lime.app.Event
- };
- lime.app.Preloader = function() {
- this.total = 0;
- this.loaded = 0;
- };
- $hxClasses["lime.app.Preloader"] = lime.app.Preloader;
- lime.app.Preloader.__name__ = ["lime","app","Preloader"];
- lime.app.Preloader.prototype = {
- create: function(config) {
- }
- ,load: function(urls,types) {
- var url = null;
- var _g1 = 0;
- var _g = urls.length;
- while(_g1 < _g) {
- var i = _g1++;
- url = urls[i];
- var _g2 = types[i];
- switch(_g2) {
- case "IMAGE":
- var image = new Image();
- lime.app.Preloader.images.set(url,image);
- image.onload = $bind(this,this.image_onLoad);
- image.onerror = $bind(this,this.handleLoadError);
- image.src = url + "?ver=" + GlobalVars.gameVersion;
- this.total++;
- break;
- case "BINARY":
- var loader = new lime.net.URLLoader();
- loader.set_dataFormat(lime.net.URLLoaderDataFormat.BINARY);
- lime.app.Preloader.loaders.set(url,loader);
- this.total++;
- break;
- case "TEXT":
- var urlLoader = { };
- urlLoader.dataFormat = openfl.net.URLLoaderDataFormat.BINARY;
- urlLoader.data = ApplicationMain.embeddedFiles.shift();
- var value = urlLoader;
- lime.app.Preloader.loaders.set(url,value);
- this.total++;
- break;
- case "FONT":
- this.total++;
- this.loadFont(url);
- break;
- default:
- }
- }
- var $it0 = lime.app.Preloader.loaders.keys();
- while( $it0.hasNext() ) {
- var url1 = $it0.next();
- var loader1 = lime.app.Preloader.loaders.get(url1);
- if(loader1.data == null) {
- loader1.onComplete.add($bind(this,this.loader_onComplete));
- loader1.load(new lime.net.URLRequest(url1));
- } else this.loader_onComplete(null);
- }
- if(this.total == 0) this.start();
- }
- ,loadFont: function(font) {
- var _g = this;
- if(window.document.fonts && window.document.fonts.load) window.document.fonts.load("1em '" + font + "'").then(function() {
- _g.loaded++;
- _g.update(_g.loaded,_g.total);
- if(_g.loaded == _g.total) _g.start();
- }); else {
- var node = window.document.createElement("span");
- node.innerHTML = "giItT1WQy@!-/#";
- var style = node.style;
- style.position = "absolute";
- style.left = "-10000px";
- style.top = "-10000px";
- style.fontSize = "300px";
- style.fontFamily = "sans-serif";
- style.fontVariant = "normal";
- style.fontStyle = "normal";
- style.fontWeight = "normal";
- style.letterSpacing = "0";
- window.document.body.appendChild(node);
- var width = node.offsetWidth;
- style.fontFamily = "'" + font + "', sans-serif";
- var interval = null;
- var found = false;
- var checkFont = function() {
- if(node.offsetWidth != width) {
- if(!found) {
- found = true;
- return false;
- }
- _g.loaded++;
- if(interval != null) window.clearInterval(interval);
- node.parentNode.removeChild(node);
- node = null;
- _g.update(_g.loaded,_g.total);
- if(_g.loaded == _g.total) _g.start();
- return true;
- }
- return false;
- };
- if(!checkFont()) interval = window.setInterval(checkFont,50);
- }
- }
- ,start: function() {
- if(this.onComplete != null) this.onComplete();
- }
- ,update: function(loaded,total) {
- }
- ,image_onLoad: function(_) {
- this.loaded++;
- this.update(this.loaded,this.total);
- if(this.loaded == this.total) this.start();
- }
- ,handleLoadError: function(e) {
- var target = e.target;
- var src = target.src;
- window.setTimeout(function() {
- target.src = src;
- },2000);
- }
- ,loader_onComplete: function(loader) {
- this.loaded++;
- this.update(this.loaded,this.total);
- if(this.loaded == this.total) this.start();
- }
- ,__class__: lime.app.Preloader
- };
- lime.audio = {};
- lime.audio.ALAudioContext = function() {
- this.EXPONENT_DISTANCE_CLAMPED = 53254;
- this.EXPONENT_DISTANCE = 53253;
- this.LINEAR_DISTANCE_CLAMPED = 53252;
- this.LINEAR_DISTANCE = 53251;
- this.INVERSE_DISTANCE_CLAMPED = 53250;
- this.INVERSE_DISTANCE = 53249;
- this.DISTANCE_MODEL = 53248;
- this.DOPPLER_VELOCITY = 49153;
- this.SPEED_OF_SOUND = 49155;
- this.DOPPLER_FACTOR = 49152;
- this.EXTENSIONS = 45060;
- this.RENDERER = 45059;
- this.VERSION = 45058;
- this.VENDOR = 45057;
- this.OUT_OF_MEMORY = 40965;
- this.INVALID_OPERATION = 40964;
- this.INVALID_VALUE = 40963;
- this.INVALID_ENUM = 40962;
- this.INVALID_NAME = 40961;
- this.NO_ERROR = 0;
- this.SIZE = 8196;
- this.CHANNELS = 8195;
- this.BITS = 8194;
- this.FREQUENCY = 8193;
- this.FORMAT_STEREO16 = 4355;
- this.FORMAT_STEREO8 = 4354;
- this.FORMAT_MONO16 = 4353;
- this.FORMAT_MONO8 = 4352;
- this.UNDETERMINED = 4144;
- this.STREAMING = 4137;
- this.STATIC = 4136;
- this.SOURCE_TYPE = 4135;
- this.BYTE_OFFSET = 4134;
- this.SAMPLE_OFFSET = 4133;
- this.SEC_OFFSET = 4132;
- this.MAX_DISTANCE = 4131;
- this.CONE_OUTER_GAIN = 4130;
- this.ROLLOFF_FACTOR = 4129;
- this.REFERENCE_DISTANCE = 4128;
- this.BUFFERS_PROCESSED = 4118;
- this.BUFFERS_QUEUED = 4117;
- this.STOPPED = 4116;
- this.PAUSED = 4115;
- this.PLAYING = 4114;
- this.INITIAL = 4113;
- this.SOURCE_STATE = 4112;
- this.ORIENTATION = 4111;
- this.MAX_GAIN = 4110;
- this.MIN_GAIN = 4109;
- this.GAIN = 4106;
- this.BUFFER = 4105;
- this.LOOPING = 4103;
- this.VELOCITY = 4102;
- this.DIRECTION = 4101;
- this.POSITION = 4100;
- this.PITCH = 4099;
- this.CONE_OUTER_ANGLE = 4098;
- this.CONE_INNER_ANGLE = 4097;
- this.SOURCE_RELATIVE = 514;
- this.TRUE = 1;
- this.FALSE = 0;
- this.NONE = 0;
- };
- $hxClasses["lime.audio.ALAudioContext"] = lime.audio.ALAudioContext;
- lime.audio.ALAudioContext.__name__ = ["lime","audio","ALAudioContext"];
- lime.audio.ALAudioContext.prototype = {
- bufferData: function(buffer,format,data,size,freq) {
- lime.audio.openal.AL.bufferData(buffer,format,data,size,freq);
- }
- ,buffer3f: function(buffer,param,value1,value2,value3) {
- lime.audio.openal.AL.buffer3f(buffer,param,value1,value2,value3);
- }
- ,buffer3i: function(buffer,param,value1,value2,value3) {
- lime.audio.openal.AL.buffer3i(buffer,param,value1,value2,value3);
- }
- ,bufferf: function(buffer,param,value) {
- lime.audio.openal.AL.bufferf(buffer,param,value);
- }
- ,bufferfv: function(buffer,param,values) {
- lime.audio.openal.AL.bufferfv(buffer,param,values);
- }
- ,bufferi: function(buffer,param,value) {
- lime.audio.openal.AL.bufferi(buffer,param,value);
- }
- ,bufferiv: function(buffer,param,values) {
- lime.audio.openal.AL.bufferiv(buffer,param,values);
- }
- ,deleteBuffer: function(buffer) {
- lime.audio.openal.AL.deleteBuffer(buffer);
- }
- ,deleteBuffers: function(buffers) {
- lime.audio.openal.AL.deleteBuffers(buffers);
- }
- ,deleteSource: function(source) {
- lime.audio.openal.AL.deleteSource(source);
- }
- ,deleteSources: function(sources) {
- lime.audio.openal.AL.deleteSources(sources);
- }
- ,disable: function(capability) {
- lime.audio.openal.AL.disable(capability);
- }
- ,distanceModel: function(distanceModel) {
- lime.audio.openal.AL.distanceModel(distanceModel);
- }
- ,dopplerFactor: function(value) {
- lime.audio.openal.AL.dopplerFactor(value);
- }
- ,dopplerVelocity: function(value) {
- lime.audio.openal.AL.dopplerVelocity(value);
- }
- ,enable: function(capability) {
- lime.audio.openal.AL.enable(capability);
- }
- ,genSource: function() {
- return lime.audio.openal.AL.genSource();
- }
- ,genSources: function(n) {
- return lime.audio.openal.AL.genSources(n);
- }
- ,genBuffer: function() {
- return lime.audio.openal.AL.genBuffer();
- }
- ,genBuffers: function(n) {
- return lime.audio.openal.AL.genBuffers(n);
- }
- ,getBoolean: function(param) {
- return lime.audio.openal.AL.getBoolean(param);
- }
- ,getBooleanv: function(param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getBooleanv(param,count);
- }
- ,getBuffer3f: function(buffer,param) {
- return lime.audio.openal.AL.getBuffer3f(buffer,param);
- }
- ,getBuffer3i: function(buffer,param) {
- return lime.audio.openal.AL.getBuffer3i(buffer,param);
- }
- ,getBufferf: function(buffer,param) {
- return lime.audio.openal.AL.getBufferf(buffer,param);
- }
- ,getBufferfv: function(buffer,param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getBufferfv(buffer,param,count);
- }
- ,getBufferi: function(buffer,param) {
- return lime.audio.openal.AL.getBufferi(buffer,param);
- }
- ,getBufferiv: function(buffer,param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getBufferiv(buffer,param,count);
- }
- ,getDouble: function(param) {
- return lime.audio.openal.AL.getDouble(param);
- }
- ,getDoublev: function(param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getDoublev(param,count);
- }
- ,getEnumValue: function(ename) {
- return lime.audio.openal.AL.getEnumValue(ename);
- }
- ,getError: function() {
- return lime.audio.openal.AL.getError();
- }
- ,getErrorString: function() {
- return lime.audio.openal.AL.getErrorString();
- }
- ,getFloat: function(param) {
- return lime.audio.openal.AL.getFloat(param);
- }
- ,getFloatv: function(param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getFloatv(param,count);
- }
- ,getInteger: function(param) {
- return lime.audio.openal.AL.getInteger(param);
- }
- ,getIntegerv: function(param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getIntegerv(param,count);
- }
- ,getListener3f: function(param) {
- return lime.audio.openal.AL.getListener3f(param);
- }
- ,getListener3i: function(param) {
- return lime.audio.openal.AL.getListener3i(param);
- }
- ,getListenerf: function(param) {
- return lime.audio.openal.AL.getListenerf(param);
- }
- ,getListenerfv: function(param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getListenerfv(param,count);
- }
- ,getListeneri: function(param) {
- return lime.audio.openal.AL.getListeneri(param);
- }
- ,getListeneriv: function(param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getListeneriv(param,count);
- }
- ,getProcAddress: function(fname) {
- return lime.audio.openal.AL.getProcAddress(fname);
- }
- ,getSource3f: function(source,param) {
- return lime.audio.openal.AL.getSource3f(source,param);
- }
- ,getSourcef: function(source,param) {
- return lime.audio.openal.AL.getSourcef(source,param);
- }
- ,getSource3i: function(source,param) {
- return lime.audio.openal.AL.getSource3i(source,param);
- }
- ,getSourcefv: function(source,param) {
- return lime.audio.openal.AL.getSourcefv(source,param);
- }
- ,getSourcei: function(source,param) {
- return lime.audio.openal.AL.getSourcei(source,param);
- }
- ,getSourceiv: function(source,param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.AL.getSourceiv(source,param,count);
- }
- ,getString: function(param) {
- return lime.audio.openal.AL.getString(param);
- }
- ,isBuffer: function(buffer) {
- return lime.audio.openal.AL.isBuffer(buffer);
- }
- ,isEnabled: function(capability) {
- return lime.audio.openal.AL.isEnabled(capability);
- }
- ,isExtensionPresent: function(extname) {
- return lime.audio.openal.AL.isExtensionPresent(extname);
- }
- ,isSource: function(source) {
- return lime.audio.openal.AL.isSource(source);
- }
- ,listener3f: function(param,value1,value2,value3) {
- lime.audio.openal.AL.listener3f(param,value1,value2,value3);
- }
- ,listener3i: function(param,value1,value2,value3) {
- lime.audio.openal.AL.listener3i(param,value1,value2,value3);
- }
- ,listenerf: function(param,value) {
- lime.audio.openal.AL.listenerf(param,value);
- }
- ,listenerfv: function(param,values) {
- lime.audio.openal.AL.listenerfv(param,values);
- }
- ,listeneri: function(param,value) {
- lime.audio.openal.AL.listeneri(param,value);
- }
- ,listeneriv: function(param,values) {
- lime.audio.openal.AL.listeneriv(param,values);
- }
- ,source3f: function(source,param,value1,value2,value3) {
- lime.audio.openal.AL.source3f(source,param,value1,value2,value3);
- }
- ,source3i: function(source,param,value1,value2,value3) {
- lime.audio.openal.AL.source3i(source,param,value1,value2,value3);
- }
- ,sourcef: function(source,param,value) {
- lime.audio.openal.AL.sourcef(source,param,value);
- }
- ,sourcefv: function(source,param,values) {
- lime.audio.openal.AL.sourcefv(source,param,values);
- }
- ,sourcei: function(source,param,value) {
- lime.audio.openal.AL.sourcei(source,param,value);
- }
- ,sourceiv: function(source,param,values) {
- lime.audio.openal.AL.sourceiv(source,param,values);
- }
- ,sourcePlay: function(source) {
- lime.audio.openal.AL.sourcePlay(source);
- }
- ,sourcePlayv: function(sources) {
- lime.audio.openal.AL.sourcePlayv(sources);
- }
- ,sourceStop: function(source) {
- lime.audio.openal.AL.sourceStop(source);
- }
- ,sourceStopv: function(sources) {
- lime.audio.openal.AL.sourceStopv(sources);
- }
- ,sourceRewind: function(source) {
- lime.audio.openal.AL.sourceRewind(source);
- }
- ,sourceRewindv: function(sources) {
- lime.audio.openal.AL.sourceRewindv(sources);
- }
- ,sourcePause: function(source) {
- lime.audio.openal.AL.sourcePause(source);
- }
- ,sourcePausev: function(sources) {
- lime.audio.openal.AL.sourcePausev(sources);
- }
- ,sourceQueueBuffer: function(source,buffer) {
- lime.audio.openal.AL.sourceQueueBuffer(source,buffer);
- }
- ,sourceQueueBuffers: function(source,nb,buffers) {
- lime.audio.openal.AL.sourceQueueBuffers(source,nb,buffers);
- }
- ,sourceUnqueueBuffer: function(source) {
- return lime.audio.openal.AL.sourceUnqueueBuffer(source);
- }
- ,sourceUnqueueBuffers: function(source,nb) {
- return lime.audio.openal.AL.sourceUnqueueBuffers(source,nb);
- }
- ,speedOfSound: function(value) {
- lime.audio.openal.AL.speedOfSound(value);
- }
- ,__class__: lime.audio.ALAudioContext
- };
- lime.audio.ALCAudioContext = function() {
- this.ALL_DEVICES_SPECIFIER = 4115;
- this.DEFAULT_ALL_DEVICES_SPECIFIER = 4114;
- this.ENUMERATE_ALL_EXT = 1;
- this.EXTENSIONS = 4102;
- this.DEVICE_SPECIFIER = 4101;
- this.DEFAULT_DEVICE_SPECIFIER = 4100;
- this.ALL_ATTRIBUTES = 4099;
- this.ATTRIBUTES_SIZE = 4098;
- this.OUT_OF_MEMORY = 40965;
- this.INVALID_VALUE = 40964;
- this.INVALID_ENUM = 40963;
- this.INVALID_CONTEXT = 40962;
- this.INVALID_DEVICE = 40961;
- this.NO_ERROR = 0;
- this.STEREO_SOURCES = 4113;
- this.MONO_SOURCES = 4112;
- this.SYNC = 4105;
- this.REFRESH = 4104;
- this.FREQUENCY = 4103;
- this.TRUE = 1;
- this.FALSE = 0;
- };
- $hxClasses["lime.audio.ALCAudioContext"] = lime.audio.ALCAudioContext;
- lime.audio.ALCAudioContext.__name__ = ["lime","audio","ALCAudioContext"];
- lime.audio.ALCAudioContext.prototype = {
- closeDevice: function(device) {
- return lime.audio.openal.ALC.closeDevice(device);
- }
- ,createContext: function(device,attrlist) {
- return lime.audio.openal.ALC.createContext(device,attrlist);
- }
- ,destroyContext: function(context) {
- lime.audio.openal.ALC.destroyContext(context);
- }
- ,getContextsDevice: function(context) {
- return lime.audio.openal.ALC.getContextsDevice(context);
- }
- ,getCurrentContext: function() {
- return lime.audio.openal.ALC.getCurrentContext();
- }
- ,getError: function(device) {
- return lime.audio.openal.ALC.getError(device);
- }
- ,getErrorString: function(device) {
- return lime.audio.openal.ALC.getErrorString(device);
- }
- ,getIntegerv: function(device,param,count) {
- if(count == null) count = 1;
- return lime.audio.openal.ALC.getIntegerv(device,param,count);
- }
- ,getString: function(device,param) {
- return lime.audio.openal.ALC.getString(device,param);
- }
- ,makeContextCurrent: function(context) {
- return lime.audio.openal.ALC.makeContextCurrent(context);
- }
- ,openDevice: function(deviceName) {
- return lime.audio.openal.ALC.openDevice(deviceName);
- }
- ,processContext: function(context) {
- lime.audio.openal.ALC.processContext(context);
- }
- ,suspendContext: function(context) {
- lime.audio.openal.ALC.suspendContext(context);
- }
- ,__class__: lime.audio.ALCAudioContext
- };
- lime.audio.AudioBuffer = function() {
- this.id = 0;
- };
- $hxClasses["lime.audio.AudioBuffer"] = lime.audio.AudioBuffer;
- lime.audio.AudioBuffer.__name__ = ["lime","audio","AudioBuffer"];
- lime.audio.AudioBuffer.fromBytes = function(bytes) {
- return null;
- };
- lime.audio.AudioBuffer.fromFile = function(path) {
- return null;
- };
- lime.audio.AudioBuffer.fromURL = function(url,handler) {
- };
- lime.audio.AudioBuffer.prototype = {
- dispose: function() {
- }
- ,__class__: lime.audio.AudioBuffer
- };
- lime.audio.AudioContext = $hxClasses["lime.audio.AudioContext"] = { __ename__ : ["lime","audio","AudioContext"], __constructs__ : ["OPENAL","HTML5","WEB","FLASH","CUSTOM"] };
- lime.audio.AudioContext.OPENAL = function(alc,al) { var $x = ["OPENAL",0,alc,al]; $x.__enum__ = lime.audio.AudioContext; $x.toString = $estr; return $x; };
- lime.audio.AudioContext.HTML5 = function(context) { var $x = ["HTML5",1,context]; $x.__enum__ = lime.audio.AudioContext; $x.toString = $estr; return $x; };
- lime.audio.AudioContext.WEB = function(context) { var $x = ["WEB",2,context]; $x.__enum__ = lime.audio.AudioContext; $x.toString = $estr; return $x; };
- lime.audio.AudioContext.FLASH = function(context) { var $x = ["FLASH",3,context]; $x.__enum__ = lime.audio.AudioContext; $x.toString = $estr; return $x; };
- lime.audio.AudioContext.CUSTOM = function(data) { var $x = ["CUSTOM",4,data]; $x.__enum__ = lime.audio.AudioContext; $x.toString = $estr; return $x; };
- lime.audio.AudioManager = function() { };
- $hxClasses["lime.audio.AudioManager"] = lime.audio.AudioManager;
- lime.audio.AudioManager.__name__ = ["lime","audio","AudioManager"];
- lime.audio.AudioManager.context = null;
- lime.audio.AudioManager.init = function(context) {
- if(lime.audio.AudioManager.context == null) {
- if(context == null) try {
- window.AudioContext = window.AudioContext || window.webkitAudioContext;;
- lime.audio.AudioManager.context = lime.audio.AudioContext.WEB(new AudioContext ());
- } catch( e ) {
- lime.audio.AudioManager.context = lime.audio.AudioContext.HTML5(new lime.audio.HTML5AudioContext());
- } else lime.audio.AudioManager.context = context;
- }
- };
- lime.audio.AudioManager.resume = function() {
- if(lime.audio.AudioManager.context != null) {
- var _g = lime.audio.AudioManager.context;
- switch(_g[1]) {
- case 0:
- var al = _g[3];
- var alc = _g[2];
- alc.processContext(alc.getCurrentContext());
- break;
- default:
- }
- }
- };
- lime.audio.AudioManager.shutdown = function() {
- if(lime.audio.AudioManager.context != null) {
- var _g = lime.audio.AudioManager.context;
- switch(_g[1]) {
- case 0:
- var al = _g[3];
- var alc = _g[2];
- var currentContext = alc.getCurrentContext();
- if(currentContext != null) {
- var device = alc.getContextsDevice(currentContext);
- alc.makeContextCurrent(null);
- alc.destroyContext(currentContext);
- alc.closeDevice(device);
- }
- break;
- default:
- }
- }
- };
- lime.audio.AudioManager.suspend = function() {
- if(lime.audio.AudioManager.context != null) {
- var _g = lime.audio.AudioManager.context;
- switch(_g[1]) {
- case 0:
- var al = _g[3];
- var alc = _g[2];
- alc.suspendContext(alc.getCurrentContext());
- break;
- default:
- }
- }
- };
- lime.audio.AudioSource = function(buffer) {
- this.onComplete = new lime.app.Event();
- this.buffer = buffer;
- this.id = 0;
- this.pauseTime = 0;
- if(buffer != null) this.init();
- };
- $hxClasses["lime.audio.AudioSource"] = lime.audio.AudioSource;
- lime.audio.AudioSource.__name__ = ["lime","audio","AudioSource"];
- lime.audio.AudioSource.prototype = {
- init: function() {
- {
- var _g = lime.audio.AudioManager.context;
- switch(_g[1]) {
- case 0:
- var al = _g[3];
- var alc = _g[2];
- if((function($this) {
- var $r;
- var $int = $this.buffer.id;
- $r = $int < 0?4294967296.0 + $int:$int + 0.0;
- return $r;
- }(this)) == 0) {
- this.buffer.id = al.genBuffer();
- var format = 0;
- if(this.buffer.channels == 1) {
- if(this.buffer.bitsPerSample == 8) format = al.FORMAT_MONO8; else if(this.buffer.bitsPerSample == 16) format = al.FORMAT_MONO16;
- } else if(this.buffer.channels == 2) {
- if(this.buffer.bitsPerSample == 8) format = al.FORMAT_STEREO8; else if(this.buffer.bitsPerSample == 16) format = al.FORMAT_STEREO16;
- }
- al.bufferData(this.buffer.id,format,this.buffer.data,this.buffer.data.length,this.buffer.sampleRate);
- }
- this.id = al.genSource();
- al.sourcei(this.id,al.BUFFER,this.buffer.id);
- break;
- default:
- }
- }
- }
- ,play: function() {
- }
- ,pause: function() {
- }
- ,stop: function() {
- }
- ,get_gain: function() {
- return 1;
- }
- ,set_gain: function(value) {
- return 1;
- }
- ,get_timeOffset: function() {
- return 0;
- }
- ,set_timeOffset: function(value) {
- return 0;
- }
- ,__class__: lime.audio.AudioSource
- ,__properties__: {set_timeOffset:"set_timeOffset",get_timeOffset:"get_timeOffset",set_gain:"set_gain",get_gain:"get_gain"}
- };
- lime.audio.FlashAudioContext = function() {
- };
- $hxClasses["lime.audio.FlashAudioContext"] = lime.audio.FlashAudioContext;
- lime.audio.FlashAudioContext.__name__ = ["lime","audio","FlashAudioContext"];
- lime.audio.FlashAudioContext.prototype = {
- createBuffer: function(stream,context) {
- return null;
- }
- ,getBytesLoaded: function(buffer) {
- return 0;
- }
- ,getBytesTotal: function(buffer) {
- return 0;
- }
- ,getID3: function(buffer) {
- return null;
- }
- ,getIsBuffering: function(buffer) {
- return false;
- }
- ,getIsURLInaccessible: function(buffer) {
- return false;
- }
- ,getLength: function(buffer) {
- return 0;
- }
- ,getURL: function(buffer) {
- return null;
- }
- ,close: function(buffer) {
- }
- ,extract: function(buffer,target,length,startPosition) {
- if(startPosition == null) startPosition = -1;
- return 0;
- }
- ,load: function(buffer,stream,context) {
- }
- ,loadCompressedDataFromByteArray: function(buffer,bytes,bytesLength) {
- }
- ,loadPCMFromByteArray: function(buffer,bytes,samples,format,stereo,sampleRate) {
- if(sampleRate == null) sampleRate = 44100;
- if(stereo == null) stereo = true;
- }
- ,play: function(buffer,startTime,loops,sndTransform) {
- if(loops == null) loops = 0;
- if(startTime == null) startTime = 0;
- return null;
- }
- ,__class__: lime.audio.FlashAudioContext
- };
- lime.audio.HTML5AudioContext = function() {
- this.NETWORK_NO_SOURCE = 3;
- this.NETWORK_LOADING = 2;
- this.NETWORK_IDLE = 1;
- this.NETWORK_EMPTY = 0;
- this.HAVE_NOTHING = 0;
- this.HAVE_METADATA = 1;
- this.HAVE_FUTURE_DATA = 3;
- this.HAVE_ENOUGH_DATA = 4;
- this.HAVE_CURRENT_DATA = 2;
- };
- $hxClasses["lime.audio.HTML5AudioContext"] = lime.audio.HTML5AudioContext;
- lime.audio.HTML5AudioContext.__name__ = ["lime","audio","HTML5AudioContext"];
- lime.audio.HTML5AudioContext.prototype = {
- canPlayType: function(buffer,type) {
- if(buffer.src != null) return buffer.src.canPlayType(type);
- return null;
- }
- ,createBuffer: function(urlString) {
- var buffer = new lime.audio.AudioBuffer();
- buffer.src = new Audio();
- buffer.src.src = urlString;
- return buffer;
- }
- ,getAudioDecodedByteCount: function(buffer) {
- if(buffer.src != null) return buffer.src.audioDecodedByteCount;
- return 0;
- }
- ,getAutoplay: function(buffer) {
- if(buffer.src != null) return buffer.src.autoplay;
- return false;
- }
- ,getBuffered: function(buffer) {
- if(buffer.src != null) return buffer.src.buffered;
- return null;
- }
- ,getController: function(buffer) {
- if(buffer.src != null) return buffer.src.controller;
- return null;
- }
- ,getCurrentSrc: function(buffer) {
- if(buffer.src != null) return buffer.src.currentSrc;
- return null;
- }
- ,getCurrentTime: function(buffer) {
- if(buffer.src != null) return buffer.src.currentTime;
- return 0;
- }
- ,getDefaultPlaybackRate: function(buffer) {
- if(buffer.src != null) return buffer.src.defaultPlaybackRate;
- return 1;
- }
- ,getDuration: function(buffer) {
- if(buffer.src != null) return buffer.src.duration;
- return 0;
- }
- ,getEnded: function(buffer) {
- if(buffer.src != null) return buffer.src.ended;
- return false;
- }
- ,getError: function(buffer) {
- if(buffer.src != null) return buffer.src.error;
- return null;
- }
- ,getInitialTime: function(buffer) {
- if(buffer.src != null) return buffer.src.initialTime;
- return 0;
- }
- ,getLoop: function(buffer) {
- if(buffer.src != null) return buffer.src.loop;
- return false;
- }
- ,getMediaGroup: function(buffer) {
- if(buffer.src != null) return buffer.src.mediaGroup;
- return null;
- }
- ,getMuted: function(buffer) {
- if(buffer.src != null) return buffer.src.muted;
- return false;
- }
- ,getNetworkState: function(buffer) {
- if(buffer.src != null) return buffer.src.networkState;
- return 0;
- }
- ,getPaused: function(buffer) {
- if(buffer.src != null) return buffer.src.paused;
- return false;
- }
- ,getPlaybackRate: function(buffer) {
- if(buffer.src != null) return buffer.src.playbackRate;
- return 1;
- }
- ,getPlayed: function(buffer) {
- if(buffer.src != null) return buffer.src.played;
- return null;
- }
- ,getPreload: function(buffer) {
- if(buffer.src != null) return buffer.src.preload;
- return null;
- }
- ,getReadyState: function(buffer) {
- if(buffer.src != null) return buffer.src.readyState;
- return 0;
- }
- ,getSeekable: function(buffer) {
- if(buffer.src != null) return buffer.src.seekable;
- return null;
- }
- ,getSeeking: function(buffer) {
- if(buffer.src != null) return buffer.src.seeking;
- return false;
- }
- ,getSrc: function(buffer) {
- if(buffer.src != null) return buffer.src.src;
- return null;
- }
- ,getStartTime: function(buffer) {
- if(buffer.src != null) return buffer.src.playbackRate;
- return 0;
- }
- ,getVolume: function(buffer) {
- if(buffer.src != null) return buffer.src.volume;
- return 1;
- }
- ,load: function(buffer) {
- if(buffer.src != null) return buffer.src.load();
- }
- ,pause: function(buffer) {
- if(buffer.src != null) return buffer.src.pause();
- }
- ,play: function(buffer) {
- if(buffer.src != null) return buffer.src.play();
- }
- ,setAutoplay: function(buffer,value) {
- if(buffer.src != null) buffer.src.autoplay = value;
- }
- ,setController: function(buffer,value) {
- if(buffer.src != null) buffer.src.controller = value;
- }
- ,setCurrentTime: function(buffer,value) {
- if(buffer.src != null) buffer.src.currentTime = value;
- }
- ,setDefaultPlaybackRate: function(buffer,value) {
- if(buffer.src != null) buffer.src.defaultPlaybackRate = value;
- }
- ,setLoop: function(buffer,value) {
- if(buffer.src != null) buffer.src.loop = value;
- }
- ,setMediaGroup: function(buffer,value) {
- if(buffer.src != null) buffer.src.mediaGroup = value;
- }
- ,setMuted: function(buffer,value) {
- if(buffer.src != null) buffer.src.muted = value;
- }
- ,setPlaybackRate: function(buffer,value) {
- if(buffer.src != null) buffer.src.playbackRate = value;
- }
- ,setPreload: function(buffer,value) {
- if(buffer.src != null) buffer.src.preload = value;
- }
- ,setSrc: function(buffer,value) {
- if(buffer.src != null) buffer.src.src = value;
- }
- ,setVolume: function(buffer,value) {
- if(buffer.src != null) buffer.src.volume = value;
- }
- ,__class__: lime.audio.HTML5AudioContext
- };
- lime.audio.openal = {};
- lime.audio.openal.AL = function() { };
- $hxClasses["lime.audio.openal.AL"] = lime.audio.openal.AL;
- lime.audio.openal.AL.__name__ = ["lime","audio","openal","AL"];
- lime.audio.openal.AL.bufferData = function(buffer,format,data,size,freq) {
- };
- lime.audio.openal.AL.buffer3f = function(buffer,param,value1,value2,value3) {
- };
- lime.audio.openal.AL.buffer3i = function(buffer,param,value1,value2,value3) {
- };
- lime.audio.openal.AL.bufferf = function(buffer,param,value) {
- };
- lime.audio.openal.AL.bufferfv = function(buffer,param,values) {
- };
- lime.audio.openal.AL.bufferi = function(buffer,param,value) {
- };
- lime.audio.openal.AL.bufferiv = function(buffer,param,values) {
- };
- lime.audio.openal.AL.deleteBuffer = function(buffer) {
- };
- lime.audio.openal.AL.deleteBuffers = function(buffers) {
- };
- lime.audio.openal.AL.deleteSource = function(source) {
- };
- lime.audio.openal.AL.deleteSources = function(sources) {
- };
- lime.audio.openal.AL.disable = function(capability) {
- };
- lime.audio.openal.AL.distanceModel = function(distanceModel) {
- };
- lime.audio.openal.AL.dopplerFactor = function(value) {
- };
- lime.audio.openal.AL.dopplerVelocity = function(value) {
- };
- lime.audio.openal.AL.enable = function(capability) {
- };
- lime.audio.openal.AL.genSource = function() {
- return 0;
- };
- lime.audio.openal.AL.genSources = function(n) {
- return null;
- };
- lime.audio.openal.AL.genBuffer = function() {
- return 0;
- };
- lime.audio.openal.AL.genBuffers = function(n) {
- return null;
- };
- lime.audio.openal.AL.getBoolean = function(param) {
- return false;
- };
- lime.audio.openal.AL.getBooleanv = function(param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getBuffer3f = function(buffer,param) {
- return null;
- };
- lime.audio.openal.AL.getBuffer3i = function(buffer,param) {
- return null;
- };
- lime.audio.openal.AL.getBufferf = function(buffer,param) {
- return 0;
- };
- lime.audio.openal.AL.getBufferfv = function(buffer,param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getBufferi = function(buffer,param) {
- return 0;
- };
- lime.audio.openal.AL.getBufferiv = function(buffer,param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getDouble = function(param) {
- return 0;
- };
- lime.audio.openal.AL.getDoublev = function(param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getEnumValue = function(ename) {
- return 0;
- };
- lime.audio.openal.AL.getError = function() {
- return 0;
- };
- lime.audio.openal.AL.getErrorString = function() {
- var _g = lime.audio.openal.AL.getError();
- switch(_g) {
- case 40961:
- return "INVALID_NAME: Invalid parameter name";
- case 40962:
- return "INVALID_ENUM: Invalid enum value";
- case 40963:
- return "INVALID_VALUE: Invalid parameter value";
- case 40964:
- return "INVALID_OPERATION: Illegal operation or call";
- case 40965:
- return "OUT_OF_MEMORY: OpenAL has run out of memory";
- default:
- return "";
- }
- };
- lime.audio.openal.AL.getFloat = function(param) {
- return 0;
- };
- lime.audio.openal.AL.getFloatv = function(param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getInteger = function(param) {
- return 0;
- };
- lime.audio.openal.AL.getIntegerv = function(param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getListener3f = function(param) {
- return null;
- };
- lime.audio.openal.AL.getListener3i = function(param) {
- return null;
- };
- lime.audio.openal.AL.getListenerf = function(param) {
- return 0;
- };
- lime.audio.openal.AL.getListenerfv = function(param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getListeneri = function(param) {
- return 0;
- };
- lime.audio.openal.AL.getListeneriv = function(param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getProcAddress = function(fname) {
- return null;
- };
- lime.audio.openal.AL.getSource3f = function(source,param) {
- return null;
- };
- lime.audio.openal.AL.getSourcef = function(source,param) {
- return 0;
- };
- lime.audio.openal.AL.getSource3i = function(source,param) {
- return null;
- };
- lime.audio.openal.AL.getSourcefv = function(source,param) {
- return null;
- };
- lime.audio.openal.AL.getSourcei = function(source,param) {
- return 0;
- };
- lime.audio.openal.AL.getSourceiv = function(source,param,count) {
- if(count == null) count = 1;
- return null;
- };
- lime.audio.openal.AL.getString = function(param) {
- return null;
- };
- lime.audio.openal.AL.isBuffer = function(buffer) {
- return false;
- };
- lime.audio.openal.AL.isEnabled = function(capability) {
- return false;
- };
- lime.audio.openal.AL.isExtensionPresent = function(extname) {
- return false;
- };
- lime.audio.openal.AL.isSource = function(source) {
- return false;
- };
- lime.audio.openal.AL.listener3f = function(param,value1,value2,value3) {
- };
- lime.audio.openal.AL.listener3i = function(param,value1,value2,value3) {
- };
- lime.audio.openal.AL.listenerf = function(param,value) {
- };
- lime.audio.openal.AL.listenerfv = function(param,values) {
- };
- lime.audio.openal.AL.listeneri = function(param,value) {
- };
- lime.audio.openal.AL.listeneriv = function(param,values) {
- };
- lime.audio.openal.AL.source3f = function(source,param,value1,value2,value3) {
- };
- lime.audio.openal.AL.source3i = function(source,param,value1,value2,value3) {
- };
- lime.audio.openal.AL.sourcef = function(source,param,value) {
- };
- lime.audio.openal.AL.sourcefv = function(source,param,values) {
- };
- lime.audio.openal.AL.sourcei = function(source,param,value) {
- };
- lime.audio.openal.AL.sourceiv = function(source,param,values) {
- };
- lime.audio.openal.AL.sourcePlay = function(source) {
- };
- lime.audio.openal.AL.sourcePlayv = function(sources) {
- };
- lime.audio.openal.AL.sourceStop = function(source) {
- };
- lime.audio.openal.AL.sourceStopv = function(sources) {
- };
- lime.audio.openal.AL.sourceRewind = function(source) {
- };
- lime.audio.openal.AL.sourceRewindv = function(sources) {
- };
- lime.audio.openal.AL.sourcePause = function(source) {
- };
- lime.audio.openal.AL.sourcePausev = function(sources) {
- };
- lime.audio.openal.AL.sourceQueueBuffer = function(source,buffer) {
- };
- lime.audio.openal.AL.sourceQueueBuffers = function(source,nb,buffers) {
- };
- lime.audio.openal.AL.sourceUnqueueBuffer = function(source) {
- return 0;
- };
- lime.audio.openal.AL.sourceUnqueueBuffers = function(source,nb) {
- return null;
- };
- lime.audio.openal.AL.speedOfSound = function(value) {
- };
- lime.audio.openal.ALC = function() { };
- $hxClasses["lime.audio.openal.ALC"] = lime.audio.openal.ALC;
- lime.audio.openal.ALC.__name__ = ["lime","audio","openal","ALC"];
- lime.audio.openal.ALC.closeDevice = function(device) {
- return false;
- };
- lime.audio.openal.ALC.createContext = function(device,attrlist) {
- return null;
- };
- lime.audio.openal.ALC.destroyContext = function(context) {
- };
- lime.audio.openal.ALC.getContextsDevice = function(context) {
- return null;
- };
- lime.audio.openal.ALC.getCurrentContext = function() {
- return null;
- };
- lime.audio.openal.ALC.getError = function(device) {
- return 0;
- };
- lime.audio.openal.ALC.getErrorString = function(device) {
- var _g = lime.audio.openal.ALC.getError(device);
- switch(_g) {
- case 40961:
- return "INVALID_DEVICE: Invalid device (or no device?)";
- case 40962:
- return "INVALID_CONTEXT: Invalid context (or no context?)";
- case 40963:
- return "INVALID_ENUM: Invalid enum value";
- case 40964:
- return "INVALID_VALUE: Invalid param value";
- case 40965:
- return "OUT_OF_MEMORY: OpenAL has run out of memory";
- default:
- return "";
- }
- };
- lime.audio.openal.ALC.getIntegerv = function(device,param,size) {
- return null;
- };
- lime.audio.openal.ALC.getString = function(device,param) {
- return null;
- };
- lime.audio.openal.ALC.makeContextCurrent = function(context) {
- return false;
- };
- lime.audio.openal.ALC.openDevice = function(deviceName) {
- return null;
- };
- lime.audio.openal.ALC.processContext = function(context) {
- };
- lime.audio.openal.ALC.suspendContext = function(context) {
- };
- lime.audio.openal._ALContext = {};
- lime.audio.openal._ALContext.ALContext_Impl_ = function() { };
- $hxClasses["lime.audio.openal._ALContext.ALContext_Impl_"] = lime.audio.openal._ALContext.ALContext_Impl_;
- lime.audio.openal._ALContext.ALContext_Impl_.__name__ = ["lime","audio","openal","_ALContext","ALContext_Impl_"];
- lime.audio.openal._ALContext.ALContext_Impl_._new = function(handle) {
- return handle;
- };
- lime.audio.openal._ALDevice = {};
- lime.audio.openal._ALDevice.ALDevice_Impl_ = function() { };
- $hxClasses["lime.audio.openal._ALDevice.ALDevice_Impl_"] = lime.audio.openal._ALDevice.ALDevice_Impl_;
- lime.audio.openal._ALDevice.ALDevice_Impl_.__name__ = ["lime","audio","openal","_ALDevice","ALDevice_Impl_"];
- lime.audio.openal._ALDevice.ALDevice_Impl_._new = function(handle) {
- return handle;
- };
- lime.graphics = {};
- lime.graphics.ConsoleRenderContext = function() {
- };
- $hxClasses["lime.graphics.ConsoleRenderContext"] = lime.graphics.ConsoleRenderContext;
- lime.graphics.ConsoleRenderContext.__name__ = ["lime","graphics","ConsoleRenderContext"];
- lime.graphics.ConsoleRenderContext.prototype = {
- clear: function() {
- }
- ,clearColor: function(r,g,b,a) {
- }
- ,clearDepth: function(depth) {
- }
- ,clearStencil: function(stencil) {
- }
- ,__class__: lime.graphics.ConsoleRenderContext
- };
- lime.graphics.FlashRenderContext = function() {
- };
- $hxClasses["lime.graphics.FlashRenderContext"] = lime.graphics.FlashRenderContext;
- lime.graphics.FlashRenderContext.__name__ = ["lime","graphics","FlashRenderContext"];
- lime.graphics.FlashRenderContext.prototype = {
- addChild: function(child) {
- return null;
- }
- ,addChildAt: function(child,index) {
- return null;
- }
- ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) {
- if(useWeakReference == null) useWeakReference = false;
- if(priority == null) priority = 0;
- if(useCapture == null) useCapture = false;
- }
- ,areInaccessibleObjectsUnderPoint: function(point) {
- return false;
- }
- ,contains: function(child) {
- return false;
- }
- ,dispatchEvent: function(event) {
- return false;
- }
- ,getBounds: function(targetCoordinateSpace) {
- return null;
- }
- ,getChildAt: function(index) {
- return null;
- }
- ,getChildByName: function(name) {
- return null;
- }
- ,getChildIndex: function(child) {
- return 0;
- }
- ,getObjectsUnderPoint: function(point) {
- return null;
- }
- ,getRect: function(targetCoordinateSpace) {
- return null;
- }
- ,globalToLocal: function(point) {
- return null;
- }
- ,globalToLocal3D: function(point) {
- return null;
- }
- ,hasEventListener: function(type) {
- return false;
- }
- ,hitTestObject: function(obj) {
- return false;
- }
- ,hitTestPoint: function(x,y,shapeFlag) {
- if(shapeFlag == null) shapeFlag = false;
- return false;
- }
- ,local3DToGlobal: function(point3d) {
- return null;
- }
- ,localToGlobal: function(point) {
- return null;
- }
- ,removeChild: function(child) {
- return null;
- }
- ,removeChildAt: function(index) {
- return null;
- }
- ,removeChildren: function(beginIndex,endIndex) {
- if(endIndex == null) endIndex = 2147483647;
- if(beginIndex == null) beginIndex = 0;
- }
- ,removeEventListener: function(type,listener,useCapture) {
- if(useCapture == null) useCapture = false;
- }
- ,requestSoftKeyboard: function() {
- return false;
- }
- ,setChildIndex: function(child,index) {
- }
- ,startDrag: function(lockCenter,bounds) {
- if(lockCenter == null) lockCenter = false;
- }
- ,startTouchDrag: function(touchPointID,lockCenter,bounds) {
- if(lockCenter == null) lockCenter = false;
- }
- ,stopAllMovieClips: function() {
- }
- ,stopDrag: function() {
- }
- ,stopTouchDrag: function(touchPointID) {
- }
- ,swapChildren: function(child1,child2) {
- }
- ,swapChildrenAt: function(index1,index2) {
- }
- ,toString: function() {
- return null;
- }
- ,willTrigger: function(type) {
- return false;
- }
- ,__class__: lime.graphics.FlashRenderContext
- };
- lime.graphics.Font = function(fontName) {
- this.fontName = fontName;
- this.glyphs = new haxe.ds.IntMap();
- };
- $hxClasses["lime.graphics.Font"] = lime.graphics.Font;
- lime.graphics.Font.__name__ = ["lime","graphics","Font"];
- lime.graphics.Font.fromBytes = function(bytes) {
- var font = new lime.graphics.Font();
- return font;
- };
- lime.graphics.Font.fromFile = function(path) {
- var font = new lime.graphics.Font();
- font.__fromFile(path);
- return font;
- };
- lime.graphics.Font.prototype = {
- createImage: function() {
- this.glyphs = new haxe.ds.IntMap();
- return null;
- }
- ,decompose: function() {
- return null;
- }
- ,loadRange: function(size,start,end) {
- }
- ,loadGlyphs: function(size,glyphs) {
- if(glyphs == null) glyphs = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^`'\"/\\&*()[]{}<>|:;_-+=?,. ";
- }
- ,__fromFile: function(path) {
- this.__fontPath = path;
- }
- ,__class__: lime.graphics.Font
- };
- lime.graphics.GlyphRect = function(x,y,width,height,xOffset,yOffset) {
- if(yOffset == null) yOffset = 0;
- if(xOffset == null) xOffset = 0;
- this.x = x;
- this.y = y;
- this.xOffset = xOffset;
- this.yOffset = yOffset;
- this.width = width;
- this.height = height;
- };
- $hxClasses["lime.graphics.GlyphRect"] = lime.graphics.GlyphRect;
- lime.graphics.GlyphRect.__name__ = ["lime","graphics","GlyphRect"];
- lime.graphics.GlyphRect.prototype = {
- __class__: lime.graphics.GlyphRect
- };
- lime.graphics.Image = function(buffer,offsetX,offsetY,width,height,color,type) {
- if(height == null) height = 0;
- if(width == null) width = 0;
- if(offsetY == null) offsetY = 0;
- if(offsetX == null) offsetX = 0;
- this.offsetX = offsetX;
- this.offsetY = offsetY;
- this.width = width;
- this.height = height;
- if(type == null) {
- if(lime.app.Application.current != null && lime.app.Application.current.renderers[0] != null) {
- var _g = lime.app.Application.current.renderers[0].context;
- switch(_g[1]) {
- case 2:case 1:
- this.type = lime.graphics.ImageType.CANVAS;
- break;
- case 3:
- this.type = lime.graphics.ImageType.FLASH;
- break;
- default:
- this.type = lime.graphics.ImageType.DATA;
- }
- } else this.type = lime.graphics.ImageType.DATA;
- } else this.type = type;
- if(buffer == null) {
- if(width > 0 && height > 0) {
- var _g1 = this.type;
- switch(_g1[1]) {
- case 0:
- this.buffer = new lime.graphics.ImageBuffer(null,width,height);
- lime.graphics.utils.ImageCanvasUtil.createCanvas(this,width,height);
- if(color != null) this.fillRect(new lime.math.Rectangle(0,0,width,height),color);
- break;
- case 1:
- this.buffer = new lime.graphics.ImageBuffer(new Uint8Array(width * height * 4),width,height);
- if(color != null) this.fillRect(new lime.math.Rectangle(0,0,width,height),color);
- break;
- case 2:
- break;
- default:
- }
- }
- } else this.__fromImageBuffer(buffer);
- };
- $hxClasses["lime.graphics.Image"] = lime.graphics.Image;
- lime.graphics.Image.__name__ = ["lime","graphics","Image"];
- lime.graphics.Image.__base64Encoder = null;
- lime.graphics.Image.fromBase64 = function(base64,type,onload) {
- var image = new lime.graphics.Image();
- image.__fromBase64(base64,type,onload);
- return image;
- };
- lime.graphics.Image.fromBitmapData = function(bitmapData) {
- var buffer = new lime.graphics.ImageBuffer(null,bitmapData.width,bitmapData.height);
- buffer.__srcBitmapData = bitmapData;
- return new lime.graphics.Image(buffer);
- };
- lime.graphics.Image.fromBytes = function(bytes,onload) {
- var image = new lime.graphics.Image();
- image.__fromBytes(bytes,onload);
- return image;
- };
- lime.graphics.Image.fromCanvas = function(canvas) {
- var buffer = new lime.graphics.ImageBuffer(null,canvas.width,canvas.height);
- buffer.set_src(canvas);
- return new lime.graphics.Image(buffer);
- };
- lime.graphics.Image.fromFile = function(path,onload,onerror) {
- var image = new lime.graphics.Image();
- image.__fromFile(path,onload,onerror);
- return image;
- };
- lime.graphics.Image.fromImageElement = function(image) {
- var buffer = new lime.graphics.ImageBuffer(null,image.width,image.height);
- buffer.set_src(image);
- return new lime.graphics.Image(buffer);
- };
- lime.graphics.Image.__base64Encode = function(bytes) {
- var extension;
- var _g = bytes.length % 3;
- switch(_g) {
- case 1:
- extension = "==";
- break;
- case 2:
- extension = "=";
- break;
- default:
- extension = "";
- }
- if(lime.graphics.Image.__base64Encoder == null) lime.graphics.Image.__base64Encoder = new haxe.crypto.BaseCode(haxe.io.Bytes.ofString(lime.graphics.Image.__base64Chars));
- return lime.graphics.Image.__base64Encoder.encodeBytes(haxe.io.Bytes.ofData(bytes.byteView)).toString() + extension;
- };
- lime.graphics.Image.__isJPG = function(bytes) {
- bytes.position = 0;
- return bytes.readUnsignedByte() == 255 && bytes.readUnsignedByte() == 216;
- };
- lime.graphics.Image.__isPNG = function(bytes) {
- bytes.position = 0;
- return bytes.readUnsignedByte() == 137 && bytes.readUnsignedByte() == 80 && bytes.readUnsignedByte() == 78 && bytes.readUnsignedByte() == 71 && bytes.readUnsignedByte() == 13 && bytes.readUnsignedByte() == 10 && bytes.readUnsignedByte() == 26 && bytes.readUnsignedByte() == 10;
- };
- lime.graphics.Image.__isGIF = function(bytes) {
- bytes.position = 0;
- if(bytes.readUnsignedByte() == 71 && bytes.readUnsignedByte() == 73 && bytes.readUnsignedByte() == 70 && bytes.readUnsignedByte() == 56) {
- var b = bytes.readUnsignedByte();
- return (b == 55 || b == 57) && bytes.readUnsignedByte() == 97;
- }
- return false;
- };
- lime.graphics.Image.prototype = {
- clone: function() {
- lime.graphics.utils.ImageCanvasUtil.sync(this);
- var image;
- if(this.buffer.__srcImage != null) image = new lime.graphics.Image(this.buffer.clone(),this.offsetX,this.offsetY,this.width,this.height,null,this.type); else {
- image = new lime.graphics.Image(null,this.offsetX,this.offsetY,this.width,this.height,null,this.type);
- image.buffer.__srcContext.drawImage(this.buffer.get_src(),0,0);
- }
- return image;
- }
- ,colorTransform: function(rect,colorMatrix) {
- rect = this.__clipRect(rect);
- if(this.buffer == null || rect == null) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.colorTransform(this,rect,colorMatrix);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.colorTransform(this,rect,colorMatrix);
- break;
- case 2:
- rect.offset(this.offsetX,this.offsetY);
- this.buffer.__srcBitmapData.colorTransform(rect.__toFlashRectangle(),lime.math._ColorMatrix.ColorMatrix_Impl_.__toFlashColorTransform(colorMatrix));
- break;
- default:
- }
- }
- ,copyChannel: function(sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
- sourceRect = this.__clipRect(sourceRect);
- if(this.buffer == null || sourceRect == null) return;
- if(destChannel == lime.graphics.ImageChannel.ALPHA && !this.get_transparent()) return;
- if(sourceRect.width <= 0 || sourceRect.height <= 0) return;
- if(sourceRect.x + sourceRect.width > sourceImage.width) sourceRect.width = sourceImage.width - sourceRect.x;
- if(sourceRect.y + sourceRect.height > sourceImage.height) sourceRect.height = sourceImage.height - sourceRect.y;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
- break;
- case 2:
- var srcChannel;
- switch(sourceChannel[1]) {
- case 0:
- srcChannel = 1;
- break;
- case 1:
- srcChannel = 2;
- break;
- case 2:
- srcChannel = 4;
- break;
- case 3:
- srcChannel = 8;
- break;
- }
- var dstChannel;
- switch(destChannel[1]) {
- case 0:
- dstChannel = 1;
- break;
- case 1:
- dstChannel = 2;
- break;
- case 2:
- dstChannel = 4;
- break;
- case 3:
- dstChannel = 8;
- break;
- }
- sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY);
- destPoint.offset(this.offsetX,this.offsetY);
- this.buffer.__srcBitmapData.copyChannel(sourceImage.buffer.get_src(),sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),srcChannel,dstChannel);
- break;
- default:
- }
- }
- ,copyPixels: function(sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) {
- if(mergeAlpha == null) mergeAlpha = false;
- if(this.buffer == null || sourceImage == null) return;
- if(sourceRect.x + sourceRect.width > sourceImage.width) sourceRect.width = sourceImage.width - sourceRect.x;
- if(sourceRect.y + sourceRect.height > sourceImage.height) sourceRect.height = sourceImage.height - sourceRect.y;
- if(sourceRect.width <= 0 || sourceRect.height <= 0) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(this);
- lime.graphics.utils.ImageCanvasUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageCanvasUtil.convertToData(sourceImage);
- lime.graphics.utils.ImageDataUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
- break;
- case 2:
- sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY);
- destPoint.offset(this.offsetX,this.offsetY);
- if(alphaImage != null && alphaPoint != null) alphaPoint.offset(alphaImage.offsetX,alphaImage.offsetY);
- this.buffer.__srcBitmapData.copyPixels(sourceImage.buffer.__srcBitmapData,sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),alphaImage != null?alphaImage.buffer.get_src():null,alphaPoint != null?alphaPoint.__toFlashPoint():null,mergeAlpha);
- break;
- default:
- }
- }
- ,encode: function(format,quality) {
- if(quality == null) quality = 90;
- if(format == null) format = "png";
- return null;
- }
- ,fillRect: function(rect,color) {
- rect = this.__clipRect(rect);
- if(this.buffer == null || rect == null) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.fillRect(this,rect,color);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.fillRect(this,rect,color);
- break;
- case 2:
- rect.offset(this.offsetX,this.offsetY);
- this.buffer.__srcBitmapData.fillRect(rect.__toFlashRectangle(),color);
- break;
- default:
- }
- }
- ,floodFill: function(x,y,color) {
- if(this.buffer == null) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.floodFill(this,x,y,color);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.floodFill(this,x,y,color);
- break;
- case 2:
- this.buffer.__srcBitmapData.floodFill(x + this.offsetX,y + this.offsetY,color);
- break;
- default:
- }
- }
- ,getPixel: function(x,y) {
- if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return 0;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- return lime.graphics.utils.ImageCanvasUtil.getPixel(this,x,y);
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- return lime.graphics.utils.ImageDataUtil.getPixel(this,x,y);
- case 2:
- return this.buffer.__srcBitmapData.getPixel(x + this.offsetX,y + this.offsetY);
- default:
- return 0;
- }
- }
- ,getPixel32: function(x,y) {
- if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return 0;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- return lime.graphics.utils.ImageCanvasUtil.getPixel32(this,x,y);
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- return lime.graphics.utils.ImageDataUtil.getPixel32(this,x,y);
- case 2:
- return this.buffer.__srcBitmapData.getPixel32(x + this.offsetX,y + this.offsetY);
- default:
- return 0;
- }
- }
- ,getPixels: function(rect) {
- if(this.buffer == null) return null;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- return lime.graphics.utils.ImageCanvasUtil.getPixels(this,rect);
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- return lime.graphics.utils.ImageDataUtil.getPixels(this,rect);
- case 2:
- rect.offset(this.offsetX,this.offsetY);
- return this.buffer.__srcBitmapData.getPixels(rect.__toFlashRectangle());
- default:
- return null;
- }
- }
- ,merge: function(sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
- if(this.buffer == null || sourceImage == null) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(this);
- lime.graphics.utils.ImageCanvasUtil.merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageCanvasUtil.convertToData(sourceImage);
- lime.graphics.utils.ImageDataUtil.merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
- break;
- case 2:
- sourceRect.offset(this.offsetX,this.offsetY);
- this.buffer.__srcBitmapData.merge(sourceImage.buffer.__srcBitmapData,sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
- break;
- default:
- return null;
- }
- }
- ,resize: function(newWidth,newHeight) {
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.resize(this,newWidth,newHeight);
- break;
- case 1:
- lime.graphics.utils.ImageDataUtil.resize(this,newWidth,newHeight);
- break;
- case 2:
- break;
- default:
- }
- this.buffer.width = newWidth;
- this.buffer.height = newHeight;
- this.offsetX = 0;
- this.offsetY = 0;
- this.width = newWidth;
- this.height = newHeight;
- }
- ,setPixel: function(x,y,color) {
- if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.setPixel(this,x,y,color);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.setPixel(this,x,y,color);
- break;
- case 2:
- this.buffer.__srcBitmapData.setPixel(x + this.offsetX,y + this.offsetX,color);
- break;
- default:
- }
- }
- ,setPixel32: function(x,y,color) {
- if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.setPixel32(this,x,y,color);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.setPixel32(this,x,y,color);
- break;
- case 2:
- this.buffer.__srcBitmapData.setPixel32(x + this.offsetX,y + this.offsetY,color);
- break;
- default:
- }
- }
- ,setPixels: function(rect,byteArray) {
- rect = this.__clipRect(rect);
- if(this.buffer == null || rect == null) return;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- lime.graphics.utils.ImageCanvasUtil.setPixels(this,rect,byteArray);
- break;
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.setPixels(this,rect,byteArray);
- break;
- case 2:
- rect.offset(this.offsetX,this.offsetY);
- this.buffer.__srcBitmapData.setPixels(rect.__toFlashRectangle(),byteArray);
- break;
- default:
- }
- }
- ,__clipRect: function(r) {
- if(r == null) return null;
- if(r.x < 0) {
- r.width -= -r.x;
- r.x = 0;
- if(r.x + r.width <= 0) return null;
- }
- if(r.y < 0) {
- r.height -= -r.y;
- r.y = 0;
- if(r.y + r.height <= 0) return null;
- }
- if(r.x + r.width >= this.width) {
- r.width -= r.x + r.width - this.width;
- if(r.width <= 0) return null;
- }
- if(r.y + r.height >= this.height) {
- r.height -= r.y + r.height - this.height;
- if(r.height <= 0) return null;
- }
- return r;
- }
- ,__fromBase64: function(base64,type,onload) {
- var _g = this;
- var image = new Image();
- var image_onLoaded = function(event) {
- _g.buffer = new lime.graphics.ImageBuffer(null,image.width,image.height);
- _g.buffer.__srcImage = image;
- _g.offsetX = 0;
- _g.offsetY = 0;
- _g.width = _g.buffer.width;
- _g.height = _g.buffer.height;
- if(onload != null) onload(_g);
- };
- image.addEventListener("load",image_onLoaded,false);
- image.src = "data:" + type + ";base64," + base64;
- }
- ,__fromBytes: function(bytes,onload) {
- var type = "";
- if(lime.graphics.Image.__isPNG(bytes)) type = "image/png"; else if(lime.graphics.Image.__isJPG(bytes)) type = "image/jpeg"; else if(lime.graphics.Image.__isGIF(bytes)) type = "image/gif"; else throw "Image tried to read a PNG/JPG ByteArray, but found an invalid header.";
- this.__fromBase64(lime.graphics.Image.__base64Encode(bytes),type,onload);
- }
- ,__fromFile: function(path,onload,onerror) {
- var _g = this;
- var image = new Image();
- image.onload = function(_) {
- _g.buffer = new lime.graphics.ImageBuffer(null,image.width,image.height);
- _g.buffer.__srcImage = image;
- _g.width = image.width;
- _g.height = image.height;
- if(onload != null) onload(_g);
- };
- image.onerror = function(_1) {
- if(onerror != null) onerror();
- };
- image.src = path;
- if(image.complete) {
- }
- }
- ,__fromImageBuffer: function(buffer) {
- this.buffer = buffer;
- if(buffer != null) {
- if(this.width == 0) this.width = buffer.width;
- if(this.height == 0) this.height = buffer.height;
- }
- }
- ,get_data: function() {
- if(this.buffer.data == null && this.buffer.width > 0 && this.buffer.height > 0) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(this);
- lime.graphics.utils.ImageCanvasUtil.createImageData(this);
- }
- return this.buffer.data;
- }
- ,set_data: function(value) {
- return this.buffer.data = value;
- }
- ,get_powerOfTwo: function() {
- return this.buffer.width != 0 && (this.buffer.width & ~this.buffer.width + 1) == this.buffer.width && (this.buffer.height != 0 && (this.buffer.height & ~this.buffer.height + 1) == this.buffer.height);
- }
- ,set_powerOfTwo: function(value) {
- if(value != this.get_powerOfTwo()) {
- var newWidth = 1;
- var newHeight = 1;
- while(newWidth < this.buffer.width) newWidth <<= 1;
- while(newHeight < this.buffer.height) newHeight <<= 1;
- var _g = this.type;
- switch(_g[1]) {
- case 0:
- break;
- case 1:
- lime.graphics.utils.ImageDataUtil.resizeBuffer(this,newWidth,newHeight);
- break;
- case 2:
- break;
- default:
- }
- }
- return value;
- }
- ,get_premultiplied: function() {
- return this.buffer.premultiplied;
- }
- ,set_premultiplied: function(value) {
- if(value && !this.buffer.premultiplied) {
- var _g = this.type;
- switch(_g[1]) {
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.multiplyAlpha(this);
- break;
- default:
- }
- } else if(!value && this.buffer.premultiplied) {
- var _g1 = this.type;
- switch(_g1[1]) {
- case 1:
- lime.graphics.utils.ImageCanvasUtil.convertToData(this);
- lime.graphics.utils.ImageDataUtil.unmultiplyAlpha(this);
- break;
- default:
- }
- }
- return value;
- }
- ,get_rect: function() {
- return new lime.math.Rectangle(0,0,this.width,this.height);
- }
- ,get_src: function() {
- return this.buffer.get_src();
- }
- ,set_src: function(value) {
- return this.buffer.set_src(value);
- }
- ,get_transparent: function() {
- return this.buffer.transparent;
- }
- ,set_transparent: function(value) {
- return this.buffer.transparent = value;
- }
- ,__class__: lime.graphics.Image
- ,__properties__: {set_transparent:"set_transparent",get_transparent:"get_transparent",set_src:"set_src",get_src:"get_src",get_rect:"get_rect",set_premultiplied:"set_premultiplied",get_premultiplied:"get_premultiplied",set_powerOfTwo:"set_powerOfTwo",get_powerOfTwo:"get_powerOfTwo",set_data:"set_data",get_data:"get_data"}
- };
- lime.graphics.ImageChannel = $hxClasses["lime.graphics.ImageChannel"] = { __ename__ : ["lime","graphics","ImageChannel"], __constructs__ : ["RED","GREEN","BLUE","ALPHA"] };
- lime.graphics.ImageChannel.RED = ["RED",0];
- lime.graphics.ImageChannel.RED.toString = $estr;
- lime.graphics.ImageChannel.RED.__enum__ = lime.graphics.ImageChannel;
- lime.graphics.ImageChannel.GREEN = ["GREEN",1];
- lime.graphics.ImageChannel.GREEN.toString = $estr;
- lime.graphics.ImageChannel.GREEN.__enum__ = lime.graphics.ImageChannel;
- lime.graphics.ImageChannel.BLUE = ["BLUE",2];
- lime.graphics.ImageChannel.BLUE.toString = $estr;
- lime.graphics.ImageChannel.BLUE.__enum__ = lime.graphics.ImageChannel;
- lime.graphics.ImageChannel.ALPHA = ["ALPHA",3];
- lime.graphics.ImageChannel.ALPHA.toString = $estr;
- lime.graphics.ImageChannel.ALPHA.__enum__ = lime.graphics.ImageChannel;
- lime.graphics.ImageBuffer = function(data,width,height,bitsPerPixel) {
- if(bitsPerPixel == null) bitsPerPixel = 4;
- if(height == null) height = 0;
- if(width == null) width = 0;
- this.data = data;
- this.width = width;
- this.height = height;
- this.bitsPerPixel = bitsPerPixel;
- this.transparent = true;
- };
- $hxClasses["lime.graphics.ImageBuffer"] = lime.graphics.ImageBuffer;
- lime.graphics.ImageBuffer.__name__ = ["lime","graphics","ImageBuffer"];
- lime.graphics.ImageBuffer.prototype = {
- clone: function() {
- var buffer = new lime.graphics.ImageBuffer(this.data,this.width,this.height,this.bitsPerPixel);
- buffer.set_src(this.get_src());
- buffer.premultiplied = this.premultiplied;
- buffer.transparent = this.transparent;
- return buffer;
- }
- ,get_src: function() {
- if(this.__srcImage != null) return this.__srcImage;
- return this.__srcCanvas;
- }
- ,set_src: function(value) {
- if(js.Boot.__instanceof(value,Image)) this.__srcImage = value; else if(js.Boot.__instanceof(value,HTMLCanvasElement)) {
- this.__srcCanvas = value;
- this.__srcContext = this.__srcCanvas.getContext("2d");
- }
- return value;
- }
- ,__class__: lime.graphics.ImageBuffer
- ,__properties__: {set_src:"set_src",get_src:"get_src"}
- };
- lime.graphics.ImageType = $hxClasses["lime.graphics.ImageType"] = { __ename__ : ["lime","graphics","ImageType"], __constructs__ : ["CANVAS","DATA","FLASH","CUSTOM"] };
- lime.graphics.ImageType.CANVAS = ["CANVAS",0];
- lime.graphics.ImageType.CANVAS.toString = $estr;
- lime.graphics.ImageType.CANVAS.__enum__ = lime.graphics.ImageType;
- lime.graphics.ImageType.DATA = ["DATA",1];
- lime.graphics.ImageType.DATA.toString = $estr;
- lime.graphics.ImageType.DATA.__enum__ = lime.graphics.ImageType;
- lime.graphics.ImageType.FLASH = ["FLASH",2];
- lime.graphics.ImageType.FLASH.toString = $estr;
- lime.graphics.ImageType.FLASH.__enum__ = lime.graphics.ImageType;
- lime.graphics.ImageType.CUSTOM = ["CUSTOM",3];
- lime.graphics.ImageType.CUSTOM.toString = $estr;
- lime.graphics.ImageType.CUSTOM.__enum__ = lime.graphics.ImageType;
- lime.graphics.RenderContext = $hxClasses["lime.graphics.RenderContext"] = { __ename__ : ["lime","graphics","RenderContext"], __constructs__ : ["OPENGL","CANVAS","DOM","FLASH","CONSOLE","CUSTOM"] };
- lime.graphics.RenderContext.OPENGL = function(gl) { var $x = ["OPENGL",0,gl]; $x.__enum__ = lime.graphics.RenderContext; $x.toString = $estr; return $x; };
- lime.graphics.RenderContext.CANVAS = function(context) { var $x = ["CANVAS",1,context]; $x.__enum__ = lime.graphics.RenderContext; $x.toString = $estr; return $x; };
- lime.graphics.RenderContext.DOM = function(element) { var $x = ["DOM",2,element]; $x.__enum__ = lime.graphics.RenderContext; $x.toString = $estr; return $x; };
- lime.graphics.RenderContext.FLASH = function(stage) { var $x = ["FLASH",3,stage]; $x.__enum__ = lime.graphics.RenderContext; $x.toString = $estr; return $x; };
- lime.graphics.RenderContext.CONSOLE = function(context) { var $x = ["CONSOLE",4,context]; $x.__enum__ = lime.graphics.RenderContext; $x.toString = $estr; return $x; };
- lime.graphics.RenderContext.CUSTOM = function(data) { var $x = ["CUSTOM",5,data]; $x.__enum__ = lime.graphics.RenderContext; $x.toString = $estr; return $x; };
- lime.graphics.Renderer = function(window) {
- this.onRender = new lime.app.Event();
- this.onRenderContextRestored = new lime.app.Event();
- this.onRenderContextLost = new lime.app.Event();
- this.window = window;
- this.backend = new lime._backend.html5.HTML5Renderer(this);
- this.window.currentRenderer = this;
- };
- $hxClasses["lime.graphics.Renderer"] = lime.graphics.Renderer;
- lime.graphics.Renderer.__name__ = ["lime","graphics","Renderer"];
- lime.graphics.Renderer.prototype = {
- create: function() {
- this.backend.create();
- }
- ,flip: function() {
- this.backend.flip();
- }
- ,render: function() {
- this.backend.render();
- }
- ,__class__: lime.graphics.Renderer
- };
- lime.graphics.format = {};
- lime.graphics.format.BMP = function() { };
- $hxClasses["lime.graphics.format.BMP"] = lime.graphics.format.BMP;
- lime.graphics.format.BMP.__name__ = ["lime","graphics","format","BMP"];
- lime.graphics.format.BMP.encode = function(image,type) {
- if(type == null) type = lime.graphics.format.BMPType.RGB;
- var fileHeaderLength = 14;
- var infoHeaderLength = 40;
- var pixelValuesLength = image.width * image.height * 4;
- switch(type[1]) {
- case 1:
- infoHeaderLength = 108;
- break;
- case 2:
- fileHeaderLength = 0;
- pixelValuesLength += image.width * image.height;
- break;
- default:
- }
- var data = new lime.utils.ByteArray(fileHeaderLength + infoHeaderLength + pixelValuesLength);
- if(fileHeaderLength > 0) {
- data.writeByte(66);
- data.writeByte(77);
- data.writeInt(data.length);
- data.writeInt(0);
- data.writeInt(fileHeaderLength + infoHeaderLength);
- }
- data.writeInt(infoHeaderLength);
- data.writeInt(image.width);
- if(type == lime.graphics.format.BMPType.ICO) data.writeInt(image.height * 2); else data.writeInt(image.height);
- data.writeShort(1);
- data.writeShort(32);
- switch(type[1]) {
- case 1:
- data.writeInt(3);
- break;
- default:
- data.writeInt(0);
- }
- data.writeInt(pixelValuesLength);
- data.writeInt(11824);
- data.writeInt(11824);
- data.writeInt(0);
- data.writeInt(0);
- if(type == lime.graphics.format.BMPType.BITFIELD) {
- data.writeInt(16711680);
- data.writeInt(65280);
- data.writeInt(255);
- data.writeInt(-16777216);
- data.writeByte(32);
- data.writeByte(110);
- data.writeByte(105);
- data.writeByte(87);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- data.writeInt(0);
- }
- var pixels = image.getPixels(new lime.math.Rectangle(0,0,image.width,image.height));
- var a;
- var r;
- var g;
- var b;
- if(type != lime.graphics.format.BMPType.ICO) {
- var _g1 = 0;
- var _g = image.height;
- while(_g1 < _g) {
- var y = _g1++;
- pixels.position = (image.height - 1 - y) * 4 * image.width;
- var _g3 = 0;
- var _g2 = image.width;
- while(_g3 < _g2) {
- var x = _g3++;
- a = pixels.readByte();
- r = pixels.readByte();
- g = pixels.readByte();
- b = pixels.readByte();
- data.writeByte(b);
- data.writeByte(g);
- data.writeByte(r);
- data.writeByte(a);
- }
- }
- } else {
- var andMask = new lime.utils.ByteArray(image.width * image.height);
- var _g11 = 0;
- var _g4 = image.height;
- while(_g11 < _g4) {
- var y1 = _g11++;
- pixels.position = (image.height - 1 - y1) * 4 * image.width;
- var _g31 = 0;
- var _g21 = image.width;
- while(_g31 < _g21) {
- var x1 = _g31++;
- a = pixels.readByte();
- r = pixels.readByte();
- g = pixels.readByte();
- b = pixels.readByte();
- data.writeByte(b);
- data.writeByte(g);
- data.writeByte(r);
- data.writeByte(a);
- andMask.writeByte(0);
- }
- }
- data.writeBytes(andMask);
- }
- return data;
- };
- lime.graphics.format.BMPType = $hxClasses["lime.graphics.format.BMPType"] = { __ename__ : ["lime","graphics","format","BMPType"], __constructs__ : ["RGB","BITFIELD","ICO"] };
- lime.graphics.format.BMPType.RGB = ["RGB",0];
- lime.graphics.format.BMPType.RGB.toString = $estr;
- lime.graphics.format.BMPType.RGB.__enum__ = lime.graphics.format.BMPType;
- lime.graphics.format.BMPType.BITFIELD = ["BITFIELD",1];
- lime.graphics.format.BMPType.BITFIELD.toString = $estr;
- lime.graphics.format.BMPType.BITFIELD.__enum__ = lime.graphics.format.BMPType;
- lime.graphics.format.BMPType.ICO = ["ICO",2];
- lime.graphics.format.BMPType.ICO.toString = $estr;
- lime.graphics.format.BMPType.ICO.__enum__ = lime.graphics.format.BMPType;
- lime.graphics.format.JPEG = function() { };
- $hxClasses["lime.graphics.format.JPEG"] = lime.graphics.format.JPEG;
- lime.graphics.format.JPEG.__name__ = ["lime","graphics","format","JPEG"];
- lime.graphics.format.JPEG.encode = function(image,quality) {
- return null;
- };
- lime.graphics.format.PNG = function() { };
- $hxClasses["lime.graphics.format.PNG"] = lime.graphics.format.PNG;
- lime.graphics.format.PNG.__name__ = ["lime","graphics","format","PNG"];
- lime.graphics.format.PNG.encode = function(image) {
- return null;
- };
- lime.graphics.opengl = {};
- lime.graphics.opengl.GL = function() { };
- $hxClasses["lime.graphics.opengl.GL"] = lime.graphics.opengl.GL;
- lime.graphics.opengl.GL.__name__ = ["lime","graphics","opengl","GL"];
- lime.graphics.opengl.GL.__properties__ = {get_version:"get_version"}
- lime.graphics.opengl.GL.version = null;
- lime.graphics.opengl.GL.context = null;
- lime.graphics.opengl.GL.activeTexture = function(texture) {
- lime.graphics.opengl.GL.context.activeTexture(texture);
- };
- lime.graphics.opengl.GL.attachShader = function(program,shader) {
- lime.graphics.opengl.GL.context.attachShader(program,shader);
- };
- lime.graphics.opengl.GL.bindAttribLocation = function(program,index,name) {
- lime.graphics.opengl.GL.context.bindAttribLocation(program,index,name);
- };
- lime.graphics.opengl.GL.bindBuffer = function(target,buffer) {
- lime.graphics.opengl.GL.context.bindBuffer(target,buffer);
- };
- lime.graphics.opengl.GL.bindFramebuffer = function(target,framebuffer) {
- lime.graphics.opengl.GL.context.bindFramebuffer(target,framebuffer);
- };
- lime.graphics.opengl.GL.bindRenderbuffer = function(target,renderbuffer) {
- lime.graphics.opengl.GL.context.bindRenderbuffer(target,renderbuffer);
- };
- lime.graphics.opengl.GL.bindTexture = function(target,texture) {
- lime.graphics.opengl.GL.context.bindTexture(target,texture);
- };
- lime.graphics.opengl.GL.blendColor = function(red,green,blue,alpha) {
- lime.graphics.opengl.GL.context.blendColor(red,green,blue,alpha);
- };
- lime.graphics.opengl.GL.blendEquation = function(mode) {
- lime.graphics.opengl.GL.context.blendEquation(mode);
- };
- lime.graphics.opengl.GL.blendEquationSeparate = function(modeRGB,modeAlpha) {
- lime.graphics.opengl.GL.context.blendEquationSeparate(modeRGB,modeAlpha);
- };
- lime.graphics.opengl.GL.blendFunc = function(sfactor,dfactor) {
- lime.graphics.opengl.GL.context.blendFunc(sfactor,dfactor);
- };
- lime.graphics.opengl.GL.blendFuncSeparate = function(srcRGB,dstRGB,srcAlpha,dstAlpha) {
- lime.graphics.opengl.GL.context.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
- };
- lime.graphics.opengl.GL.bufferData = function(target,data,usage) {
- lime.graphics.opengl.GL.context.bufferData(target,data,usage);
- };
- lime.graphics.opengl.GL.bufferSubData = function(target,offset,data) {
- lime.graphics.opengl.GL.context.bufferSubData(target,offset,data);
- };
- lime.graphics.opengl.GL.checkFramebufferStatus = function(target) {
- return lime.graphics.opengl.GL.context.checkFramebufferStatus(target);
- };
- lime.graphics.opengl.GL.clear = function(mask) {
- lime.graphics.opengl.GL.context.clear(mask);
- };
- lime.graphics.opengl.GL.clearColor = function(red,green,blue,alpha) {
- lime.graphics.opengl.GL.context.clearColor(red,green,blue,alpha);
- };
- lime.graphics.opengl.GL.clearDepth = function(depth) {
- lime.graphics.opengl.GL.context.clearDepth(depth);
- };
- lime.graphics.opengl.GL.clearStencil = function(s) {
- lime.graphics.opengl.GL.context.clearStencil(s);
- };
- lime.graphics.opengl.GL.colorMask = function(red,green,blue,alpha) {
- lime.graphics.opengl.GL.context.colorMask(red,green,blue,alpha);
- };
- lime.graphics.opengl.GL.compileShader = function(shader) {
- lime.graphics.opengl.GL.context.compileShader(shader);
- };
- lime.graphics.opengl.GL.compressedTexImage2D = function(target,level,internalformat,width,height,border,data) {
- lime.graphics.opengl.GL.context.compressedTexImage2D(target,level,internalformat,width,height,border,data);
- };
- lime.graphics.opengl.GL.compressedTexSubImage2D = function(target,level,xoffset,yoffset,width,height,format,data) {
- lime.graphics.opengl.GL.context.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data);
- };
- lime.graphics.opengl.GL.copyTexImage2D = function(target,level,internalformat,x,y,width,height,border) {
- lime.graphics.opengl.GL.context.copyTexImage2D(target,level,internalformat,x,y,width,height,border);
- };
- lime.graphics.opengl.GL.copyTexSubImage2D = function(target,level,xoffset,yoffset,x,y,width,height) {
- lime.graphics.opengl.GL.context.copyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
- };
- lime.graphics.opengl.GL.createBuffer = function() {
- return lime.graphics.opengl.GL.context.createBuffer();
- };
- lime.graphics.opengl.GL.createFramebuffer = function() {
- return lime.graphics.opengl.GL.context.createFramebuffer();
- };
- lime.graphics.opengl.GL.createProgram = function() {
- return lime.graphics.opengl.GL.context.createProgram();
- };
- lime.graphics.opengl.GL.createRenderbuffer = function() {
- return lime.graphics.opengl.GL.context.createRenderbuffer();
- };
- lime.graphics.opengl.GL.createShader = function(type) {
- return lime.graphics.opengl.GL.context.createShader(type);
- };
- lime.graphics.opengl.GL.createTexture = function() {
- return lime.graphics.opengl.GL.context.createTexture();
- };
- lime.graphics.opengl.GL.cullFace = function(mode) {
- lime.graphics.opengl.GL.context.cullFace(mode);
- };
- lime.graphics.opengl.GL.deleteBuffer = function(buffer) {
- lime.graphics.opengl.GL.context.deleteBuffer(buffer);
- };
- lime.graphics.opengl.GL.deleteFramebuffer = function(framebuffer) {
- lime.graphics.opengl.GL.context.deleteFramebuffer(framebuffer);
- };
- lime.graphics.opengl.GL.deleteProgram = function(program) {
- lime.graphics.opengl.GL.context.deleteProgram(program);
- };
- lime.graphics.opengl.GL.deleteRenderbuffer = function(renderbuffer) {
- lime.graphics.opengl.GL.context.deleteRenderbuffer(renderbuffer);
- };
- lime.graphics.opengl.GL.deleteShader = function(shader) {
- lime.graphics.opengl.GL.context.deleteShader(shader);
- };
- lime.graphics.opengl.GL.deleteTexture = function(texture) {
- lime.graphics.opengl.GL.context.deleteTexture(texture);
- };
- lime.graphics.opengl.GL.depthFunc = function(func) {
- lime.graphics.opengl.GL.context.depthFunc(func);
- };
- lime.graphics.opengl.GL.depthMask = function(flag) {
- lime.graphics.opengl.GL.context.depthMask(flag);
- };
- lime.graphics.opengl.GL.depthRange = function(zNear,zFar) {
- lime.graphics.opengl.GL.context.depthRange(zNear,zFar);
- };
- lime.graphics.opengl.GL.detachShader = function(program,shader) {
- lime.graphics.opengl.GL.context.detachShader(program,shader);
- };
- lime.graphics.opengl.GL.disable = function(cap) {
- lime.graphics.opengl.GL.context.disable(cap);
- };
- lime.graphics.opengl.GL.disableVertexAttribArray = function(index) {
- lime.graphics.opengl.GL.context.disableVertexAttribArray(index);
- };
- lime.graphics.opengl.GL.drawArrays = function(mode,first,count) {
- lime.graphics.opengl.GL.context.drawArrays(mode,first,count);
- };
- lime.graphics.opengl.GL.drawElements = function(mode,count,type,offset) {
- lime.graphics.opengl.GL.context.drawElements(mode,count,type,offset);
- };
- lime.graphics.opengl.GL.enable = function(cap) {
- lime.graphics.opengl.GL.context.enable(cap);
- };
- lime.graphics.opengl.GL.enableVertexAttribArray = function(index) {
- lime.graphics.opengl.GL.context.enableVertexAttribArray(index);
- };
- lime.graphics.opengl.GL.finish = function() {
- lime.graphics.opengl.GL.context.finish();
- };
- lime.graphics.opengl.GL.flush = function() {
- lime.graphics.opengl.GL.context.flush();
- };
- lime.graphics.opengl.GL.framebufferRenderbuffer = function(target,attachment,renderbuffertarget,renderbuffer) {
- lime.graphics.opengl.GL.context.framebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer);
- };
- lime.graphics.opengl.GL.framebufferTexture2D = function(target,attachment,textarget,texture,level) {
- lime.graphics.opengl.GL.context.framebufferTexture2D(target,attachment,textarget,texture,level);
- };
- lime.graphics.opengl.GL.frontFace = function(mode) {
- lime.graphics.opengl.GL.context.frontFace(mode);
- };
- lime.graphics.opengl.GL.generateMipmap = function(target) {
- lime.graphics.opengl.GL.context.generateMipmap(target);
- };
- lime.graphics.opengl.GL.getActiveAttrib = function(program,index) {
- return lime.graphics.opengl.GL.context.getActiveAttrib(program,index);
- };
- lime.graphics.opengl.GL.getActiveUniform = function(program,index) {
- return lime.graphics.opengl.GL.context.getActiveUniform(program,index);
- };
- lime.graphics.opengl.GL.getAttachedShaders = function(program) {
- return lime.graphics.opengl.GL.context.getAttachedShaders(program);
- };
- lime.graphics.opengl.GL.getAttribLocation = function(program,name) {
- return lime.graphics.opengl.GL.context.getAttribLocation(program,name);
- };
- lime.graphics.opengl.GL.getBufferParameter = function(target,pname) {
- return lime.graphics.opengl.GL.context.getBufferParameter(target,pname);
- };
- lime.graphics.opengl.GL.getContextAttributes = function() {
- return lime.graphics.opengl.GL.context.getContextAttributes();
- };
- lime.graphics.opengl.GL.getError = function() {
- return lime.graphics.opengl.GL.context.getError();
- };
- lime.graphics.opengl.GL.getExtension = function(name) {
- return lime.graphics.opengl.GL.context.getExtension(name);
- };
- lime.graphics.opengl.GL.getFramebufferAttachmentParameter = function(target,attachment,pname) {
- return lime.graphics.opengl.GL.context.getFramebufferAttachmentParameter(target,attachment,pname);
- };
- lime.graphics.opengl.GL.getParameter = function(pname) {
- return lime.graphics.opengl.GL.context.getParameter(pname);
- };
- lime.graphics.opengl.GL.getProgramInfoLog = function(program) {
- return lime.graphics.opengl.GL.context.getProgramInfoLog(program);
- };
- lime.graphics.opengl.GL.getProgramParameter = function(program,pname) {
- return lime.graphics.opengl.GL.context.getProgramParameter(program,pname);
- };
- lime.graphics.opengl.GL.getRenderbufferParameter = function(target,pname) {
- return lime.graphics.opengl.GL.context.getRenderbufferParameter(target,pname);
- };
- lime.graphics.opengl.GL.getShaderInfoLog = function(shader) {
- return lime.graphics.opengl.GL.context.getShaderInfoLog(shader);
- };
- lime.graphics.opengl.GL.getShaderParameter = function(shader,pname) {
- return lime.graphics.opengl.GL.context.getShaderParameter(shader,pname);
- };
- lime.graphics.opengl.GL.getShaderPrecisionFormat = function(shadertype,precisiontype) {
- return lime.graphics.opengl.GL.context.getShaderPrecisionFormat(shadertype,precisiontype);
- };
- lime.graphics.opengl.GL.getShaderSource = function(shader) {
- return lime.graphics.opengl.GL.context.getShaderSource(shader);
- };
- lime.graphics.opengl.GL.getSupportedExtensions = function() {
- return lime.graphics.opengl.GL.context.getSupportedExtensions();
- };
- lime.graphics.opengl.GL.getTexParameter = function(target,pname) {
- return lime.graphics.opengl.GL.context.getTexParameter(target,pname);
- };
- lime.graphics.opengl.GL.getUniform = function(program,location) {
- return lime.graphics.opengl.GL.context.getUniform(program,location);
- };
- lime.graphics.opengl.GL.getUniformLocation = function(program,name) {
- return lime.graphics.opengl.GL.context.getUniformLocation(program,name);
- };
- lime.graphics.opengl.GL.getVertexAttrib = function(index,pname) {
- return lime.graphics.opengl.GL.context.getVertexAttrib(index,pname);
- };
- lime.graphics.opengl.GL.getVertexAttribOffset = function(index,pname) {
- return lime.graphics.opengl.GL.context.getVertexAttribOffset(index,pname);
- };
- lime.graphics.opengl.GL.hint = function(target,mode) {
- lime.graphics.opengl.GL.context.hint(target,mode);
- };
- lime.graphics.opengl.GL.isBuffer = function(buffer) {
- return lime.graphics.opengl.GL.context.isBuffer(buffer);
- };
- lime.graphics.opengl.GL.isContextLost = function() {
- return lime.graphics.opengl.GL.context.isContextLost();
- };
- lime.graphics.opengl.GL.isEnabled = function(cap) {
- return lime.graphics.opengl.GL.context.isEnabled(cap);
- };
- lime.graphics.opengl.GL.isFramebuffer = function(framebuffer) {
- return lime.graphics.opengl.GL.context.isFramebuffer(framebuffer);
- };
- lime.graphics.opengl.GL.isProgram = function(program) {
- return lime.graphics.opengl.GL.context.isProgram(program);
- };
- lime.graphics.opengl.GL.isRenderbuffer = function(renderbuffer) {
- return lime.graphics.opengl.GL.context.isRenderbuffer(renderbuffer);
- };
- lime.graphics.opengl.GL.isShader = function(shader) {
- return lime.graphics.opengl.GL.context.isShader(shader);
- };
- lime.graphics.opengl.GL.isTexture = function(texture) {
- return lime.graphics.opengl.GL.context.isTexture(texture);
- };
- lime.graphics.opengl.GL.lineWidth = function(width) {
- lime.graphics.opengl.GL.context.lineWidth(width);
- };
- lime.graphics.opengl.GL.linkProgram = function(program) {
- lime.graphics.opengl.GL.context.linkProgram(program);
- };
- lime.graphics.opengl.GL.pixelStorei = function(pname,param) {
- lime.graphics.opengl.GL.context.pixelStorei(pname,param);
- };
- lime.graphics.opengl.GL.polygonOffset = function(factor,units) {
- lime.graphics.opengl.GL.context.polygonOffset(factor,units);
- };
- lime.graphics.opengl.GL.readPixels = function(x,y,width,height,format,type,pixels) {
- lime.graphics.opengl.GL.context.readPixels(x,y,width,height,format,type,pixels);
- };
- lime.graphics.opengl.GL.renderbufferStorage = function(target,internalformat,width,height) {
- lime.graphics.opengl.GL.context.renderbufferStorage(target,internalformat,width,height);
- };
- lime.graphics.opengl.GL.sampleCoverage = function(value,invert) {
- lime.graphics.opengl.GL.context.sampleCoverage(value,invert);
- };
- lime.graphics.opengl.GL.scissor = function(x,y,width,height) {
- lime.graphics.opengl.GL.context.scissor(x,y,width,height);
- };
- lime.graphics.opengl.GL.shaderSource = function(shader,source) {
- lime.graphics.opengl.GL.context.shaderSource(shader,source);
- };
- lime.graphics.opengl.GL.stencilFunc = function(func,ref,mask) {
- lime.graphics.opengl.GL.context.stencilFunc(func,ref,mask);
- };
- lime.graphics.opengl.GL.stencilFuncSeparate = function(face,func,ref,mask) {
- lime.graphics.opengl.GL.context.stencilFuncSeparate(face,func,ref,mask);
- };
- lime.graphics.opengl.GL.stencilMask = function(mask) {
- lime.graphics.opengl.GL.context.stencilMask(mask);
- };
- lime.graphics.opengl.GL.stencilMaskSeparate = function(face,mask) {
- lime.graphics.opengl.GL.context.stencilMaskSeparate(face,mask);
- };
- lime.graphics.opengl.GL.stencilOp = function(fail,zfail,zpass) {
- lime.graphics.opengl.GL.context.stencilOp(fail,zfail,zpass);
- };
- lime.graphics.opengl.GL.stencilOpSeparate = function(face,fail,zfail,zpass) {
- lime.graphics.opengl.GL.context.stencilOpSeparate(face,fail,zfail,zpass);
- };
- lime.graphics.opengl.GL.texImage2D = function(target,level,internalformat,width,height,border,format,type,pixels) {
- lime.graphics.opengl.GL.context.texImage2D(target,level,internalformat,width,height,border,format,type,pixels);
- };
- lime.graphics.opengl.GL.texParameterf = function(target,pname,param) {
- lime.graphics.opengl.GL.context.texParameterf(target,pname,param);
- };
- lime.graphics.opengl.GL.texParameteri = function(target,pname,param) {
- lime.graphics.opengl.GL.context.texParameteri(target,pname,param);
- };
- lime.graphics.opengl.GL.texSubImage2D = function(target,level,xoffset,yoffset,width,height,format,type,pixels) {
- lime.graphics.opengl.GL.context.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels);
- };
- lime.graphics.opengl.GL.uniform1f = function(location,x) {
- lime.graphics.opengl.GL.context.uniform1f(location,x);
- };
- lime.graphics.opengl.GL.uniform1fv = function(location,x) {
- lime.graphics.opengl.GL.context.uniform1fv(location,x);
- };
- lime.graphics.opengl.GL.uniform1i = function(location,x) {
- lime.graphics.opengl.GL.context.uniform1i(location,x);
- };
- lime.graphics.opengl.GL.uniform1iv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform1iv(location,v);
- };
- lime.graphics.opengl.GL.uniform2f = function(location,x,y) {
- lime.graphics.opengl.GL.context.uniform2f(location,x,y);
- };
- lime.graphics.opengl.GL.uniform2fv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform2fv(location,v);
- };
- lime.graphics.opengl.GL.uniform2i = function(location,x,y) {
- lime.graphics.opengl.GL.context.uniform2i(location,x,y);
- };
- lime.graphics.opengl.GL.uniform2iv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform2iv(location,v);
- };
- lime.graphics.opengl.GL.uniform3f = function(location,x,y,z) {
- lime.graphics.opengl.GL.context.uniform3f(location,x,y,z);
- };
- lime.graphics.opengl.GL.uniform3fv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform3fv(location,v);
- };
- lime.graphics.opengl.GL.uniform3i = function(location,x,y,z) {
- lime.graphics.opengl.GL.context.uniform3i(location,x,y,z);
- };
- lime.graphics.opengl.GL.uniform3iv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform3iv(location,v);
- };
- lime.graphics.opengl.GL.uniform4f = function(location,x,y,z,w) {
- lime.graphics.opengl.GL.context.uniform4f(location,x,y,z,w);
- };
- lime.graphics.opengl.GL.uniform4fv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform4fv(location,v);
- };
- lime.graphics.opengl.GL.uniform4i = function(location,x,y,z,w) {
- lime.graphics.opengl.GL.context.uniform4i(location,x,y,z,w);
- };
- lime.graphics.opengl.GL.uniform4iv = function(location,v) {
- lime.graphics.opengl.GL.context.uniform4iv(location,v);
- };
- lime.graphics.opengl.GL.uniformMatrix2fv = function(location,transpose,v) {
- lime.graphics.opengl.GL.context.uniformMatrix2fv(location,transpose,v);
- };
- lime.graphics.opengl.GL.uniformMatrix3fv = function(location,transpose,v) {
- lime.graphics.opengl.GL.context.uniformMatrix3fv(location,transpose,v);
- };
- lime.graphics.opengl.GL.uniformMatrix4fv = function(location,transpose,v) {
- lime.graphics.opengl.GL.context.uniformMatrix4fv(location,transpose,v);
- };
- lime.graphics.opengl.GL.useProgram = function(program) {
- lime.graphics.opengl.GL.context.useProgram(program);
- };
- lime.graphics.opengl.GL.validateProgram = function(program) {
- lime.graphics.opengl.GL.context.validateProgram(program);
- };
- lime.graphics.opengl.GL.vertexAttrib1f = function(indx,x) {
- lime.graphics.opengl.GL.context.vertexAttrib1f(indx,x);
- };
- lime.graphics.opengl.GL.vertexAttrib1fv = function(indx,values) {
- lime.graphics.opengl.GL.context.vertexAttrib1fv(indx,values);
- };
- lime.graphics.opengl.GL.vertexAttrib2f = function(indx,x,y) {
- lime.graphics.opengl.GL.context.vertexAttrib2f(indx,x,y);
- };
- lime.graphics.opengl.GL.vertexAttrib2fv = function(indx,values) {
- lime.graphics.opengl.GL.context.vertexAttrib2fv(indx,values);
- };
- lime.graphics.opengl.GL.vertexAttrib3f = function(indx,x,y,z) {
- lime.graphics.opengl.GL.context.vertexAttrib3f(indx,x,y,z);
- };
- lime.graphics.opengl.GL.vertexAttrib3fv = function(indx,values) {
- lime.graphics.opengl.GL.context.vertexAttrib3fv(indx,values);
- };
- lime.graphics.opengl.GL.vertexAttrib4f = function(indx,x,y,z,w) {
- lime.graphics.opengl.GL.context.vertexAttrib4f(indx,x,y,z,w);
- };
- lime.graphics.opengl.GL.vertexAttrib4fv = function(indx,values) {
- lime.graphics.opengl.GL.context.vertexAttrib4fv(indx,values);
- };
- lime.graphics.opengl.GL.vertexAttribPointer = function(indx,size,type,normalized,stride,offset) {
- lime.graphics.opengl.GL.context.vertexAttribPointer(indx,size,type,normalized,stride,offset);
- };
- lime.graphics.opengl.GL.viewport = function(x,y,width,height) {
- lime.graphics.opengl.GL.context.viewport(x,y,width,height);
- };
- lime.graphics.opengl.GL.get_version = function() {
- return 2;
- };
- lime.graphics.utils = {};
- lime.graphics.utils.ImageCanvasUtil = function() { };
- $hxClasses["lime.graphics.utils.ImageCanvasUtil"] = lime.graphics.utils.ImageCanvasUtil;
- lime.graphics.utils.ImageCanvasUtil.__name__ = ["lime","graphics","utils","ImageCanvasUtil"];
- lime.graphics.utils.ImageCanvasUtil.colorTransform = function(image,rect,colorMatrix) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.colorTransform(image,rect,colorMatrix);
- };
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas = function(image) {
- var buffer = image.buffer;
- if(buffer.__srcImage != null) {
- if(buffer.__srcCanvas == null) {
- lime.graphics.utils.ImageCanvasUtil.createCanvas(image,buffer.__srcImage.width,buffer.__srcImage.height);
- buffer.__srcContext.drawImage(buffer.__srcImage,0,0);
- }
- buffer.__srcImage = null;
- }
- };
- lime.graphics.utils.ImageCanvasUtil.convertToData = function(image) {
- if(image.buffer.data == null) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- image.buffer.__srcCanvas = null;
- image.buffer.__srcContext = null;
- }
- };
- lime.graphics.utils.ImageCanvasUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(sourceImage);
- lime.graphics.utils.ImageCanvasUtil.createImageData(sourceImage);
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.copyChannel(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
- };
- lime.graphics.utils.ImageCanvasUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) {
- if(mergeAlpha == null) mergeAlpha = false;
- if(alphaImage != null && alphaImage.get_transparent()) {
- if(alphaPoint == null) alphaPoint = new lime.math.Vector2();
- var tempData = image.clone();
- tempData.copyChannel(alphaImage,new lime.math.Rectangle(alphaPoint.x,alphaPoint.y,sourceRect.width,sourceRect.height),new lime.math.Vector2(sourceRect.x,sourceRect.y),lime.graphics.ImageChannel.ALPHA,lime.graphics.ImageChannel.ALPHA);
- sourceImage = tempData;
- }
- lime.graphics.utils.ImageCanvasUtil.sync(image);
- if(!mergeAlpha) {
- if(image.get_transparent() && sourceImage.get_transparent()) image.buffer.__srcContext.clearRect(destPoint.x + image.offsetX,destPoint.y + image.offsetY,sourceRect.width + image.offsetX,sourceRect.height + image.offsetY);
- }
- lime.graphics.utils.ImageCanvasUtil.sync(sourceImage);
- if(sourceImage.buffer.get_src() != null) image.buffer.__srcContext.drawImage(sourceImage.buffer.get_src(),sourceRect.x + sourceImage.offsetX | 0,sourceRect.y + sourceImage.offsetY | 0,sourceRect.width | 0,sourceRect.height | 0,destPoint.x + image.offsetX | 0,destPoint.y + image.offsetY | 0,sourceRect.width | 0,sourceRect.height | 0);
- };
- lime.graphics.utils.ImageCanvasUtil.createCanvas = function(image,width,height) {
- var buffer = image.buffer;
- if(buffer.__srcCanvas == null) {
- buffer.__srcCanvas = window.document.createElement("canvas");
- buffer.__srcCanvas.width = width;
- buffer.__srcCanvas.height = height;
- if(!image.get_transparent()) {
- if(!image.get_transparent()) buffer.__srcCanvas.setAttribute("moz-opaque","true");
- buffer.__srcContext = buffer.__srcCanvas.getContext ("2d", { alpha: false });
- } else buffer.__srcContext = buffer.__srcCanvas.getContext("2d");
- buffer.__srcContext.mozImageSmoothingEnabled = false;
- buffer.__srcContext.webkitImageSmoothingEnabled = false;
- buffer.__srcContext.imageSmoothingEnabled = false;
- }
- };
- lime.graphics.utils.ImageCanvasUtil.createImageData = function(image) {
- var buffer = image.buffer;
- if(buffer.data == null) {
- buffer.__srcImageData = buffer.__srcContext.getImageData(0,0,buffer.width,buffer.height);
- buffer.data = buffer.__srcImageData.data;
- }
- };
- lime.graphics.utils.ImageCanvasUtil.fillRect = function(image,rect,color) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.sync(image);
- if(rect.x == 0 && rect.y == 0 && rect.width == image.width && rect.height == image.height) {
- if(image.get_transparent() && (color & -16777216) == 0) {
- image.buffer.__srcCanvas.width = image.buffer.width;
- return;
- }
- }
- var a;
- if(image.get_transparent()) a = (color & -16777216) >>> 24; else a = 255;
- var r = (color & 16711680) >>> 16;
- var g = (color & 65280) >>> 8;
- var b = color & 255;
- image.buffer.__srcContext.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + a / 255 + ")";
- image.buffer.__srcContext.fillRect(rect.x + image.offsetX,rect.y + image.offsetY,rect.width + image.offsetX,rect.height + image.offsetY);
- };
- lime.graphics.utils.ImageCanvasUtil.floodFill = function(image,x,y,color) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.floodFill(image,x,y,color);
- };
- lime.graphics.utils.ImageCanvasUtil.getPixel = function(image,x,y) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- return lime.graphics.utils.ImageDataUtil.getPixel(image,x,y);
- };
- lime.graphics.utils.ImageCanvasUtil.getPixel32 = function(image,x,y) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- return lime.graphics.utils.ImageDataUtil.getPixel32(image,x,y);
- };
- lime.graphics.utils.ImageCanvasUtil.getPixels = function(image,rect) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- return lime.graphics.utils.ImageDataUtil.getPixels(image,rect);
- };
- lime.graphics.utils.ImageCanvasUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(sourceImage);
- lime.graphics.utils.ImageCanvasUtil.createImageData(sourceImage);
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.merge(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
- };
- lime.graphics.utils.ImageCanvasUtil.resize = function(image,newWidth,newHeight) {
- var buffer = image.buffer;
- if(buffer.__srcCanvas == null) {
- lime.graphics.utils.ImageCanvasUtil.createCanvas(image,newWidth,newHeight);
- buffer.__srcContext.drawImage(buffer.get_src(),0,0,newWidth,newHeight);
- } else {
- var sourceCanvas = buffer.__srcCanvas;
- buffer.__srcCanvas = null;
- lime.graphics.utils.ImageCanvasUtil.createCanvas(image,newWidth,newHeight);
- buffer.__srcContext.drawImage(sourceCanvas,0,0,newWidth,newHeight);
- }
- };
- lime.graphics.utils.ImageCanvasUtil.setPixel = function(image,x,y,color) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.setPixel(image,x,y,color);
- };
- lime.graphics.utils.ImageCanvasUtil.setPixel32 = function(image,x,y,color) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.setPixel32(image,x,y,color);
- };
- lime.graphics.utils.ImageCanvasUtil.setPixels = function(image,rect,byteArray) {
- lime.graphics.utils.ImageCanvasUtil.convertToCanvas(image);
- lime.graphics.utils.ImageCanvasUtil.createImageData(image);
- lime.graphics.utils.ImageDataUtil.setPixels(image,rect,byteArray);
- };
- lime.graphics.utils.ImageCanvasUtil.sync = function(image) {
- if(image.dirty && image.type != lime.graphics.ImageType.DATA) {
- image.buffer.__srcContext.putImageData(image.buffer.__srcImageData,0,0);
- image.buffer.data = null;
- image.dirty = false;
- }
- };
- lime.graphics.utils.ImageDataUtil = function() { };
- $hxClasses["lime.graphics.utils.ImageDataUtil"] = lime.graphics.utils.ImageDataUtil;
- lime.graphics.utils.ImageDataUtil.__name__ = ["lime","graphics","utils","ImageDataUtil"];
- lime.graphics.utils.ImageDataUtil.__alpha16 = null;
- lime.graphics.utils.ImageDataUtil.__clamp = null;
- lime.graphics.utils.ImageDataUtil.colorTransform = function(image,rect,colorMatrix) {
- var data = image.buffer.data;
- var stride = image.buffer.width * 4;
- var offset;
- var rowStart = Std["int"](rect.get_top() + image.offsetY);
- var rowEnd = Std["int"](rect.get_bottom() + image.offsetY);
- var columnStart = Std["int"](rect.get_left() + image.offsetX);
- var columnEnd = Std["int"](rect.get_right() + image.offsetX);
- var r;
- var g;
- var b;
- var a;
- var ex = 0;
- var _g = rowStart;
- while(_g < rowEnd) {
- var row = _g++;
- var _g1 = columnStart;
- while(_g1 < columnEnd) {
- var column = _g1++;
- offset = row * stride + column * 4;
- a = data[offset + 3] * colorMatrix[18] + colorMatrix[19] * 255 | 0;
- if(a > 255) ex = a - 255; else ex = 0;
- b = data[offset + 2] * colorMatrix[12] + colorMatrix[14] * 255 + ex | 0;
- if(b > 255) ex = b - 255; else ex = 0;
- g = data[offset + 1] * colorMatrix[6] + colorMatrix[9] * 255 + ex | 0;
- if(g > 255) ex = g - 255; else ex = 0;
- r = data[offset] * colorMatrix[0] + colorMatrix[4] * 255 + ex | 0;
- if(r > 255) data[offset] = 255; else data[offset] = r;
- if(g > 255) data[offset + 1] = 255; else data[offset + 1] = g;
- if(b > 255) data[offset + 2] = 255; else data[offset + 2] = b;
- if(a > 255) data[offset + 3] = 255; else data[offset + 3] = a;
- }
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
- var destIdx;
- switch(destChannel[1]) {
- case 0:
- destIdx = 0;
- break;
- case 1:
- destIdx = 1;
- break;
- case 2:
- destIdx = 2;
- break;
- case 3:
- destIdx = 3;
- break;
- }
- var srcIdx;
- switch(sourceChannel[1]) {
- case 0:
- srcIdx = 0;
- break;
- case 1:
- srcIdx = 1;
- break;
- case 2:
- srcIdx = 2;
- break;
- case 3:
- srcIdx = 3;
- break;
- }
- var srcStride = sourceImage.buffer.width * 4 | 0;
- var srcPosition = (sourceRect.x + sourceImage.offsetX) * 4 + srcStride * (sourceRect.y + sourceImage.offsetY) + srcIdx | 0;
- var srcRowOffset = srcStride - (4 * (sourceRect.width + sourceImage.offsetX) | 0);
- var srcRowEnd = 4 * (sourceRect.x + sourceImage.offsetX + sourceRect.width) | 0;
- var srcData = sourceImage.buffer.data;
- var destStride = image.buffer.width * 4 | 0;
- var destPosition = (destPoint.x + image.offsetX) * 4 + destStride * (destPoint.y + image.offsetY) + destIdx | 0;
- var destRowOffset = destStride - (4 * (sourceRect.width + image.offsetX) | 0);
- var destRowEnd = 4 * (destPoint.x + image.offsetX + sourceRect.width) | 0;
- var destData = image.buffer.data;
- var length = sourceRect.width * sourceRect.height | 0;
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- destData[destPosition] = srcData[srcPosition];
- srcPosition += 4;
- destPosition += 4;
- if(srcPosition % srcStride > srcRowEnd) srcPosition += srcRowOffset;
- if(destPosition % destStride > destRowEnd) destPosition += destRowOffset;
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) {
- if(mergeAlpha == null) mergeAlpha = false;
- if(alphaImage != null && alphaImage.get_transparent()) {
- if(alphaPoint == null) alphaPoint = new lime.math.Vector2();
- var tempData = image.clone();
- tempData.copyChannel(alphaImage,new lime.math.Rectangle(alphaPoint.x,alphaPoint.y,sourceRect.width,sourceRect.height),new lime.math.Vector2(sourceRect.x,sourceRect.y),lime.graphics.ImageChannel.ALPHA,lime.graphics.ImageChannel.ALPHA);
- sourceImage = tempData;
- }
- var rowOffset = destPoint.y + image.offsetY - sourceRect.y - sourceImage.offsetY | 0;
- var columnOffset = destPoint.x + image.offsetX - sourceRect.x - sourceImage.offsetY | 0;
- var sourceData = sourceImage.buffer.data;
- var sourceStride = sourceImage.buffer.width * 4;
- var sourceOffset = 0;
- var data = image.buffer.data;
- var stride = image.buffer.width * 4;
- var offset = 0;
- if(!mergeAlpha || !sourceImage.get_transparent()) {
- var _g1 = Std["int"](sourceRect.get_top() + sourceImage.offsetY);
- var _g = Std["int"](sourceRect.get_bottom() + sourceImage.offsetY);
- while(_g1 < _g) {
- var row = _g1++;
- var _g3 = Std["int"](sourceRect.get_left() + sourceImage.offsetX);
- var _g2 = Std["int"](sourceRect.get_right() + sourceImage.offsetX);
- while(_g3 < _g2) {
- var column = _g3++;
- sourceOffset = row * sourceStride + column * 4;
- offset = (row + rowOffset) * stride + (column + columnOffset) * 4;
- data[offset] = sourceData[sourceOffset];
- data[offset + 1] = sourceData[sourceOffset + 1];
- data[offset + 2] = sourceData[sourceOffset + 2];
- data[offset + 3] = sourceData[sourceOffset + 3];
- }
- }
- } else {
- var sourceAlpha;
- var oneMinusSourceAlpha;
- var _g11 = Std["int"](sourceRect.get_top() + sourceImage.offsetY);
- var _g4 = Std["int"](sourceRect.get_bottom() + sourceImage.offsetY);
- while(_g11 < _g4) {
- var row1 = _g11++;
- var _g31 = Std["int"](sourceRect.get_left() + sourceImage.offsetX);
- var _g21 = Std["int"](sourceRect.get_right() + sourceImage.offsetX);
- while(_g31 < _g21) {
- var column1 = _g31++;
- sourceOffset = row1 * sourceStride + column1 * 4;
- offset = (row1 + rowOffset) * stride + (column1 + columnOffset) * 4;
- sourceAlpha = sourceData[sourceOffset + 3] / 255;
- oneMinusSourceAlpha = 1 - sourceAlpha;
- data[offset] = lime.graphics.utils.ImageDataUtil.__clamp[sourceData[sourceOffset] + data[offset] * oneMinusSourceAlpha | 0];
- data[offset + 1] = lime.graphics.utils.ImageDataUtil.__clamp[sourceData[sourceOffset + 1] + data[offset + 1] * oneMinusSourceAlpha | 0];
- data[offset + 2] = lime.graphics.utils.ImageDataUtil.__clamp[sourceData[sourceOffset + 2] + data[offset + 2] * oneMinusSourceAlpha | 0];
- data[offset + 3] = lime.graphics.utils.ImageDataUtil.__clamp[sourceData[sourceOffset + 3] + data[offset + 3] * oneMinusSourceAlpha | 0];
- }
- }
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.fillRect = function(image,rect,color) {
- var a;
- if(image.get_transparent()) a = (color & -16777216) >>> 24; else a = 255;
- var r = (color & 16711680) >>> 16;
- var g = (color & 65280) >>> 8;
- var b = color & 255;
- var rgba = r | g << 8 | b << 16 | a << 24;
- var data = image.buffer.data;
- if(rect.width == image.buffer.width && rect.height == image.buffer.height && rect.x == 0 && rect.y == 0 && image.offsetX == 0 && image.offsetY == 0) {
- var length = image.buffer.width * image.buffer.height;
- var j = 0;
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- j = i * 4;
- data[j] = r;
- data[j + 1] = g;
- data[j + 2] = b;
- data[j + 3] = a;
- }
- } else {
- var stride = image.buffer.width * 4;
- var offset;
- var rowStart = rect.y + image.offsetY | 0;
- var rowEnd = Std["int"](rect.get_bottom() + image.offsetY);
- var columnStart = rect.x + image.offsetX | 0;
- var columnEnd = Std["int"](rect.get_right() + image.offsetX);
- var _g1 = rowStart;
- while(_g1 < rowEnd) {
- var row = _g1++;
- var _g11 = columnStart;
- while(_g11 < columnEnd) {
- var column = _g11++;
- offset = row * stride + column * 4;
- data[offset] = r;
- data[offset + 1] = g;
- data[offset + 2] = b;
- data[offset + 3] = a;
- }
- }
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.floodFill = function(image,x,y,color) {
- var data = image.buffer.data;
- var offset = (y + image.offsetY) * (image.buffer.width * 4) + (x + image.offsetX) * 4;
- var hitColorR = data[offset];
- var hitColorG = data[offset + 1];
- var hitColorB = data[offset + 2];
- var hitColorA;
- if(image.get_transparent()) hitColorA = data[offset + 3]; else hitColorA = 255;
- var r = (color & 16711680) >>> 16;
- var g = (color & 65280) >>> 8;
- var b = color & 255;
- var a;
- if(image.get_transparent()) a = (color & -16777216) >>> 24; else a = 255;
- if(hitColorR == r && hitColorG == g && hitColorB == b && hitColorA == a) return;
- var dx = [0,-1,1,0];
- var dy = [-1,0,0,1];
- var minX = -image.offsetX;
- var minY = -image.offsetY;
- var maxX = minX + image.width;
- var maxY = minY + image.height;
- var queue = new Array();
- queue.push(x);
- queue.push(y);
- while(queue.length > 0) {
- var curPointY = queue.pop();
- var curPointX = queue.pop();
- var _g = 0;
- while(_g < 4) {
- var i = _g++;
- var nextPointX = curPointX + dx[i];
- var nextPointY = curPointY + dy[i];
- if(nextPointX < minX || nextPointY < minY || nextPointX >= maxX || nextPointY >= maxY) continue;
- var nextPointOffset = (nextPointY * image.width + nextPointX) * 4;
- if(data[nextPointOffset] == hitColorR && data[nextPointOffset + 1] == hitColorG && data[nextPointOffset + 2] == hitColorB && data[nextPointOffset + 3] == hitColorA) {
- data[nextPointOffset] = r;
- data[nextPointOffset + 1] = g;
- data[nextPointOffset + 2] = b;
- data[nextPointOffset + 3] = a;
- queue.push(nextPointX);
- queue.push(nextPointY);
- }
- }
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.getPixel = function(image,x,y) {
- var data = image.buffer.data;
- var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
- if(image.get_premultiplied()) {
- var unmultiply = 255.0 / data[offset + 3];
- return lime.graphics.utils.ImageDataUtil.__clamp[data[offset] * unmultiply | 0] << 16 | lime.graphics.utils.ImageDataUtil.__clamp[data[offset + 1] * unmultiply | 0] << 8 | lime.graphics.utils.ImageDataUtil.__clamp[data[offset + 2] * unmultiply | 0];
- } else return data[offset] << 16 | data[offset + 1] << 8 | data[offset + 2];
- };
- lime.graphics.utils.ImageDataUtil.getPixel32 = function(image,x,y) {
- var data = image.buffer.data;
- var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
- var a;
- if(image.get_transparent()) a = data[offset + 3]; else a = 255;
- if(image.get_premultiplied() && a != 0) {
- var unmultiply = 255.0 / a;
- return a << 24 | (function($this) {
- var $r;
- var index = Math.round(data[offset] * unmultiply);
- $r = lime.graphics.utils.ImageDataUtil.__clamp[index];
- return $r;
- }(this)) << 16 | lime.graphics.utils.ImageDataUtil.__clamp[data[offset + 1] * unmultiply | 0] << 8 | lime.graphics.utils.ImageDataUtil.__clamp[data[offset + 2] * unmultiply | 0];
- } else return a << 24 | data[offset] << 16 | data[offset + 1] << 8 | data[offset + 2];
- };
- lime.graphics.utils.ImageDataUtil.getPixels = function(image,rect) {
- var byteArray = new lime.utils.ByteArray(image.width * image.height * 4);
- var srcData = image.buffer.data;
- var srcStride = image.buffer.width * 4 | 0;
- var srcPosition = rect.x * 4 + srcStride * rect.y | 0;
- var srcRowOffset = srcStride - (4 * rect.width | 0);
- var srcRowEnd = 4 * (rect.x + rect.width) | 0;
- var length = rect.width * rect.height | 0;
- byteArray.set_length(length * 4);
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- byteArray.__set(i * 4 + 1,srcData[srcPosition++]);
- byteArray.__set(i * 4 + 2,srcData[srcPosition++]);
- byteArray.__set(i * 4 + 3,srcData[srcPosition++]);
- byteArray.__set(i * 4,srcData[srcPosition++]);
- if(srcPosition % srcStride > srcRowEnd) srcPosition += srcRowOffset;
- }
- byteArray.position = 0;
- return byteArray;
- };
- lime.graphics.utils.ImageDataUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
- var rowOffset = destPoint.y + image.offsetY - sourceRect.y - sourceImage.offsetY | 0;
- var columnOffset = destPoint.x + image.offsetX - sourceRect.x - sourceImage.offsetY | 0;
- var sourceData = sourceImage.buffer.data;
- var sourceStride = sourceImage.buffer.width * 4;
- var sourceOffset = 0;
- var data = image.buffer.data;
- var stride = image.buffer.width * 4;
- var offset = 0;
- var _g1 = Std["int"](sourceRect.get_top() + sourceImage.offsetY);
- var _g = Std["int"](sourceRect.get_bottom() + sourceImage.offsetY);
- while(_g1 < _g) {
- var row = _g1++;
- var _g3 = Std["int"](sourceRect.get_left() + sourceImage.offsetX);
- var _g2 = Std["int"](sourceRect.get_right() + sourceImage.offsetX);
- while(_g3 < _g2) {
- var column = _g3++;
- sourceOffset = row * sourceStride + column * 4;
- offset = (row + rowOffset) * stride + (column + columnOffset) * 4;
- data[offset] = (sourceData[offset] * redMultiplier + data[offset] * (256 - redMultiplier)) / 256 | 0;
- data[offset + 1] = (sourceData[offset + 1] * greenMultiplier + data[offset + 1] * (256 - greenMultiplier)) / 256 | 0;
- data[offset + 2] = (sourceData[offset + 2] * blueMultiplier + data[offset + 2] * (256 - blueMultiplier)) / 256 | 0;
- data[offset + 3] = (sourceData[offset + 3] * alphaMultiplier + data[offset + 3] * (256 - alphaMultiplier)) / 256 | 0;
- }
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.multiplyAlpha = function(image) {
- var data = image.buffer.data;
- if(data == null) return;
- var index;
- var a16;
- var length = data.length / 4 | 0;
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- index = i * 4;
- var a161 = lime.graphics.utils.ImageDataUtil.__alpha16[data[index + 3]];
- data[index] = data[index] * a161 >> 16;
- data[index + 1] = data[index + 1] * a161 >> 16;
- data[index + 2] = data[index + 2] * a161 >> 16;
- }
- image.buffer.premultiplied = true;
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.resize = function(image,newWidth,newHeight) {
- var buffer = image.buffer;
- var newBuffer = new lime.graphics.ImageBuffer(new Uint8Array(newWidth * newHeight * 4),newWidth,newHeight);
- var imageWidth = image.width;
- var imageHeight = image.height;
- var data = image.get_data();
- var newData = newBuffer.data;
- var sourceIndex;
- var sourceIndexX;
- var sourceIndexY;
- var sourceIndexXY;
- var index;
- var sourceX;
- var sourceY;
- var u;
- var v;
- var uRatio;
- var vRatio;
- var uOpposite;
- var vOpposite;
- var _g = 0;
- while(_g < newHeight) {
- var y = _g++;
- var _g1 = 0;
- while(_g1 < newWidth) {
- var x = _g1++;
- u = (x + 0.5) / newWidth * imageWidth - 0.5;
- v = (y + 0.5) / newHeight * imageHeight - 0.5;
- sourceX = u | 0;
- sourceY = v | 0;
- sourceIndex = (sourceY * imageWidth + sourceX) * 4;
- if(sourceX < imageWidth - 1) sourceIndexX = sourceIndex + 4; else sourceIndexX = sourceIndex;
- if(sourceY < imageHeight - 1) sourceIndexY = sourceIndex + imageWidth * 4; else sourceIndexY = sourceIndex;
- if(sourceIndexX != sourceIndex) sourceIndexXY = sourceIndexY + 4; else sourceIndexXY = sourceIndexY;
- index = (y * newWidth + x) * 4;
- uRatio = u - sourceX;
- vRatio = v - sourceY;
- uOpposite = 1 - uRatio;
- vOpposite = 1 - vRatio;
- newData[index] = (data[sourceIndex] * uOpposite + data[sourceIndexX] * uRatio) * vOpposite + (data[sourceIndexY] * uOpposite + data[sourceIndexXY] * uRatio) * vRatio | 0;
- newData[index + 1] = (data[sourceIndex + 1] * uOpposite + data[sourceIndexX + 1] * uRatio) * vOpposite + (data[sourceIndexY + 1] * uOpposite + data[sourceIndexXY + 1] * uRatio) * vRatio | 0;
- newData[index + 2] = (data[sourceIndex + 2] * uOpposite + data[sourceIndexX + 2] * uRatio) * vOpposite + (data[sourceIndexY + 2] * uOpposite + data[sourceIndexXY + 2] * uRatio) * vRatio | 0;
- if(data[sourceIndexX + 3] == 0 || data[sourceIndexY + 3] == 0 || data[sourceIndexXY + 3] == 0) newData[index + 3] = 0; else newData[index + 3] = data[sourceIndex + 3];
- }
- }
- buffer.data = newData;
- buffer.width = newWidth;
- buffer.height = newHeight;
- };
- lime.graphics.utils.ImageDataUtil.resizeBuffer = function(image,newWidth,newHeight) {
- var buffer = image.buffer;
- var data = image.get_data();
- var newData = new Uint8Array(newWidth * newHeight * 4);
- var sourceIndex;
- var index;
- var _g1 = 0;
- var _g = buffer.height;
- while(_g1 < _g) {
- var y = _g1++;
- var _g3 = 0;
- var _g2 = buffer.width;
- while(_g3 < _g2) {
- var x = _g3++;
- sourceIndex = (y * buffer.width + x) * 4;
- index = (y * newWidth + x) * 4;
- newData[index] = data[sourceIndex];
- newData[index + 1] = data[sourceIndex + 1];
- newData[index + 2] = data[sourceIndex + 2];
- newData[index + 3] = data[sourceIndex + 3];
- }
- }
- buffer.data = newData;
- buffer.width = newWidth;
- buffer.height = newHeight;
- };
- lime.graphics.utils.ImageDataUtil.setPixel = function(image,x,y,color) {
- var data = image.buffer.data;
- var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
- data[offset] = (color & 16711680) >>> 16;
- data[offset + 1] = (color & 65280) >>> 8;
- data[offset + 2] = color & 255;
- if(image.get_transparent()) data[offset + 3] = 255;
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.setPixel32 = function(image,x,y,color) {
- var data = image.buffer.data;
- var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
- var a;
- if(image.get_transparent()) a = (color & -16777216) >>> 24; else a = 255;
- if(image.get_transparent() && image.get_premultiplied()) {
- var a16 = lime.graphics.utils.ImageDataUtil.__alpha16[a];
- data[offset] = ((color & 16711680) >>> 16) * a16 >> 16;
- data[offset + 1] = ((color & 65280) >>> 8) * a16 >> 16;
- data[offset + 2] = (color & 255) * a16 >> 16;
- data[offset + 3] = a;
- } else {
- data[offset] = (color & 16711680) >>> 16;
- data[offset + 1] = (color & 65280) >>> 8;
- data[offset + 2] = color & 255;
- data[offset + 3] = a;
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.setPixels = function(image,rect,byteArray) {
- var len = Math.round(rect.width * rect.height);
- var data = image.buffer.data;
- var offset = Math.round(image.buffer.width * (rect.y + image.offsetX) + (rect.x + image.offsetY));
- var pos = offset * 4;
- var boundR = Math.round(rect.x + rect.width + image.offsetX);
- var width = image.buffer.width;
- var color;
- var _g = 0;
- while(_g < len) {
- var i = _g++;
- if(pos % (width * 4) >= boundR * 4) pos += (width - boundR) * 4;
- color = byteArray.readUnsignedInt();
- data[pos++] = (color & 16711680) >>> 16;
- data[pos++] = (color & 65280) >>> 8;
- data[pos++] = color & 255;
- data[pos++] = (color & -16777216) >>> 24;
- }
- image.dirty = true;
- };
- lime.graphics.utils.ImageDataUtil.unmultiplyAlpha = function(image) {
- var data = image.buffer.data;
- var index;
- var a;
- var unmultiply;
- var length = data.length / 4 | 0;
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- index = i * 4;
- a = data[index + 3];
- if(a != 0) {
- unmultiply = 255.0 / a;
- data[index] = lime.graphics.utils.ImageDataUtil.__clamp[data[index] * unmultiply | 0];
- data[index + 1] = lime.graphics.utils.ImageDataUtil.__clamp[data[index + 1] * unmultiply | 0];
- data[index + 2] = lime.graphics.utils.ImageDataUtil.__clamp[data[index + 2] * unmultiply | 0];
- }
- }
- image.buffer.premultiplied = false;
- image.dirty = true;
- };
- lime.math = {};
- lime.math._ColorMatrix = {};
- lime.math._ColorMatrix.ColorMatrix_Impl_ = function() { };
- $hxClasses["lime.math._ColorMatrix.ColorMatrix_Impl_"] = lime.math._ColorMatrix.ColorMatrix_Impl_;
- lime.math._ColorMatrix.ColorMatrix_Impl_.__name__ = ["lime","math","_ColorMatrix","ColorMatrix_Impl_"];
- lime.math._ColorMatrix.ColorMatrix_Impl_.__properties__ = {set_redOffset:"set_redOffset",get_redOffset:"get_redOffset",set_redMultiplier:"set_redMultiplier",get_redMultiplier:"get_redMultiplier",set_greenOffset:"set_greenOffset",get_greenOffset:"get_greenOffset",set_greenMultiplier:"set_greenMultiplier",get_greenMultiplier:"get_greenMultiplier",set_color:"set_color",get_color:"get_color",set_blueOffset:"set_blueOffset",get_blueOffset:"get_blueOffset",set_blueMultiplier:"set_blueMultiplier",get_blueMultiplier:"get_blueMultiplier",set_alphaOffset:"set_alphaOffset",get_alphaOffset:"get_alphaOffset",set_alphaMultiplier:"set_alphaMultiplier",get_alphaMultiplier:"get_alphaMultiplier"}
- lime.math._ColorMatrix.ColorMatrix_Impl_._new = function(data) {
- var this1;
- if(data != null && data.length == 20) this1 = data; else this1 = new Float32Array(lime.math._ColorMatrix.ColorMatrix_Impl_.__identity);
- return this1;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.clone = function(this1) {
- return lime.math._ColorMatrix.ColorMatrix_Impl_._new(new Float32Array(this1));
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.concat = function(this1,second) {
- var _g = this1;
- var value = _g[0] + second[0];
- _g[0] = value;
- value;
- var _g1 = this1;
- var value1 = _g1[6] + second[6];
- _g1[6] = value1;
- value1;
- var _g2 = this1;
- var value2 = _g2[12] + second[12];
- _g2[12] = value2;
- value2;
- var _g3 = this1;
- var value3 = _g3[18] + second[18];
- _g3[18] = value3;
- value3;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.copyFrom = function(this1,other) {
- this1.set(other);
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.identity = function(this1) {
- this1[0] = 1;
- this1[1] = 0;
- this1[2] = 0;
- this1[3] = 0;
- this1[4] = 0;
- this1[5] = 0;
- this1[6] = 1;
- this1[7] = 0;
- this1[8] = 0;
- this1[9] = 0;
- this1[10] = 0;
- this1[11] = 0;
- this1[12] = 1;
- this1[13] = 0;
- this1[14] = 0;
- this1[15] = 0;
- this1[16] = 0;
- this1[17] = 0;
- this1[18] = 1;
- this1[19] = 0;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.__toFlashColorTransform = function(this1) {
- return null;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_alphaMultiplier = function(this1) {
- return this1[18];
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_alphaMultiplier = function(this1,value) {
- this1[18] = value;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_alphaOffset = function(this1) {
- return this1[19] * 255;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_alphaOffset = function(this1,value) {
- this1[19] = value / 255;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_blueMultiplier = function(this1) {
- return this1[12];
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_blueMultiplier = function(this1,value) {
- this1[12] = value;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_blueOffset = function(this1) {
- return this1[14] * 255;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_blueOffset = function(this1,value) {
- this1[14] = value / 255;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_color = function(this1) {
- return (this1[4] * 255 | 0) << 16 | (this1[9] * 255 | 0) << 8 | (this1[14] * 255 | 0);
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_color = function(this1,value) {
- var value1 = value >> 16 & 255;
- this1[4] = value1 / 255;
- value1;
- var value2 = value >> 8 & 255;
- this1[9] = value2 / 255;
- value2;
- var value3 = value & 255;
- this1[14] = value3 / 255;
- value3;
- this1[0] = 0;
- 0;
- this1[6] = 0;
- 0;
- this1[12] = 0;
- 0;
- return lime.math._ColorMatrix.ColorMatrix_Impl_.get_color(this1);
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_greenMultiplier = function(this1) {
- return this1[6];
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_greenMultiplier = function(this1,value) {
- this1[6] = value;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_greenOffset = function(this1) {
- return this1[9] * 255;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_greenOffset = function(this1,value) {
- this1[9] = value / 255;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_redMultiplier = function(this1) {
- return this1[0];
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_redMultiplier = function(this1,value) {
- this1[0] = value;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get_redOffset = function(this1) {
- return this1[4] * 255;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set_redOffset = function(this1,value) {
- this1[4] = value / 255;
- return value;
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.get = function(this1,index) {
- return this1[index];
- };
- lime.math._ColorMatrix.ColorMatrix_Impl_.set = function(this1,index,value) {
- this1[index] = value;
- return value;
- };
- lime.math.Matrix3 = function(a,b,c,d,tx,ty) {
- if(ty == null) ty = 0;
- if(tx == null) tx = 0;
- if(d == null) d = 1;
- if(c == null) c = 0;
- if(b == null) b = 0;
- if(a == null) a = 1;
- this.a = a;
- this.b = b;
- this.c = c;
- this.d = d;
- this.tx = tx;
- this.ty = ty;
- };
- $hxClasses["lime.math.Matrix3"] = lime.math.Matrix3;
- lime.math.Matrix3.__name__ = ["lime","math","Matrix3"];
- lime.math.Matrix3.prototype = {
- clone: function() {
- return new lime.math.Matrix3(this.a,this.b,this.c,this.d,this.tx,this.ty);
- }
- ,concat: function(m) {
- var a1 = this.a * m.a + this.b * m.c;
- this.b = this.a * m.b + this.b * m.d;
- this.a = a1;
- var c1 = this.c * m.a + this.d * m.c;
- this.d = this.c * m.b + this.d * m.d;
- this.c = c1;
- var tx1 = this.tx * m.a + this.ty * m.c + m.tx;
- this.ty = this.tx * m.b + this.ty * m.d + m.ty;
- this.tx = tx1;
- }
- ,copyColumnFrom: function(column,vector4) {
- if(column > 2) throw "Column " + column + " out of bounds (2)"; else if(column == 0) {
- this.a = vector4.x;
- this.c = vector4.y;
- } else if(column == 1) {
- this.b = vector4.x;
- this.d = vector4.y;
- } else {
- this.tx = vector4.x;
- this.ty = vector4.y;
- }
- }
- ,copyColumnTo: function(column,vector4) {
- if(column > 2) throw "Column " + column + " out of bounds (2)"; else if(column == 0) {
- vector4.x = this.a;
- vector4.y = this.c;
- vector4.z = 0;
- } else if(column == 1) {
- vector4.x = this.b;
- vector4.y = this.d;
- vector4.z = 0;
- } else {
- vector4.x = this.tx;
- vector4.y = this.ty;
- vector4.z = 1;
- }
- }
- ,copyFrom: function(sourceMatrix3) {
- this.a = sourceMatrix3.a;
- this.b = sourceMatrix3.b;
- this.c = sourceMatrix3.c;
- this.d = sourceMatrix3.d;
- this.tx = sourceMatrix3.tx;
- this.ty = sourceMatrix3.ty;
- }
- ,copyRowFrom: function(row,vector4) {
- if(row > 2) throw "Row " + row + " out of bounds (2)"; else if(row == 0) {
- this.a = vector4.x;
- this.c = vector4.y;
- } else if(row == 1) {
- this.b = vector4.x;
- this.d = vector4.y;
- } else {
- this.tx = vector4.x;
- this.ty = vector4.y;
- }
- }
- ,copyRowTo: function(row,vector4) {
- if(row > 2) throw "Row " + row + " out of bounds (2)"; else if(row == 0) {
- vector4.x = this.a;
- vector4.y = this.b;
- vector4.z = this.tx;
- } else if(row == 1) {
- vector4.x = this.c;
- vector4.y = this.d;
- vector4.z = this.ty;
- } else {
- vector4.x = 0;
- vector4.y = 0;
- vector4.z = 1;
- }
- }
- ,createBox: function(scaleX,scaleY,rotation,tx,ty) {
- if(ty == null) ty = 0;
- if(tx == null) tx = 0;
- if(rotation == null) rotation = 0;
- this.a = scaleX;
- this.d = scaleY;
- this.b = rotation;
- this.tx = tx;
- this.ty = ty;
- }
- ,createGradientBox: function(width,height,rotation,tx,ty) {
- if(ty == null) ty = 0;
- if(tx == null) tx = 0;
- if(rotation == null) rotation = 0;
- this.a = width / 1638.4;
- this.d = height / 1638.4;
- if(rotation != 0) {
- var cos = Math.cos(rotation);
- var sin = Math.sin(rotation);
- this.b = sin * this.d;
- this.c = -sin * this.a;
- this.a *= cos;
- this.d *= cos;
- } else {
- this.b = 0;
- this.c = 0;
- }
- this.tx = tx + width / 2;
- this.ty = ty + height / 2;
- }
- ,equals: function(Matrix3) {
- return Matrix3 != null && this.tx == Matrix3.tx && this.ty == Matrix3.ty && this.a == Matrix3.a && this.b == Matrix3.b && this.c == Matrix3.c && this.d == Matrix3.d;
- }
- ,deltaTransformVector2: function(Vector2) {
- return new lime.math.Vector2(Vector2.x * this.a + Vector2.y * this.c,Vector2.x * this.b + Vector2.y * this.d);
- }
- ,identity: function() {
- this.a = 1;
- this.b = 0;
- this.c = 0;
- this.d = 1;
- this.tx = 0;
- this.ty = 0;
- }
- ,invert: function() {
- var norm = this.a * this.d - this.b * this.c;
- if(norm == 0) {
- this.a = this.b = this.c = this.d = 0;
- this.tx = -this.tx;
- this.ty = -this.ty;
- } else {
- norm = 1.0 / norm;
- var a1 = this.d * norm;
- this.d = this.a * norm;
- this.a = a1;
- this.b *= -norm;
- this.c *= -norm;
- var tx1 = -this.a * this.tx - this.c * this.ty;
- this.ty = -this.b * this.tx - this.d * this.ty;
- this.tx = tx1;
- }
- return this;
- }
- ,mult: function(m) {
- var result = new lime.math.Matrix3(this.a,this.b,this.c,this.d,this.tx,this.ty);
- result.concat(m);
- return result;
- }
- ,rotate: function(theta) {
- var cos = Math.cos(theta);
- var sin = Math.sin(theta);
- var a1 = this.a * cos - this.b * sin;
- this.b = this.a * sin + this.b * cos;
- this.a = a1;
- var c1 = this.c * cos - this.d * sin;
- this.d = this.c * sin + this.d * cos;
- this.c = c1;
- var tx1 = this.tx * cos - this.ty * sin;
- this.ty = this.tx * sin + this.ty * cos;
- this.tx = tx1;
- }
- ,scale: function(sx,sy) {
- this.a *= sx;
- this.b *= sy;
- this.c *= sx;
- this.d *= sy;
- this.tx *= sx;
- this.ty *= sy;
- }
- ,setRotation: function(theta,scale) {
- if(scale == null) scale = 1;
- this.a = Math.cos(theta) * scale;
- this.c = Math.sin(theta) * scale;
- this.b = -this.c;
- this.d = this.a;
- }
- ,setTo: function(a,b,c,d,tx,ty) {
- this.a = a;
- this.b = b;
- this.c = c;
- this.d = d;
- this.tx = tx;
- this.ty = ty;
- }
- ,to3DString: function(roundPixels) {
- if(roundPixels == null) roundPixels = false;
- if(roundPixels) return "Matrix33d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 0, 1)"; else return "Matrix33d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)";
- }
- ,toMozString: function() {
- return "Matrix3(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)";
- }
- ,toString: function() {
- return "Matrix3(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")";
- }
- ,transformVector2: function(pos) {
- return new lime.math.Vector2(pos.x * this.a + pos.y * this.c + this.tx,pos.x * this.b + pos.y * this.d + this.ty);
- }
- ,translate: function(dx,dy) {
- var m = new lime.math.Matrix3();
- m.tx = dx;
- m.ty = dy;
- this.concat(m);
- }
- ,__cleanValues: function() {
- this.a = Math.round(this.a * 1000) / 1000;
- this.b = Math.round(this.b * 1000) / 1000;
- this.c = Math.round(this.c * 1000) / 1000;
- this.d = Math.round(this.d * 1000) / 1000;
- this.tx = Math.round(this.tx * 10) / 10;
- this.ty = Math.round(this.ty * 10) / 10;
- }
- ,__transformX: function(pos) {
- return pos.x * this.a + pos.y * this.c + this.tx;
- }
- ,__transformY: function(pos) {
- return pos.x * this.b + pos.y * this.d + this.ty;
- }
- ,__translateTransformed: function(pos) {
- this.tx = pos.x * this.a + pos.y * this.c + this.tx;
- this.ty = pos.x * this.b + pos.y * this.d + this.ty;
- }
- ,__class__: lime.math.Matrix3
- };
- lime.math._Matrix4 = {};
- lime.math._Matrix4.Matrix4_Impl_ = function() { };
- $hxClasses["lime.math._Matrix4.Matrix4_Impl_"] = lime.math._Matrix4.Matrix4_Impl_;
- lime.math._Matrix4.Matrix4_Impl_.__name__ = ["lime","math","_Matrix4","Matrix4_Impl_"];
- lime.math._Matrix4.Matrix4_Impl_.__properties__ = {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"}
- lime.math._Matrix4.Matrix4_Impl_._new = function(data) {
- var this1;
- if(data != null && data.length == 16) this1 = data; else this1 = new Float32Array(lime.math._Matrix4.Matrix4_Impl_.__identity);
- return this1;
- };
- lime.math._Matrix4.Matrix4_Impl_.append = function(this1,lhs) {
- var m111 = this1[0];
- var m121 = this1[4];
- var m131 = this1[8];
- var m141 = this1[12];
- var m112 = this1[1];
- var m122 = this1[5];
- var m132 = this1[9];
- var m142 = this1[13];
- var m113 = this1[2];
- var m123 = this1[6];
- var m133 = this1[10];
- var m143 = this1[14];
- var m114 = this1[3];
- var m124 = this1[7];
- var m134 = this1[11];
- var m144 = this1[15];
- var m211 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,0);
- var m221 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,4);
- var m231 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,8);
- var m241 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,12);
- var m212 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,1);
- var m222 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,5);
- var m232 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,9);
- var m242 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,13);
- var m213 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,2);
- var m223 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,6);
- var m233 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,10);
- var m243 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,14);
- var m214 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,3);
- var m224 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,7);
- var m234 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,11);
- var m244 = lime.math._Matrix4.Matrix4_Impl_.get(lhs,15);
- this1[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241;
- this1[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242;
- this1[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243;
- this1[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244;
- this1[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241;
- this1[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242;
- this1[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243;
- this1[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244;
- this1[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241;
- this1[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242;
- this1[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243;
- this1[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244;
- this1[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241;
- this1[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242;
- this1[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243;
- this1[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244;
- };
- lime.math._Matrix4.Matrix4_Impl_.appendRotation = function(this1,degrees,axis,pivotPoint) {
- var m = lime.math._Matrix4.Matrix4_Impl_.getAxisRotation(axis.x,axis.y,axis.z,degrees);
- if(pivotPoint != null) {
- var p = pivotPoint;
- lime.math._Matrix4.Matrix4_Impl_.appendTranslation(m,p.x,p.y,p.z);
- }
- lime.math._Matrix4.Matrix4_Impl_.append(this1,m);
- };
- lime.math._Matrix4.Matrix4_Impl_.appendScale = function(this1,xScale,yScale,zScale) {
- lime.math._Matrix4.Matrix4_Impl_.append(this1,lime.math._Matrix4.Matrix4_Impl_._new(new Float32Array([xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0])));
- };
- lime.math._Matrix4.Matrix4_Impl_.appendTranslation = function(this1,x,y,z) {
- this1[12] = this1[12] + x;
- this1[13] = this1[13] + y;
- this1[14] = this1[14] + z;
- };
- lime.math._Matrix4.Matrix4_Impl_.clone = function(this1) {
- return lime.math._Matrix4.Matrix4_Impl_._new(new Float32Array(this1));
- };
- lime.math._Matrix4.Matrix4_Impl_.copyColumnFrom = function(this1,column,vector) {
- switch(column) {
- case 0:
- this1[0] = vector.x;
- this1[1] = vector.y;
- this1[2] = vector.z;
- this1[3] = vector.w;
- break;
- case 1:
- this1[4] = vector.x;
- this1[5] = vector.y;
- this1[6] = vector.z;
- this1[7] = vector.w;
- break;
- case 2:
- this1[8] = vector.x;
- this1[9] = vector.y;
- this1[10] = vector.z;
- this1[11] = vector.w;
- break;
- case 3:
- this1[12] = vector.x;
- this1[13] = vector.y;
- this1[14] = vector.z;
- this1[15] = vector.w;
- break;
- default:
- throw "Error, Column " + column + " out of bounds [0, ..., 3]";
- }
- };
- lime.math._Matrix4.Matrix4_Impl_.copyColumnTo = function(this1,column,vector) {
- switch(column) {
- case 0:
- vector.x = this1[0];
- vector.y = this1[1];
- vector.z = this1[2];
- vector.w = this1[3];
- break;
- case 1:
- vector.x = this1[4];
- vector.y = this1[5];
- vector.z = this1[6];
- vector.w = this1[7];
- break;
- case 2:
- vector.x = this1[8];
- vector.y = this1[9];
- vector.z = this1[10];
- vector.w = this1[11];
- break;
- case 3:
- vector.x = this1[12];
- vector.y = this1[13];
- vector.z = this1[14];
- vector.w = this1[15];
- break;
- default:
- throw "Error, Column " + column + " out of bounds [0, ..., 3]";
- }
- };
- lime.math._Matrix4.Matrix4_Impl_.copyFrom = function(this1,other) {
- this1.set(other);
- };
- lime.math._Matrix4.Matrix4_Impl_.copythisFrom = function(this1,array,index,transposeValues) {
- if(transposeValues == null) transposeValues = false;
- if(index == null) index = 0;
- if(transposeValues) lime.math._Matrix4.Matrix4_Impl_.transpose(this1);
- var l = array.length - index;
- var _g = 0;
- while(_g < l) {
- var c = _g++;
- this1[c] = array[c + index];
- }
- if(transposeValues) lime.math._Matrix4.Matrix4_Impl_.transpose(this1);
- };
- lime.math._Matrix4.Matrix4_Impl_.copythisTo = function(this1,array,index,transposeValues) {
- if(transposeValues == null) transposeValues = false;
- if(index == null) index = 0;
- if(transposeValues) lime.math._Matrix4.Matrix4_Impl_.transpose(this1);
- var l = this1.length;
- var _g = 0;
- while(_g < l) {
- var c = _g++;
- array[c + index] = this1[c];
- }
- if(transposeValues) lime.math._Matrix4.Matrix4_Impl_.transpose(this1);
- };
- lime.math._Matrix4.Matrix4_Impl_.copyRowFrom = function(this1,row,vector) {
- switch(row) {
- case 0:
- this1[0] = vector.x;
- this1[4] = vector.y;
- this1[8] = vector.z;
- this1[12] = vector.w;
- break;
- case 1:
- this1[1] = vector.x;
- this1[5] = vector.y;
- this1[9] = vector.z;
- this1[13] = vector.w;
- break;
- case 2:
- this1[2] = vector.x;
- this1[6] = vector.y;
- this1[10] = vector.z;
- this1[14] = vector.w;
- break;
- case 3:
- this1[3] = vector.x;
- this1[7] = vector.y;
- this1[11] = vector.z;
- this1[15] = vector.w;
- break;
- default:
- throw "Error, Row " + Std.string((function($this) {
- var $r;
- var $int = row;
- $r = $int < 0?4294967296.0 + $int:$int + 0.0;
- return $r;
- }(this))) + " out of bounds [0, ..., 3]";
- }
- };
- lime.math._Matrix4.Matrix4_Impl_.create2D = function(x,y,scale,rotation) {
- if(rotation == null) rotation = 0;
- if(scale == null) scale = 1;
- var theta = rotation * Math.PI / 180.0;
- var c = Math.cos(theta);
- var s = Math.sin(theta);
- return lime.math._Matrix4.Matrix4_Impl_._new(new Float32Array([c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1]));
- };
- lime.math._Matrix4.Matrix4_Impl_.createABCD = function(a,b,c,d,tx,ty) {
- return lime.math._Matrix4.Matrix4_Impl_._new(new Float32Array([a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1]));
- };
- lime.math._Matrix4.Matrix4_Impl_.createOrtho = function(x0,x1,y0,y1,zNear,zFar) {
- var sx = 1.0 / (x1 - x0);
- var sy = 1.0 / (y1 - y0);
- var sz = 1.0 / (zFar - zNear);
- return lime.math._Matrix4.Matrix4_Impl_._new(new Float32Array([2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2. * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1]));
- };
- lime.math._Matrix4.Matrix4_Impl_.copyRowTo = function(this1,row,vector) {
- switch(row) {
- case 0:
- vector.x = this1[0];
- vector.y = this1[4];
- vector.z = this1[8];
- vector.w = this1[12];
- break;
- case 1:
- vector.x = this1[1];
- vector.y = this1[5];
- vector.z = this1[9];
- vector.w = this1[13];
- break;
- case 2:
- vector.x = this1[2];
- vector.y = this1[6];
- vector.z = this1[10];
- vector.w = this1[14];
- break;
- case 3:
- vector.x = this1[3];
- vector.y = this1[7];
- vector.z = this1[11];
- vector.w = this1[15];
- break;
- default:
- throw "Error, Row " + row + " out of bounds [0, ..., 3]";
- }
- };
- lime.math._Matrix4.Matrix4_Impl_.copyToMatrix4 = function(this1,other) {
- (js.Boot.__cast(other , Float32Array)).set(this1);
- };
- lime.math._Matrix4.Matrix4_Impl_.deltaTransformVector = function(this1,v) {
- var x = v.x;
- var y = v.y;
- var z = v.z;
- return new lime.math.Vector4(x * this1[0] + y * this1[4] + z * this1[8] + this1[3],x * this1[1] + y * this1[5] + z * this1[9] + this1[7],x * this1[2] + y * this1[6] + z * this1[10] + this1[11],0);
- };
- lime.math._Matrix4.Matrix4_Impl_.identity = function(this1) {
- this1[0] = 1;
- this1[1] = 0;
- this1[2] = 0;
- this1[3] = 0;
- this1[4] = 0;
- this1[5] = 1;
- this1[6] = 0;
- this1[7] = 0;
- this1[8] = 0;
- this1[9] = 0;
- this1[10] = 1;
- this1[11] = 0;
- this1[12] = 0;
- this1[13] = 0;
- this1[14] = 0;
- this1[15] = 1;
- };
- lime.math._Matrix4.Matrix4_Impl_.interpolate = function(thisMat,toMat,percent) {
- var m = lime.math._Matrix4.Matrix4_Impl_._new();
- var _g = 0;
- while(_g < 16) {
- var i = _g++;
- lime.math._Matrix4.Matrix4_Impl_.set(m,i,lime.math._Matrix4.Matrix4_Impl_.get(thisMat,i) + (lime.math._Matrix4.Matrix4_Impl_.get(toMat,i) - lime.math._Matrix4.Matrix4_Impl_.get(thisMat,i)) * percent);
- }
- return m;
- };
- lime.math._Matrix4.Matrix4_Impl_.interpolateTo = function(this1,toMat,percent) {
- var _g = 0;
- while(_g < 16) {
- var i = _g++;
- this1[i] = this1[i] + (lime.math._Matrix4.Matrix4_Impl_.get(toMat,i) - this1[i]) * percent;
- }
- };
- lime.math._Matrix4.Matrix4_Impl_.invert = function(this1) {
- var d = lime.math._Matrix4.Matrix4_Impl_.get_determinant(this1);
- var invertable = Math.abs(d) > 0.00000000001;
- if(invertable) {
- d = 1 / d;
- var m11 = this1[0];
- var m21 = this1[4];
- var m31 = this1[8];
- var m41 = this1[12];
- var m12 = this1[1];
- var m22 = this1[5];
- var m32 = this1[9];
- var m42 = this1[13];
- var m13 = this1[2];
- var m23 = this1[6];
- var m33 = this1[10];
- var m43 = this1[14];
- var m14 = this1[3];
- var m24 = this1[7];
- var m34 = this1[11];
- var m44 = this1[15];
- this1[0] = d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24));
- this1[1] = -d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14));
- this1[2] = d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14));
- this1[3] = -d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14));
- this1[4] = -d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24));
- this1[5] = d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14));
- this1[6] = -d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14));
- this1[7] = d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14));
- this1[8] = d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24));
- this1[9] = -d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14));
- this1[10] = d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14));
- this1[11] = -d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14));
- this1[12] = -d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23));
- this1[13] = d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13));
- this1[14] = -d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13));
- this1[15] = d * (m11 * (m22 * m33 - m32 * m23) - m21 * (m12 * m33 - m32 * m13) + m31 * (m12 * m23 - m22 * m13));
- }
- return invertable;
- };
- lime.math._Matrix4.Matrix4_Impl_.pointAt = function(this1,pos,at,up) {
- if(at == null) at = new lime.math.Vector4(0,0,-1);
- if(up == null) up = new lime.math.Vector4(0,-1,0);
- var dir = new lime.math.Vector4(at.x - pos.x,at.y - pos.y,at.z - pos.z);
- var vup = new lime.math.Vector4(up.x,up.y,up.z,up.w);
- var right;
- dir.normalize();
- vup.normalize();
- var dir2 = new lime.math.Vector4(dir.x,dir.y,dir.z,dir.w);
- dir2.scaleBy(vup.x * dir.x + vup.y * dir.y + vup.z * dir.z);
- vup = new lime.math.Vector4(vup.x - dir2.x,vup.y - dir2.y,vup.z - dir2.z);
- if(Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z) > 0) vup.normalize(); else if(dir.x != 0) vup = new lime.math.Vector4(-dir.y,dir.x,0); else vup = new lime.math.Vector4(1,0,0);
- right = new lime.math.Vector4(vup.y * dir.z - vup.z * dir.y,vup.z * dir.x - vup.x * dir.z,vup.x * dir.y - vup.y * dir.x,1);
- right.normalize();
- this1[0] = right.x;
- this1[4] = right.y;
- this1[8] = right.z;
- this1[12] = 0.0;
- this1[1] = vup.x;
- this1[5] = vup.y;
- this1[9] = vup.z;
- this1[13] = 0.0;
- this1[2] = dir.x;
- this1[6] = dir.y;
- this1[10] = dir.z;
- this1[14] = 0.0;
- this1[3] = pos.x;
- this1[7] = pos.y;
- this1[11] = pos.z;
- this1[15] = 1.0;
- };
- lime.math._Matrix4.Matrix4_Impl_.prepend = function(this1,rhs) {
- var m111 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,0);
- var m121 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,4);
- var m131 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,8);
- var m141 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,12);
- var m112 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,1);
- var m122 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,5);
- var m132 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,9);
- var m142 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,13);
- var m113 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,2);
- var m123 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,6);
- var m133 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,10);
- var m143 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,14);
- var m114 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,3);
- var m124 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,7);
- var m134 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,11);
- var m144 = lime.math._Matrix4.Matrix4_Impl_.get(rhs,15);
- var m211 = this1[0];
- var m221 = this1[4];
- var m231 = this1[8];
- var m241 = this1[12];
- var m212 = this1[1];
- var m222 = this1[5];
- var m232 = this1[9];
- var m242 = this1[13];
- var m213 = this1[2];
- var m223 = this1[6];
- var m233 = this1[10];
- var m243 = this1[14];
- var m214 = this1[3];
- var m224 = this1[7];
- var m234 = this1[11];
- var m244 = this1[15];
- this1[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241;
- this1[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242;
- this1[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243;
- this1[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244;
- this1[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241;
- this1[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242;
- this1[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243;
- this1[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244;
- this1[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241;
- this1[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242;
- this1[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243;
- this1[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244;
- this1[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241;
- this1[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242;
- this1[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243;
- this1[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244;
- };
- lime.math._Matrix4.Matrix4_Impl_.prependRotation = function(this1,degrees,axis,pivotPoint) {
- var m = lime.math._Matrix4.Matrix4_Impl_.getAxisRotation(axis.x,axis.y,axis.z,degrees);
- if(pivotPoint != null) {
- var p = pivotPoint;
- lime.math._Matrix4.Matrix4_Impl_.appendTranslation(m,p.x,p.y,p.z);
- }
- lime.math._Matrix4.Matrix4_Impl_.prepend(this1,m);
- };
- lime.math._Matrix4.Matrix4_Impl_.prependScale = function(this1,xScale,yScale,zScale) {
- lime.math._Matrix4.Matrix4_Impl_.prepend(this1,lime.math._Matrix4.Matrix4_Impl_._new(new Float32Array([xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0])));
- };
- lime.math._Matrix4.Matrix4_Impl_.prependTranslation = function(this1,x,y,z) {
- var m = lime.math._Matrix4.Matrix4_Impl_._new();
- lime.math._Matrix4.Matrix4_Impl_.set_position(m,new lime.math.Vector4(x,y,z));
- lime.math._Matrix4.Matrix4_Impl_.prepend(this1,m);
- };
- lime.math._Matrix4.Matrix4_Impl_.transformVector = function(this1,v) {
- var x = v.x;
- var y = v.y;
- var z = v.z;
- return new lime.math.Vector4(x * this1[0] + y * this1[4] + z * this1[8] + this1[12],x * this1[1] + y * this1[5] + z * this1[9] + this1[13],x * this1[2] + y * this1[6] + z * this1[10] + this1[14],x * this1[3] + y * this1[7] + z * this1[11] + this1[15]);
- };
- lime.math._Matrix4.Matrix4_Impl_.transformVectors = function(this1,ain,aout) {
- var i = 0;
- while(i + 3 <= ain.length) {
- var x = ain[i];
- var y = ain[i + 1];
- var z = ain[i + 2];
- aout[i] = x * this1[0] + y * this1[4] + z * this1[8] + this1[12];
- aout[i + 1] = x * this1[1] + y * this1[5] + z * this1[9] + this1[13];
- aout[i + 2] = x * this1[2] + y * this1[6] + z * this1[10] + this1[14];
- i += 3;
- }
- };
- lime.math._Matrix4.Matrix4_Impl_.transpose = function(this1) {
- var othis = new Float32Array(this1);
- this1[1] = othis[4];
- this1[2] = othis[8];
- this1[3] = othis[12];
- this1[4] = othis[1];
- this1[6] = othis[9];
- this1[7] = othis[13];
- this1[8] = othis[2];
- this1[9] = othis[6];
- this1[11] = othis[14];
- this1[12] = othis[3];
- this1[13] = othis[7];
- this1[14] = othis[11];
- };
- lime.math._Matrix4.Matrix4_Impl_.getAxisRotation = function(x,y,z,degrees) {
- var m = lime.math._Matrix4.Matrix4_Impl_._new();
- var a1 = new lime.math.Vector4(x,y,z);
- var rad = -degrees * (Math.PI / 180);
- var c = Math.cos(rad);
- var s = Math.sin(rad);
- var t = 1.0 - c;
- lime.math._Matrix4.Matrix4_Impl_.set(m,0,c + a1.x * a1.x * t);
- lime.math._Matrix4.Matrix4_Impl_.set(m,5,c + a1.y * a1.y * t);
- lime.math._Matrix4.Matrix4_Impl_.set(m,10,c + a1.z * a1.z * t);
- var tmp1 = a1.x * a1.y * t;
- var tmp2 = a1.z * s;
- lime.math._Matrix4.Matrix4_Impl_.set(m,4,tmp1 + tmp2);
- lime.math._Matrix4.Matrix4_Impl_.set(m,1,tmp1 - tmp2);
- tmp1 = a1.x * a1.z * t;
- tmp2 = a1.y * s;
- lime.math._Matrix4.Matrix4_Impl_.set(m,8,tmp1 - tmp2);
- lime.math._Matrix4.Matrix4_Impl_.set(m,2,tmp1 + tmp2);
- tmp1 = a1.y * a1.z * t;
- tmp2 = a1.x * s;
- lime.math._Matrix4.Matrix4_Impl_.set(m,9,tmp1 + tmp2);
- lime.math._Matrix4.Matrix4_Impl_.set(m,6,tmp1 - tmp2);
- return m;
- };
- lime.math._Matrix4.Matrix4_Impl_.get_determinant = function(this1) {
- return (this1[0] * this1[5] - this1[4] * this1[1]) * (this1[10] * this1[15] - this1[14] * this1[11]) - (this1[0] * this1[9] - this1[8] * this1[1]) * (this1[6] * this1[15] - this1[14] * this1[7]) + (this1[0] * this1[13] - this1[12] * this1[1]) * (this1[6] * this1[11] - this1[10] * this1[7]) + (this1[4] * this1[9] - this1[8] * this1[5]) * (this1[2] * this1[15] - this1[14] * this1[3]) - (this1[4] * this1[13] - this1[12] * this1[5]) * (this1[2] * this1[11] - this1[10] * this1[3]) + (this1[8] * this1[13] - this1[12] * this1[9]) * (this1[2] * this1[7] - this1[6] * this1[3]);
- };
- lime.math._Matrix4.Matrix4_Impl_.get_position = function(this1) {
- return new lime.math.Vector4(this1[12],this1[13],this1[14]);
- };
- lime.math._Matrix4.Matrix4_Impl_.set_position = function(this1,val) {
- this1[12] = val.x;
- this1[13] = val.y;
- this1[14] = val.z;
- return val;
- };
- lime.math._Matrix4.Matrix4_Impl_.get = function(this1,index) {
- return this1[index];
- };
- lime.math._Matrix4.Matrix4_Impl_.set = function(this1,index,value) {
- this1[index] = value;
- return value;
- };
- lime.math.Rectangle = function(x,y,width,height) {
- if(height == null) height = 0;
- if(width == null) width = 0;
- if(y == null) y = 0;
- if(x == null) x = 0;
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- };
- $hxClasses["lime.math.Rectangle"] = lime.math.Rectangle;
- lime.math.Rectangle.__name__ = ["lime","math","Rectangle"];
- lime.math.Rectangle.prototype = {
- clone: function() {
- return new lime.math.Rectangle(this.x,this.y,this.width,this.height);
- }
- ,contains: function(x,y) {
- return x >= this.x && y >= this.y && x < this.get_right() && y < this.get_bottom();
- }
- ,containsPoint: function(point) {
- return this.contains(point.x,point.y);
- }
- ,containsRect: function(rect) {
- if(rect.width <= 0 || rect.height <= 0) return rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right() && rect.get_bottom() < this.get_bottom(); else return rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right() && rect.get_bottom() <= this.get_bottom();
- }
- ,copyFrom: function(sourceRect) {
- this.x = sourceRect.x;
- this.y = sourceRect.y;
- this.width = sourceRect.width;
- this.height = sourceRect.height;
- }
- ,equals: function(toCompare) {
- return toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width && this.height == toCompare.height;
- }
- ,inflate: function(dx,dy) {
- this.x -= dx;
- this.width += dx * 2;
- this.y -= dy;
- this.height += dy * 2;
- }
- ,inflatePoint: function(point) {
- this.inflate(point.x,point.y);
- }
- ,intersection: function(toIntersect) {
- var x0;
- if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x;
- var x1;
- if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right();
- if(x1 <= x0) return new lime.math.Rectangle();
- var y0;
- if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y;
- var y1;
- if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom();
- if(y1 <= y0) return new lime.math.Rectangle();
- return new lime.math.Rectangle(x0,y0,x1 - x0,y1 - y0);
- }
- ,intersects: function(toIntersect) {
- var x0;
- if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x;
- var x1;
- if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right();
- if(x1 <= x0) return false;
- var y0;
- if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y;
- var y1;
- if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom();
- return y1 > y0;
- }
- ,isEmpty: function() {
- return this.width <= 0 || this.height <= 0;
- }
- ,offset: function(dx,dy) {
- this.x += dx;
- this.y += dy;
- }
- ,offsetPoint: function(point) {
- this.x += point.x;
- this.y += point.y;
- }
- ,setEmpty: function() {
- this.x = this.y = this.width = this.height = 0;
- }
- ,setTo: function(xa,ya,widtha,heighta) {
- this.x = xa;
- this.y = ya;
- this.width = widtha;
- this.height = heighta;
- }
- ,transform: function(m) {
- var tx0 = m.a * this.x + m.c * this.y;
- var tx1 = tx0;
- var ty0 = m.b * this.x + m.d * this.y;
- var ty1 = tx0;
- var tx = m.a * (this.x + this.width) + m.c * this.y;
- var ty = m.b * (this.x + this.width) + m.d * this.y;
- if(tx < tx0) tx0 = tx;
- if(ty < ty0) ty0 = ty;
- if(tx > tx1) tx1 = tx;
- if(ty > ty1) ty1 = ty;
- tx = m.a * (this.x + this.width) + m.c * (this.y + this.height);
- ty = m.b * (this.x + this.width) + m.d * (this.y + this.height);
- if(tx < tx0) tx0 = tx;
- if(ty < ty0) ty0 = ty;
- if(tx > tx1) tx1 = tx;
- if(ty > ty1) ty1 = ty;
- tx = m.a * this.x + m.c * (this.y + this.height);
- ty = m.b * this.x + m.d * (this.y + this.height);
- if(tx < tx0) tx0 = tx;
- if(ty < ty0) ty0 = ty;
- if(tx > tx1) tx1 = tx;
- if(ty > ty1) ty1 = ty;
- return new lime.math.Rectangle(tx0 + m.tx,ty0 + m.ty,tx1 - tx0,ty1 - ty0);
- }
- ,union: function(toUnion) {
- if(this.width == 0 || this.height == 0) return toUnion.clone(); else if(toUnion.width == 0 || toUnion.height == 0) return this.clone();
- var x0;
- if(this.x > toUnion.x) x0 = toUnion.x; else x0 = this.x;
- var x1;
- if(this.get_right() < toUnion.get_right()) x1 = toUnion.get_right(); else x1 = this.get_right();
- var y0;
- if(this.y > toUnion.y) y0 = toUnion.y; else y0 = this.y;
- var y1;
- if(this.get_bottom() < toUnion.get_bottom()) y1 = toUnion.get_bottom(); else y1 = this.get_bottom();
- return new lime.math.Rectangle(x0,y0,x1 - x0,y1 - y0);
- }
- ,__contract: function(x,y,width,height) {
- if(this.width == 0 && this.height == 0) return;
- var cacheRight = this.get_right();
- var cacheBottom = this.get_bottom();
- if(this.x < x) this.x = x;
- if(this.y < y) this.y = y;
- if(this.get_right() > x + width) this.width = x + width - this.x;
- if(this.get_bottom() > y + height) this.height = y + height - this.y;
- }
- ,__expand: function(x,y,width,height) {
- if(this.width == 0 && this.height == 0) {
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- return;
- }
- var cacheRight = this.get_right();
- var cacheBottom = this.get_bottom();
- if(this.x > x) this.x = x;
- if(this.y > y) this.y = y;
- if(cacheRight < x + width) this.width = x + width - this.x;
- if(cacheBottom < y + height) this.height = y + height - this.y;
- }
- ,__toFlashRectangle: function() {
- return null;
- }
- ,get_bottom: function() {
- return this.y + this.height;
- }
- ,set_bottom: function(b) {
- this.height = b - this.y;
- return b;
- }
- ,get_bottomRight: function() {
- return new lime.math.Vector2(this.x + this.width,this.y + this.height);
- }
- ,set_bottomRight: function(p) {
- this.width = p.x - this.x;
- this.height = p.y - this.y;
- return p.clone();
- }
- ,get_left: function() {
- return this.x;
- }
- ,set_left: function(l) {
- this.width -= l - this.x;
- this.x = l;
- return l;
- }
- ,get_right: function() {
- return this.x + this.width;
- }
- ,set_right: function(r) {
- this.width = r - this.x;
- return r;
- }
- ,get_size: function() {
- return new lime.math.Vector2(this.width,this.height);
- }
- ,set_size: function(p) {
- this.width = p.x;
- this.height = p.y;
- return p.clone();
- }
- ,get_top: function() {
- return this.y;
- }
- ,set_top: function(t) {
- this.height -= t - this.y;
- this.y = t;
- return t;
- }
- ,get_topLeft: function() {
- return new lime.math.Vector2(this.x,this.y);
- }
- ,set_topLeft: function(p) {
- this.x = p.x;
- this.y = p.y;
- return p.clone();
- }
- ,__class__: lime.math.Rectangle
- ,__properties__: {set_topLeft:"set_topLeft",get_topLeft:"get_topLeft",set_top:"set_top",get_top:"get_top",set_size:"set_size",get_size:"get_size",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_bottomRight:"set_bottomRight",get_bottomRight:"get_bottomRight",set_bottom:"set_bottom",get_bottom:"get_bottom"}
- };
- lime.math.Vector2 = function(x,y) {
- if(y == null) y = 0;
- if(x == null) x = 0;
- this.x = x;
- this.y = y;
- };
- $hxClasses["lime.math.Vector2"] = lime.math.Vector2;
- lime.math.Vector2.__name__ = ["lime","math","Vector2"];
- lime.math.Vector2.distance = function(pt1,pt2) {
- var dx = pt1.x - pt2.x;
- var dy = pt1.y - pt2.y;
- return Math.sqrt(dx * dx + dy * dy);
- };
- lime.math.Vector2.interpolate = function(pt1,pt2,f) {
- return new lime.math.Vector2(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y));
- };
- lime.math.Vector2.polar = function(len,angle) {
- return new lime.math.Vector2(len * Math.cos(angle),len * Math.sin(angle));
- };
- lime.math.Vector2.prototype = {
- add: function(v) {
- return new lime.math.Vector2(v.x + this.x,v.y + this.y);
- }
- ,clone: function() {
- return new lime.math.Vector2(this.x,this.y);
- }
- ,equals: function(toCompare) {
- return toCompare != null && toCompare.x == this.x && toCompare.y == this.y;
- }
- ,normalize: function(thickness) {
- if(this.x == 0 && this.y == 0) return; else {
- var norm = thickness / Math.sqrt(this.x * this.x + this.y * this.y);
- this.x *= norm;
- this.y *= norm;
- }
- }
- ,offset: function(dx,dy) {
- this.x += dx;
- this.y += dy;
- }
- ,setTo: function(xa,ya) {
- this.x = xa;
- this.y = ya;
- }
- ,subtract: function(v) {
- return new lime.math.Vector2(this.x - v.x,this.y - v.y);
- }
- ,__toFlashPoint: function() {
- return null;
- }
- ,get_length: function() {
- return Math.sqrt(this.x * this.x + this.y * this.y);
- }
- ,__class__: lime.math.Vector2
- ,__properties__: {get_length:"get_length"}
- };
- lime.math.Vector4 = function(x,y,z,w) {
- if(w == null) w = 0.;
- if(z == null) z = 0.;
- if(y == null) y = 0.;
- if(x == null) x = 0.;
- this.w = w;
- this.x = x;
- this.y = y;
- this.z = z;
- };
- $hxClasses["lime.math.Vector4"] = lime.math.Vector4;
- lime.math.Vector4.__name__ = ["lime","math","Vector4"];
- lime.math.Vector4.__properties__ = {get_Z_AXIS:"get_Z_AXIS",get_Y_AXIS:"get_Y_AXIS",get_X_AXIS:"get_X_AXIS"}
- lime.math.Vector4.X_AXIS = null;
- lime.math.Vector4.Y_AXIS = null;
- lime.math.Vector4.Z_AXIS = null;
- lime.math.Vector4.angleBetween = function(a,b) {
- var a0 = new lime.math.Vector4(a.x,a.y,a.z,a.w);
- a0.normalize();
- var b0 = new lime.math.Vector4(b.x,b.y,b.z,b.w);
- b0.normalize();
- return Math.acos(a0.x * b0.x + a0.y * b0.y + a0.z * b0.z);
- };
- lime.math.Vector4.distance = function(pt1,pt2) {
- var x = pt2.x - pt1.x;
- var y = pt2.y - pt1.y;
- var z = pt2.z - pt1.z;
- return Math.sqrt(x * x + y * y + z * z);
- };
- lime.math.Vector4.get_X_AXIS = function() {
- return new lime.math.Vector4(1,0,0);
- };
- lime.math.Vector4.get_Y_AXIS = function() {
- return new lime.math.Vector4(0,1,0);
- };
- lime.math.Vector4.get_Z_AXIS = function() {
- return new lime.math.Vector4(0,0,1);
- };
- lime.math.Vector4.prototype = {
- add: function(a) {
- return new lime.math.Vector4(this.x + a.x,this.y + a.y,this.z + a.z);
- }
- ,clone: function() {
- return new lime.math.Vector4(this.x,this.y,this.z,this.w);
- }
- ,copyFrom: function(sourceVector4) {
- this.x = sourceVector4.x;
- this.y = sourceVector4.y;
- this.z = sourceVector4.z;
- }
- ,crossProduct: function(a) {
- return new lime.math.Vector4(this.y * a.z - this.z * a.y,this.z * a.x - this.x * a.z,this.x * a.y - this.y * a.x,1);
- }
- ,decrementBy: function(a) {
- this.x -= a.x;
- this.y -= a.y;
- this.z -= a.z;
- }
- ,dotProduct: function(a) {
- return this.x * a.x + this.y * a.y + this.z * a.z;
- }
- ,equals: function(toCompare,allFour) {
- if(allFour == null) allFour = false;
- return this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z && (!allFour || this.w == toCompare.w);
- }
- ,incrementBy: function(a) {
- this.x += a.x;
- this.y += a.y;
- this.z += a.z;
- }
- ,nearEquals: function(toCompare,tolerance,allFour) {
- if(allFour == null) allFour = false;
- return Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance && (!allFour || Math.abs(this.w - toCompare.w) < tolerance);
- }
- ,negate: function() {
- this.x *= -1;
- this.y *= -1;
- this.z *= -1;
- }
- ,normalize: function() {
- var l = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
- if(l != 0) {
- this.x /= l;
- this.y /= l;
- this.z /= l;
- }
- return l;
- }
- ,project: function() {
- this.x /= this.w;
- this.y /= this.w;
- this.z /= this.w;
- }
- ,scaleBy: function(s) {
- this.x *= s;
- this.y *= s;
- this.z *= s;
- }
- ,setTo: function(xa,ya,za) {
- this.x = xa;
- this.y = ya;
- this.z = za;
- }
- ,subtract: function(a) {
- return new lime.math.Vector4(this.x - a.x,this.y - a.y,this.z - a.z);
- }
- ,toString: function() {
- return "Vector4(" + this.x + ", " + this.y + ", " + this.z + ")";
- }
- ,get_length: function() {
- return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
- }
- ,get_lengthSquared: function() {
- return this.x * this.x + this.y * this.y + this.z * this.z;
- }
- ,__class__: lime.math.Vector4
- ,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"}
- };
- lime.net = {};
- lime.net.URLLoader = function(request) {
- this.onSecurityError = new lime.app.Event();
- this.onProgress = new lime.app.Event();
- this.onOpen = new lime.app.Event();
- this.onIOError = new lime.app.Event();
- this.onHTTPStatus = new lime.app.Event();
- this.onComplete = new lime.app.Event();
- this.bytesLoaded = 0;
- this.bytesTotal = 0;
- this.set_dataFormat(lime.net.URLLoaderDataFormat.TEXT);
- if(request != null) this.load(request);
- };
- $hxClasses["lime.net.URLLoader"] = lime.net.URLLoader;
- lime.net.URLLoader.__name__ = ["lime","net","URLLoader"];
- lime.net.URLLoader.prototype = {
- close: function() {
- }
- ,getData: function() {
- return null;
- }
- ,load: function(request) {
- this.requestUrl(request.url,request.method,request.data,request.formatRequestHeaders());
- }
- ,registerEvents: function(subject) {
- var _g = this;
- var self = this;
- if(typeof XMLHttpRequestProgressEvent != "undefined") subject.addEventListener("progress",$bind(this,this.__onProgress),false);
- subject.onreadystatechange = function() {
- if(subject.readyState != 4) return;
- var s;
- try {
- s = subject.status;
- } catch( e ) {
- s = null;
- }
- if(s == undefined) s = null;
- if(s != null) {
- var listeners = self.onHTTPStatus.listeners;
- var repeat = self.onHTTPStatus.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](_g,s);
- if(!repeat[i]) {
- self.onHTTPStatus.remove(listeners[i]);
- length--;
- } else i++;
- }
- }
- if(s != null && s >= 200 && s < 400) self.__onData(subject.response); else if(s == null) {
- var listeners1 = self.onIOError.listeners;
- var repeat1 = self.onIOError.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](_g,"Failed to connect or resolve host");
- if(!repeat1[i1]) {
- self.onIOError.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- } else if(s == 12029) {
- var listeners2 = self.onIOError.listeners;
- var repeat2 = self.onIOError.repeat;
- var length2 = listeners2.length;
- var i2 = 0;
- while(i2 < length2) {
- listeners2[i2](_g,"Failed to connect to host");
- if(!repeat2[i2]) {
- self.onIOError.remove(listeners2[i2]);
- length2--;
- } else i2++;
- }
- } else if(s == 12007) {
- var listeners3 = self.onIOError.listeners;
- var repeat3 = self.onIOError.repeat;
- var length3 = listeners3.length;
- var i3 = 0;
- while(i3 < length3) {
- listeners3[i3](_g,"Unknown host");
- if(!repeat3[i3]) {
- self.onIOError.remove(listeners3[i3]);
- length3--;
- } else i3++;
- }
- } else if(s == 0) {
- var listeners4 = self.onIOError.listeners;
- var repeat4 = self.onIOError.repeat;
- var length4 = listeners4.length;
- var i4 = 0;
- while(i4 < length4) {
- listeners4[i4](_g,"Unable to make request (may be blocked due to cross-domain permissions)");
- if(!repeat4[i4]) {
- self.onIOError.remove(listeners4[i4]);
- length4--;
- } else i4++;
- }
- var listeners5 = self.onSecurityError.listeners;
- var repeat5 = self.onSecurityError.repeat;
- var length5 = listeners5.length;
- var i5 = 0;
- while(i5 < length5) {
- listeners5[i5](_g,"Unable to make request (may be blocked due to cross-domain permissions)");
- if(!repeat5[i5]) {
- self.onSecurityError.remove(listeners5[i5]);
- length5--;
- } else i5++;
- }
- } else {
- var listeners6 = self.onIOError.listeners;
- var repeat6 = self.onIOError.repeat;
- var length6 = listeners6.length;
- var i6 = 0;
- while(i6 < length6) {
- listeners6[i6](_g,"Http Error #" + subject.status);
- if(!repeat6[i6]) {
- self.onIOError.remove(listeners6[i6]);
- length6--;
- } else i6++;
- }
- }
- };
- }
- ,requestUrl: function(url,method,data,requestHeaders) {
- var xmlHttpRequest = new XMLHttpRequest();
- this.registerEvents(xmlHttpRequest);
- var uri = "";
- if(js.Boot.__instanceof(data,lime.utils.ByteArray)) {
- var data1 = data;
- var _g = this.dataFormat;
- switch(_g[1]) {
- case 0:
- uri = data1.data.buffer;
- break;
- default:
- uri = data1.readUTFBytes(data1.length);
- }
- } else if(js.Boot.__instanceof(data,lime.net.URLVariables)) {
- var data2 = data;
- var _g1 = 0;
- var _g11 = Reflect.fields(data2);
- while(_g1 < _g11.length) {
- var p = _g11[_g1];
- ++_g1;
- if(uri.length != 0) uri += "&";
- uri += encodeURIComponent(p) + "=" + StringTools.urlEncode(Reflect.field(data2,p));
- }
- } else if(data != null) uri = data.toString();
- try {
- if(method == "GET" && uri != null && uri != "") {
- var question = url.split("?").length <= 1;
- xmlHttpRequest.open("GET",url + (question?"?":"&") + Std.string(uri),true);
- uri = "";
- } else xmlHttpRequest.open(js.Boot.__cast(method , String),url,true);
- } catch( e ) {
- var listeners = this.onIOError.listeners;
- var repeat = this.onIOError.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](this,e.toString());
- if(!repeat[i]) {
- this.onIOError.remove(listeners[i]);
- length--;
- } else i++;
- }
- return;
- }
- var _g2 = this.dataFormat;
- switch(_g2[1]) {
- case 0:
- xmlHttpRequest.responseType = "arraybuffer";
- break;
- default:
- }
- var _g3 = 0;
- while(_g3 < requestHeaders.length) {
- var header = requestHeaders[_g3];
- ++_g3;
- xmlHttpRequest.setRequestHeader(header.name,header.value);
- }
- xmlHttpRequest.send(uri);
- var listeners1 = this.onOpen.listeners;
- var repeat1 = this.onOpen.repeat;
- var length1 = listeners1.length;
- var i1 = 0;
- while(i1 < length1) {
- listeners1[i1](this);
- if(!repeat1[i1]) {
- this.onOpen.remove(listeners1[i1]);
- length1--;
- } else i1++;
- }
- this.getData = function() {
- if(xmlHttpRequest.response != null) return xmlHttpRequest.response; else return xmlHttpRequest.responseText;
- };
- }
- ,__onData: function(_) {
- var content = this.getData();
- var _g = this.dataFormat;
- switch(_g[1]) {
- case 0:
- this.data = lime.utils.ByteArray.__ofBuffer(content);
- break;
- default:
- this.data = Std.string(content);
- }
- var listeners = this.onComplete.listeners;
- var repeat = this.onComplete.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](this);
- if(!repeat[i]) {
- this.onComplete.remove(listeners[i]);
- length--;
- } else i++;
- }
- }
- ,__onProgress: function(event) {
- this.bytesLoaded = event.loaded;
- this.bytesTotal = event.total;
- var listeners = this.onProgress.listeners;
- var repeat = this.onProgress.repeat;
- var length = listeners.length;
- var i = 0;
- while(i < length) {
- listeners[i](this,this.bytesLoaded,this.bytesTotal);
- if(!repeat[i]) {
- this.onProgress.remove(listeners[i]);
- length--;
- } else i++;
- }
- }
- ,set_dataFormat: function(inputVal) {
- if(inputVal == lime.net.URLLoaderDataFormat.BINARY && !Reflect.hasField(window,"ArrayBuffer")) this.dataFormat = lime.net.URLLoaderDataFormat.TEXT; else this.dataFormat = inputVal;
- return this.dataFormat;
- }
- ,__class__: lime.net.URLLoader
- ,__properties__: {set_dataFormat:"set_dataFormat"}
- };
- lime.net.URLLoaderDataFormat = $hxClasses["lime.net.URLLoaderDataFormat"] = { __ename__ : ["lime","net","URLLoaderDataFormat"], __constructs__ : ["BINARY","TEXT","VARIABLES"] };
- lime.net.URLLoaderDataFormat.BINARY = ["BINARY",0];
- lime.net.URLLoaderDataFormat.BINARY.toString = $estr;
- lime.net.URLLoaderDataFormat.BINARY.__enum__ = lime.net.URLLoaderDataFormat;
- lime.net.URLLoaderDataFormat.TEXT = ["TEXT",1];
- lime.net.URLLoaderDataFormat.TEXT.toString = $estr;
- lime.net.URLLoaderDataFormat.TEXT.__enum__ = lime.net.URLLoaderDataFormat;
- lime.net.URLLoaderDataFormat.VARIABLES = ["VARIABLES",2];
- lime.net.URLLoaderDataFormat.VARIABLES.toString = $estr;
- lime.net.URLLoaderDataFormat.VARIABLES.__enum__ = lime.net.URLLoaderDataFormat;
- lime.net.URLRequest = function(inURL) {
- if(inURL != null) this.url = inURL;
- this.requestHeaders = [];
- this.method = "GET";
- this.contentType = null;
- };
- $hxClasses["lime.net.URLRequest"] = lime.net.URLRequest;
- lime.net.URLRequest.__name__ = ["lime","net","URLRequest"];
- lime.net.URLRequest.prototype = {
- formatRequestHeaders: function() {
- var res = this.requestHeaders;
- if(res == null) res = [];
- if(this.method == "GET" || this.data == null) return res;
- if(typeof(this.data) == "string" || js.Boot.__instanceof(this.data,lime.utils.ByteArray)) {
- res = res.slice();
- res.push(new lime.net.URLRequestHeader("Content-Type",this.contentType != null?this.contentType:"application/x-www-form-urlencoded"));
- }
- return res;
- }
- ,__class__: lime.net.URLRequest
- };
- lime.net.URLRequestHeader = function(name,value) {
- if(value == null) value = "";
- if(name == null) name = "";
- this.name = name;
- this.value = value;
- };
- $hxClasses["lime.net.URLRequestHeader"] = lime.net.URLRequestHeader;
- lime.net.URLRequestHeader.__name__ = ["lime","net","URLRequestHeader"];
- lime.net.URLRequestHeader.prototype = {
- __class__: lime.net.URLRequestHeader
- };
- lime.net._URLRequestMethod = {};
- lime.net._URLRequestMethod.URLRequestMethod_Impl_ = function() { };
- $hxClasses["lime.net._URLRequestMethod.URLRequestMethod_Impl_"] = lime.net._URLRequestMethod.URLRequestMethod_Impl_;
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.__name__ = ["lime","net","_URLRequestMethod","URLRequestMethod_Impl_"];
- lime.net.URLVariables = function(inEncoded) {
- if(inEncoded != null) this.decode(inEncoded);
- };
- $hxClasses["lime.net.URLVariables"] = lime.net.URLVariables;
- lime.net.URLVariables.__name__ = ["lime","net","URLVariables"];
- lime.net.URLVariables.prototype = {
- decode: function(inVars) {
- var fields = Reflect.fields(this);
- var _g = 0;
- while(_g < fields.length) {
- var f = fields[_g];
- ++_g;
- Reflect.deleteField(this,f);
- }
- var fields1 = inVars.split(";").join("&").split("&");
- var _g1 = 0;
- while(_g1 < fields1.length) {
- var f1 = fields1[_g1];
- ++_g1;
- var eq = f1.indexOf("=");
- if(eq > 0) Reflect.setField(this,StringTools.urlDecode(HxOverrides.substr(f1,0,eq)),StringTools.urlDecode(HxOverrides.substr(f1,eq + 1,null))); else if(eq != 0) Reflect.setField(this,decodeURIComponent(f1.split("+").join(" ")),"");
- }
- }
- ,toString: function() {
- var result = new Array();
- var fields = Reflect.fields(this);
- var _g = 0;
- while(_g < fields.length) {
- var f = fields[_g];
- ++_g;
- result.push(encodeURIComponent(f) + "=" + StringTools.urlEncode(Reflect.field(this,f)));
- }
- return result.join("&");
- }
- ,__class__: lime.net.URLVariables
- };
- lime.ui = {};
- lime.ui._KeyCode = {};
- lime.ui._KeyCode.KeyCode_Impl_ = function() { };
- $hxClasses["lime.ui._KeyCode.KeyCode_Impl_"] = lime.ui._KeyCode.KeyCode_Impl_;
- lime.ui._KeyCode.KeyCode_Impl_.__name__ = ["lime","ui","_KeyCode","KeyCode_Impl_"];
- lime.ui._KeyModifier = {};
- lime.ui._KeyModifier.KeyModifier_Impl_ = function() { };
- $hxClasses["lime.ui._KeyModifier.KeyModifier_Impl_"] = lime.ui._KeyModifier.KeyModifier_Impl_;
- lime.ui._KeyModifier.KeyModifier_Impl_.__name__ = ["lime","ui","_KeyModifier","KeyModifier_Impl_"];
- lime.ui._KeyModifier.KeyModifier_Impl_.__properties__ = {set_shiftKey:"set_shiftKey",get_shiftKey:"get_shiftKey",set_numLock:"set_numLock",get_numLock:"get_numLock",set_metaKey:"set_metaKey",get_metaKey:"get_metaKey",set_ctrlKey:"set_ctrlKey",get_ctrlKey:"get_ctrlKey",set_capsLock:"set_capsLock",get_capsLock:"get_capsLock",set_altKey:"set_altKey",get_altKey:"get_altKey"}
- lime.ui._KeyModifier.KeyModifier_Impl_.get_altKey = function(this1) {
- return (this1 & 256) > 0 || (this1 & 512) > 0;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.set_altKey = function(this1,value) {
- if(value) this1 |= 768; else this1 &= 268435455 - 768;
- return value;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.get_capsLock = function(this1) {
- return (this1 & 8192) > 0 || (this1 & 8192) > 0;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.set_capsLock = function(this1,value) {
- if(value) this1 |= 8192; else this1 &= 268435455 - 8192;
- return value;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.get_ctrlKey = function(this1) {
- return (this1 & 64) > 0 || (this1 & 128) > 0;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.set_ctrlKey = function(this1,value) {
- if(value) this1 |= 192; else this1 &= 268435455 - 192;
- return value;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.get_metaKey = function(this1) {
- return (this1 & 1024) > 0 || (this1 & 2048) > 0;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.set_metaKey = function(this1,value) {
- if(value) this1 |= 3072; else this1 &= 268435455 - 3072;
- return value;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.get_numLock = function(this1) {
- return (this1 & 4096) > 0 || (this1 & 4096) > 0;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.set_numLock = function(this1,value) {
- if(value) this1 |= 4096; else this1 &= 268435455 - 4096;
- return value;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.get_shiftKey = function(this1) {
- return (this1 & 1) > 0 || (this1 & 2) > 0;
- };
- lime.ui._KeyModifier.KeyModifier_Impl_.set_shiftKey = function(this1,value) {
- if(value) this1 |= 3; else this1 &= 268435455 - 3;
- return value;
- };
- lime.ui.Mouse = function() { };
- $hxClasses["lime.ui.Mouse"] = lime.ui.Mouse;
- lime.ui.Mouse.__name__ = ["lime","ui","Mouse"];
- lime.ui.Mouse.__properties__ = {set_cursor:"set_cursor",get_cursor:"get_cursor"}
- lime.ui.Mouse.hide = function() {
- lime._backend.html5.HTML5Mouse.hide();
- };
- lime.ui.Mouse.show = function() {
- lime._backend.html5.HTML5Mouse.show();
- };
- lime.ui.Mouse.get_cursor = function() {
- return lime._backend.html5.HTML5Mouse.get_cursor();
- };
- lime.ui.Mouse.set_cursor = function(value) {
- return lime._backend.html5.HTML5Mouse.set_cursor(value);
- };
- lime.ui.MouseCursor = $hxClasses["lime.ui.MouseCursor"] = { __ename__ : ["lime","ui","MouseCursor"], __constructs__ : ["ARROW","CROSSHAIR","DEFAULT","MOVE","POINTER","RESIZE_NESW","RESIZE_NS","RESIZE_NWSE","RESIZE_WE","TEXT","WAIT","WAIT_ARROW","CUSTOM"] };
- lime.ui.MouseCursor.ARROW = ["ARROW",0];
- lime.ui.MouseCursor.ARROW.toString = $estr;
- lime.ui.MouseCursor.ARROW.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.CROSSHAIR = ["CROSSHAIR",1];
- lime.ui.MouseCursor.CROSSHAIR.toString = $estr;
- lime.ui.MouseCursor.CROSSHAIR.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.DEFAULT = ["DEFAULT",2];
- lime.ui.MouseCursor.DEFAULT.toString = $estr;
- lime.ui.MouseCursor.DEFAULT.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.MOVE = ["MOVE",3];
- lime.ui.MouseCursor.MOVE.toString = $estr;
- lime.ui.MouseCursor.MOVE.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.POINTER = ["POINTER",4];
- lime.ui.MouseCursor.POINTER.toString = $estr;
- lime.ui.MouseCursor.POINTER.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.RESIZE_NESW = ["RESIZE_NESW",5];
- lime.ui.MouseCursor.RESIZE_NESW.toString = $estr;
- lime.ui.MouseCursor.RESIZE_NESW.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.RESIZE_NS = ["RESIZE_NS",6];
- lime.ui.MouseCursor.RESIZE_NS.toString = $estr;
- lime.ui.MouseCursor.RESIZE_NS.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.RESIZE_NWSE = ["RESIZE_NWSE",7];
- lime.ui.MouseCursor.RESIZE_NWSE.toString = $estr;
- lime.ui.MouseCursor.RESIZE_NWSE.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.RESIZE_WE = ["RESIZE_WE",8];
- lime.ui.MouseCursor.RESIZE_WE.toString = $estr;
- lime.ui.MouseCursor.RESIZE_WE.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.TEXT = ["TEXT",9];
- lime.ui.MouseCursor.TEXT.toString = $estr;
- lime.ui.MouseCursor.TEXT.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.WAIT = ["WAIT",10];
- lime.ui.MouseCursor.WAIT.toString = $estr;
- lime.ui.MouseCursor.WAIT.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.WAIT_ARROW = ["WAIT_ARROW",11];
- lime.ui.MouseCursor.WAIT_ARROW.toString = $estr;
- lime.ui.MouseCursor.WAIT_ARROW.__enum__ = lime.ui.MouseCursor;
- lime.ui.MouseCursor.CUSTOM = ["CUSTOM",12];
- lime.ui.MouseCursor.CUSTOM.toString = $estr;
- lime.ui.MouseCursor.CUSTOM.__enum__ = lime.ui.MouseCursor;
- lime.ui.Window = function(config) {
- this.onWindowResize = new lime.app.Event();
- this.onWindowMove = new lime.app.Event();
- this.onWindowFocusOut = new lime.app.Event();
- this.onWindowFocusIn = new lime.app.Event();
- this.onWindowDeactivate = new lime.app.Event();
- this.onWindowClose = new lime.app.Event();
- this.onWindowActivate = new lime.app.Event();
- this.onTouchStart = new lime.app.Event();
- this.onTouchMove = new lime.app.Event();
- this.onTouchEnd = new lime.app.Event();
- this.onMouseWheel = new lime.app.Event();
- this.onMouseUp = new lime.app.Event();
- this.onMouseMove = new lime.app.Event();
- this.onMouseDown = new lime.app.Event();
- this.onKeyUp = new lime.app.Event();
- this.onKeyDown = new lime.app.Event();
- this.config = config;
- this.width = 0;
- this.height = 0;
- this.fullscreen = false;
- this.x = 0;
- this.y = 0;
- if(config != null) {
- if(Object.prototype.hasOwnProperty.call(config,"width")) this.width = config.width;
- if(Object.prototype.hasOwnProperty.call(config,"height")) this.height = config.height;
- if(Object.prototype.hasOwnProperty.call(config,"fullscreen")) this.fullscreen = config.fullscreen;
- }
- this.backend = new lime._backend.html5.HTML5Window(this);
- };
- $hxClasses["lime.ui.Window"] = lime.ui.Window;
- lime.ui.Window.__name__ = ["lime","ui","Window"];
- lime.ui.Window.prototype = {
- close: function() {
- this.backend.close();
- }
- ,create: function(application) {
- this.backend.create(application);
- if(this.currentRenderer != null) this.currentRenderer.create();
- }
- ,move: function(x,y) {
- this.backend.move(x,y);
- this.x = x;
- this.y = y;
- }
- ,resize: function(width,height) {
- this.backend.resize(width,height);
- this.width = width;
- this.height = height;
- }
- ,setIcon: function(image) {
- if(image == null) return;
- this.backend.setIcon(image);
- }
- ,__class__: lime.ui.Window
- };
- lime.utils.CompressionAlgorithm = $hxClasses["lime.utils.CompressionAlgorithm"] = { __ename__ : ["lime","utils","CompressionAlgorithm"], __constructs__ : ["DEFLATE","ZLIB","LZMA","GZIP"] };
- lime.utils.CompressionAlgorithm.DEFLATE = ["DEFLATE",0];
- lime.utils.CompressionAlgorithm.DEFLATE.toString = $estr;
- lime.utils.CompressionAlgorithm.DEFLATE.__enum__ = lime.utils.CompressionAlgorithm;
- lime.utils.CompressionAlgorithm.ZLIB = ["ZLIB",1];
- lime.utils.CompressionAlgorithm.ZLIB.toString = $estr;
- lime.utils.CompressionAlgorithm.ZLIB.__enum__ = lime.utils.CompressionAlgorithm;
- lime.utils.CompressionAlgorithm.LZMA = ["LZMA",2];
- lime.utils.CompressionAlgorithm.LZMA.toString = $estr;
- lime.utils.CompressionAlgorithm.LZMA.__enum__ = lime.utils.CompressionAlgorithm;
- lime.utils.CompressionAlgorithm.GZIP = ["GZIP",3];
- lime.utils.CompressionAlgorithm.GZIP.toString = $estr;
- lime.utils.CompressionAlgorithm.GZIP.__enum__ = lime.utils.CompressionAlgorithm;
- lime.utils.GLUtils = function() { };
- $hxClasses["lime.utils.GLUtils"] = lime.utils.GLUtils;
- lime.utils.GLUtils.__name__ = ["lime","utils","GLUtils"];
- lime.utils.GLUtils.compileShader = function(source,type) {
- var shader = lime.graphics.opengl.GL.context.createShader(type);
- lime.graphics.opengl.GL.context.shaderSource(shader,source);
- lime.graphics.opengl.GL.context.compileShader(shader);
- if(lime.graphics.opengl.GL.context.getShaderParameter(shader,35713) == 0) switch(type) {
- case 35633:
- throw "Error compiling vertex shader";
- break;
- case 35632:
- throw "Error compiling fragment shader";
- break;
- default:
- throw "Error compiling unknown shader type";
- }
- return shader;
- };
- lime.utils.GLUtils.createProgram = function(vertexSource,fragmentSource) {
- var vertexShader = lime.utils.GLUtils.compileShader(vertexSource,35633);
- var fragmentShader = lime.utils.GLUtils.compileShader(fragmentSource,35632);
- var program = lime.graphics.opengl.GL.context.createProgram();
- lime.graphics.opengl.GL.context.attachShader(program,vertexShader);
- lime.graphics.opengl.GL.context.attachShader(program,fragmentShader);
- lime.graphics.opengl.GL.context.linkProgram(program);
- if(lime.graphics.opengl.GL.context.getProgramParameter(program,35714) == 0) throw "Unable to initialize the shader program.";
- return program;
- };
- lime.utils.IDataInput = function() { };
- $hxClasses["lime.utils.IDataInput"] = lime.utils.IDataInput;
- lime.utils.IDataInput.__name__ = ["lime","utils","IDataInput"];
- lime.utils.IDataInput.prototype = {
- __class__: lime.utils.IDataInput
- ,__properties__: {set_endian:"set_endian",get_endian:"get_endian",get_bytesAvailable:"get_bytesAvailable"}
- };
- lime.utils.IMemoryRange = function() { };
- $hxClasses["lime.utils.IMemoryRange"] = lime.utils.IMemoryRange;
- lime.utils.IMemoryRange.__name__ = ["lime","utils","IMemoryRange"];
- lime.utils.IMemoryRange.prototype = {
- __class__: lime.utils.IMemoryRange
- };
- var motion = {};
- motion.actuators = {};
- motion.actuators.IGenericActuator = function() { };
- $hxClasses["motion.actuators.IGenericActuator"] = motion.actuators.IGenericActuator;
- motion.actuators.IGenericActuator.__name__ = ["motion","actuators","IGenericActuator"];
- motion.actuators.IGenericActuator.prototype = {
- __class__: motion.actuators.IGenericActuator
- };
- motion.actuators.GenericActuator = function(target,duration,properties) {
- this._autoVisible = true;
- this._delay = 0;
- this._reflect = false;
- this._repeat = 0;
- this._reverse = false;
- this._smartRotation = false;
- this._snapping = false;
- this.special = false;
- this.target = target;
- this.properties = properties;
- this.duration = duration;
- this._ease = motion.Actuate.defaultEase;
- };
- $hxClasses["motion.actuators.GenericActuator"] = motion.actuators.GenericActuator;
- motion.actuators.GenericActuator.__name__ = ["motion","actuators","GenericActuator"];
- motion.actuators.GenericActuator.__interfaces__ = [motion.actuators.IGenericActuator];
- motion.actuators.GenericActuator.prototype = {
- apply: function() {
- var _g = 0;
- var _g1 = Reflect.fields(this.properties);
- while(_g < _g1.length) {
- var i = _g1[_g];
- ++_g;
- if(Object.prototype.hasOwnProperty.call(this.target,i)) Reflect.setField(this.target,i,Reflect.field(this.properties,i)); else Reflect.setProperty(this.target,i,Reflect.field(this.properties,i));
- }
- }
- ,autoVisible: function(value) {
- if(value == null) value = true;
- this._autoVisible = value;
- return this;
- }
- ,callMethod: function(method,params) {
- if(params == null) params = [];
- return method.apply(method,params);
- }
- ,change: function() {
- if(this._onUpdate != null) this.callMethod(this._onUpdate,this._onUpdateParams);
- }
- ,complete: function(sendEvent) {
- if(sendEvent == null) sendEvent = true;
- if(sendEvent) {
- this.change();
- if(this._onComplete != null) this.callMethod(this._onComplete,this._onCompleteParams);
- }
- motion.Actuate.unload(this);
- }
- ,delay: function(duration) {
- this._delay = duration;
- return this;
- }
- ,ease: function(easing) {
- this._ease = easing;
- return this;
- }
- ,move: function() {
- }
- ,onComplete: function(handler,parameters) {
- this._onComplete = handler;
- if(parameters == null) this._onCompleteParams = []; else this._onCompleteParams = parameters;
- if(this.duration == 0) this.complete();
- return this;
- }
- ,onRepeat: function(handler,parameters) {
- this._onRepeat = handler;
- if(parameters == null) this._onRepeatParams = []; else this._onRepeatParams = parameters;
- return this;
- }
- ,onUpdate: function(handler,parameters) {
- this._onUpdate = handler;
- if(parameters == null) this._onUpdateParams = []; else this._onUpdateParams = parameters;
- return this;
- }
- ,onPause: function(handler,parameters) {
- this._onPause = handler;
- if(parameters == null) this._onPauseParams = []; else this._onPauseParams = parameters;
- return this;
- }
- ,onResume: function(handler,parameters) {
- this._onResume = handler;
- if(parameters == null) this._onResumeParams = []; else this._onResumeParams = parameters;
- return this;
- }
- ,pause: function() {
- if(this._onPause != null) this.callMethod(this._onPause,this._onPauseParams);
- }
- ,reflect: function(value) {
- if(value == null) value = true;
- this._reflect = value;
- this.special = true;
- return this;
- }
- ,repeat: function(times) {
- if(times == null) times = -1;
- this._repeat = times;
- return this;
- }
- ,resume: function() {
- if(this._onResume != null) this.callMethod(this._onResume,this._onResumeParams);
- }
- ,reverse: function(value) {
- if(value == null) value = true;
- this._reverse = value;
- this.special = true;
- return this;
- }
- ,smartRotation: function(value) {
- if(value == null) value = true;
- this._smartRotation = value;
- this.special = true;
- return this;
- }
- ,snapping: function(value) {
- if(value == null) value = true;
- this._snapping = value;
- this.special = true;
- return this;
- }
- ,stop: function(properties,complete,sendEvent) {
- }
- ,__class__: motion.actuators.GenericActuator
- };
- motion.actuators.SimpleActuator = function(target,duration,properties) {
- this.active = true;
- this.propertyDetails = new Array();
- this.sendChange = false;
- this.paused = false;
- this.cacheVisible = false;
- this.initialized = false;
- this.setVisible = false;
- this.toggleVisible = false;
- this.startTime = openfl.Lib.getTimer() / 1000;
- motion.actuators.GenericActuator.call(this,target,duration,properties);
- if(!motion.actuators.SimpleActuator.addedEvent) {
- motion.actuators.SimpleActuator.addedEvent = true;
- openfl.Lib.current.stage.addEventListener(openfl.events.Event.ENTER_FRAME,motion.actuators.SimpleActuator.stage_onEnterFrame);
- }
- };
- $hxClasses["motion.actuators.SimpleActuator"] = motion.actuators.SimpleActuator;
- motion.actuators.SimpleActuator.__name__ = ["motion","actuators","SimpleActuator"];
- motion.actuators.SimpleActuator.stage_onEnterFrame = function(event) {
- var currentTime = openfl.Lib.getTimer() / 1000;
- var actuator;
- var j = 0;
- var cleanup = false;
- var _g1 = 0;
- var _g = motion.actuators.SimpleActuator.actuatorsLength;
- while(_g1 < _g) {
- var i = _g1++;
- actuator = motion.actuators.SimpleActuator.actuators[j];
- if(actuator != null && actuator.active) {
- if(currentTime >= actuator.timeOffset) actuator.update(currentTime);
- j++;
- } else {
- motion.actuators.SimpleActuator.actuators.splice(j,1);
- --motion.actuators.SimpleActuator.actuatorsLength;
- }
- }
- };
- motion.actuators.SimpleActuator.__super__ = motion.actuators.GenericActuator;
- motion.actuators.SimpleActuator.prototype = $extend(motion.actuators.GenericActuator.prototype,{
- setField_motion_actuators_SimpleActuator_T: function(target,propertyName,value) {
- if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value);
- }
- ,autoVisible: function(value) {
- if(value == null) value = true;
- this._autoVisible = value;
- if(!value) {
- this.toggleVisible = false;
- if(this.setVisible) this.setField_motion_actuators_SimpleActuator_T(this.target,"visible",this.cacheVisible);
- }
- return this;
- }
- ,delay: function(duration) {
- this._delay = duration;
- this.timeOffset = this.startTime + duration;
- return this;
- }
- ,getField: function(target,propertyName) {
- var value = null;
- if(Object.prototype.hasOwnProperty.call(target,propertyName)) value = Reflect.field(target,propertyName); else value = Reflect.getProperty(target,propertyName);
- return value;
- }
- ,initialize: function() {
- var details;
- var start;
- var _g = 0;
- var _g1 = Reflect.fields(this.properties);
- while(_g < _g1.length) {
- var i = _g1[_g];
- ++_g;
- var isField = true;
- if(Object.prototype.hasOwnProperty.call(this.target,i) && !(this.target.__properties__ && this.target.__properties__["set_" + i])) start = Reflect.field(this.target,i); else {
- isField = false;
- start = Reflect.getProperty(this.target,i);
- }
- if(typeof(start) == "number") {
- details = new motion.actuators.PropertyDetails(this.target,i,start,this.getField(this.properties,i) - start,isField);
- this.propertyDetails.push(details);
- }
- }
- this.detailsLength = this.propertyDetails.length;
- this.initialized = true;
- }
- ,move: function() {
- this.toggleVisible = Object.prototype.hasOwnProperty.call(this.properties,"alpha") && js.Boot.__instanceof(this.target,openfl.display.DisplayObject);
- if(this.toggleVisible && this.properties.alpha != 0 && !this.getField(this.target,"visible")) {
- this.setVisible = true;
- this.cacheVisible = this.getField(this.target,"visible");
- this.setField_motion_actuators_SimpleActuator_T(this.target,"visible",true);
- }
- this.timeOffset = this.startTime;
- motion.actuators.SimpleActuator.actuators.push(this);
- ++motion.actuators.SimpleActuator.actuatorsLength;
- }
- ,onUpdate: function(handler,parameters) {
- this._onUpdate = handler;
- if(parameters == null) this._onUpdateParams = []; else this._onUpdateParams = parameters;
- this.sendChange = true;
- return this;
- }
- ,pause: function() {
- if(!this.paused) {
- this.paused = true;
- motion.actuators.GenericActuator.prototype.pause.call(this);
- this.pauseTime = openfl.Lib.getTimer();
- }
- }
- ,resume: function() {
- if(this.paused) {
- this.paused = false;
- this.timeOffset += (openfl.Lib.getTimer() - this.pauseTime) / 1000;
- motion.actuators.GenericActuator.prototype.resume.call(this);
- }
- }
- ,setProperty: function(details,value) {
- if(details.isField) details.target[details.propertyName] = value; else Reflect.setProperty(details.target,details.propertyName,value);
- }
- ,stop: function(properties,complete,sendEvent) {
- if(this.active) {
- if(properties == null) {
- this.active = false;
- if(complete) this.apply();
- this.complete(sendEvent);
- return;
- }
- var _g = 0;
- var _g1 = Reflect.fields(properties);
- while(_g < _g1.length) {
- var i = _g1[_g];
- ++_g;
- if(Object.prototype.hasOwnProperty.call(this.properties,i)) {
- this.active = false;
- if(complete) this.apply();
- this.complete(sendEvent);
- return;
- }
- }
- }
- }
- ,update: function(currentTime) {
- if(!this.paused) {
- var details;
- var easing;
- var i;
- var tweenPosition = (currentTime - this.timeOffset) / this.duration;
- if(tweenPosition > 1) tweenPosition = 1;
- if(!this.initialized) this.initialize();
- if(!this.special) {
- easing = this._ease.calculate(tweenPosition);
- var _g1 = 0;
- var _g = this.detailsLength;
- while(_g1 < _g) {
- var i1 = _g1++;
- details = this.propertyDetails[i1];
- this.setProperty(details,details.start + details.change * easing);
- }
- } else {
- if(!this._reverse) easing = this._ease.calculate(tweenPosition); else easing = this._ease.calculate(1 - tweenPosition);
- var endValue;
- var _g11 = 0;
- var _g2 = this.detailsLength;
- while(_g11 < _g2) {
- var i2 = _g11++;
- details = this.propertyDetails[i2];
- if(this._smartRotation && (details.propertyName == "rotation" || details.propertyName == "rotationX" || details.propertyName == "rotationY" || details.propertyName == "rotationZ")) {
- var rotation = details.change % 360;
- if(rotation > 180) rotation -= 360; else if(rotation < -180) rotation += 360;
- endValue = details.start + rotation * easing;
- } else endValue = details.start + details.change * easing;
- if(!this._snapping) {
- if(details.isField) details.target[details.propertyName] = endValue; else Reflect.setProperty(details.target,details.propertyName,endValue);
- } else this.setProperty(details,Math.round(endValue));
- }
- }
- if(tweenPosition == 1) {
- if(this._repeat == 0) {
- this.active = false;
- if(this.toggleVisible && this.getField(this.target,"alpha") == 0) this.setField_motion_actuators_SimpleActuator_T(this.target,"visible",false);
- this.complete(true);
- return;
- } else {
- if(this._onRepeat != null) this.callMethod(this._onRepeat,this._onRepeatParams);
- if(this._reflect) this._reverse = !this._reverse;
- this.startTime = currentTime;
- this.timeOffset = this.startTime + this._delay;
- if(this._repeat > 0) this._repeat--;
- }
- }
- if(this.sendChange) this.change();
- }
- }
- ,__class__: motion.actuators.SimpleActuator
- });
- motion.easing = {};
- motion.easing.Expo = function() { };
- $hxClasses["motion.easing.Expo"] = motion.easing.Expo;
- motion.easing.Expo.__name__ = ["motion","easing","Expo"];
- motion.easing.Expo.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"}
- motion.easing.Expo.get_easeIn = function() {
- return new motion.easing.ExpoEaseIn();
- };
- motion.easing.Expo.get_easeInOut = function() {
- return new motion.easing.ExpoEaseInOut();
- };
- motion.easing.Expo.get_easeOut = function() {
- return new motion.easing.ExpoEaseOut();
- };
- motion.easing.IEasing = function() { };
- $hxClasses["motion.easing.IEasing"] = motion.easing.IEasing;
- motion.easing.IEasing.__name__ = ["motion","easing","IEasing"];
- motion.easing.IEasing.prototype = {
- __class__: motion.easing.IEasing
- };
- motion.easing.ExpoEaseOut = function() {
- };
- $hxClasses["motion.easing.ExpoEaseOut"] = motion.easing.ExpoEaseOut;
- motion.easing.ExpoEaseOut.__name__ = ["motion","easing","ExpoEaseOut"];
- motion.easing.ExpoEaseOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.ExpoEaseOut.prototype = {
- calculate: function(k) {
- if(k == 1) return 1; else return 1 - Math.pow(2,-10 * k);
- }
- ,ease: function(t,b,c,d) {
- if(t == d) return b + c; else return c * (1 - Math.pow(2,-10 * t / d)) + b;
- }
- ,__class__: motion.easing.ExpoEaseOut
- };
- motion.Actuate = function() { };
- $hxClasses["motion.Actuate"] = motion.Actuate;
- motion.Actuate.__name__ = ["motion","Actuate"];
- motion.Actuate.apply = function(target,properties,customActuator) {
- motion.Actuate.stop(target,properties);
- if(customActuator == null) customActuator = motion.Actuate.defaultActuator;
- var actuator = Type.createInstance(customActuator,[target,0,properties]);
- actuator.apply();
- return actuator;
- };
- motion.Actuate.effects = function(target,duration,overwrite) {
- if(overwrite == null) overwrite = true;
- return new motion._Actuate.EffectsOptions(target,duration,overwrite);
- };
- motion.Actuate.getLibrary = function(target,allowCreation) {
- if(allowCreation == null) allowCreation = true;
- if(!(motion.Actuate.targetLibraries.h.__keys__[target.__id__] != null) && allowCreation) motion.Actuate.targetLibraries.set(target,new Array());
- return motion.Actuate.targetLibraries.h[target.__id__];
- };
- motion.Actuate.isActive = function() {
- var result = false;
- var $it0 = motion.Actuate.targetLibraries.iterator();
- while( $it0.hasNext() ) {
- var library = $it0.next();
- result = true;
- break;
- }
- return result;
- };
- motion.Actuate.motionPath = function(target,duration,properties,overwrite) {
- if(overwrite == null) overwrite = true;
- return motion.Actuate.tween(target,duration,properties,overwrite,motion.actuators.MotionPathActuator);
- };
- motion.Actuate.pause = function(target) {
- if(js.Boot.__instanceof(target,motion.actuators.IGenericActuator)) {
- var actuator = target;
- actuator.pause();
- } else {
- var library = motion.Actuate.getLibrary(target,false);
- if(library != null) {
- var _g = 0;
- while(_g < library.length) {
- var actuator1 = library[_g];
- ++_g;
- actuator1.pause();
- }
- }
- }
- };
- motion.Actuate.pauseAll = function() {
- var $it0 = motion.Actuate.targetLibraries.iterator();
- while( $it0.hasNext() ) {
- var library = $it0.next();
- var _g = 0;
- while(_g < library.length) {
- var actuator = library[_g];
- ++_g;
- actuator.pause();
- }
- }
- };
- motion.Actuate.reset = function() {
- var $it0 = motion.Actuate.targetLibraries.iterator();
- while( $it0.hasNext() ) {
- var library = $it0.next();
- var i = library.length - 1;
- while(i >= 0) {
- library[i].stop(null,false,false);
- i--;
- }
- }
- motion.Actuate.targetLibraries = new haxe.ds.ObjectMap();
- };
- motion.Actuate.resume = function(target) {
- if(js.Boot.__instanceof(target,motion.actuators.IGenericActuator)) {
- var actuator = target;
- actuator.resume();
- } else {
- var library = motion.Actuate.getLibrary(target,false);
- if(library != null) {
- var _g = 0;
- while(_g < library.length) {
- var actuator1 = library[_g];
- ++_g;
- actuator1.resume();
- }
- }
- }
- };
- motion.Actuate.resumeAll = function() {
- var $it0 = motion.Actuate.targetLibraries.iterator();
- while( $it0.hasNext() ) {
- var library = $it0.next();
- var _g = 0;
- while(_g < library.length) {
- var actuator = library[_g];
- ++_g;
- actuator.resume();
- }
- }
- };
- motion.Actuate.stop = function(target,properties,complete,sendEvent) {
- if(sendEvent == null) sendEvent = true;
- if(complete == null) complete = false;
- if(target != null) {
- if(js.Boot.__instanceof(target,motion.actuators.IGenericActuator)) {
- var actuator = target;
- actuator.stop(null,complete,sendEvent);
- } else {
- var library = motion.Actuate.getLibrary(target,false);
- if(library != null) {
- if(typeof(properties) == "string") {
- var temp = { };
- Reflect.setField(temp,properties,null);
- properties = temp;
- } else if((properties instanceof Array) && properties.__enum__ == null) {
- var temp1 = { };
- var _g = 0;
- var _g1;
- _g1 = js.Boot.__cast(properties , Array);
- while(_g < _g1.length) {
- var property = _g1[_g];
- ++_g;
- Reflect.setField(temp1,property,null);
- }
- properties = temp1;
- }
- var i = library.length - 1;
- while(i >= 0) {
- library[i].stop(properties,complete,sendEvent);
- i--;
- }
- }
- }
- }
- };
- motion.Actuate.timer = function(duration,customActuator) {
- return motion.Actuate.tween(new motion._Actuate.TweenTimer(0),duration,new motion._Actuate.TweenTimer(1),false,customActuator);
- };
- motion.Actuate.transform = function(target,duration,overwrite) {
- if(overwrite == null) overwrite = true;
- if(duration == null) duration = 0;
- return new motion._Actuate.TransformOptions(target,duration,overwrite);
- };
- motion.Actuate.tween = function(target,duration,properties,overwrite,customActuator) {
- if(overwrite == null) overwrite = true;
- if(target != null) {
- if(duration > 0) {
- if(customActuator == null) customActuator = motion.Actuate.defaultActuator;
- var actuator = Type.createInstance(customActuator,[target,duration,properties]);
- var library = motion.Actuate.getLibrary(actuator.target);
- if(overwrite) {
- var i = library.length - 1;
- while(i >= 0) {
- library[i].stop(actuator.properties,false,false);
- i--;
- }
- library = motion.Actuate.getLibrary(actuator.target);
- }
- library.push(actuator);
- actuator.move();
- return actuator;
- } else return motion.Actuate.apply(target,properties,customActuator);
- }
- return null;
- };
- motion.Actuate.unload = function(actuator) {
- var target = actuator.target;
- if(motion.Actuate.targetLibraries.h.__keys__[target.__id__] != null) {
- HxOverrides.remove(motion.Actuate.targetLibraries.h[target.__id__],actuator);
- if(motion.Actuate.targetLibraries.h[target.__id__].length == 0) motion.Actuate.targetLibraries.remove(target);
- }
- };
- motion.Actuate.update = function(target,duration,start,end,overwrite) {
- if(overwrite == null) overwrite = true;
- var properties = { start : start, end : end};
- return motion.Actuate.tween(target,duration,properties,overwrite,motion.actuators.MethodActuator);
- };
- motion._Actuate = {};
- motion._Actuate.EffectsOptions = function(target,duration,overwrite) {
- this.target = target;
- this.duration = duration;
- this.overwrite = overwrite;
- };
- $hxClasses["motion._Actuate.EffectsOptions"] = motion._Actuate.EffectsOptions;
- motion._Actuate.EffectsOptions.__name__ = ["motion","_Actuate","EffectsOptions"];
- motion._Actuate.EffectsOptions.prototype = {
- filter: function(reference,properties) {
- properties.filter = reference;
- return motion.Actuate.tween(this.target,this.duration,properties,this.overwrite,motion.actuators.FilterActuator);
- }
- ,__class__: motion._Actuate.EffectsOptions
- };
- motion._Actuate.TransformOptions = function(target,duration,overwrite) {
- this.target = target;
- this.duration = duration;
- this.overwrite = overwrite;
- };
- $hxClasses["motion._Actuate.TransformOptions"] = motion._Actuate.TransformOptions;
- motion._Actuate.TransformOptions.__name__ = ["motion","_Actuate","TransformOptions"];
- motion._Actuate.TransformOptions.prototype = {
- color: function(value,strength,alpha) {
- if(strength == null) strength = 1;
- if(value == null) value = 0;
- var properties = { colorValue : value, colorStrength : strength};
- if(alpha != null) properties.colorAlpha = alpha;
- return motion.Actuate.tween(this.target,this.duration,properties,this.overwrite,motion.actuators.TransformActuator);
- }
- ,sound: function(volume,pan) {
- var properties = { };
- if(volume != null) properties.soundVolume = volume;
- if(pan != null) properties.soundPan = pan;
- return motion.Actuate.tween(this.target,this.duration,properties,this.overwrite,motion.actuators.TransformActuator);
- }
- ,__class__: motion._Actuate.TransformOptions
- };
- motion._Actuate.TweenTimer = function(progress) {
- this.progress = progress;
- };
- $hxClasses["motion._Actuate.TweenTimer"] = motion._Actuate.TweenTimer;
- motion._Actuate.TweenTimer.__name__ = ["motion","_Actuate","TweenTimer"];
- motion._Actuate.TweenTimer.prototype = {
- __class__: motion._Actuate.TweenTimer
- };
- motion.MotionPath = function() {
- this._x = new motion.ComponentPath();
- this._y = new motion.ComponentPath();
- this._rotation = null;
- };
- $hxClasses["motion.MotionPath"] = motion.MotionPath;
- motion.MotionPath.__name__ = ["motion","MotionPath"];
- motion.MotionPath.prototype = {
- bezier: function(x,y,controlX,controlY,strength) {
- if(strength == null) strength = 1;
- this._x.addPath(new motion.BezierPath(x,controlX,strength));
- this._y.addPath(new motion.BezierPath(y,controlY,strength));
- return this;
- }
- ,line: function(x,y,strength) {
- if(strength == null) strength = 1;
- this._x.addPath(new motion.LinearPath(x,strength));
- this._y.addPath(new motion.LinearPath(y,strength));
- return this;
- }
- ,get_rotation: function() {
- if(this._rotation == null) this._rotation = new motion.RotationPath(this._x,this._y);
- return this._rotation;
- }
- ,get_x: function() {
- return this._x;
- }
- ,get_y: function() {
- return this._y;
- }
- ,__class__: motion.MotionPath
- ,__properties__: {get_y:"get_y",get_x:"get_x",get_rotation:"get_rotation"}
- };
- motion.IComponentPath = function() { };
- $hxClasses["motion.IComponentPath"] = motion.IComponentPath;
- motion.IComponentPath.__name__ = ["motion","IComponentPath"];
- motion.IComponentPath.prototype = {
- __class__: motion.IComponentPath
- };
- motion.ComponentPath = function() {
- this.paths = new Array();
- this.start = 0;
- this.totalStrength = 0;
- };
- $hxClasses["motion.ComponentPath"] = motion.ComponentPath;
- motion.ComponentPath.__name__ = ["motion","ComponentPath"];
- motion.ComponentPath.__interfaces__ = [motion.IComponentPath];
- motion.ComponentPath.prototype = {
- addPath: function(path) {
- this.paths.push(path);
- this.totalStrength += path.strength;
- }
- ,calculate: function(k) {
- if(this.paths.length == 1) return this.paths[0].calculate(this.start,k); else {
- var ratio = k * this.totalStrength;
- var lastEnd = this.start;
- var _g = 0;
- var _g1 = this.paths;
- while(_g < _g1.length) {
- var path = _g1[_g];
- ++_g;
- if(ratio > path.strength) {
- ratio -= path.strength;
- lastEnd = path.end;
- } else return path.calculate(lastEnd,ratio / path.strength);
- }
- }
- return 0;
- }
- ,get_end: function() {
- if(this.paths.length > 0) {
- var path = this.paths[this.paths.length - 1];
- return path.end;
- } else return this.start;
- }
- ,__class__: motion.ComponentPath
- ,__properties__: {get_end:"get_end"}
- };
- motion.BezierPath = function(end,control,strength) {
- this.end = end;
- this.control = control;
- this.strength = strength;
- };
- $hxClasses["motion.BezierPath"] = motion.BezierPath;
- motion.BezierPath.__name__ = ["motion","BezierPath"];
- motion.BezierPath.prototype = {
- calculate: function(start,k) {
- return (1 - k) * (1 - k) * start + 2 * (1 - k) * k * this.control + k * k * this.end;
- }
- ,__class__: motion.BezierPath
- };
- motion.LinearPath = function(end,strength) {
- motion.BezierPath.call(this,end,0,strength);
- };
- $hxClasses["motion.LinearPath"] = motion.LinearPath;
- motion.LinearPath.__name__ = ["motion","LinearPath"];
- motion.LinearPath.__super__ = motion.BezierPath;
- motion.LinearPath.prototype = $extend(motion.BezierPath.prototype,{
- calculate: function(start,k) {
- return start + k * (this.end - start);
- }
- ,__class__: motion.LinearPath
- });
- motion.RotationPath = function(x,y) {
- this.step = 0.01;
- this._x = x;
- this._y = y;
- this.offset = 0;
- this.start = this.calculate(0.0);
- };
- $hxClasses["motion.RotationPath"] = motion.RotationPath;
- motion.RotationPath.__name__ = ["motion","RotationPath"];
- motion.RotationPath.__interfaces__ = [motion.IComponentPath];
- motion.RotationPath.prototype = {
- calculate: function(k) {
- var dX = this._x.calculate(k) - this._x.calculate(k + this.step);
- var dY = this._y.calculate(k) - this._y.calculate(k + this.step);
- var angle = Math.atan2(dY,dX) * (180 / Math.PI);
- angle = (angle + this.offset) % 360;
- return angle;
- }
- ,get_end: function() {
- return this.calculate(1.0);
- }
- ,__class__: motion.RotationPath
- ,__properties__: {get_end:"get_end"}
- };
- motion.actuators.FilterActuator = function(target,duration,properties) {
- this.filterIndex = -1;
- motion.actuators.SimpleActuator.call(this,target,duration,properties);
- if(js.Boot.__instanceof(properties.filter,Class)) {
- this.filterClass = properties.filter;
- if(target.get_filters().length == 0) target.set_filters([Type.createInstance(this.filterClass,[])]);
- var _g = 0;
- var _g1 = target.get_filters();
- while(_g < _g1.length) {
- var filter = _g1[_g];
- ++_g;
- if(js.Boot.__instanceof(filter,this.filterClass)) this.filter = filter;
- }
- } else {
- this.filterIndex = properties.filter;
- this.filter = target.get_filters()[this.filterIndex];
- }
- };
- $hxClasses["motion.actuators.FilterActuator"] = motion.actuators.FilterActuator;
- motion.actuators.FilterActuator.__name__ = ["motion","actuators","FilterActuator"];
- motion.actuators.FilterActuator.__super__ = motion.actuators.SimpleActuator;
- motion.actuators.FilterActuator.prototype = $extend(motion.actuators.SimpleActuator.prototype,{
- setField_openfl_display_DisplayObject: function(target,propertyName,value) {
- if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value);
- }
- ,apply: function() {
- var _g = 0;
- var _g1 = Reflect.fields(this.properties);
- while(_g < _g1.length) {
- var propertyName = _g1[_g];
- ++_g;
- if(propertyName != "filter") Reflect.setField(this.filter,propertyName,Reflect.field(this.properties,propertyName));
- }
- var filters = this.getField(this.target,"filters");
- Reflect.setField(filters,this.properties.filter,this.filter);
- this.setField_openfl_display_DisplayObject(this.target,"filters",filters);
- }
- ,initialize: function() {
- var details;
- var start;
- var _g = 0;
- var _g1 = Reflect.fields(this.properties);
- while(_g < _g1.length) {
- var propertyName = _g1[_g];
- ++_g;
- if(propertyName != "filter") {
- start = this.getField(this.filter,propertyName);
- details = new motion.actuators.PropertyDetails(this.filter,propertyName,start,Reflect.field(this.properties,propertyName) - start);
- this.propertyDetails.push(details);
- }
- }
- this.detailsLength = this.propertyDetails.length;
- this.initialized = true;
- }
- ,update: function(currentTime) {
- motion.actuators.SimpleActuator.prototype.update.call(this,currentTime);
- var filters = this.target.get_filters();
- if(this.filterIndex > -1) Reflect.setField(filters,this.properties.filter,this.filter); else {
- var _g1 = 0;
- var _g = filters.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(js.Boot.__instanceof(filters[i],this.filterClass)) filters[i] = this.filter;
- }
- }
- this.setField_openfl_display_DisplayObject(this.target,"filters",filters);
- }
- ,__class__: motion.actuators.FilterActuator
- });
- motion.actuators.MethodActuator = function(target,duration,properties) {
- this.currentParameters = new Array();
- this.tweenProperties = { };
- motion.actuators.SimpleActuator.call(this,target,duration,properties);
- if(!Object.prototype.hasOwnProperty.call(properties,"start")) this.properties.start = new Array();
- if(!Object.prototype.hasOwnProperty.call(properties,"end")) this.properties.end = this.properties.start;
- var _g1 = 0;
- var _g = this.properties.start.length;
- while(_g1 < _g) {
- var i = _g1++;
- this.currentParameters.push(this.properties.start[i]);
- }
- };
- $hxClasses["motion.actuators.MethodActuator"] = motion.actuators.MethodActuator;
- motion.actuators.MethodActuator.__name__ = ["motion","actuators","MethodActuator"];
- motion.actuators.MethodActuator.__super__ = motion.actuators.SimpleActuator;
- motion.actuators.MethodActuator.prototype = $extend(motion.actuators.SimpleActuator.prototype,{
- apply: function() {
- this.callMethod(this.target,this.properties.end);
- }
- ,initialize: function() {
- var details;
- var propertyName;
- var start;
- var _g1 = 0;
- var _g = this.properties.start.length;
- while(_g1 < _g) {
- var i = _g1++;
- propertyName = "param" + i;
- start = this.properties.start[i];
- this.tweenProperties[propertyName] = start;
- if(typeof(start) == "number" || ((start | 0) === start)) {
- details = new motion.actuators.PropertyDetails(this.tweenProperties,propertyName,start,this.properties.end[i] - start);
- this.propertyDetails.push(details);
- }
- }
- this.detailsLength = this.propertyDetails.length;
- this.initialized = true;
- }
- ,update: function(currentTime) {
- motion.actuators.SimpleActuator.prototype.update.call(this,currentTime);
- if(this.active) {
- var _g1 = 0;
- var _g = this.properties.start.length;
- while(_g1 < _g) {
- var i = _g1++;
- this.currentParameters[i] = Reflect.field(this.tweenProperties,"param" + i);
- }
- this.callMethod(this.target,this.currentParameters);
- }
- }
- ,__class__: motion.actuators.MethodActuator
- });
- motion.actuators.MotionPathActuator = function(target,duration,properties) {
- motion.actuators.SimpleActuator.call(this,target,duration,properties);
- };
- $hxClasses["motion.actuators.MotionPathActuator"] = motion.actuators.MotionPathActuator;
- motion.actuators.MotionPathActuator.__name__ = ["motion","actuators","MotionPathActuator"];
- motion.actuators.MotionPathActuator.__super__ = motion.actuators.SimpleActuator;
- motion.actuators.MotionPathActuator.prototype = $extend(motion.actuators.SimpleActuator.prototype,{
- setField_motion_actuators_MotionPathActuator_T: function(target,propertyName,value) {
- if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value);
- }
- ,apply: function() {
- var _g = 0;
- var _g1 = Reflect.fields(this.properties);
- while(_g < _g1.length) {
- var propertyName = _g1[_g];
- ++_g;
- if(Object.prototype.hasOwnProperty.call(this.target,propertyName)) Reflect.setField(this.target,propertyName,(js.Boot.__cast(Reflect.field(this.properties,propertyName) , motion.IComponentPath)).get_end()); else Reflect.setProperty(this.target,propertyName,(js.Boot.__cast(Reflect.field(this.properties,propertyName) , motion.IComponentPath)).get_end());
- }
- }
- ,initialize: function() {
- var details;
- var path;
- var _g = 0;
- var _g1 = Reflect.fields(this.properties);
- while(_g < _g1.length) {
- var propertyName = _g1[_g];
- ++_g;
- path = js.Boot.__cast(Reflect.field(this.properties,propertyName) , motion.IComponentPath);
- if(path != null) {
- var isField = true;
- if(Object.prototype.hasOwnProperty.call(this.target,propertyName)) path.start = Reflect.field(this.target,propertyName); else {
- isField = false;
- path.start = Reflect.getProperty(this.target,propertyName);
- }
- details = new motion.actuators.PropertyPathDetails(this.target,propertyName,path,isField);
- this.propertyDetails.push(details);
- }
- }
- this.detailsLength = this.propertyDetails.length;
- this.initialized = true;
- }
- ,update: function(currentTime) {
- if(!this.paused) {
- var details;
- var easing;
- var tweenPosition = (currentTime - this.timeOffset) / this.duration;
- if(tweenPosition > 1) tweenPosition = 1;
- if(!this.initialized) this.initialize();
- if(!this.special) {
- easing = this._ease.calculate(tweenPosition);
- var _g = 0;
- var _g1 = this.propertyDetails;
- while(_g < _g1.length) {
- var details1 = _g1[_g];
- ++_g;
- if(details1.isField) Reflect.setField(details1.target,details1.propertyName,(js.Boot.__cast(details1 , motion.actuators.PropertyPathDetails)).path.calculate(easing)); else Reflect.setProperty(details1.target,details1.propertyName,(js.Boot.__cast(details1 , motion.actuators.PropertyPathDetails)).path.calculate(easing));
- }
- } else {
- if(!this._reverse) easing = this._ease.calculate(tweenPosition); else easing = this._ease.calculate(1 - tweenPosition);
- var endValue;
- var _g2 = 0;
- var _g11 = this.propertyDetails;
- while(_g2 < _g11.length) {
- var details2 = _g11[_g2];
- ++_g2;
- if(!this._snapping) {
- if(details2.isField) Reflect.setField(details2.target,details2.propertyName,(js.Boot.__cast(details2 , motion.actuators.PropertyPathDetails)).path.calculate(easing)); else Reflect.setProperty(details2.target,details2.propertyName,(js.Boot.__cast(details2 , motion.actuators.PropertyPathDetails)).path.calculate(easing));
- } else if(details2.isField) Reflect.setField(details2.target,details2.propertyName,Math.round((js.Boot.__cast(details2 , motion.actuators.PropertyPathDetails)).path.calculate(easing))); else Reflect.setProperty(details2.target,details2.propertyName,Math.round((js.Boot.__cast(details2 , motion.actuators.PropertyPathDetails)).path.calculate(easing)));
- }
- }
- if(tweenPosition == 1) {
- if(this._repeat == 0) {
- this.active = false;
- if(this.toggleVisible && this.getField(this.target,"alpha") == 0) this.setField_motion_actuators_MotionPathActuator_T(this.target,"visible",false);
- this.complete(true);
- return;
- } else {
- if(this._onRepeat != null) this.callMethod(this._onRepeat,this._onRepeatParams);
- if(this._reflect) this._reverse = !this._reverse;
- this.startTime = currentTime;
- this.timeOffset = this.startTime + this._delay;
- if(this._repeat > 0) this._repeat--;
- }
- }
- if(this.sendChange) this.change();
- }
- }
- ,__class__: motion.actuators.MotionPathActuator
- });
- motion.actuators.PropertyDetails = function(target,propertyName,start,change,isField) {
- if(isField == null) isField = true;
- this.target = target;
- this.propertyName = propertyName;
- this.start = start;
- this.change = change;
- this.isField = isField;
- };
- $hxClasses["motion.actuators.PropertyDetails"] = motion.actuators.PropertyDetails;
- motion.actuators.PropertyDetails.__name__ = ["motion","actuators","PropertyDetails"];
- motion.actuators.PropertyDetails.prototype = {
- __class__: motion.actuators.PropertyDetails
- };
- motion.actuators.PropertyPathDetails = function(target,propertyName,path,isField) {
- if(isField == null) isField = true;
- motion.actuators.PropertyDetails.call(this,target,propertyName,0,0,isField);
- this.path = path;
- };
- $hxClasses["motion.actuators.PropertyPathDetails"] = motion.actuators.PropertyPathDetails;
- motion.actuators.PropertyPathDetails.__name__ = ["motion","actuators","PropertyPathDetails"];
- motion.actuators.PropertyPathDetails.__super__ = motion.actuators.PropertyDetails;
- motion.actuators.PropertyPathDetails.prototype = $extend(motion.actuators.PropertyDetails.prototype,{
- __class__: motion.actuators.PropertyPathDetails
- });
- motion.actuators.TransformActuator = function(target,duration,properties) {
- motion.actuators.SimpleActuator.call(this,target,duration,properties);
- };
- $hxClasses["motion.actuators.TransformActuator"] = motion.actuators.TransformActuator;
- motion.actuators.TransformActuator.__name__ = ["motion","actuators","TransformActuator"];
- motion.actuators.TransformActuator.__super__ = motion.actuators.SimpleActuator;
- motion.actuators.TransformActuator.prototype = $extend(motion.actuators.SimpleActuator.prototype,{
- setField_openfl_geom_Transform: function(target,propertyName,value) {
- if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value);
- }
- ,setField_motion_actuators_TransformActuator_T: function(target,propertyName,value) {
- if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value);
- }
- ,apply: function() {
- this.initialize();
- if(this.endColorTransform != null) {
- var transform = this.getField(this.target,"transform");
- this.setField_openfl_geom_Transform(transform,"colorTransform",this.endColorTransform);
- }
- if(this.endSoundTransform != null) this.setField_motion_actuators_TransformActuator_T(this.target,"soundTransform",this.endSoundTransform);
- }
- ,initialize: function() {
- if(Object.prototype.hasOwnProperty.call(this.properties,"colorValue") && js.Boot.__instanceof(this.target,openfl.display.DisplayObject)) this.initializeColor();
- if(Object.prototype.hasOwnProperty.call(this.properties,"soundVolume") || Object.prototype.hasOwnProperty.call(this.properties,"soundPan")) this.initializeSound();
- this.detailsLength = this.propertyDetails.length;
- this.initialized = true;
- }
- ,initializeColor: function() {
- this.endColorTransform = new openfl.geom.ColorTransform();
- var color = this.properties.colorValue;
- var strength = this.properties.colorStrength;
- if(strength < 1) {
- var multiplier;
- var offset;
- if(strength < 0.5) {
- multiplier = 1;
- offset = strength * 2;
- } else {
- multiplier = 1 - (strength - 0.5) * 2;
- offset = 1;
- }
- this.endColorTransform.redMultiplier = multiplier;
- this.endColorTransform.greenMultiplier = multiplier;
- this.endColorTransform.blueMultiplier = multiplier;
- this.endColorTransform.redOffset = offset * (color >> 16 & 255);
- this.endColorTransform.greenOffset = offset * (color >> 8 & 255);
- this.endColorTransform.blueOffset = offset * (color & 255);
- } else {
- this.endColorTransform.redMultiplier = 0;
- this.endColorTransform.greenMultiplier = 0;
- this.endColorTransform.blueMultiplier = 0;
- this.endColorTransform.redOffset = color >> 16 & 255;
- this.endColorTransform.greenOffset = color >> 8 & 255;
- this.endColorTransform.blueOffset = color & 255;
- }
- var propertyNames = ["redMultiplier","greenMultiplier","blueMultiplier","redOffset","greenOffset","blueOffset"];
- if(Object.prototype.hasOwnProperty.call(this.properties,"colorAlpha")) {
- this.endColorTransform.alphaMultiplier = this.properties.colorAlpha;
- propertyNames.push("alphaMultiplier");
- } else this.endColorTransform.alphaMultiplier = this.getField(this.target,"alpha");
- var transform = this.getField(this.target,"transform");
- var begin = this.getField(transform,"colorTransform");
- this.tweenColorTransform = new openfl.geom.ColorTransform();
- var details;
- var start;
- var _g = 0;
- while(_g < propertyNames.length) {
- var propertyName = propertyNames[_g];
- ++_g;
- start = this.getField(begin,propertyName);
- details = new motion.actuators.PropertyDetails(this.tweenColorTransform,propertyName,start,this.getField(this.endColorTransform,propertyName) - start);
- this.propertyDetails.push(details);
- }
- }
- ,initializeSound: function() {
- if(this.getField(this.target,"soundTransform") == null) this.setField_motion_actuators_TransformActuator_T(this.target,"soundTransform",new openfl.media.SoundTransform());
- var start = this.getField(this.target,"soundTransform");
- this.endSoundTransform = this.getField(this.target,"soundTransform");
- this.tweenSoundTransform = new openfl.media.SoundTransform();
- if(Object.prototype.hasOwnProperty.call(this.properties,"soundVolume")) {
- this.endSoundTransform.volume = this.properties.soundVolume;
- this.propertyDetails.push(new motion.actuators.PropertyDetails(this.tweenSoundTransform,"volume",start.volume,this.endSoundTransform.volume - start.volume));
- }
- if(Object.prototype.hasOwnProperty.call(this.properties,"soundPan")) {
- this.endSoundTransform.pan = this.properties.soundPan;
- this.propertyDetails.push(new motion.actuators.PropertyDetails(this.tweenSoundTransform,"pan",start.pan,this.endSoundTransform.pan - start.pan));
- }
- }
- ,update: function(currentTime) {
- motion.actuators.SimpleActuator.prototype.update.call(this,currentTime);
- if(this.endColorTransform != null) {
- var transform = this.getField(this.target,"transform");
- this.setField_openfl_geom_Transform(transform,"colorTransform",this.tweenColorTransform);
- }
- if(this.endSoundTransform != null) this.setField_motion_actuators_TransformActuator_T(this.target,"soundTransform",this.tweenSoundTransform);
- }
- ,__class__: motion.actuators.TransformActuator
- });
- motion.easing.Bounce = function() { };
- $hxClasses["motion.easing.Bounce"] = motion.easing.Bounce;
- motion.easing.Bounce.__name__ = ["motion","easing","Bounce"];
- motion.easing.Bounce.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"}
- motion.easing.Bounce.get_easeIn = function() {
- return new motion.easing.BounceEaseIn();
- };
- motion.easing.Bounce.get_easeInOut = function() {
- return new motion.easing.BounceEaseInOut();
- };
- motion.easing.Bounce.get_easeOut = function() {
- return new motion.easing.BounceEaseOut();
- };
- motion.easing.BounceEaseIn = function() {
- };
- $hxClasses["motion.easing.BounceEaseIn"] = motion.easing.BounceEaseIn;
- motion.easing.BounceEaseIn.__name__ = ["motion","easing","BounceEaseIn"];
- motion.easing.BounceEaseIn.__interfaces__ = [motion.easing.IEasing];
- motion.easing.BounceEaseIn._ease = function(t,b,c,d) {
- return c - motion.easing.BounceEaseOut._ease(d - t,0,c,d) + b;
- };
- motion.easing.BounceEaseIn.prototype = {
- calculate: function(k) {
- return 1 - motion.easing.BounceEaseOut._ease(1 - k,0,1,1);
- }
- ,ease: function(t,b,c,d) {
- return c - motion.easing.BounceEaseOut._ease(d - t,0,c,d) + b;
- }
- ,__class__: motion.easing.BounceEaseIn
- };
- motion.easing.BounceEaseInOut = function() {
- };
- $hxClasses["motion.easing.BounceEaseInOut"] = motion.easing.BounceEaseInOut;
- motion.easing.BounceEaseInOut.__name__ = ["motion","easing","BounceEaseInOut"];
- motion.easing.BounceEaseInOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.BounceEaseInOut.prototype = {
- calculate: function(k) {
- if(k < .5) return (1 - motion.easing.BounceEaseOut._ease(1 - k * 2,0,1,1)) * .5; else return motion.easing.BounceEaseOut._ease(k * 2 - 1,0,1,1) * .5 + .5;
- }
- ,ease: function(t,b,c,d) {
- if(t < d / 2) return (c - motion.easing.BounceEaseOut._ease(d - t * 2,0,c,d)) * .5 + b; else return motion.easing.BounceEaseOut._ease(t * 2 - d,0,c,d) * .5 + c * .5 + b;
- }
- ,__class__: motion.easing.BounceEaseInOut
- };
- motion.easing.BounceEaseOut = function() {
- };
- $hxClasses["motion.easing.BounceEaseOut"] = motion.easing.BounceEaseOut;
- motion.easing.BounceEaseOut.__name__ = ["motion","easing","BounceEaseOut"];
- motion.easing.BounceEaseOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.BounceEaseOut._ease = function(t,b,c,d) {
- if((t /= d) < 0.363636363636363646) return c * (7.5625 * t * t) + b; else if(t < 0.727272727272727293) return c * (7.5625 * (t -= 0.545454545454545414) * t + .75) + b; else if(t < 0.909090909090909061) return c * (7.5625 * (t -= 0.818181818181818232) * t + .9375) + b; else return c * (7.5625 * (t -= 0.954545454545454586) * t + .984375) + b;
- };
- motion.easing.BounceEaseOut.prototype = {
- calculate: function(k) {
- return motion.easing.BounceEaseOut._ease(k,0,1,1);
- }
- ,ease: function(t,b,c,d) {
- return motion.easing.BounceEaseOut._ease(t,b,c,d);
- }
- ,__class__: motion.easing.BounceEaseOut
- };
- motion.easing.Cubic = function() { };
- $hxClasses["motion.easing.Cubic"] = motion.easing.Cubic;
- motion.easing.Cubic.__name__ = ["motion","easing","Cubic"];
- motion.easing.Cubic.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"}
- motion.easing.Cubic.get_easeIn = function() {
- return new motion.easing.CubicEaseIn();
- };
- motion.easing.Cubic.get_easeInOut = function() {
- return new motion.easing.CubicEaseInOut();
- };
- motion.easing.Cubic.get_easeOut = function() {
- return new motion.easing.CubicEaseOut();
- };
- motion.easing.CubicEaseIn = function() {
- };
- $hxClasses["motion.easing.CubicEaseIn"] = motion.easing.CubicEaseIn;
- motion.easing.CubicEaseIn.__name__ = ["motion","easing","CubicEaseIn"];
- motion.easing.CubicEaseIn.__interfaces__ = [motion.easing.IEasing];
- motion.easing.CubicEaseIn.prototype = {
- calculate: function(k) {
- return k * k * k;
- }
- ,ease: function(t,b,c,d) {
- return c * (t /= d) * t * t + b;
- }
- ,__class__: motion.easing.CubicEaseIn
- };
- motion.easing.CubicEaseInOut = function() {
- };
- $hxClasses["motion.easing.CubicEaseInOut"] = motion.easing.CubicEaseInOut;
- motion.easing.CubicEaseInOut.__name__ = ["motion","easing","CubicEaseInOut"];
- motion.easing.CubicEaseInOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.CubicEaseInOut.prototype = {
- calculate: function(k) {
- if((k /= 0.5) < 1) return 0.5 * k * k * k; else return 0.5 * ((k -= 2) * k * k + 2);
- }
- ,ease: function(t,b,c,d) {
- if((t /= d / 2) < 1) return c / 2 * t * t * t + b; else return c / 2 * ((t -= 2) * t * t + 2) + b;
- }
- ,__class__: motion.easing.CubicEaseInOut
- };
- motion.easing.CubicEaseOut = function() {
- };
- $hxClasses["motion.easing.CubicEaseOut"] = motion.easing.CubicEaseOut;
- motion.easing.CubicEaseOut.__name__ = ["motion","easing","CubicEaseOut"];
- motion.easing.CubicEaseOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.CubicEaseOut.prototype = {
- calculate: function(k) {
- return --k * k * k + 1;
- }
- ,ease: function(t,b,c,d) {
- return c * ((t = t / d - 1) * t * t + 1) + b;
- }
- ,__class__: motion.easing.CubicEaseOut
- };
- motion.easing.Elastic = function() { };
- $hxClasses["motion.easing.Elastic"] = motion.easing.Elastic;
- motion.easing.Elastic.__name__ = ["motion","easing","Elastic"];
- motion.easing.Elastic.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"}
- motion.easing.Elastic.get_easeIn = function() {
- return new motion.easing.ElasticEaseIn(0.1,0.4);
- };
- motion.easing.Elastic.get_easeInOut = function() {
- return new motion.easing.ElasticEaseInOut(0.1,0.4);
- };
- motion.easing.Elastic.get_easeOut = function() {
- return new motion.easing.ElasticEaseOut(0.1,0.4);
- };
- motion.easing.ElasticEaseIn = function(a,p) {
- this.a = a;
- this.p = p;
- };
- $hxClasses["motion.easing.ElasticEaseIn"] = motion.easing.ElasticEaseIn;
- motion.easing.ElasticEaseIn.__name__ = ["motion","easing","ElasticEaseIn"];
- motion.easing.ElasticEaseIn.__interfaces__ = [motion.easing.IEasing];
- motion.easing.ElasticEaseIn.prototype = {
- calculate: function(k) {
- if(k == 0) return 0;
- if(k == 1) return 1;
- var s;
- if(this.a < 1) {
- this.a = 1;
- s = this.p / 4;
- } else s = this.p / (2 * Math.PI) * Math.asin(1 / this.a);
- return -(this.a * Math.pow(2,10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / this.p));
- }
- ,ease: function(t,b,c,d) {
- if(t == 0) return b;
- if((t /= d) == 1) return b + c;
- var s;
- if(this.a < Math.abs(c)) {
- this.a = c;
- s = this.p / 4;
- } else s = this.p / (2 * Math.PI) * Math.asin(c / this.a);
- return -(this.a * Math.pow(2,10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / this.p)) + b;
- }
- ,__class__: motion.easing.ElasticEaseIn
- };
- motion.easing.ElasticEaseInOut = function(a,p) {
- this.a = a;
- this.p = p;
- };
- $hxClasses["motion.easing.ElasticEaseInOut"] = motion.easing.ElasticEaseInOut;
- motion.easing.ElasticEaseInOut.__name__ = ["motion","easing","ElasticEaseInOut"];
- motion.easing.ElasticEaseInOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.ElasticEaseInOut.prototype = {
- calculate: function(k) {
- if(k == 0) return 0;
- if((k /= 0.5) == 2) return 1;
- var p = 0.449999999999999956;
- var a = 1;
- var s = p / 4;
- if(k < 1) return -0.5 * (Math.pow(2,10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
- return Math.pow(2,-10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
- }
- ,ease: function(t,b,c,d) {
- if(t == 0) return b;
- if((t /= d / 2) == 2) return b + c;
- var s;
- if(this.a < Math.abs(c)) {
- this.a = c;
- s = this.p / 4;
- } else s = this.p / (2 * Math.PI) * Math.asin(c / this.a);
- if(t < 1) return -0.5 * (this.a * Math.pow(2,10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / this.p)) + b;
- return this.a * Math.pow(2,-10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / this.p) * 0.5 + c + b;
- }
- ,__class__: motion.easing.ElasticEaseInOut
- };
- motion.easing.ElasticEaseOut = function(a,p) {
- this.a = a;
- this.p = p;
- };
- $hxClasses["motion.easing.ElasticEaseOut"] = motion.easing.ElasticEaseOut;
- motion.easing.ElasticEaseOut.__name__ = ["motion","easing","ElasticEaseOut"];
- motion.easing.ElasticEaseOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.ElasticEaseOut.prototype = {
- calculate: function(k) {
- if(k == 0) return 0;
- if(k == 1) return 1;
- var s;
- if(this.a < 1) {
- this.a = 1;
- s = this.p / 4;
- } else s = this.p / (2 * Math.PI) * Math.asin(1 / this.a);
- return this.a * Math.pow(2,-10 * k) * Math.sin((k - s) * (2 * Math.PI) / this.p) + 1;
- }
- ,ease: function(t,b,c,d) {
- if(t == 0) return b;
- if((t /= d) == 1) return b + c;
- var s;
- if(this.a < Math.abs(c)) {
- this.a = c;
- s = this.p / 4;
- } else s = this.p / (2 * Math.PI) * Math.asin(c / this.a);
- return this.a * Math.pow(2,-10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / this.p) + c + b;
- }
- ,__class__: motion.easing.ElasticEaseOut
- };
- motion.easing.ExpoEaseIn = function() {
- };
- $hxClasses["motion.easing.ExpoEaseIn"] = motion.easing.ExpoEaseIn;
- motion.easing.ExpoEaseIn.__name__ = ["motion","easing","ExpoEaseIn"];
- motion.easing.ExpoEaseIn.__interfaces__ = [motion.easing.IEasing];
- motion.easing.ExpoEaseIn.prototype = {
- calculate: function(k) {
- if(k == 0) return 0; else return Math.pow(2,10 * (k - 1));
- }
- ,ease: function(t,b,c,d) {
- if(t == 0) return b; else return c * Math.pow(2,10 * (t / d - 1)) + b;
- }
- ,__class__: motion.easing.ExpoEaseIn
- };
- motion.easing.ExpoEaseInOut = function() {
- };
- $hxClasses["motion.easing.ExpoEaseInOut"] = motion.easing.ExpoEaseInOut;
- motion.easing.ExpoEaseInOut.__name__ = ["motion","easing","ExpoEaseInOut"];
- motion.easing.ExpoEaseInOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.ExpoEaseInOut.prototype = {
- calculate: function(k) {
- if(k == 0) return 0;
- if(k == 1) return 1;
- if((k /= 0.5) < 1.0) return 0.5 * Math.pow(2,10 * (k - 1));
- return 0.5 * (2 - Math.pow(2,-10 * --k));
- }
- ,ease: function(t,b,c,d) {
- if(t == 0) return b;
- if(t == d) return b + c;
- if((t /= d / 2.0) < 1.0) return c / 2 * Math.pow(2,10 * (t - 1)) + b;
- return c / 2 * (2 - Math.pow(2,-10 * --t)) + b;
- }
- ,__class__: motion.easing.ExpoEaseInOut
- };
- motion.easing.Linear = function() { };
- $hxClasses["motion.easing.Linear"] = motion.easing.Linear;
- motion.easing.Linear.__name__ = ["motion","easing","Linear"];
- motion.easing.Linear.__properties__ = {get_easeNone:"get_easeNone"}
- motion.easing.Linear.get_easeNone = function() {
- return new motion.easing.LinearEaseNone();
- };
- motion.easing.LinearEaseNone = function() {
- };
- $hxClasses["motion.easing.LinearEaseNone"] = motion.easing.LinearEaseNone;
- motion.easing.LinearEaseNone.__name__ = ["motion","easing","LinearEaseNone"];
- motion.easing.LinearEaseNone.__interfaces__ = [motion.easing.IEasing];
- motion.easing.LinearEaseNone.prototype = {
- calculate: function(k) {
- return k;
- }
- ,ease: function(t,b,c,d) {
- return c * t / d + b;
- }
- ,__class__: motion.easing.LinearEaseNone
- };
- motion.easing.Sine = function() { };
- $hxClasses["motion.easing.Sine"] = motion.easing.Sine;
- motion.easing.Sine.__name__ = ["motion","easing","Sine"];
- motion.easing.Sine.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"}
- motion.easing.Sine.get_easeIn = function() {
- return new motion.easing.SineEaseIn();
- };
- motion.easing.Sine.get_easeInOut = function() {
- return new motion.easing.SineEaseInOut();
- };
- motion.easing.Sine.get_easeOut = function() {
- return new motion.easing.SineEaseOut();
- };
- motion.easing.SineEaseIn = function() {
- };
- $hxClasses["motion.easing.SineEaseIn"] = motion.easing.SineEaseIn;
- motion.easing.SineEaseIn.__name__ = ["motion","easing","SineEaseIn"];
- motion.easing.SineEaseIn.__interfaces__ = [motion.easing.IEasing];
- motion.easing.SineEaseIn.prototype = {
- calculate: function(k) {
- return 1 - Math.cos(k * (Math.PI / 2));
- }
- ,ease: function(t,b,c,d) {
- return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
- }
- ,__class__: motion.easing.SineEaseIn
- };
- motion.easing.SineEaseInOut = function() {
- };
- $hxClasses["motion.easing.SineEaseInOut"] = motion.easing.SineEaseInOut;
- motion.easing.SineEaseInOut.__name__ = ["motion","easing","SineEaseInOut"];
- motion.easing.SineEaseInOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.SineEaseInOut.prototype = {
- calculate: function(k) {
- return -(Math.cos(Math.PI * k) - 1) / 2;
- }
- ,ease: function(t,b,c,d) {
- return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
- }
- ,__class__: motion.easing.SineEaseInOut
- };
- motion.easing.SineEaseOut = function() {
- };
- $hxClasses["motion.easing.SineEaseOut"] = motion.easing.SineEaseOut;
- motion.easing.SineEaseOut.__name__ = ["motion","easing","SineEaseOut"];
- motion.easing.SineEaseOut.__interfaces__ = [motion.easing.IEasing];
- motion.easing.SineEaseOut.prototype = {
- calculate: function(k) {
- return Math.sin(k * (Math.PI / 2));
- }
- ,ease: function(t,b,c,d) {
- return c * Math.sin(t / d * (Math.PI / 2)) + b;
- }
- ,__class__: motion.easing.SineEaseOut
- };
- openfl.IAssetCache = function() { };
- $hxClasses["openfl.IAssetCache"] = openfl.IAssetCache;
- openfl.IAssetCache.__name__ = ["openfl","IAssetCache"];
- openfl.IAssetCache.prototype = {
- __class__: openfl.IAssetCache
- };
- openfl.AssetCache = function() {
- this.__enabled = true;
- this.bitmapData = new haxe.ds.StringMap();
- this.font = new haxe.ds.StringMap();
- this.sound = new haxe.ds.StringMap();
- };
- $hxClasses["openfl.AssetCache"] = openfl.AssetCache;
- openfl.AssetCache.__name__ = ["openfl","AssetCache"];
- openfl.AssetCache.__interfaces__ = [openfl.IAssetCache];
- openfl.AssetCache.prototype = {
- clear: function(prefix) {
- if(prefix == null) {
- this.bitmapData = new haxe.ds.StringMap();
- this.font = new haxe.ds.StringMap();
- this.sound = new haxe.ds.StringMap();
- } else {
- var keys = this.bitmapData.keys();
- while( keys.hasNext() ) {
- var key = keys.next();
- if(StringTools.startsWith(key,prefix)) this.bitmapData.remove(key);
- }
- var keys1 = this.font.keys();
- while( keys1.hasNext() ) {
- var key1 = keys1.next();
- if(StringTools.startsWith(key1,prefix)) this.font.remove(key1);
- }
- var keys2 = this.sound.keys();
- while( keys2.hasNext() ) {
- var key2 = keys2.next();
- if(StringTools.startsWith(key2,prefix)) this.sound.remove(key2);
- }
- }
- }
- ,getBitmapData: function(id) {
- return this.bitmapData.get(id);
- }
- ,getFont: function(id) {
- return this.font.get(id);
- }
- ,getSound: function(id) {
- return this.sound.get(id);
- }
- ,hasBitmapData: function(id) {
- return this.bitmapData.exists(id);
- }
- ,hasFont: function(id) {
- return this.font.exists(id);
- }
- ,hasSound: function(id) {
- return this.sound.exists(id);
- }
- ,removeBitmapData: function(id) {
- return this.bitmapData.remove(id);
- }
- ,removeFont: function(id) {
- return this.font.remove(id);
- }
- ,removeSound: function(id) {
- return this.sound.remove(id);
- }
- ,setBitmapData: function(id,bitmapData) {
- this.bitmapData.set(id,bitmapData);
- }
- ,setFont: function(id,font) {
- this.font.set(id,font);
- }
- ,setSound: function(id,sound) {
- this.sound.set(id,sound);
- }
- ,get_enabled: function() {
- return this.__enabled;
- }
- ,set_enabled: function(value) {
- return this.__enabled = value;
- }
- ,__class__: openfl.AssetCache
- ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"}
- };
- openfl.Assets = function() { };
- $hxClasses["openfl.Assets"] = openfl.Assets;
- openfl.Assets.__name__ = ["openfl","Assets"];
- openfl.Assets.addEventListener = function(type,listener,useCapture,priority,useWeakReference) {
- if(useWeakReference == null) useWeakReference = false;
- if(priority == null) priority = 0;
- if(useCapture == null) useCapture = false;
- openfl.Assets.dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);
- };
- openfl.Assets.dispatchEvent = function(event) {
- return openfl.Assets.dispatcher.dispatchEvent(event);
- };
- openfl.Assets.exists = function(id,type) {
- return lime.Assets.exists(id,type);
- };
- openfl.Assets.getBitmapData = function(id,useCache) {
- if(useCache == null) useCache = true;
- if(useCache && openfl.Assets.cache.get_enabled() && openfl.Assets.cache.hasBitmapData(id)) {
- var bitmapData = openfl.Assets.cache.getBitmapData(id);
- if(openfl.Assets.isValidBitmapData(bitmapData)) return bitmapData;
- }
- var image = lime.Assets.getImage(id,false);
- if(image != null) {
- var bitmapData1 = openfl.display.BitmapData.fromImage(image);
- if(useCache && openfl.Assets.cache.get_enabled()) openfl.Assets.cache.setBitmapData(id,bitmapData1);
- return bitmapData1;
- }
- return null;
- };
- openfl.Assets.getBytes = function(id) {
- return lime.Assets.getBytes(id);
- };
- openfl.Assets.getFont = function(id,useCache) {
- if(useCache == null) useCache = true;
- if(useCache && openfl.Assets.cache.get_enabled() && openfl.Assets.cache.hasFont(id)) return openfl.Assets.cache.getFont(id);
- var font = lime.Assets.getFont(id,false);
- if(font != null) return font;
- return new openfl.text.Font();
- };
- openfl.Assets.getLibrary = function(name) {
- if(name == null || name == "") name = "default";
- return lime.Assets.libraries.get(name);
- };
- openfl.Assets.getMovieClip = function(id) {
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = openfl.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"MOVIE_CLIP")) {
- if(library.isLocal(symbolName,"MOVIE_CLIP")) return library.getMovieClip(symbolName); else null;
- } else null;
- } else null;
- return null;
- };
- openfl.Assets.getMusic = function(id,useCache) {
- if(useCache == null) useCache = true;
- var path = lime.Assets.getPath(id);
- if(path != null) return new openfl.media.Sound(new openfl.net.URLRequest(path));
- return null;
- };
- openfl.Assets.getPath = function(id) {
- return lime.Assets.getPath(id);
- };
- openfl.Assets.getSound = function(id,useCache) {
- if(useCache == null) useCache = true;
- if(useCache && openfl.Assets.cache.get_enabled() && openfl.Assets.cache.hasSound(id)) {
- var sound = openfl.Assets.cache.getSound(id);
- if(openfl.Assets.isValidSound(sound)) return sound;
- }
- var path = lime.Assets.getPath(id);
- if(path != null) return new openfl.media.Sound(new openfl.net.URLRequest(path));
- return null;
- };
- openfl.Assets.getText = function(id) {
- return lime.Assets.getText(id);
- };
- openfl.Assets.hasEventListener = function(type) {
- return openfl.Assets.dispatcher.hasEventListener(type);
- };
- openfl.Assets.isLocal = function(id,type,useCache) {
- if(useCache == null) useCache = true;
- if(useCache && openfl.Assets.cache.get_enabled()) {
- if(type == "IMAGE" || type == null) {
- if(openfl.Assets.cache.hasBitmapData(id)) return true;
- }
- if(type == "FONT" || type == null) {
- if(openfl.Assets.cache.hasFont(id)) return true;
- }
- if(type == "SOUND" || type == "MUSIC" || type == null) {
- if(openfl.Assets.cache.hasSound(id)) return true;
- }
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = openfl.Assets.getLibrary(libraryName);
- if(library != null) return library.isLocal(symbolName,type);
- return false;
- };
- openfl.Assets.isValidBitmapData = function(bitmapData) {
- return bitmapData != null;
- return true;
- };
- openfl.Assets.isValidSound = function(sound) {
- return true;
- };
- openfl.Assets.list = function(type) {
- return lime.Assets.list(type);
- };
- openfl.Assets.loadBitmapData = function(id,handler,useCache) {
- if(useCache == null) useCache = true;
- if(useCache && openfl.Assets.cache.get_enabled() && openfl.Assets.cache.hasBitmapData(id)) {
- var bitmapData = openfl.Assets.cache.getBitmapData(id);
- if(openfl.Assets.isValidBitmapData(bitmapData)) {
- handler(bitmapData);
- return;
- }
- }
- lime.Assets.loadImage(id,function(image) {
- if(image != null) {
- var bitmapData1 = openfl.display.BitmapData.fromImage(image);
- if(useCache && openfl.Assets.cache.get_enabled()) openfl.Assets.cache.setBitmapData(id,bitmapData1);
- handler(bitmapData1);
- }
- },false);
- };
- openfl.Assets.loadBytes = function(id,handler) {
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = openfl.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"BINARY")) {
- library.loadBytes(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- openfl.Assets.loadFont = function(id,handler,useCache) {
- if(useCache == null) useCache = true;
- if(useCache && openfl.Assets.cache.get_enabled() && openfl.Assets.cache.hasFont(id)) {
- handler(openfl.Assets.cache.getFont(id));
- return;
- }
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = openfl.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"FONT")) {
- if(useCache && openfl.Assets.cache.get_enabled()) library.loadFont(symbolName,function(font) {
- openfl.Assets.cache.setFont(id,font);
- handler(font);
- }); else library.loadFont(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- openfl.Assets.loadLibrary = function(name,handler) {
- lime.Assets.loadLibrary(name,handler);
- };
- openfl.Assets.loadMusic = function(id,handler,useCache) {
- if(useCache == null) useCache = true;
- handler(openfl.Assets.getMusic(id,useCache));
- };
- openfl.Assets.loadMovieClip = function(id,handler) {
- var libraryName = id.substring(0,id.indexOf(":"));
- var symbolName;
- var pos = id.indexOf(":") + 1;
- symbolName = HxOverrides.substr(id,pos,null);
- var library = openfl.Assets.getLibrary(libraryName);
- if(library != null) {
- if(library.exists(symbolName,"MOVIE_CLIP")) {
- library.loadMovieClip(symbolName,handler);
- return;
- } else null;
- } else null;
- handler(null);
- };
- openfl.Assets.loadSound = function(id,handler,useCache) {
- if(useCache == null) useCache = true;
- handler(openfl.Assets.getSound(id,useCache));
- };
- openfl.Assets.loadText = function(id,handler) {
- lime.Assets.loadText(id,handler);
- };
- openfl.Assets.registerLibrary = function(name,library) {
- lime.Assets.registerLibrary(name,library);
- };
- openfl.Assets.removeEventListener = function(type,listener,capture) {
- if(capture == null) capture = false;
- openfl.Assets.dispatcher.removeEventListener(type,listener,capture);
- };
- openfl.Assets.resolveClass = function(name) {
- return Type.resolveClass(name);
- };
- openfl.Assets.resolveEnum = function(name) {
- var value = Type.resolveEnum(name);
- return value;
- };
- openfl.Assets.unloadLibrary = function(name) {
- lime.Assets.unloadLibrary(name);
- };
- openfl.Assets.library_onEvent = function(library,type) {
- if(type == "change") {
- openfl.Assets.cache.clear();
- openfl.Assets.dispatchEvent(new openfl.events.Event(openfl.events.Event.CHANGE));
- }
- };
- openfl.AssetLibrary = function() {
- lime.AssetLibrary.call(this);
- };
- $hxClasses["openfl.AssetLibrary"] = openfl.AssetLibrary;
- openfl.AssetLibrary.__name__ = ["openfl","AssetLibrary"];
- openfl.AssetLibrary.__super__ = lime.AssetLibrary;
- openfl.AssetLibrary.prototype = $extend(lime.AssetLibrary.prototype,{
- getMovieClip: function(id) {
- return null;
- }
- ,getMusic: function(id) {
- return this.getSound(id);
- }
- ,getSound: function(id) {
- return null;
- }
- ,loadMovieClip: function(id,handler) {
- handler(this.getMovieClip(id));
- }
- ,loadMusic: function(id,handler) {
- handler(this.getMusic(id));
- }
- ,loadSound: function(id,handler) {
- handler(this.getSound(id));
- }
- ,__class__: openfl.AssetLibrary
- });
- openfl._Assets = {};
- openfl._Assets.AssetType_Impl_ = function() { };
- $hxClasses["openfl._Assets.AssetType_Impl_"] = openfl._Assets.AssetType_Impl_;
- openfl._Assets.AssetType_Impl_.__name__ = ["openfl","_Assets","AssetType_Impl_"];
- openfl.display.MovieClip = function() {
- openfl.display.Sprite.call(this);
- this.__currentFrame = 0;
- this.__currentLabels = [];
- this.__totalFrames = 0;
- this.enabled = true;
- };
- $hxClasses["openfl.display.MovieClip"] = openfl.display.MovieClip;
- openfl.display.MovieClip.__name__ = ["openfl","display","MovieClip"];
- openfl.display.MovieClip.__super__ = openfl.display.Sprite;
- openfl.display.MovieClip.prototype = $extend(openfl.display.Sprite.prototype,{
- gotoAndPlay: function(frame,scene) {
- }
- ,gotoAndStop: function(frame,scene) {
- }
- ,nextFrame: function() {
- }
- ,play: function() {
- }
- ,prevFrame: function() {
- }
- ,stop: function() {
- }
- ,get_currentFrame: function() {
- return this.__currentFrame;
- }
- ,get_currentFrameLabel: function() {
- return this.__currentFrameLabel;
- }
- ,get_currentLabel: function() {
- return this.__currentLabel;
- }
- ,get_currentLabels: function() {
- return this.__currentLabels;
- }
- ,get_framesLoaded: function() {
- return this.__totalFrames;
- }
- ,get_totalFrames: function() {
- return this.__totalFrames;
- }
- ,__class__: openfl.display.MovieClip
- ,__properties__: $extend(openfl.display.Sprite.prototype.__properties__,{get_totalFrames:"get_totalFrames",get_framesLoaded:"get_framesLoaded",get_currentLabels:"get_currentLabels",get_currentLabel:"get_currentLabel",get_currentFrameLabel:"get_currentFrameLabel",get_currentFrame:"get_currentFrame"})
- });
- openfl.display.LoaderInfo = function() {
- openfl.events.EventDispatcher.call(this);
- this.applicationDomain = openfl.system.ApplicationDomain.currentDomain;
- this.bytesLoaded = 0;
- this.bytesTotal = 0;
- this.childAllowsParent = true;
- this.parameters = { };
- };
- $hxClasses["openfl.display.LoaderInfo"] = openfl.display.LoaderInfo;
- openfl.display.LoaderInfo.__name__ = ["openfl","display","LoaderInfo"];
- openfl.display.LoaderInfo.create = function(loader) {
- var loaderInfo = new openfl.display.LoaderInfo();
- loaderInfo.uncaughtErrorEvents = new openfl.events.UncaughtErrorEvents();
- if(loader != null) loaderInfo.loader = loader; else loaderInfo.url = openfl.display.LoaderInfo.__rootURL;
- return loaderInfo;
- };
- openfl.display.LoaderInfo.__super__ = openfl.events.EventDispatcher;
- openfl.display.LoaderInfo.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- __class__: openfl.display.LoaderInfo
- });
- openfl.system = {};
- openfl.system.ApplicationDomain = function(parentDomain) {
- if(parentDomain != null) this.parentDomain = parentDomain; else this.parentDomain = openfl.system.ApplicationDomain.currentDomain;
- };
- $hxClasses["openfl.system.ApplicationDomain"] = openfl.system.ApplicationDomain;
- openfl.system.ApplicationDomain.__name__ = ["openfl","system","ApplicationDomain"];
- openfl.system.ApplicationDomain.prototype = {
- getDefinition: function(name) {
- return Type.resolveClass(name);
- }
- ,hasDefinition: function(name) {
- return Type.resolveClass(name) != null;
- }
- ,__class__: openfl.system.ApplicationDomain
- };
- openfl.events.UncaughtErrorEvents = function(target) {
- openfl.events.EventDispatcher.call(this,target);
- };
- $hxClasses["openfl.events.UncaughtErrorEvents"] = openfl.events.UncaughtErrorEvents;
- openfl.events.UncaughtErrorEvents.__name__ = ["openfl","events","UncaughtErrorEvents"];
- openfl.events.UncaughtErrorEvents.__super__ = openfl.events.EventDispatcher;
- openfl.events.UncaughtErrorEvents.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- __class__: openfl.events.UncaughtErrorEvents
- });
- openfl.geom = {};
- openfl.geom.Matrix = function(a,b,c,d,tx,ty) {
- if(ty == null) ty = 0;
- if(tx == null) tx = 0;
- if(d == null) d = 1;
- if(c == null) c = 0;
- if(b == null) b = 0;
- if(a == null) a = 1;
- this.a = a;
- this.b = b;
- this.c = c;
- this.d = d;
- this.tx = tx;
- this.ty = ty;
- this.__array = new Float32Array([a,b,c,d,tx,ty,0,0,1]);
- };
- $hxClasses["openfl.geom.Matrix"] = openfl.geom.Matrix;
- openfl.geom.Matrix.__name__ = ["openfl","geom","Matrix"];
- openfl.geom.Matrix.prototype = {
- clone: function() {
- return new openfl.geom.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty);
- }
- ,concat: function(m) {
- var a1 = this.a * m.a + this.b * m.c;
- this.b = this.a * m.b + this.b * m.d;
- this.a = a1;
- var c1 = this.c * m.a + this.d * m.c;
- this.d = this.c * m.b + this.d * m.d;
- this.c = c1;
- var tx1 = this.tx * m.a + this.ty * m.c + m.tx;
- this.ty = this.tx * m.b + this.ty * m.d + m.ty;
- this.tx = tx1;
- }
- ,copyColumnFrom: function(column,vector3D) {
- if(column > 2) throw "Column " + column + " out of bounds (2)"; else if(column == 0) {
- this.a = vector3D.x;
- this.c = vector3D.y;
- } else if(column == 1) {
- this.b = vector3D.x;
- this.d = vector3D.y;
- } else {
- this.tx = vector3D.x;
- this.ty = vector3D.y;
- }
- }
- ,copyColumnTo: function(column,vector3D) {
- if(column > 2) throw "Column " + column + " out of bounds (2)"; else if(column == 0) {
- vector3D.x = this.a;
- vector3D.y = this.c;
- vector3D.z = 0;
- } else if(column == 1) {
- vector3D.x = this.b;
- vector3D.y = this.d;
- vector3D.z = 0;
- } else {
- vector3D.x = this.tx;
- vector3D.y = this.ty;
- vector3D.z = 1;
- }
- }
- ,copyFrom: function(sourceMatrix) {
- this.a = sourceMatrix.a;
- this.b = sourceMatrix.b;
- this.c = sourceMatrix.c;
- this.d = sourceMatrix.d;
- this.tx = sourceMatrix.tx;
- this.ty = sourceMatrix.ty;
- }
- ,copyRowFrom: function(row,vector3D) {
- if(row > 2) throw "Row " + row + " out of bounds (2)"; else if(row == 0) {
- this.a = vector3D.x;
- this.c = vector3D.y;
- } else if(row == 1) {
- this.b = vector3D.x;
- this.d = vector3D.y;
- } else {
- this.tx = vector3D.x;
- this.ty = vector3D.y;
- }
- }
- ,copyRowTo: function(row,vector3D) {
- if(row > 2) throw "Row " + row + " out of bounds (2)"; else if(row == 0) {
- vector3D.x = this.a;
- vector3D.y = this.b;
- vector3D.z = this.tx;
- } else if(row == 1) {
- vector3D.x = this.c;
- vector3D.y = this.d;
- vector3D.z = this.ty;
- } else {
- vector3D.x = 0;
- vector3D.y = 0;
- vector3D.z = 1;
- }
- }
- ,createBox: function(scaleX,scaleY,rotation,tx,ty) {
- if(ty == null) ty = 0;
- if(tx == null) tx = 0;
- if(rotation == null) rotation = 0;
- if(rotation != 0) {
- var cos = Math.cos(rotation);
- var sin = Math.sin(rotation);
- this.a = cos * scaleX;
- this.b = sin * scaleY;
- this.c = -sin * scaleX;
- this.d = cos * scaleY;
- } else {
- this.a = scaleX;
- this.b = 0;
- this.c = 0;
- this.d = scaleY;
- }
- this.tx = tx;
- this.ty = ty;
- }
- ,createGradientBox: function(width,height,rotation,tx,ty) {
- if(ty == null) ty = 0;
- if(tx == null) tx = 0;
- if(rotation == null) rotation = 0;
- this.a = width / 1638.4;
- this.d = height / 1638.4;
- if(rotation != 0) {
- var cos = Math.cos(rotation);
- var sin = Math.sin(rotation);
- this.b = sin * this.d;
- this.c = -sin * this.a;
- this.a *= cos;
- this.d *= cos;
- } else {
- this.b = 0;
- this.c = 0;
- }
- this.tx = tx + width / 2;
- this.ty = ty + height / 2;
- }
- ,deltaTransformPoint: function(point) {
- return new openfl.geom.Point(point.x * this.a + point.y * this.c,point.x * this.b + point.y * this.d);
- }
- ,equals: function(matrix) {
- return matrix != null && this.tx == matrix.tx && this.ty == matrix.ty && this.a == matrix.a && this.b == matrix.b && this.c == matrix.c && this.d == matrix.d;
- }
- ,identity: function() {
- this.a = 1;
- this.b = 0;
- this.c = 0;
- this.d = 1;
- this.tx = 0;
- this.ty = 0;
- }
- ,invert: function() {
- var norm = this.a * this.d - this.b * this.c;
- if(norm == 0) {
- this.a = this.b = this.c = this.d = 0;
- this.tx = -this.tx;
- this.ty = -this.ty;
- } else {
- norm = 1.0 / norm;
- var a1 = this.d * norm;
- this.d = this.a * norm;
- this.a = a1;
- this.b *= -norm;
- this.c *= -norm;
- var tx1 = -this.a * this.tx - this.c * this.ty;
- this.ty = -this.b * this.tx - this.d * this.ty;
- this.tx = tx1;
- }
- return this;
- }
- ,mult: function(m) {
- var result = new openfl.geom.Matrix();
- result.a = this.a * m.a + this.b * m.c;
- result.b = this.a * m.b + this.b * m.d;
- result.c = this.c * m.a + this.d * m.c;
- result.d = this.c * m.b + this.d * m.d;
- result.tx = this.tx * m.a + this.ty * m.c + m.tx;
- result.ty = this.tx * m.b + this.ty * m.d + m.ty;
- return result;
- }
- ,rotate: function(theta) {
- var cos = Math.cos(theta);
- var sin = Math.sin(theta);
- var a1 = this.a * cos - this.b * sin;
- this.b = this.a * sin + this.b * cos;
- this.a = a1;
- var c1 = this.c * cos - this.d * sin;
- this.d = this.c * sin + this.d * cos;
- this.c = c1;
- var tx1 = this.tx * cos - this.ty * sin;
- this.ty = this.tx * sin + this.ty * cos;
- this.tx = tx1;
- }
- ,scale: function(sx,sy) {
- this.a *= sx;
- this.b *= sy;
- this.c *= sx;
- this.d *= sy;
- this.tx *= sx;
- this.ty *= sy;
- }
- ,setRotation: function(theta,scale) {
- if(scale == null) scale = 1;
- this.a = Math.cos(theta) * scale;
- this.c = Math.sin(theta) * scale;
- this.b = -this.c;
- this.d = this.a;
- }
- ,setTo: function(a,b,c,d,tx,ty) {
- this.a = a;
- this.b = b;
- this.c = c;
- this.d = d;
- this.tx = tx;
- this.ty = ty;
- }
- ,to3DString: function(roundPixels) {
- if(roundPixels == null) roundPixels = false;
- if(roundPixels) return "matrix3d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 0, 1)"; else return "matrix3d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)";
- }
- ,toMozString: function() {
- return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)";
- }
- ,toString: function() {
- return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")";
- }
- ,transformPoint: function(pos) {
- return new openfl.geom.Point(pos.x * this.a + pos.y * this.c + this.tx,pos.x * this.b + pos.y * this.d + this.ty);
- }
- ,translate: function(dx,dy) {
- var m = new openfl.geom.Matrix();
- m.tx = dx;
- m.ty = dy;
- this.concat(m);
- }
- ,toArray: function(transpose) {
- if(transpose == null) transpose = false;
- if(transpose) {
- this.__array[0] = this.a;
- this.__array[1] = this.c;
- this.__array[2] = 0;
- this.__array[3] = this.b;
- this.__array[4] = this.d;
- this.__array[5] = 0;
- this.__array[6] = this.tx;
- this.__array[7] = this.ty;
- this.__array[8] = 1;
- } else {
- this.__array[0] = this.a;
- this.__array[1] = this.b;
- this.__array[2] = this.tx;
- this.__array[3] = this.c;
- this.__array[4] = this.d;
- this.__array[5] = this.ty;
- this.__array[6] = 0;
- this.__array[7] = 0;
- this.__array[8] = 1;
- }
- return this.__array;
- }
- ,__cleanValues: function() {
- this.a = Math.round(this.a * 1000) / 1000;
- this.b = Math.round(this.b * 1000) / 1000;
- this.c = Math.round(this.c * 1000) / 1000;
- this.d = Math.round(this.d * 1000) / 1000;
- this.tx = Math.round(this.tx * 10) / 10;
- this.ty = Math.round(this.ty * 10) / 10;
- }
- ,__transformX: function(pos) {
- return pos.x * this.a + pos.y * this.c + this.tx;
- }
- ,__transformY: function(pos) {
- return pos.x * this.b + pos.y * this.d + this.ty;
- }
- ,__translateTransformed: function(pos) {
- this.tx = pos.x * this.a + pos.y * this.c + this.tx;
- this.ty = pos.x * this.b + pos.y * this.d + this.ty;
- }
- ,__class__: openfl.geom.Matrix
- };
- openfl.Lib = function() { };
- $hxClasses["openfl.Lib"] = openfl.Lib;
- openfl.Lib.__name__ = ["openfl","Lib"];
- openfl.Lib.application = null;
- openfl.Lib["as"] = function(v,c) {
- if(js.Boot.__instanceof(v,c)) return v; else return null;
- };
- openfl.Lib.attach = function(name) {
- return new openfl.display.MovieClip();
- };
- openfl.Lib.embed = $hx_exports.openfl.embed = function(elementName,width,height,background,assetsPrefix) {
- lime.system.System.embed(elementName,width,height,background,assetsPrefix);
- };
- openfl.Lib.getTimer = function() {
- return lime.system.System.getTimer();
- };
- openfl.Lib.getURL = function(request,target) {
- if(target == null) target = "_blank";
- window.open(request.url,target);
- };
- openfl.Lib.notImplemented = function(api) {
- if(!openfl.Lib.__sentWarnings.exists(api)) {
- openfl.Lib.__sentWarnings.set(api,true);
- null;
- }
- };
- openfl.Lib.preventDefaultTouchMove = function() {
- window.document.addEventListener("touchmove",function(evt) {
- evt.preventDefault();
- },false);
- };
- openfl.Lib.trace = function(arg) {
- haxe.Log.trace(arg,{ fileName : "Lib.hx", lineNumber : 146, className : "openfl.Lib", methodName : "trace"});
- };
- openfl.Memory = function() { };
- $hxClasses["openfl.Memory"] = openfl.Memory;
- openfl.Memory.__name__ = ["openfl","Memory"];
- openfl.Memory.gcRef = null;
- openfl.Memory.len = null;
- openfl.Memory._setPositionTemporarily = function(position,action) {
- var oldPosition = openfl.Memory.gcRef.position;
- openfl.Memory.gcRef.position = position;
- var value = action();
- openfl.Memory.gcRef.position = oldPosition;
- return value;
- };
- openfl.Memory.getByte = function(addr) {
- return openfl.Memory.gcRef.data.getInt8(addr);
- };
- openfl.Memory.getDouble = function(addr) {
- return openfl.Memory._setPositionTemporarily(addr,function() {
- return openfl.Memory.gcRef.readDouble();
- });
- };
- openfl.Memory.getFloat = function(addr) {
- return openfl.Memory._setPositionTemporarily(addr,function() {
- return openfl.Memory.gcRef.readFloat();
- });
- };
- openfl.Memory.getI32 = function(addr) {
- return openfl.Memory._setPositionTemporarily(addr,function() {
- return openfl.Memory.gcRef.readInt();
- });
- };
- openfl.Memory.getUI16 = function(addr) {
- return openfl.Memory._setPositionTemporarily(addr,function() {
- return openfl.Memory.gcRef.readUnsignedShort();
- });
- };
- openfl.Memory.select = function(inBytes) {
- openfl.Memory.gcRef = inBytes;
- if(inBytes != null) openfl.Memory.len = inBytes.length; else openfl.Memory.len = 0;
- };
- openfl.Memory.setByte = function(addr,v) {
- openfl.Memory.gcRef.data.setUint8(addr,v);
- };
- openfl.Memory.setDouble = function(addr,v) {
- openfl.Memory._setPositionTemporarily(addr,function() {
- openfl.Memory.gcRef.writeDouble(v);
- });
- };
- openfl.Memory.setFloat = function(addr,v) {
- openfl.Memory._setPositionTemporarily(addr,function() {
- openfl.Memory.gcRef.writeFloat(v);
- });
- };
- openfl.Memory.setI16 = function(addr,v) {
- openfl.Memory._setPositionTemporarily(addr,function() {
- openfl.Memory.gcRef.writeUnsignedShort(v);
- });
- };
- openfl.Memory.setI32 = function(addr,v) {
- openfl.Memory._setPositionTemporarily(addr,function() {
- openfl.Memory.gcRef.writeInt(v);
- });
- };
- openfl._Vector = {};
- openfl._Vector.Vector_Impl_ = function() { };
- $hxClasses["openfl._Vector.Vector_Impl_"] = openfl._Vector.Vector_Impl_;
- openfl._Vector.Vector_Impl_.__name__ = ["openfl","_Vector","Vector_Impl_"];
- openfl._Vector.Vector_Impl_.__properties__ = {set_fixed:"set_fixed",get_fixed:"get_fixed",set_length:"set_length",get_length:"get_length"}
- openfl._Vector.Vector_Impl_._new = function(length,fixed) {
- if(fixed == null) fixed = false;
- if(length == null) length = 0;
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(length);
- this1.data = this2;
- this1.length = length;
- this1.fixed = fixed;
- return this1;
- };
- openfl._Vector.Vector_Impl_.concat = function(this1,a) {
- var vectorData = new openfl.VectorData();
- if(a != null) vectorData.length = this1.length + a.length; else vectorData.length = this1.length;
- vectorData.fixed = false;
- var this2;
- this2 = new Array(vectorData.length);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,vectorData.data,0,this1.length);
- if(a != null) haxe.ds._Vector.Vector_Impl_.blit(a.data,0,vectorData.data,this1.length,a.length);
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.copy = function(this1) {
- var vectorData = new openfl.VectorData();
- vectorData.length = this1.length;
- vectorData.fixed = this1.fixed;
- var this2;
- this2 = new Array(this1.length);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,vectorData.data,0,this1.length);
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.iterator = function(this1) {
- return new openfl.VectorDataIterator(this1);
- };
- openfl._Vector.Vector_Impl_.join = function(this1,sep) {
- var output = "";
- var _g1 = 0;
- var _g = this1.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(i > 0) output += sep;
- output += Std.string(this1.data[i]);
- }
- return output;
- };
- openfl._Vector.Vector_Impl_.pop = function(this1) {
- var value = null;
- if(!this1.fixed) {
- if(this1.length > 0) {
- this1.length--;
- value = this1.data[this1.length];
- }
- }
- return value;
- };
- openfl._Vector.Vector_Impl_.push = function(this1,x) {
- if(!this1.fixed) {
- this1.length++;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- this1.data[this1.length - 1] = x;
- }
- return this1.length;
- };
- openfl._Vector.Vector_Impl_.reverse = function(this1) {
- var data;
- var this2;
- this2 = new Array(this1.length);
- data = this2;
- var _g1 = 0;
- var _g = this1.length;
- while(_g1 < _g) {
- var i = _g1++;
- data[this1.length - 1 - i] = this1.data[i];
- }
- this1.data = data;
- };
- openfl._Vector.Vector_Impl_.shift = function(this1) {
- if(!this1.fixed && this1.length > 0) {
- this1.length--;
- var value = this1.data[0];
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,1,this1.data,0,this1.length);
- return value;
- }
- return null;
- };
- openfl._Vector.Vector_Impl_.unshift = function(this1,x) {
- if(!this1.fixed) {
- this1.length++;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,1,this1.data.length);
- this1.data = data;
- } else haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,this1.data,1,this1.length - 1);
- this1.data[0] = x;
- }
- };
- openfl._Vector.Vector_Impl_.slice = function(this1,pos,end) {
- if(end == null) end = 0;
- if(pos == null) pos = 0;
- if(pos < 0) pos += this1.length;
- if(end <= 0) end += this1.length;
- if(end > this1.length) end = this1.length;
- var length = end - pos;
- if(length <= 0 || length > this1.length) length = this1.length;
- var vectorData = new openfl.VectorData();
- vectorData.length = end - pos;
- vectorData.fixed = true;
- var this2;
- this2 = new Array(length);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,pos,vectorData.data,0,length);
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.sort = function(this1,f) {
- var array = haxe.ds._Vector.Vector_Impl_.toArray(this1.data);
- array.sort(f);
- var vec;
- var this2;
- this2 = new Array(array.length);
- vec = this2;
- var _g1 = 0;
- var _g = array.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = array[i];
- }
- this1.data = vec;
- };
- openfl._Vector.Vector_Impl_.splice = function(this1,pos,len) {
- if(pos < 0) pos += this1.length;
- if(pos + len > this1.length) len = this1.length - pos;
- if(len < 0) len = 0;
- var vectorData = new openfl.VectorData();
- vectorData.length = len;
- vectorData.fixed = false;
- var this2;
- this2 = new Array(len);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,pos,vectorData.data,0,len);
- if(len > 0) {
- this1.length -= len;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,pos + len,this1.data,pos,this1.length - pos);
- }
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.toString = function(this1) {
- return haxe.ds._Vector.Vector_Impl_.toArray(this1.data).toString();
- };
- openfl._Vector.Vector_Impl_.indexOf = function(this1,x,from) {
- if(from == null) from = 0;
- var value = -1;
- var _g1 = from;
- var _g = this1.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(this1.data[i] == x) {
- value = i;
- break;
- }
- }
- return value;
- };
- openfl._Vector.Vector_Impl_.lastIndexOf = function(this1,x,from) {
- if(from == null) from = 0;
- var value = -1;
- var i = this1.length - 1;
- while(i >= from) {
- if(this1.data[i] == x) {
- value = i;
- break;
- }
- i--;
- }
- return value;
- };
- openfl._Vector.Vector_Impl_.ofArray = function(a) {
- var vectorData = new openfl.VectorData();
- vectorData.length = a.length;
- vectorData.fixed = true;
- var vec;
- var this1;
- this1 = new Array(a.length);
- vec = this1;
- var _g1 = 0;
- var _g = a.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = a[i];
- }
- vectorData.data = vec;
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.convert = function(v) {
- return v;
- };
- openfl._Vector.Vector_Impl_.get = function(this1,index) {
- return this1.data[index];
- };
- openfl._Vector.Vector_Impl_.set = function(this1,key,value) {
- if(!this1.fixed) {
- if(key >= this1.length) this1.length = key + 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- return this1.data[key] = value;
- };
- openfl._Vector.Vector_Impl_.fromArray = function(value) {
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.toArray = function(this1) {
- var value = new Array();
- var _g1 = 0;
- var _g = this1.data.length;
- while(_g1 < _g) {
- var i = _g1++;
- value.push(this1.data[i]);
- }
- return value;
- };
- openfl._Vector.Vector_Impl_.fromHaxeVector = function(value) {
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- vectorData.data = value;
- return vectorData;
- };
- openfl._Vector.Vector_Impl_.toHaxeVector = function(this1) {
- return this1.data;
- };
- openfl._Vector.Vector_Impl_.fromVectorData = function(value) {
- return value;
- };
- openfl._Vector.Vector_Impl_.toVectorData = function(this1) {
- return this1;
- };
- openfl._Vector.Vector_Impl_.get_length = function(this1) {
- return this1.length;
- };
- openfl._Vector.Vector_Impl_.set_length = function(this1,value) {
- if(!this1.fixed) {
- if(value > this1.length) {
- var data;
- var this2;
- this2 = new Array(value);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,Std["int"](Math.min(this1.data.length,value)));
- this1.data = data;
- }
- this1.length = value;
- }
- return value;
- };
- openfl._Vector.Vector_Impl_.get_fixed = function(this1) {
- return this1.fixed;
- };
- openfl._Vector.Vector_Impl_.set_fixed = function(this1,value) {
- return this1.fixed = value;
- };
- openfl.VectorData = function() {
- this.length = 0;
- };
- $hxClasses["openfl.VectorData"] = openfl.VectorData;
- openfl.VectorData.__name__ = ["openfl","VectorData"];
- openfl.VectorData.prototype = {
- __class__: openfl.VectorData
- };
- openfl.VectorDataIterator = function(data) {
- this.index = 0;
- this.vectorData = data;
- };
- $hxClasses["openfl.VectorDataIterator"] = openfl.VectorDataIterator;
- openfl.VectorDataIterator.__name__ = ["openfl","VectorDataIterator"];
- openfl.VectorDataIterator.prototype = {
- hasNext: function() {
- return this.index < this.vectorData.length;
- }
- ,next: function() {
- var index = this.index++;
- return this.vectorData.data[index];
- }
- ,__class__: openfl.VectorDataIterator
- };
- openfl._internal = {};
- openfl._internal.renderer = {};
- openfl._internal.renderer.AbstractRenderer = function(width,height) {
- this.width = width;
- this.height = height;
- };
- $hxClasses["openfl._internal.renderer.AbstractRenderer"] = openfl._internal.renderer.AbstractRenderer;
- openfl._internal.renderer.AbstractRenderer.__name__ = ["openfl","_internal","renderer","AbstractRenderer"];
- openfl._internal.renderer.AbstractRenderer.prototype = {
- render: function(stage) {
- }
- ,renderShape: function(shape) {
- }
- ,resize: function(width,height) {
- }
- ,__class__: openfl._internal.renderer.AbstractRenderer
- };
- openfl._internal.renderer.RenderSession = function() {
- };
- $hxClasses["openfl._internal.renderer.RenderSession"] = openfl._internal.renderer.RenderSession;
- openfl._internal.renderer.RenderSession.__name__ = ["openfl","_internal","renderer","RenderSession"];
- openfl._internal.renderer.RenderSession.prototype = {
- __class__: openfl._internal.renderer.RenderSession
- };
- openfl._internal.renderer.canvas = {};
- openfl._internal.renderer.canvas.CanvasBitmap = function() { };
- $hxClasses["openfl._internal.renderer.canvas.CanvasBitmap"] = openfl._internal.renderer.canvas.CanvasBitmap;
- openfl._internal.renderer.canvas.CanvasBitmap.__name__ = ["openfl","_internal","renderer","canvas","CanvasBitmap"];
- openfl._internal.renderer.canvas.CanvasBitmap.render = function(bitmap,renderSession) {
- if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) return;
- var context = renderSession.context;
- if(bitmap.bitmapData != null && bitmap.bitmapData.__isValid) {
- if(bitmap.__mask != null) renderSession.maskManager.pushMask(bitmap.__mask);
- bitmap.bitmapData.__sync();
- context.globalAlpha = bitmap.__worldAlpha;
- var transform = bitmap.__worldTransform;
- var scrollRect = bitmap.get_scrollRect();
- if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
- if(!bitmap.smoothing) {
- context.mozImageSmoothingEnabled = false;
- context.webkitImageSmoothingEnabled = false;
- context.imageSmoothingEnabled = false;
- }
- if(scrollRect == null) context.drawImage(bitmap.bitmapData.__image.get_src(),0,0); else context.drawImage(bitmap.bitmapData.__image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
- if(!bitmap.smoothing) {
- context.mozImageSmoothingEnabled = true;
- context.webkitImageSmoothingEnabled = true;
- context.imageSmoothingEnabled = true;
- }
- if(bitmap.__mask != null) renderSession.maskManager.popMask();
- }
- };
- openfl._internal.renderer.canvas.CanvasGraphics = function() { };
- $hxClasses["openfl._internal.renderer.canvas.CanvasGraphics"] = openfl._internal.renderer.canvas.CanvasGraphics;
- openfl._internal.renderer.canvas.CanvasGraphics.__name__ = ["openfl","_internal","renderer","canvas","CanvasGraphics"];
- openfl._internal.renderer.canvas.CanvasGraphics.bounds = null;
- openfl._internal.renderer.canvas.CanvasGraphics.hasFill = null;
- openfl._internal.renderer.canvas.CanvasGraphics.hasStroke = null;
- openfl._internal.renderer.canvas.CanvasGraphics.inPath = null;
- openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix = null;
- openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix = null;
- openfl._internal.renderer.canvas.CanvasGraphics.positionX = null;
- openfl._internal.renderer.canvas.CanvasGraphics.positionY = null;
- openfl._internal.renderer.canvas.CanvasGraphics.setFill = null;
- openfl._internal.renderer.canvas.CanvasGraphics.context = null;
- openfl._internal.renderer.canvas.CanvasGraphics.pattern = null;
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath = function() {
- if(!openfl._internal.renderer.canvas.CanvasGraphics.inPath) {
- openfl._internal.renderer.canvas.CanvasGraphics.context.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.inPath = true;
- }
- };
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill = function(bitmapFill,bitmapRepeat) {
- if(openfl._internal.renderer.canvas.CanvasGraphics.setFill || bitmapFill == null) return;
- if(openfl._internal.renderer.canvas.CanvasGraphics.pattern == null) openfl._internal.renderer.canvas.CanvasGraphics.pattern = openfl._internal.renderer.canvas.CanvasGraphics.context.createPattern(bitmapFill.__image.get_src(),bitmapRepeat?"repeat":"no-repeat");
- openfl._internal.renderer.canvas.CanvasGraphics.context.fillStyle = openfl._internal.renderer.canvas.CanvasGraphics.pattern;
- openfl._internal.renderer.canvas.CanvasGraphics.setFill = true;
- };
- openfl._internal.renderer.canvas.CanvasGraphics.closePath = function(closeFill) {
- if(openfl._internal.renderer.canvas.CanvasGraphics.inPath) {
- if(openfl._internal.renderer.canvas.CanvasGraphics.hasFill) {
- openfl._internal.renderer.canvas.CanvasGraphics.context.translate(-openfl._internal.renderer.canvas.CanvasGraphics.bounds.x,-openfl._internal.renderer.canvas.CanvasGraphics.bounds.y);
- if(openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix != null) {
- openfl._internal.renderer.canvas.CanvasGraphics.context.transform(openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.a,openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.b,openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.c,openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.d,openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.tx,openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.ty);
- openfl._internal.renderer.canvas.CanvasGraphics.context.fill();
- openfl._internal.renderer.canvas.CanvasGraphics.context.transform(openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.a,openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.b,openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.c,openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.d,openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.tx,openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.ty);
- } else openfl._internal.renderer.canvas.CanvasGraphics.context.fill();
- openfl._internal.renderer.canvas.CanvasGraphics.context.translate(openfl._internal.renderer.canvas.CanvasGraphics.bounds.x,openfl._internal.renderer.canvas.CanvasGraphics.bounds.y);
- }
- openfl._internal.renderer.canvas.CanvasGraphics.context.closePath();
- if(openfl._internal.renderer.canvas.CanvasGraphics.hasStroke) openfl._internal.renderer.canvas.CanvasGraphics.context.stroke();
- }
- openfl._internal.renderer.canvas.CanvasGraphics.inPath = false;
- if(closeFill) {
- openfl._internal.renderer.canvas.CanvasGraphics.hasFill = false;
- openfl._internal.renderer.canvas.CanvasGraphics.hasStroke = false;
- openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix = null;
- openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix = null;
- }
- };
- openfl._internal.renderer.canvas.CanvasGraphics.drawRoundRect = function(x,y,width,height,rx,ry) {
- if(ry == -1) ry = rx;
- rx *= 0.5;
- ry *= 0.5;
- if(rx > width / 2) rx = width / 2;
- if(ry > height / 2) ry = height / 2;
- var xe = x + width;
- var ye = y + height;
- var cx1 = -rx + rx * openfl._internal.renderer.canvas.CanvasGraphics.SIN45;
- var cx2 = -rx + rx * openfl._internal.renderer.canvas.CanvasGraphics.TAN22;
- var cy1 = -ry + ry * openfl._internal.renderer.canvas.CanvasGraphics.SIN45;
- var cy2 = -ry + ry * openfl._internal.renderer.canvas.CanvasGraphics.TAN22;
- openfl._internal.renderer.canvas.CanvasGraphics.context.moveTo(xe,ye - ry);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(xe,ye + cy2,xe + cx1,ye + cy1);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(xe + cx2,ye,xe - rx,ye);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x + rx,ye);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(x - cx2,ye,x - cx1,ye + cy1);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(x,ye + cy2,x,ye - ry);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x,y + ry);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(x,y - cy2,x - cx1,y - cy1);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(x - cx2,y,x + rx,y);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(xe - rx,y);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(xe + cx2,y,xe + cx1,y - cy1);
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(xe,y - cy2,xe,y + ry);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(xe,ye - ry);
- };
- openfl._internal.renderer.canvas.CanvasGraphics.render = function(graphics,renderSession) {
- if(graphics.__dirty) {
- openfl._internal.renderer.canvas.CanvasGraphics.bounds = graphics.__bounds;
- openfl._internal.renderer.canvas.CanvasGraphics.hasFill = false;
- openfl._internal.renderer.canvas.CanvasGraphics.hasStroke = false;
- openfl._internal.renderer.canvas.CanvasGraphics.inPath = false;
- openfl._internal.renderer.canvas.CanvasGraphics.positionX = 0;
- openfl._internal.renderer.canvas.CanvasGraphics.positionY = 0;
- if(!graphics.__visible || graphics.__commands.length == 0 || openfl._internal.renderer.canvas.CanvasGraphics.bounds == null || openfl._internal.renderer.canvas.CanvasGraphics.bounds.width == 0 || openfl._internal.renderer.canvas.CanvasGraphics.bounds.height == 0) {
- graphics.__canvas = null;
- graphics.__context = null;
- } else {
- if(graphics.__canvas == null) {
- graphics.__canvas = window.document.createElement("canvas");
- graphics.__context = graphics.__canvas.getContext("2d");
- }
- openfl._internal.renderer.canvas.CanvasGraphics.context = graphics.__context;
- graphics.__canvas.width = Math.ceil(openfl._internal.renderer.canvas.CanvasGraphics.bounds.width);
- graphics.__canvas.height = Math.ceil(openfl._internal.renderer.canvas.CanvasGraphics.bounds.height);
- var offsetX = openfl._internal.renderer.canvas.CanvasGraphics.bounds.x;
- var offsetY = openfl._internal.renderer.canvas.CanvasGraphics.bounds.y;
- var bitmapFill = null;
- var bitmapRepeat = false;
- var _g = 0;
- var _g1 = graphics.__commands;
- try {
- while(_g < _g1.length) {
- var command = _g1[_g];
- ++_g;
- switch(command[1]) {
- case 0:
- var smooth = command[5];
- var repeat = command[4];
- var matrix = command[3];
- var bitmap = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(false);
- if(bitmap != bitmapFill || repeat != bitmapRepeat) {
- bitmapFill = bitmap;
- bitmapRepeat = repeat;
- openfl._internal.renderer.canvas.CanvasGraphics.pattern = null;
- openfl._internal.renderer.canvas.CanvasGraphics.setFill = false;
- bitmap.__sync();
- }
- if(matrix != null) {
- openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix = matrix;
- openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix = new openfl.geom.Matrix(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty);
- openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.invert();
- } else {
- openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix = null;
- openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix = null;
- }
- openfl._internal.renderer.canvas.CanvasGraphics.hasFill = true;
- break;
- case 1:
- var alpha = command[3];
- var rgb = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(false);
- if(alpha == 1) openfl._internal.renderer.canvas.CanvasGraphics.context.fillStyle = "#" + StringTools.hex(rgb,6); else {
- var r = (rgb & 16711680) >>> 16;
- var g = (rgb & 65280) >>> 8;
- var b = rgb & 255;
- openfl._internal.renderer.canvas.CanvasGraphics.context.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
- }
- bitmapFill = null;
- openfl._internal.renderer.canvas.CanvasGraphics.setFill = true;
- openfl._internal.renderer.canvas.CanvasGraphics.hasFill = true;
- break;
- case 2:
- var y = command[7];
- var x = command[6];
- var cy2 = command[5];
- var cx2 = command[4];
- var cy1 = command[3];
- var cx1 = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.bezierCurveTo(cx1 - offsetX,cy1 - offsetY,cx2 - offsetX,cy2 - offsetY,x - offsetX,y - offsetY);
- openfl._internal.renderer.canvas.CanvasGraphics.positionX = x;
- openfl._internal.renderer.canvas.CanvasGraphics.positionY = y;
- break;
- case 3:
- var y1 = command[5];
- var x1 = command[4];
- var cy = command[3];
- var cx = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.quadraticCurveTo(cx - offsetX,cy - offsetY,x1 - offsetX,y1 - offsetY);
- openfl._internal.renderer.canvas.CanvasGraphics.positionX = x1;
- openfl._internal.renderer.canvas.CanvasGraphics.positionY = y1;
- break;
- case 4:
- var radius = command[4];
- var y2 = command[3];
- var x2 = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.moveTo(x2 - offsetX + radius,y2 - offsetY);
- openfl._internal.renderer.canvas.CanvasGraphics.context.arc(x2 - offsetX,y2 - offsetY,radius,0,Math.PI * 2,true);
- break;
- case 5:
- var height = command[5];
- var width = command[4];
- var y3 = command[3];
- var x3 = command[2];
- x3 -= offsetX;
- y3 -= offsetY;
- var kappa = .5522848;
- var ox = width / 2 * kappa;
- var oy = height / 2 * kappa;
- var xe = x3 + width;
- var ye = y3 + height;
- var xm = x3 + width / 2;
- var ym = y3 + height / 2;
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.moveTo(x3,ym);
- openfl._internal.renderer.canvas.CanvasGraphics.context.bezierCurveTo(x3,ym - oy,xm - ox,y3,xm,y3);
- openfl._internal.renderer.canvas.CanvasGraphics.context.bezierCurveTo(xm + ox,y3,xe,ym - oy,xe,ym);
- openfl._internal.renderer.canvas.CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye);
- openfl._internal.renderer.canvas.CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x3,ym + oy,x3,ym);
- break;
- case 6:
- var height1 = command[5];
- var width1 = command[4];
- var y4 = command[3];
- var x4 = command[2];
- var optimizationUsed = false;
- if(bitmapFill != null) {
- var st = 0;
- var sr = 0;
- var sb = 0;
- var sl = 0;
- var canOptimizeMatrix = true;
- if(openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix != null) {
- if(openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.b != 0 || openfl._internal.renderer.canvas.CanvasGraphics.pendingMatrix.c != 0) canOptimizeMatrix = false; else {
- var stl = openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.transformPoint(new openfl.geom.Point(x4,y4));
- var sbr = openfl._internal.renderer.canvas.CanvasGraphics.inversePendingMatrix.transformPoint(new openfl.geom.Point(x4 + width1,y4 + height1));
- st = stl.y;
- sl = stl.x;
- sb = sbr.y;
- sr = sbr.x;
- }
- } else {
- st = y4;
- sl = x4;
- sb = y4 + height1;
- sr = x4 + width1;
- }
- if(canOptimizeMatrix && st >= 0 && sl >= 0 && sr <= bitmapFill.width && sb <= bitmapFill.height) {
- optimizationUsed = true;
- openfl._internal.renderer.canvas.CanvasGraphics.context.drawImage(bitmapFill.__image.get_src(),sl,st,sr - sl,sb - st,x4 - offsetX,y4 - offsetY,width1,height1);
- }
- }
- if(!optimizationUsed) {
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.rect(x4 - offsetX,y4 - offsetY,width1,height1);
- }
- break;
- case 7:
- var ry = command[7];
- var rx = command[6];
- var height2 = command[5];
- var width2 = command[4];
- var y5 = command[3];
- var x5 = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.drawRoundRect(x5 - offsetX,y5 - offsetY,width2,height2,rx,ry);
- break;
- case 8:
- var count = command[6];
- var flags = command[5];
- var smooth1 = command[4];
- var tileData = command[3];
- var sheet = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(false);
- var useScale = (flags & 1) > 0;
- var useRotation = (flags & 2) > 0;
- var useTransform = (flags & 16) > 0;
- var useRGB = (flags & 4) > 0;
- var useAlpha = (flags & 8) > 0;
- var useRect = (flags & 32) > 0;
- var useOrigin = (flags & 64) > 0;
- var useBlendAdd = (flags & 65536) > 0;
- if(useTransform) {
- useScale = false;
- useRotation = false;
- }
- var scaleIndex = 0;
- var rotationIndex = 0;
- var rgbIndex = 0;
- var alphaIndex = 0;
- var transformIndex = 0;
- var numValues = 3;
- if(useRect) if(useOrigin) numValues = 8; else numValues = 6;
- if(useScale) {
- scaleIndex = numValues;
- numValues++;
- }
- if(useRotation) {
- rotationIndex = numValues;
- numValues++;
- }
- if(useTransform) {
- transformIndex = numValues;
- numValues += 4;
- }
- if(useRGB) {
- rgbIndex = numValues;
- numValues += 3;
- }
- if(useAlpha) {
- alphaIndex = numValues;
- numValues++;
- }
- var totalCount = tileData.length;
- if(count >= 0 && totalCount > count) totalCount = count;
- var itemCount = totalCount / numValues | 0;
- var index = 0;
- var rect = null;
- var center = null;
- var previousTileID = -1;
- var surface;
- sheet.__bitmap.__sync();
- surface = sheet.__bitmap.__image.get_src();
- if(useBlendAdd) openfl._internal.renderer.canvas.CanvasGraphics.context.globalCompositeOperation = "lighter";
- while(index < totalCount) {
- var tileID;
- if(!useRect) tileID = tileData[index + 2] | 0; else tileID = -1;
- if(!useRect && tileID != previousTileID) {
- rect = sheet.__tileRects[tileID];
- center = sheet.__centerPoints[tileID];
- previousTileID = tileID;
- } else if(useRect) {
- rect = sheet.__rectTile;
- rect.setTo(tileData[index + 2],tileData[index + 3],tileData[index + 4],tileData[index + 5]);
- center = sheet.__point;
- if(useOrigin) {
- center.x = tileData[index + 6];
- center.y = tileData[index + 7];
- } else {
- center.x = 0;
- center.y = 0;
- }
- }
- if(rect != null && rect.width > 0 && rect.height > 0 && center != null) {
- openfl._internal.renderer.canvas.CanvasGraphics.context.save();
- openfl._internal.renderer.canvas.CanvasGraphics.context.translate(tileData[index],tileData[index + 1]);
- if(useRotation) openfl._internal.renderer.canvas.CanvasGraphics.context.rotate(tileData[index + rotationIndex]);
- var scale = 1.0;
- if(useScale) scale = tileData[index + scaleIndex];
- if(useTransform) openfl._internal.renderer.canvas.CanvasGraphics.context.transform(tileData[index + transformIndex],tileData[index + transformIndex + 1],tileData[index + transformIndex + 2],tileData[index + transformIndex + 3],0,0);
- if(useAlpha) openfl._internal.renderer.canvas.CanvasGraphics.context.globalAlpha = tileData[index + alphaIndex];
- openfl._internal.renderer.canvas.CanvasGraphics.context.drawImage(surface,rect.x,rect.y,rect.width,rect.height,-center.x * scale,-center.y * scale,rect.width * scale,rect.height * scale);
- openfl._internal.renderer.canvas.CanvasGraphics.context.restore();
- }
- index += numValues;
- }
- if(useBlendAdd) openfl._internal.renderer.canvas.CanvasGraphics.context.globalCompositeOperation = "source-over";
- break;
- case 10:
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(true);
- break;
- case 11:
- var miterLimit = command[9];
- var joints = command[8];
- var caps = command[7];
- var scaleMode = command[6];
- var pixelHinting = command[5];
- var alpha1 = command[4];
- var color = command[3];
- var thickness = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(false);
- if(thickness == null) openfl._internal.renderer.canvas.CanvasGraphics.hasStroke = false; else {
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineWidth = thickness;
- if(joints == null) openfl._internal.renderer.canvas.CanvasGraphics.context.lineJoin = "round"; else openfl._internal.renderer.canvas.CanvasGraphics.context.lineJoin = Std.string(joints).toLowerCase();
- if(caps == null) openfl._internal.renderer.canvas.CanvasGraphics.context.lineCap = "round"; else switch(caps[1]) {
- case 0:
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineCap = "butt";
- break;
- default:
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineCap = Std.string(caps).toLowerCase();
- }
- if(miterLimit == null) openfl._internal.renderer.canvas.CanvasGraphics.context.miterLimit = 3; else openfl._internal.renderer.canvas.CanvasGraphics.context.miterLimit = miterLimit;
- if(alpha1 == 1 || alpha1 == null) if(color == null) openfl._internal.renderer.canvas.CanvasGraphics.context.strokeStyle = "#000000"; else openfl._internal.renderer.canvas.CanvasGraphics.context.strokeStyle = "#" + StringTools.hex(color & 16777215,6); else {
- var r1 = (color & 16711680) >>> 16;
- var g1 = (color & 65280) >>> 8;
- var b1 = color & 255;
- if(color == null) openfl._internal.renderer.canvas.CanvasGraphics.context.strokeStyle = "#000000"; else openfl._internal.renderer.canvas.CanvasGraphics.context.strokeStyle = "rgba(" + r1 + ", " + g1 + ", " + b1 + ", " + alpha1 + ")";
- }
- openfl._internal.renderer.canvas.CanvasGraphics.hasStroke = true;
- }
- break;
- case 12:
- var y6 = command[3];
- var x6 = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.beginPatternFill(bitmapFill,bitmapRepeat);
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x6 - offsetX,y6 - offsetY);
- openfl._internal.renderer.canvas.CanvasGraphics.positionX = x6;
- openfl._internal.renderer.canvas.CanvasGraphics.positionY = y6;
- break;
- case 13:
- var y7 = command[3];
- var x7 = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.moveTo(x7 - offsetX,y7 - offsetY);
- openfl._internal.renderer.canvas.CanvasGraphics.positionX = x7;
- openfl._internal.renderer.canvas.CanvasGraphics.positionY = y7;
- break;
- case 9:
- var culling = command[5];
- var uvtData = command[4];
- var indices = command[3];
- var vertices = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(false);
- var v = vertices;
- var ind = indices;
- var uvt = uvtData;
- var pattern = null;
- var colorFill = bitmapFill == null;
- if(colorFill && uvt != null) throw "__break__";
- if(!colorFill) {
- if(uvtData == null) {
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(0);
- this1.data = this2;
- this1.length = 0;
- this1.fixed = false;
- uvtData = this1;
- var _g3 = 0;
- var _g2 = v.length / 2 | 0;
- while(_g3 < _g2) {
- var i = _g3++;
- if(!uvtData.fixed) {
- uvtData.length++;
- if(uvtData.data.length < uvtData.length) {
- var data;
- var this3;
- this3 = new Array(uvtData.data.length + 10);
- data = this3;
- haxe.ds._Vector.Vector_Impl_.blit(uvtData.data,0,data,0,uvtData.data.length);
- uvtData.data = data;
- }
- uvtData.data[uvtData.length - 1] = v.data[i * 2] / bitmapFill.width;
- }
- uvtData.length;
- if(!uvtData.fixed) {
- uvtData.length++;
- if(uvtData.data.length < uvtData.length) {
- var data1;
- var this4;
- this4 = new Array(uvtData.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(uvtData.data,0,data1,0,uvtData.data.length);
- uvtData.data = data1;
- }
- uvtData.data[uvtData.length - 1] = v.data[i * 2 + 1] / bitmapFill.height;
- }
- uvtData.length;
- }
- }
- var skipT = uvtData.length != v.length;
- var normalizedUvt = openfl._internal.renderer.canvas.CanvasGraphics.normalizeUvt(uvtData,skipT);
- var maxUvt = normalizedUvt.max;
- uvt = normalizedUvt.uvt;
- if(maxUvt > 1) pattern = openfl._internal.renderer.canvas.CanvasGraphics.createTempPatternCanvas(bitmapFill,bitmapRepeat,openfl._internal.renderer.canvas.CanvasGraphics.bounds.width,openfl._internal.renderer.canvas.CanvasGraphics.bounds.height); else pattern = openfl._internal.renderer.canvas.CanvasGraphics.createTempPatternCanvas(bitmapFill,bitmapRepeat,bitmapFill.width,bitmapFill.height);
- }
- var i1 = 0;
- var l = ind.length;
- var a;
- var b2;
- var c;
- var iax;
- var iay;
- var ibx;
- var iby;
- var icx;
- var icy;
- var x11;
- var y11;
- var x21;
- var y21;
- var x31;
- var y31;
- var uvx1;
- var uvy1;
- var uvx2;
- var uvy2;
- var uvx3;
- var uvy3;
- var denom;
- var t1;
- var t2;
- var t3;
- var t4;
- var dx;
- var dy;
- while(i1 < l) {
- a = i1;
- b2 = i1 + 1;
- c = i1 + 2;
- iax = ind.data[a] * 2;
- iay = ind.data[a] * 2 + 1;
- ibx = ind.data[b2] * 2;
- iby = ind.data[b2] * 2 + 1;
- icx = ind.data[c] * 2;
- icy = ind.data[c] * 2 + 1;
- x11 = v.data[iax];
- y11 = v.data[iay];
- x21 = v.data[ibx];
- y21 = v.data[iby];
- x31 = v.data[icx];
- y31 = v.data[icy];
- switch(culling[1]) {
- case 2:
- if(!((x21 - x11) * (y31 - y11) - (y21 - y11) * (x31 - x11) < 0)) {
- i1 += 3;
- continue;
- }
- break;
- case 0:
- if((x21 - x11) * (y31 - y11) - (y21 - y11) * (x31 - x11) < 0) {
- i1 += 3;
- continue;
- }
- break;
- default:
- }
- if(colorFill) {
- openfl._internal.renderer.canvas.CanvasGraphics.context.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.moveTo(x11,y11);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x21,y21);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x31,y31);
- openfl._internal.renderer.canvas.CanvasGraphics.context.closePath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.fill();
- i1 += 3;
- continue;
- }
- openfl._internal.renderer.canvas.CanvasGraphics.context.save();
- openfl._internal.renderer.canvas.CanvasGraphics.context.beginPath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.moveTo(x11,y11);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x21,y21);
- openfl._internal.renderer.canvas.CanvasGraphics.context.lineTo(x31,y31);
- openfl._internal.renderer.canvas.CanvasGraphics.context.closePath();
- openfl._internal.renderer.canvas.CanvasGraphics.context.clip();
- uvx1 = uvt.data[iax] * pattern.width;
- uvx2 = uvt.data[ibx] * pattern.width;
- uvx3 = uvt.data[icx] * pattern.width;
- uvy1 = uvt.data[iay] * pattern.height;
- uvy2 = uvt.data[iby] * pattern.height;
- uvy3 = uvt.data[icy] * pattern.height;
- denom = uvx1 * (uvy3 - uvy2) - uvx2 * uvy3 + uvx3 * uvy2 + (uvx2 - uvx3) * uvy1;
- if(denom == 0) {
- i1 += 3;
- continue;
- }
- t1 = -(uvy1 * (x31 - x21) - uvy2 * x31 + uvy3 * x21 + (uvy2 - uvy3) * x11) / denom;
- t2 = (uvy2 * y31 + uvy1 * (y21 - y31) - uvy3 * y21 + (uvy3 - uvy2) * y11) / denom;
- t3 = (uvx1 * (x31 - x21) - uvx2 * x31 + uvx3 * x21 + (uvx2 - uvx3) * x11) / denom;
- t4 = -(uvx2 * y31 + uvx1 * (y21 - y31) - uvx3 * y21 + (uvx3 - uvx2) * y11) / denom;
- dx = (uvx1 * (uvy3 * x21 - uvy2 * x31) + uvy1 * (uvx2 * x31 - uvx3 * x21) + (uvx3 * uvy2 - uvx2 * uvy3) * x11) / denom;
- dy = (uvx1 * (uvy3 * y21 - uvy2 * y31) + uvy1 * (uvx2 * y31 - uvx3 * y21) + (uvx3 * uvy2 - uvx2 * uvy3) * y11) / denom;
- openfl._internal.renderer.canvas.CanvasGraphics.context.transform(t1,t2,t3,t4,dx,dy);
- openfl._internal.renderer.canvas.CanvasGraphics.context.drawImage(pattern,0,0);
- openfl._internal.renderer.canvas.CanvasGraphics.context.restore();
- i1 += 3;
- }
- break;
- }
- }
- } catch( e ) { if( e != "__break__" ) throw e; }
- }
- graphics.__dirty = false;
- openfl._internal.renderer.canvas.CanvasGraphics.closePath(false);
- }
- };
- openfl._internal.renderer.canvas.CanvasGraphics.renderMask = function(graphics,renderSession) {
- if(graphics.__commands.length != 0) {
- var context = renderSession.context;
- var positionX = 0.0;
- var positionY = 0.0;
- var offsetX = 0;
- var offsetY = 0;
- var _g = 0;
- var _g1 = graphics.__commands;
- while(_g < _g1.length) {
- var command = _g1[_g];
- ++_g;
- switch(command[1]) {
- case 2:
- var y = command[7];
- var x = command[6];
- var cy2 = command[5];
- var cy1 = command[4];
- var cx2 = command[3];
- var cx1 = command[2];
- context.bezierCurveTo(cx1 - offsetX,cy1 - offsetY,cx2 - offsetX,cy2 - offsetY,x - offsetX,y - offsetY);
- positionX = x;
- positionY = y;
- break;
- case 3:
- var y1 = command[5];
- var x1 = command[4];
- var cy = command[3];
- var cx = command[2];
- context.quadraticCurveTo(cx - offsetX,cy - offsetY,x1 - offsetX,y1 - offsetY);
- positionX = x1;
- positionY = y1;
- break;
- case 4:
- var radius = command[4];
- var y2 = command[3];
- var x2 = command[2];
- context.arc(x2 - offsetX,y2 - offsetY,radius,0,Math.PI * 2,true);
- break;
- case 5:
- var height = command[5];
- var width = command[4];
- var y3 = command[3];
- var x3 = command[2];
- x3 -= offsetX;
- y3 -= offsetY;
- var kappa = .5522848;
- var ox = width / 2 * kappa;
- var oy = height / 2 * kappa;
- var xe = x3 + width;
- var ye = y3 + height;
- var xm = x3 + width / 2;
- var ym = y3 + height / 2;
- context.moveTo(x3,ym);
- context.bezierCurveTo(x3,ym - oy,xm - ox,y3,xm,y3);
- context.bezierCurveTo(xm + ox,y3,xe,ym - oy,xe,ym);
- context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye);
- context.bezierCurveTo(xm - ox,ye,x3,ym + oy,x3,ym);
- break;
- case 6:
- var height1 = command[5];
- var width1 = command[4];
- var y4 = command[3];
- var x4 = command[2];
- context.rect(x4 - offsetX,y4 - offsetY,width1,height1);
- break;
- case 7:
- var ry = command[7];
- var rx = command[6];
- var height2 = command[5];
- var width2 = command[4];
- var y5 = command[3];
- var x5 = command[2];
- openfl._internal.renderer.canvas.CanvasGraphics.drawRoundRect(x5 - offsetX,y5 - offsetY,width2,height2,rx,ry);
- break;
- case 12:
- var y6 = command[3];
- var x6 = command[2];
- context.lineTo(x6 - offsetX,y6 - offsetY);
- positionX = x6;
- positionY = y6;
- break;
- case 13:
- var y7 = command[3];
- var x7 = command[2];
- context.moveTo(x7 - offsetX,y7 - offsetY);
- positionX = x7;
- positionY = y7;
- break;
- default:
- }
- }
- }
- };
- openfl._internal.renderer.canvas.CanvasGraphics.createTempPatternCanvas = function(bitmap,repeat,width,height) {
- var canvas = window.document.createElement("canvas");
- var context = canvas.getContext("2d");
- canvas.width = Math.ceil(width);
- canvas.height = Math.ceil(height);
- context.fillStyle = context.createPattern(bitmap.__image.get_src(),repeat?"repeat":"no-repeat");
- context.beginPath();
- context.moveTo(0,0);
- context.lineTo(0,height);
- context.lineTo(width,height);
- context.lineTo(width,0);
- context.lineTo(0,0);
- context.closePath();
- context.fill();
- return canvas;
- };
- openfl._internal.renderer.canvas.CanvasGraphics.isCCW = function(x1,y1,x2,y2,x3,y3) {
- return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0;
- };
- openfl._internal.renderer.canvas.CanvasGraphics.normalizeUvt = function(uvt,skipT) {
- if(skipT == null) skipT = false;
- var max = Math.NEGATIVE_INFINITY;
- var tmp = Math.NEGATIVE_INFINITY;
- var len = uvt.length;
- var _g1 = 1;
- var _g = len + 1;
- while(_g1 < _g) {
- var t = _g1++;
- if(skipT && t % 3 == 0) continue;
- tmp = uvt.data[t - 1];
- if(max < tmp) max = tmp;
- }
- var result;
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(0);
- this1.data = this2;
- this1.length = 0;
- this1.fixed = false;
- result = this1;
- var _g11 = 1;
- var _g2 = len + 1;
- while(_g11 < _g2) {
- var t1 = _g11++;
- if(skipT && t1 % 3 == 0) continue;
- if(!result.fixed) {
- result.length++;
- if(result.data.length < result.length) {
- var data;
- var this3;
- this3 = new Array(result.data.length + 10);
- data = this3;
- haxe.ds._Vector.Vector_Impl_.blit(result.data,0,data,0,result.data.length);
- result.data = data;
- }
- result.data[result.length - 1] = uvt.data[t1 - 1] / max;
- }
- result.length;
- }
- return { max : max, uvt : result};
- };
- openfl._internal.renderer.canvas.CanvasRenderer = function(width,height,context) {
- openfl._internal.renderer.AbstractRenderer.call(this,width,height);
- this.context = context;
- this.renderSession = new openfl._internal.renderer.RenderSession();
- this.renderSession.context = context;
- this.renderSession.roundPixels = true;
- this.renderSession.renderer = this;
- this.renderSession.maskManager = new openfl._internal.renderer.canvas.MaskManager(this.renderSession);
- };
- $hxClasses["openfl._internal.renderer.canvas.CanvasRenderer"] = openfl._internal.renderer.canvas.CanvasRenderer;
- openfl._internal.renderer.canvas.CanvasRenderer.__name__ = ["openfl","_internal","renderer","canvas","CanvasRenderer"];
- openfl._internal.renderer.canvas.CanvasRenderer.__super__ = openfl._internal.renderer.AbstractRenderer;
- openfl._internal.renderer.canvas.CanvasRenderer.prototype = $extend(openfl._internal.renderer.AbstractRenderer.prototype,{
- render: function(stage) {
- this.context.setTransform(1,0,0,1,0,0);
- this.context.globalAlpha = 1;
- if(!stage.__transparent && stage.__clearBeforeRender) {
- this.context.fillStyle = stage.__colorString;
- this.context.fillRect(0,0,stage.stageWidth,stage.stageHeight);
- } else if(stage.__transparent && stage.__clearBeforeRender) this.context.clearRect(0,0,stage.stageWidth,stage.stageHeight);
- stage.__renderCanvas(this.renderSession);
- }
- ,__class__: openfl._internal.renderer.canvas.CanvasRenderer
- });
- openfl._internal.renderer.canvas.CanvasShape = function() { };
- $hxClasses["openfl._internal.renderer.canvas.CanvasShape"] = openfl._internal.renderer.canvas.CanvasShape;
- openfl._internal.renderer.canvas.CanvasShape.__name__ = ["openfl","_internal","renderer","canvas","CanvasShape"];
- openfl._internal.renderer.canvas.CanvasShape.render = function(shape,renderSession) {
- if(!shape.__renderable || shape.__worldAlpha <= 0) return;
- var graphics = shape.__graphics;
- if(graphics != null) {
- openfl._internal.renderer.canvas.CanvasGraphics.render(graphics,renderSession);
- if(graphics.__canvas != null) {
- if(shape.__mask != null) renderSession.maskManager.pushMask(shape.__mask);
- var context = renderSession.context;
- var scrollRect = shape.get_scrollRect();
- context.globalAlpha = shape.__worldAlpha;
- var transform = shape.__worldTransform;
- if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
- if(scrollRect == null) context.drawImage(graphics.__canvas,graphics.__bounds.x,graphics.__bounds.y); else context.drawImage(graphics.__canvas,scrollRect.x - graphics.__bounds.x,scrollRect.y - graphics.__bounds.y,scrollRect.width,scrollRect.height,graphics.__bounds.x + scrollRect.x,graphics.__bounds.y + scrollRect.y,scrollRect.width,scrollRect.height);
- if(shape.__mask != null) renderSession.maskManager.popMask();
- }
- }
- };
- openfl._internal.renderer.canvas.CanvasTextField = function() { };
- $hxClasses["openfl._internal.renderer.canvas.CanvasTextField"] = openfl._internal.renderer.canvas.CanvasTextField;
- openfl._internal.renderer.canvas.CanvasTextField.__name__ = ["openfl","_internal","renderer","canvas","CanvasTextField"];
- openfl._internal.renderer.canvas.CanvasTextField.context = null;
- openfl._internal.renderer.canvas.CanvasTextField.render = function(textField,renderSession) {
- if(!textField.__renderable || textField.__worldAlpha <= 0) return;
- openfl._internal.renderer.canvas.CanvasTextField.update(textField);
- if(textField.__canvas != null) {
- var context = renderSession.context;
- context.globalAlpha = textField.__worldAlpha;
- var transform = textField.__worldTransform;
- var scrollRect = textField.get_scrollRect();
- if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
- if(scrollRect == null) context.drawImage(textField.__canvas,0,0); else context.drawImage(textField.__canvas,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
- }
- };
- openfl._internal.renderer.canvas.CanvasTextField.renderText = function(textField,text,format,offsetX) {
- openfl._internal.renderer.canvas.CanvasTextField.context.font = textField.__getFont(format);
- openfl._internal.renderer.canvas.CanvasTextField.context.textBaseline = "top";
- openfl._internal.renderer.canvas.CanvasTextField.context.fillStyle = "#" + StringTools.hex(format.color,6);
- var lines = text.split("\n");
- var yOffset = 0;
- var _g = 0;
- while(_g < lines.length) {
- var line = lines[_g];
- ++_g;
- var _g1 = format.align;
- switch(_g1[1]) {
- case 3:
- openfl._internal.renderer.canvas.CanvasTextField.context.textAlign = "center";
- openfl._internal.renderer.canvas.CanvasTextField.context.fillText(line,textField.__width / 2,2 + yOffset,textField.__width - 4);
- break;
- case 1:
- openfl._internal.renderer.canvas.CanvasTextField.context.textAlign = "end";
- openfl._internal.renderer.canvas.CanvasTextField.context.fillText(line,textField.__width - 2,2 + yOffset,textField.__width - 4);
- break;
- default:
- openfl._internal.renderer.canvas.CanvasTextField.context.textAlign = "start";
- openfl._internal.renderer.canvas.CanvasTextField.context.fillText(line,2 + offsetX,2 + yOffset,textField.__width - 4);
- }
- yOffset += textField.get_textHeight();
- }
- };
- openfl._internal.renderer.canvas.CanvasTextField.update = function(textField) {
- if(textField.__dirty) {
- if((textField.__text == null || textField.__text == "") && !textField.background && !textField.border || (textField.get_width() <= 0 || textField.get_height() <= 0) && textField.autoSize != openfl.text.TextFieldAutoSize.LEFT) {
- textField.__canvas = null;
- textField.__context = null;
- textField.__dirty = false;
- } else {
- if(textField.__canvas == null) {
- textField.__canvas = window.document.createElement("canvas");
- textField.__context = textField.__canvas.getContext("2d");
- }
- openfl._internal.renderer.canvas.CanvasTextField.context = textField.__context;
- if(textField.__text != null && textField.__text != "") {
- var text = textField.get_text();
- if(textField.displayAsPassword) {
- var length = text.length;
- var mask = "";
- var _g = 0;
- while(_g < length) {
- var i = _g++;
- mask += "*";
- }
- text = mask;
- }
- var measurements = textField.__measureText();
- var textWidth = 0.0;
- var _g1 = 0;
- while(_g1 < measurements.length) {
- var measurement = measurements[_g1];
- ++_g1;
- textWidth += measurement;
- }
- if(textField.autoSize == openfl.text.TextFieldAutoSize.LEFT) textField.__width = textWidth + 4;
- textField.__canvas.width = Math.ceil(textField.__width);
- textField.__canvas.height = Math.ceil(textField.__height);
- if(textField.border || textField.background) {
- textField.__context.rect(0.5,0.5,textField.__width - 1,textField.__height - 1);
- if(textField.background) {
- openfl._internal.renderer.canvas.CanvasTextField.context.fillStyle = "#" + StringTools.hex(textField.backgroundColor,6);
- openfl._internal.renderer.canvas.CanvasTextField.context.fill();
- }
- if(textField.border) {
- openfl._internal.renderer.canvas.CanvasTextField.context.lineWidth = 1;
- openfl._internal.renderer.canvas.CanvasTextField.context.strokeStyle = "#" + StringTools.hex(textField.borderColor,6);
- openfl._internal.renderer.canvas.CanvasTextField.context.stroke();
- }
- }
- if(textField.__hasFocus && textField.__selectionStart == textField.__cursorPosition && textField.__showCursor) {
- var cursorOffset = textField.__getTextWidth(text.substring(0,textField.__cursorPosition));
- openfl._internal.renderer.canvas.CanvasTextField.context.fillStyle = "#" + StringTools.hex(textField.__textFormat.color,6);
- openfl._internal.renderer.canvas.CanvasTextField.context.fillRect(cursorOffset,5,1,textField.__textFormat.size - 5);
- } else if(textField.__hasFocus && Math.abs(textField.__selectionStart - textField.__cursorPosition) > 0 && !textField.__isKeyDown) {
- var lowPos = Std["int"](Math.min(textField.__selectionStart,textField.__cursorPosition));
- var highPos = Std["int"](Math.max(textField.__selectionStart,textField.__cursorPosition));
- var xPos = textField.__getTextWidth(text.substring(0,lowPos));
- var widthPos = textField.__getTextWidth(text.substring(lowPos,highPos));
- openfl._internal.renderer.canvas.CanvasTextField.context.fillStyle = "#" + StringTools.hex(textField.__textFormat.color,6);
- openfl._internal.renderer.canvas.CanvasTextField.context.fillRect(xPos,5,widthPos,textField.__textFormat.size - 5);
- }
- if(textField.__ranges == null) openfl._internal.renderer.canvas.CanvasTextField.renderText(textField,text,textField.__textFormat,0); else {
- var currentIndex = 0;
- var range;
- var offsetX = 0.0;
- var _g11 = 0;
- var _g2 = textField.__ranges.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- range = textField.__ranges[i1];
- openfl._internal.renderer.canvas.CanvasTextField.renderText(textField,text.substring(range.start,range.end),range.format,offsetX);
- offsetX += measurements[i1];
- }
- }
- } else {
- if(textField.autoSize == openfl.text.TextFieldAutoSize.LEFT) textField.__width = 4;
- textField.__canvas.width = Math.ceil(textField.__width);
- textField.__canvas.height = Math.ceil(textField.__height);
- if(textField.border || textField.background) {
- if(textField.border) openfl._internal.renderer.canvas.CanvasTextField.context.rect(0.5,0.5,textField.__width - 1,textField.__height - 1); else textField.__context.rect(0,0,textField.__width,textField.__height);
- if(textField.background) {
- openfl._internal.renderer.canvas.CanvasTextField.context.fillStyle = "#" + StringTools.hex(textField.backgroundColor,6);
- openfl._internal.renderer.canvas.CanvasTextField.context.fill();
- }
- if(textField.border) {
- openfl._internal.renderer.canvas.CanvasTextField.context.lineWidth = 1;
- openfl._internal.renderer.canvas.CanvasTextField.context.lineCap = "square";
- openfl._internal.renderer.canvas.CanvasTextField.context.strokeStyle = "#" + StringTools.hex(textField.borderColor,6);
- openfl._internal.renderer.canvas.CanvasTextField.context.stroke();
- }
- }
- }
- textField.__dirty = false;
- return true;
- }
- }
- return false;
- };
- openfl._internal.renderer.canvas.MaskManager = function(renderSession) {
- this.renderSession = renderSession;
- };
- $hxClasses["openfl._internal.renderer.canvas.MaskManager"] = openfl._internal.renderer.canvas.MaskManager;
- openfl._internal.renderer.canvas.MaskManager.__name__ = ["openfl","_internal","renderer","canvas","MaskManager"];
- openfl._internal.renderer.canvas.MaskManager.prototype = {
- pushMask: function(mask) {
- var context = this.renderSession.context;
- context.save();
- var transform = mask.__getTransform();
- context.setTransform(transform.a,transform.c,transform.b,transform.d,transform.tx,transform.ty);
- context.beginPath();
- mask.__renderMask(this.renderSession);
- context.clip();
- }
- ,pushRect: function(rect,transform) {
- var context = this.renderSession.context;
- context.save();
- context.setTransform(transform.a,transform.c,transform.b,transform.d,transform.tx,transform.ty);
- context.beginPath();
- context.rect(rect.x,rect.y,rect.width,rect.height);
- context.clip();
- }
- ,popMask: function() {
- this.renderSession.context.restore();
- }
- ,__class__: openfl._internal.renderer.canvas.MaskManager
- };
- openfl._internal.renderer.dom = {};
- openfl._internal.renderer.dom.DOMBitmap = function() { };
- $hxClasses["openfl._internal.renderer.dom.DOMBitmap"] = openfl._internal.renderer.dom.DOMBitmap;
- openfl._internal.renderer.dom.DOMBitmap.__name__ = ["openfl","_internal","renderer","dom","DOMBitmap"];
- openfl._internal.renderer.dom.DOMBitmap.render = function(bitmap,renderSession) {
- if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.bitmapData != null && bitmap.bitmapData.__isValid) {
- if(bitmap.bitmapData.__image.buffer.__srcImage != null) openfl._internal.renderer.dom.DOMBitmap.renderImage(bitmap,renderSession); else openfl._internal.renderer.dom.DOMBitmap.renderCanvas(bitmap,renderSession);
- } else {
- if(bitmap.__image != null) {
- renderSession.element.removeChild(bitmap.__image);
- bitmap.__image = null;
- bitmap.__style = null;
- }
- if(bitmap.__canvas != null) {
- renderSession.element.removeChild(bitmap.__canvas);
- bitmap.__canvas = null;
- bitmap.__style = null;
- }
- }
- };
- openfl._internal.renderer.dom.DOMBitmap.renderCanvas = function(bitmap,renderSession) {
- if(bitmap.__image != null) {
- renderSession.element.removeChild(bitmap.__image);
- bitmap.__image = null;
- }
- if(bitmap.__canvas == null) {
- bitmap.__canvas = window.document.createElement("canvas");
- bitmap.__context = bitmap.__canvas.getContext("2d");
- if(!bitmap.smoothing) {
- bitmap.__context.mozImageSmoothingEnabled = false;
- bitmap.__context.webkitImageSmoothingEnabled = false;
- bitmap.__context.imageSmoothingEnabled = false;
- }
- openfl._internal.renderer.dom.DOMRenderer.initializeElement(bitmap,bitmap.__canvas,renderSession);
- }
- bitmap.bitmapData.__sync();
- bitmap.__canvas.width = bitmap.bitmapData.width;
- bitmap.__canvas.height = bitmap.bitmapData.height;
- bitmap.__context.globalAlpha = bitmap.__worldAlpha;
- bitmap.__context.drawImage(bitmap.bitmapData.__image.buffer.__srcCanvas,0,0);
- openfl._internal.renderer.dom.DOMRenderer.applyStyle(bitmap,renderSession,true,false,true);
- };
- openfl._internal.renderer.dom.DOMBitmap.renderImage = function(bitmap,renderSession) {
- if(bitmap.__canvas != null) {
- renderSession.element.removeChild(bitmap.__canvas);
- bitmap.__canvas = null;
- }
- if(bitmap.__image == null) {
- bitmap.__image = window.document.createElement("img");
- bitmap.__image.src = bitmap.bitmapData.__image.buffer.__srcImage.src;
- openfl._internal.renderer.dom.DOMRenderer.initializeElement(bitmap,bitmap.__image,renderSession);
- }
- openfl._internal.renderer.dom.DOMRenderer.applyStyle(bitmap,renderSession,true,true,true);
- };
- openfl._internal.renderer.dom.DOMRenderer = function(width,height,element) {
- openfl._internal.renderer.AbstractRenderer.call(this,width,height);
- this.element = element;
- this.renderSession = new openfl._internal.renderer.RenderSession();
- this.renderSession.element = element;
- this.renderSession.roundPixels = true;
- var prefix = (function () {
- var styles = window.getComputedStyle(document.documentElement, ''),
- pre = (Array.prototype.slice
- .call(styles)
- .join('')
- .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
- )[1],
- dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1];
- return {
- dom: dom,
- lowercase: pre,
- css: '-' + pre + '-',
- js: pre[0].toUpperCase() + pre.substr(1)
- };
- })();
- this.renderSession.vendorPrefix = prefix.lowercase;
- if(prefix.lowercase == "webkit") this.renderSession.transformProperty = "-webkit-transform"; else this.renderSession.transformProperty = "transform";
- if(prefix.lowercase == "webkit") this.renderSession.transformOriginProperty = "-webkit-transform-origin"; else this.renderSession.transformOriginProperty = "transform-origin";
- this.renderSession.renderer = this;
- };
- $hxClasses["openfl._internal.renderer.dom.DOMRenderer"] = openfl._internal.renderer.dom.DOMRenderer;
- openfl._internal.renderer.dom.DOMRenderer.__name__ = ["openfl","_internal","renderer","dom","DOMRenderer"];
- openfl._internal.renderer.dom.DOMRenderer.applyStyle = function(displayObject,renderSession,setTransform,setAlpha,setClip) {
- var style = displayObject.__style;
- if(setTransform && displayObject.__worldTransformChanged) style.setProperty(renderSession.transformProperty,displayObject.__worldTransform.to3DString(renderSession.roundPixels),null);
- if(displayObject.__worldZ != ++renderSession.z) {
- displayObject.__worldZ = renderSession.z;
- style.setProperty("z-index",displayObject.__worldZ == null?"null":"" + displayObject.__worldZ,null);
- }
- if(setAlpha && displayObject.__worldAlphaChanged) {
- if(displayObject.__worldAlpha < 1) style.setProperty("opacity",displayObject.__worldAlpha == null?"null":"" + displayObject.__worldAlpha,null); else style.removeProperty("opacity");
- }
- if(setClip && displayObject.__worldClipChanged) {
- if(displayObject.__worldClip == null) style.removeProperty("clip"); else {
- var clip = displayObject.__worldClip.transform(displayObject.__worldTransform.clone().invert());
- style.setProperty("clip","rect(" + clip.y + "px, " + clip.get_right() + "px, " + clip.get_bottom() + "px, " + clip.x + "px)",null);
- }
- }
- };
- openfl._internal.renderer.dom.DOMRenderer.initializeElement = function(displayObject,element,renderSession) {
- var style = displayObject.__style = element.style;
- style.setProperty("position","absolute",null);
- style.setProperty("top","0",null);
- style.setProperty("left","0",null);
- style.setProperty(renderSession.transformOriginProperty,"0 0 0",null);
- renderSession.element.appendChild(element);
- displayObject.__worldAlphaChanged = true;
- displayObject.__worldClipChanged = true;
- displayObject.__worldTransformChanged = true;
- displayObject.__worldVisibleChanged = true;
- displayObject.__worldZ = -1;
- };
- openfl._internal.renderer.dom.DOMRenderer.__super__ = openfl._internal.renderer.AbstractRenderer;
- openfl._internal.renderer.dom.DOMRenderer.prototype = $extend(openfl._internal.renderer.AbstractRenderer.prototype,{
- render: function(stage) {
- this.element.style.background = stage.__colorString;
- this.renderSession.z = 1;
- stage.__renderDOM(this.renderSession);
- }
- ,__class__: openfl._internal.renderer.dom.DOMRenderer
- });
- openfl._internal.renderer.dom.DOMShape = function() { };
- $hxClasses["openfl._internal.renderer.dom.DOMShape"] = openfl._internal.renderer.dom.DOMShape;
- openfl._internal.renderer.dom.DOMShape.__name__ = ["openfl","_internal","renderer","dom","DOMShape"];
- openfl._internal.renderer.dom.DOMShape.render = function(shape,renderSession) {
- var graphics = shape.__graphics;
- if(shape.stage != null && shape.__worldVisible && shape.__renderable && graphics != null) {
- if(graphics.__dirty || shape.__worldAlphaChanged || shape.__canvas == null && graphics.__canvas != null) {
- openfl._internal.renderer.canvas.CanvasGraphics.render(graphics,renderSession);
- if(graphics.__canvas != null) {
- if(shape.__canvas == null) {
- shape.__canvas = window.document.createElement("canvas");
- shape.__context = shape.__canvas.getContext("2d");
- openfl._internal.renderer.dom.DOMRenderer.initializeElement(shape,shape.__canvas,renderSession);
- }
- shape.__canvas.width = graphics.__canvas.width;
- shape.__canvas.height = graphics.__canvas.height;
- shape.__context.globalAlpha = shape.__worldAlpha;
- shape.__context.drawImage(graphics.__canvas,0,0);
- } else if(shape.__canvas != null) {
- renderSession.element.removeChild(shape.__canvas);
- shape.__canvas = null;
- shape.__style = null;
- }
- }
- if(shape.__canvas != null) {
- if(shape.__worldTransformChanged || graphics.__transformDirty) {
- graphics.__transformDirty = false;
- var transform = new openfl.geom.Matrix();
- transform.translate(graphics.__bounds.x,graphics.__bounds.y);
- transform = transform.mult(shape.__worldTransform);
- shape.__style.setProperty(renderSession.transformProperty,renderSession.roundPixels?"matrix3d(" + transform.a + ", " + transform.b + ", " + "0, 0, " + transform.c + ", " + transform.d + ", " + "0, 0, 0, 0, 1, 0, " + (transform.tx | 0) + ", " + (transform.ty | 0) + ", 0, 1)":"matrix3d(" + transform.a + ", " + transform.b + ", " + "0, 0, " + transform.c + ", " + transform.d + ", " + "0, 0, 0, 0, 1, 0, " + transform.tx + ", " + transform.ty + ", 0, 1)",null);
- }
- openfl._internal.renderer.dom.DOMRenderer.applyStyle(shape,renderSession,false,false,true);
- }
- } else if(shape.__canvas != null) {
- renderSession.element.removeChild(shape.__canvas);
- shape.__canvas = null;
- shape.__style = null;
- }
- };
- openfl._internal.renderer.dom.DOMTextField = function() { };
- $hxClasses["openfl._internal.renderer.dom.DOMTextField"] = openfl._internal.renderer.dom.DOMTextField;
- openfl._internal.renderer.dom.DOMTextField.__name__ = ["openfl","_internal","renderer","dom","DOMTextField"];
- openfl._internal.renderer.dom.DOMTextField.render = function(textField,renderSession) {
- if(textField.stage != null && textField.__worldVisible && textField.__renderable) {
- if(textField.__dirty || textField.__div == null) {
- if(textField.__text != "" || textField.background || textField.border) {
- if(textField.__div == null) {
- textField.__div = window.document.createElement("div");
- openfl._internal.renderer.dom.DOMRenderer.initializeElement(textField,textField.__div,renderSession);
- textField.__style.setProperty("cursor","inherit",null);
- }
- var style = textField.__style;
- textField.__div.innerHTML = textField.__text;
- if(textField.background) style.setProperty("background-color","#" + StringTools.hex(textField.backgroundColor,6),null); else style.removeProperty("background-color");
- if(textField.border) style.setProperty("border","solid 1px #" + StringTools.hex(textField.borderColor,6),null); else style.removeProperty("border");
- style.setProperty("font",textField.__getFont(textField.__textFormat),null);
- style.setProperty("color","#" + StringTools.hex(textField.__textFormat.color,6),null);
- if(textField.autoSize != openfl.text.TextFieldAutoSize.NONE) style.setProperty("width","auto",null); else style.setProperty("width",textField.__width + "px",null);
- style.setProperty("height",textField.__height + "px",null);
- var _g = textField.__textFormat.align;
- switch(_g[1]) {
- case 3:
- style.setProperty("text-align","center",null);
- break;
- case 1:
- style.setProperty("text-align","right",null);
- break;
- default:
- style.setProperty("text-align","left",null);
- }
- textField.__dirty = false;
- } else if(textField.__div != null) {
- renderSession.element.removeChild(textField.__div);
- textField.__div = null;
- }
- }
- if(textField.__div != null) openfl._internal.renderer.dom.DOMRenderer.applyStyle(textField,renderSession,true,true,false);
- } else if(textField.__div != null) {
- renderSession.element.removeChild(textField.__div);
- textField.__div = null;
- textField.__style = null;
- }
- };
- openfl._internal.renderer.opengl = {};
- openfl._internal.renderer.opengl.GLBitmap = function() { };
- $hxClasses["openfl._internal.renderer.opengl.GLBitmap"] = openfl._internal.renderer.opengl.GLBitmap;
- openfl._internal.renderer.opengl.GLBitmap.__name__ = ["openfl","_internal","renderer","opengl","GLBitmap"];
- openfl._internal.renderer.opengl.GLBitmap.render = function(bitmap,renderSession) {
- if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) return;
- var i;
- var j;
- renderSession.spriteBatch.render(bitmap);
- };
- openfl._internal.renderer.opengl.GLRenderer = function(width,height,gl,transparent,antialias,preserveDrawingBuffer) {
- if(preserveDrawingBuffer == null) preserveDrawingBuffer = false;
- if(antialias == null) antialias = false;
- if(transparent == null) transparent = false;
- if(height == null) height = 600;
- if(width == null) width = 800;
- openfl._internal.renderer.AbstractRenderer.call(this,width,height);
- this.transparent = transparent;
- this.preserveDrawingBuffer = preserveDrawingBuffer;
- this.width = width;
- this.height = height;
- this.options = { alpha : transparent, antialias : antialias, premultipliedAlpha : transparent, stencil : true, preserveDrawingBuffer : preserveDrawingBuffer};
- this._glContextId = openfl._internal.renderer.opengl.GLRenderer.glContextId++;
- this.gl = gl;
- openfl._internal.renderer.opengl.GLRenderer.glContexts[this._glContextId] = gl;
- if(openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL == null) {
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL = new haxe.ds.EnumValueMap();
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.NORMAL,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.ADD,[gl.SRC_ALPHA,gl.DST_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.MULTIPLY,[gl.DST_COLOR,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.SCREEN,[gl.SRC_ALPHA,gl.ONE]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.ALPHA,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.DARKEN,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.DIFFERENCE,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.ERASE,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.HARDLIGHT,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.INVERT,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.LAYER,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.LIGHTEN,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.OVERLAY,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.set(openfl.display.BlendMode.SUBTRACT,[gl.ONE,gl.ONE_MINUS_SRC_ALPHA]);
- }
- this.projection = new openfl.geom.Point();
- this.projection.x = this.width / 2;
- this.projection.y = -this.height / 2;
- this.offset = new openfl.geom.Point(0,0);
- this.resize(this.width,this.height);
- this.contextLost = false;
- this.shaderManager = new openfl._internal.renderer.opengl.utils.ShaderManager(gl);
- this.spriteBatch = new openfl._internal.renderer.opengl.utils.SpriteBatch(gl);
- this.maskManager = new openfl._internal.renderer.opengl.utils.MaskManager(gl);
- this.filterManager = new openfl._internal.renderer.opengl.utils.FilterManager(gl,this.transparent);
- this.stencilManager = new openfl._internal.renderer.opengl.utils.StencilManager(gl);
- this.blendModeManager = new openfl._internal.renderer.opengl.utils.BlendModeManager(gl);
- this.renderSession = new openfl._internal.renderer.RenderSession();
- this.renderSession.gl = this.gl;
- this.renderSession.drawCount = 0;
- this.renderSession.shaderManager = this.shaderManager;
- this.renderSession.maskManager = this.maskManager;
- this.renderSession.filterManager = this.filterManager;
- this.renderSession.blendModeManager = this.blendModeManager;
- this.renderSession.spriteBatch = this.spriteBatch;
- this.renderSession.stencilManager = this.stencilManager;
- this.renderSession.renderer = this;
- gl.useProgram(this.shaderManager.defaultShader.program);
- gl.disable(gl.DEPTH_TEST);
- gl.disable(gl.CULL_FACE);
- gl.enable(gl.BLEND);
- gl.colorMask(true,true,true,this.transparent);
- };
- $hxClasses["openfl._internal.renderer.opengl.GLRenderer"] = openfl._internal.renderer.opengl.GLRenderer;
- openfl._internal.renderer.opengl.GLRenderer.__name__ = ["openfl","_internal","renderer","opengl","GLRenderer"];
- openfl._internal.renderer.opengl.GLRenderer.__super__ = openfl._internal.renderer.AbstractRenderer;
- openfl._internal.renderer.opengl.GLRenderer.prototype = $extend(openfl._internal.renderer.AbstractRenderer.prototype,{
- destroy: function() {
- openfl._internal.renderer.opengl.GLRenderer.glContexts[this._glContextId] = null;
- this.projection = null;
- this.offset = null;
- this.shaderManager.destroy();
- this.spriteBatch.destroy();
- this.maskManager.destroy();
- this.filterManager.destroy();
- this.shaderManager = null;
- this.spriteBatch = null;
- this.maskManager = null;
- this.filterManager = null;
- this.gl = null;
- this.renderSession = null;
- }
- ,handleContextLost: function(event) {
- event.preventDefault();
- this.contextLost = true;
- }
- ,handleContextRestored: function() {
- var gl = this.gl;
- openfl._internal.renderer.opengl.GLRenderer.glContextId++;
- this.shaderManager.setContext(gl);
- this.spriteBatch.setContext(gl);
- this.maskManager.setContext(gl);
- this.filterManager.setContext(gl);
- this.renderSession.gl = gl;
- gl.disable(gl.DEPTH_TEST);
- gl.disable(gl.CULL_FACE);
- gl.enable(gl.BLEND);
- gl.colorMask(true,true,true,this.transparent);
- gl.viewport(0,0,this.width,this.height);
- this.contextLost = false;
- }
- ,render: function(stage) {
- if(this.contextLost) return;
- var gl = this.gl;
- gl.viewport(0,0,this.width,this.height);
- gl.bindFramebuffer(gl.FRAMEBUFFER,null);
- if(this.transparent) gl.clearColor(0,0,0,0); else gl.clearColor(stage.__colorSplit[0] | 0,stage.__colorSplit[1] | 0,stage.__colorSplit[2] | 0,1);
- gl.clear(gl.COLOR_BUFFER_BIT);
- this.renderDisplayObject(stage,this.projection);
- }
- ,renderDisplayObject: function(displayObject,projection,buffer) {
- this.renderSession.blendModeManager.setBlendMode(openfl.display.BlendMode.NORMAL);
- this.renderSession.drawCount = 0;
- this.renderSession.currentBlendMode = null;
- this.renderSession.projection = projection;
- this.renderSession.offset = this.offset;
- this.spriteBatch.begin(this.renderSession);
- this.filterManager.begin(this.renderSession,buffer);
- displayObject.__renderGL(this.renderSession);
- this.spriteBatch.end();
- }
- ,resize: function(width,height) {
- openfl._internal.renderer.AbstractRenderer.prototype.resize.call(this,width,height);
- this.gl.viewport(0,0,width,height);
- this.projection.x = width / 2;
- this.projection.y = -height / 2;
- }
- ,__class__: openfl._internal.renderer.opengl.GLRenderer
- });
- openfl._internal.renderer.opengl.GLTextField = function() { };
- $hxClasses["openfl._internal.renderer.opengl.GLTextField"] = openfl._internal.renderer.opengl.GLTextField;
- openfl._internal.renderer.opengl.GLTextField.__name__ = ["openfl","_internal","renderer","opengl","GLTextField"];
- openfl._internal.renderer.opengl.GLTextField.render = function(textField,renderSession) {
- if(!textField.__renderable || textField.__worldAlpha <= 0) return;
- var gl = renderSession.gl;
- var changed = openfl._internal.renderer.canvas.CanvasTextField.update(textField);
- if(textField.__texture == null) {
- textField.__texture = gl.createTexture();
- gl.bindTexture(gl.TEXTURE_2D,textField.__texture);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);
- changed = true;
- }
- if(changed) {
- gl.bindTexture(gl.TEXTURE_2D,textField.__texture);
- gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,textField.__canvas);
- gl.bindTexture(gl.TEXTURE_2D,null);
- }
- };
- openfl._internal.renderer.opengl.shaders = {};
- openfl._internal.renderer.opengl.shaders.AbstractShader = function(gl) {
- this._UID = openfl._internal.renderer.opengl.shaders.AbstractShader.__UID++;
- this.gl = gl;
- this.program = null;
- this.attributes = [];
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.AbstractShader"] = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.AbstractShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","AbstractShader"];
- openfl._internal.renderer.opengl.shaders.AbstractShader.compileProgram = function(gl,vertexSrc,fragmentSrc) {
- var fragmentShader = openfl._internal.renderer.opengl.shaders.AbstractShader.CompileFragmentShader(gl,fragmentSrc);
- var vertexShader = openfl._internal.renderer.opengl.shaders.AbstractShader.CompileVertexShader(gl,vertexSrc);
- var shaderProgram = gl.createProgram();
- if(fragmentShader != null && vertexShader != null) {
- gl.attachShader(shaderProgram,vertexShader);
- gl.attachShader(shaderProgram,fragmentShader);
- gl.linkProgram(shaderProgram);
- if(gl.getProgramParameter(shaderProgram,gl.LINK_STATUS) == 0) null;
- }
- return shaderProgram;
- };
- openfl._internal.renderer.opengl.shaders.AbstractShader.CompileVertexShader = function(gl,shaderSrc) {
- return openfl._internal.renderer.opengl.shaders.AbstractShader._CompileShader(gl,shaderSrc,gl.VERTEX_SHADER);
- };
- openfl._internal.renderer.opengl.shaders.AbstractShader.CompileFragmentShader = function(gl,shaderSrc) {
- return openfl._internal.renderer.opengl.shaders.AbstractShader._CompileShader(gl,shaderSrc,gl.FRAGMENT_SHADER);
- };
- openfl._internal.renderer.opengl.shaders.AbstractShader._CompileShader = function(gl,shaderSrc,shaderType) {
- var src = shaderSrc.join("\n");
- var shader = gl.createShader(shaderType);
- gl.shaderSource(shader,src);
- gl.compileShader(shader);
- if(gl.getShaderParameter(shader,gl.COMPILE_STATUS) == 0) return null;
- return shader;
- };
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype = {
- destroy: function() {
- if(this.program != null) this.gl.deleteProgram(this.program);
- this.uniforms = null;
- this.gl = null;
- this.attributes = null;
- }
- ,init: function() {
- var gl = this.gl;
- var program = openfl._internal.renderer.opengl.shaders.AbstractShader.compileProgram(gl,this.vertexSrc,this.fragmentSrc);
- gl.useProgram(program);
- this.program = program;
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.AbstractShader
- };
- openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.fragmentSrc = ["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"];
- this.vertexSrc = ["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader"] = openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader;
- openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","ComplexPrimitiveShader"];
- openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- var gl = this.gl;
- this.projectionVector = gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = gl.getUniformLocation(this.program,"offsetVector");
- this.tintColor = gl.getUniformLocation(this.program,"tint");
- this.color = gl.getUniformLocation(this.program,"color");
- this.aVertexPosition = gl.getAttribLocation(this.program,"aVertexPosition");
- this.attributes = [this.aVertexPosition];
- this.translationMatrix = gl.getUniformLocation(this.program,"translationMatrix");
- this.alpha = gl.getUniformLocation(this.program,"alpha");
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader
- });
- openfl._internal.renderer.opengl.shaders.DefaultShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.fragmentSrc = ["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"];
- this.textureCount = 0;
- this.attributes = [];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.DefaultShader"] = openfl._internal.renderer.opengl.shaders.DefaultShader;
- openfl._internal.renderer.opengl.shaders.DefaultShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","DefaultShader"];
- openfl._internal.renderer.opengl.shaders.DefaultShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.DefaultShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- if(this.vertexSrc == null) this.vertexSrc = openfl._internal.renderer.opengl.shaders.DefaultShader.defaultVertexSrc;
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- var gl = this.gl;
- this.uSampler = gl.getUniformLocation(this.program,"uSampler");
- this.projectionVector = gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = gl.getUniformLocation(this.program,"offsetVector");
- this.dimensions = gl.getUniformLocation(this.program,"dimensions");
- this.aVertexPosition = gl.getAttribLocation(this.program,"aVertexPosition");
- this.aTextureCoord = gl.getAttribLocation(this.program,"aTextureCoord");
- this.colorAttribute = gl.getAttribLocation(this.program,"aColor");
- if(this.colorAttribute == -1) this.colorAttribute = 2;
- this.attributes = [this.aVertexPosition,this.aTextureCoord,this.colorAttribute];
- if(this.uniforms != null) {
- var $it0 = this.uniforms.keys();
- while( $it0.hasNext() ) {
- var key = $it0.next();
- this.uniforms.get(key).uniformLocation = gl.getUniformLocation(this.program,key);
- }
- }
- this.initUniforms();
- }
- ,initSampler2D: function(uniform) {
- if(uniform.value == null || uniform.value.baseTexture == null || uniform.value.baseTexture.hasLoaded == null) return;
- var gl = this.gl;
- gl.activeTexture(Reflect.field(gl,"TEXTURE" + this.textureCount));
- gl.bindTexture(gl.TEXTURE_2D,uniform.value.baseTexture._glTextures[openfl._internal.renderer.opengl.GLRenderer.glContextId]);
- if(uniform.textureData != null) {
- var data = uniform.textureData;
- var magFilter;
- if(data.magFilter != 0) magFilter = data.magFilter; else magFilter = gl.LINEAR;
- var minFilter;
- if(data.minFilter != 0) minFilter = data.minFilter; else minFilter = gl.LINEAR;
- var wrapS;
- if(data.wrapS != 0) wrapS = data.wrapS; else wrapS = gl.CLAMP_TO_EDGE;
- var wrapT;
- if(data.wrapT != 0) wrapT = data.wrapT; else wrapT = gl.CLAMP_TO_EDGE;
- var format;
- if(data.luminance != 0) format = gl.LUMINANCE; else format = gl.RGBA;
- if(data.repeat) {
- wrapS = gl.REPEAT;
- wrapT = gl.REPEAT;
- }
- gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL,data.flip);
- if(data.width != 0) {
- var width;
- if(data.width != 0) width = data.width; else width = 512;
- var height;
- if(data.height != 0) height = data.height; else height = 2;
- var border;
- if(data.border != 0) border = data.border; else border = 0;
- gl.texImage2D(gl.TEXTURE_2D,0,format,width,height,border,format,gl.UNSIGNED_BYTE,null);
- } else gl.texImage2D(gl.TEXTURE_2D,0,format,gl.RGBA,gl.UNSIGNED_BYTE,uniform.value.baseTexture.source);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,magFilter);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,minFilter);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,wrapS);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,wrapT);
- }
- gl.uniform1i(uniform.uniformLocation,this.textureCount);
- uniform._init = true;
- this.textureCount++;
- }
- ,initUniforms: function() {
- this.textureCount = 1;
- var gl = this.gl;
- var uniform;
- if(this.uniforms == null) return;
- var $it0 = this.uniforms.keys();
- while( $it0.hasNext() ) {
- var key = $it0.next();
- uniform = this.uniforms.get(key);
- var type = uniform.type;
- if(type == "sampler2D") {
- uniform._init = false;
- if(uniform.value != null) this.initSampler2D(uniform);
- } else if(type == "mat2" || type == "mat3" || type == "mat4") {
- uniform.glMatrix = true;
- uniform.glValueLength = 1;
- if(type == "mat2") uniform.glFunc = $bind(gl,gl.uniformMatrix2fv); else if(type == "mat3") uniform.glFunc = $bind(gl,gl.uniformMatrix3fv); else if(type == "mat4") uniform.glFunc = $bind(gl,gl.uniformMatrix4fv);
- } else {
- uniform.glFunc = Reflect.field(gl,"uniform" + type);
- if(type == "2f" || type == "2i") uniform.glValueLength = 2; else if(type == "3f" || type == "3i") uniform.glValueLength = 3; else if(type == "4f" || type == "4i") uniform.glValueLength = 4; else uniform.glValueLength = 1;
- }
- }
- }
- ,syncUniforms: function() {
- this.textureCount = 1;
- var uniform;
- var gl = this.gl;
- if(this.uniforms == null) return;
- var $it0 = this.uniforms.keys();
- while( $it0.hasNext() ) {
- var key = $it0.next();
- uniform = this.uniforms.get(key);
- if(uniform.glValueLength == 1) {
- if(uniform.glMatrix == true) uniform.glFunc.call(gl,uniform.uniformLocation,uniform.transpose,uniform.value); else uniform.glFunc.call(gl,uniform.uniformLocation,uniform.value);
- } else if(uniform.glValueLength == 2) uniform.glFunc.call(gl,uniform.uniformLocation,uniform.value.x,uniform.value.y); else if(uniform.glValueLength == 3) uniform.glFunc.call(gl,uniform.uniformLocation,uniform.value.x,uniform.value.y,uniform.value.z); else if(uniform.glValueLength == 4) uniform.glFunc.call(gl,uniform.uniformLocation,uniform.value.x,uniform.value.y,uniform.value.z,uniform.value.w); else if(uniform.type == "sampler2D") {
- if(uniform._init) {
- gl.activeTexture(Reflect.field(gl,"TEXTURE" + this.textureCount));
- var tex = uniform.value.getTexture();
- gl.bindTexture(gl.TEXTURE_2D,tex);
- gl.uniform1i(uniform.uniformLocation,this.textureCount);
- this.textureCount++;
- } else this.initSampler2D(uniform);
- }
- }
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.DefaultShader
- });
- openfl._internal.renderer.opengl.shaders.DrawTrianglesShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.vertexSrc = ["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vPos;","varying vec4 vColor;","void main(void) {"," vec3 v = vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vPos = aTextureCoord;"," vColor = aColor;","}"];
- this.fragmentSrc = ["precision mediump float;","uniform sampler2D sampler;","uniform vec3 color;","uniform bool useTexture;","uniform float alpha;","varying vec2 vPos;","varying vec4 vColor;","vec4 tmp;","void main(void) {"," if(useTexture) {"," tmp = texture2D(sampler, vPos);"," } else {"," tmp = vec4(color, 1.);"," }"," float a = tmp.a * vColor.a * alpha;"," gl_FragColor = vec4(vec3((tmp.rgb * vColor.rgb) * a), a);","}"];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.DrawTrianglesShader"] = openfl._internal.renderer.opengl.shaders.DrawTrianglesShader;
- openfl._internal.renderer.opengl.shaders.DrawTrianglesShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","DrawTrianglesShader"];
- openfl._internal.renderer.opengl.shaders.DrawTrianglesShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.DrawTrianglesShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- this.translationMatrix = this.gl.getUniformLocation(this.program,"translationMatrix");
- this.projectionVector = this.gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = this.gl.getUniformLocation(this.program,"offsetVector");
- this.sampler = this.gl.getUniformLocation(this.program,"sampler");
- this.alpha = this.gl.getUniformLocation(this.program,"alpha");
- this.color = this.gl.getUniformLocation(this.program,"color");
- this.useTexture = this.gl.getUniformLocation(this.program,"useTexture");
- this.aVertexPosition = this.gl.getAttribLocation(this.program,"aVertexPosition");
- this.aTextureCoord = this.gl.getAttribLocation(this.program,"aTextureCoord");
- this.colorAttribute = this.gl.getAttribLocation(this.program,"aColor");
- this.attributes = [this.aVertexPosition,this.aTextureCoord,this.colorAttribute];
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.DrawTrianglesShader
- });
- openfl._internal.renderer.opengl.shaders.FastShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.fragmentSrc = ["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"];
- this.vertexSrc = ["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"];
- this.textureCount = 0;
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.FastShader"] = openfl._internal.renderer.opengl.shaders.FastShader;
- openfl._internal.renderer.opengl.shaders.FastShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","FastShader"];
- openfl._internal.renderer.opengl.shaders.FastShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.FastShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- var gl = this.gl;
- this.uSampler = gl.getUniformLocation(this.program,"uSampler");
- this.projectionVector = gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = gl.getUniformLocation(this.program,"offsetVector");
- this.dimensions = gl.getUniformLocation(this.program,"dimensions");
- this.uMatrix = gl.getUniformLocation(this.program,"uMatrix");
- this.aVertexPosition = gl.getAttribLocation(this.program,"aVertexPosition");
- this.aPositionCoord = gl.getAttribLocation(this.program,"aPositionCoord");
- this.aScale = gl.getAttribLocation(this.program,"aScale");
- this.aRotation = gl.getAttribLocation(this.program,"aRotation");
- this.aTextureCoord = gl.getAttribLocation(this.program,"aTextureCoord");
- this.colorAttribute = gl.getAttribLocation(this.program,"aColor");
- if(this.colorAttribute == -1) this.colorAttribute = 2;
- this.attributes = [this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute];
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.FastShader
- });
- openfl._internal.renderer.opengl.shaders.FillShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.vertexSrc = ["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","}"];
- this.fragmentSrc = ["precision mediump float;","uniform vec3 color;","uniform float alpha;","void main(void) {"," gl_FragColor = vec4((color * alpha), alpha);","}"];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.FillShader"] = openfl._internal.renderer.opengl.shaders.FillShader;
- openfl._internal.renderer.opengl.shaders.FillShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","FillShader"];
- openfl._internal.renderer.opengl.shaders.FillShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.FillShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- this.translationMatrix = this.gl.getUniformLocation(this.program,"translationMatrix");
- this.projectionVector = this.gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = this.gl.getUniformLocation(this.program,"offsetVector");
- this.color = this.gl.getUniformLocation(this.program,"color");
- this.alpha = this.gl.getUniformLocation(this.program,"alpha");
- this.aVertexPosition = this.gl.getAttribLocation(this.program,"aVertexPosition");
- this.attributes = [this.aVertexPosition];
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.FillShader
- });
- openfl._internal.renderer.opengl.shaders.PatternFillShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.vertexSrc = ["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 patternMatrix;","varying vec2 vPos;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vPos = (patternMatrix * vec3(aVertexPosition, 1)).xy;","}"];
- this.fragmentSrc = ["precision mediump float;","uniform float alpha;","uniform vec2 patternTL;","uniform vec2 patternBR;","uniform sampler2D sampler;","varying vec2 vPos;","void main(void) {"," vec2 pos = mix(patternTL, patternBR, vPos);"," vec4 tcol = texture2D(sampler, pos);"," gl_FragColor = vec4(tcol.rgb * alpha, tcol.a * alpha);","}"];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.PatternFillShader"] = openfl._internal.renderer.opengl.shaders.PatternFillShader;
- openfl._internal.renderer.opengl.shaders.PatternFillShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","PatternFillShader"];
- openfl._internal.renderer.opengl.shaders.PatternFillShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.PatternFillShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- this.translationMatrix = this.gl.getUniformLocation(this.program,"translationMatrix");
- this.projectionVector = this.gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = this.gl.getUniformLocation(this.program,"offsetVector");
- this.patternMatrix = this.gl.getUniformLocation(this.program,"patternMatrix");
- this.patternTL = this.gl.getUniformLocation(this.program,"patternTL");
- this.patternBR = this.gl.getUniformLocation(this.program,"patternBR");
- this.sampler = this.gl.getUniformLocation(this.program,"sampler");
- this.alpha = this.gl.getUniformLocation(this.program,"alpha");
- this.aVertexPosition = this.gl.getAttribLocation(this.program,"aVertexPosition");
- this.attributes = [this.aVertexPosition];
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.PatternFillShader
- });
- openfl._internal.renderer.opengl.shaders.PrimitiveShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.fragmentSrc = ["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"];
- this.vertexSrc = ["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor;","}"];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.PrimitiveShader"] = openfl._internal.renderer.opengl.shaders.PrimitiveShader;
- openfl._internal.renderer.opengl.shaders.PrimitiveShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","PrimitiveShader"];
- openfl._internal.renderer.opengl.shaders.PrimitiveShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.PrimitiveShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- var gl = this.gl;
- this.projectionVector = gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = gl.getUniformLocation(this.program,"offsetVector");
- this.tintColor = gl.getUniformLocation(this.program,"tint");
- this.aVertexPosition = gl.getAttribLocation(this.program,"aVertexPosition");
- this.colorAttribute = gl.getAttribLocation(this.program,"aColor");
- this.attributes = [this.aVertexPosition,this.colorAttribute];
- this.translationMatrix = gl.getUniformLocation(this.program,"translationMatrix");
- this.alpha = gl.getUniformLocation(this.program,"alpha");
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.PrimitiveShader
- });
- openfl._internal.renderer.opengl.shaders.StripShader = function(gl) {
- openfl._internal.renderer.opengl.shaders.AbstractShader.call(this,gl);
- this.fragmentSrc = ["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","}"];
- this.vertexSrc = ["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"];
- this.init();
- };
- $hxClasses["openfl._internal.renderer.opengl.shaders.StripShader"] = openfl._internal.renderer.opengl.shaders.StripShader;
- openfl._internal.renderer.opengl.shaders.StripShader.__name__ = ["openfl","_internal","renderer","opengl","shaders","StripShader"];
- openfl._internal.renderer.opengl.shaders.StripShader.__super__ = openfl._internal.renderer.opengl.shaders.AbstractShader;
- openfl._internal.renderer.opengl.shaders.StripShader.prototype = $extend(openfl._internal.renderer.opengl.shaders.AbstractShader.prototype,{
- init: function() {
- openfl._internal.renderer.opengl.shaders.AbstractShader.prototype.init.call(this);
- var gl = this.gl;
- this.uSampler = gl.getUniformLocation(this.program,"uSampler");
- this.projectionVector = gl.getUniformLocation(this.program,"projectionVector");
- this.offsetVector = gl.getUniformLocation(this.program,"offsetVector");
- this.colorAttribute = gl.getAttribLocation(this.program,"aColor");
- this.aVertexPosition = gl.getAttribLocation(this.program,"aVertexPosition");
- this.aTextureCoord = gl.getAttribLocation(this.program,"aTextureCoord");
- this.attributes = [this.aVertexPosition,this.aTextureCoord];
- this.translationMatrix = gl.getUniformLocation(this.program,"translationMatrix");
- this.alpha = gl.getUniformLocation(this.program,"alpha");
- }
- ,__class__: openfl._internal.renderer.opengl.shaders.StripShader
- });
- openfl._internal.renderer.opengl.utils = {};
- openfl._internal.renderer.opengl.utils.BlendModeManager = function(gl) {
- this.gl = gl;
- this.currentBlendMode = null;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.BlendModeManager"] = openfl._internal.renderer.opengl.utils.BlendModeManager;
- openfl._internal.renderer.opengl.utils.BlendModeManager.__name__ = ["openfl","_internal","renderer","opengl","utils","BlendModeManager"];
- openfl._internal.renderer.opengl.utils.BlendModeManager.prototype = {
- destroy: function() {
- this.gl = null;
- }
- ,setBlendMode: function(blendMode) {
- if(blendMode == null) blendMode = openfl.display.BlendMode.NORMAL;
- if(this.currentBlendMode == blendMode) return false;
- this.currentBlendMode = blendMode;
- var blendModeWebGL = openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL.get(this.currentBlendMode);
- this.gl.blendFunc(blendModeWebGL[0],blendModeWebGL[1]);
- return true;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.BlendModeManager
- };
- openfl._internal.renderer.opengl.utils.DrawPath = function() {
- this.type = openfl._internal.renderer.opengl.utils.GraphicType.Polygon;
- this.points = [];
- this.isRemovable = true;
- this.fillIndex = 0;
- this.line = new openfl._internal.renderer.opengl.utils.LineStyle();
- this.fill = openfl._internal.renderer.opengl.utils.FillType.None;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.DrawPath"] = openfl._internal.renderer.opengl.utils.DrawPath;
- openfl._internal.renderer.opengl.utils.DrawPath.__name__ = ["openfl","_internal","renderer","opengl","utils","DrawPath"];
- openfl._internal.renderer.opengl.utils.DrawPath.getStack = function(graphics,gl) {
- return openfl._internal.renderer.opengl.utils.PathBuiler.build(graphics,gl);
- };
- openfl._internal.renderer.opengl.utils.DrawPath.prototype = {
- update: function(line,fill,fillIndex) {
- this.updateLine(line);
- this.fill = fill;
- this.fillIndex = fillIndex;
- }
- ,updateLine: function(line) {
- this.line.width = line.width;
- this.line.color = line.color & 16777215;
- if(line.alpha == null) this.line.alpha = 1; else this.line.alpha = line.alpha;
- if(line.scaleMode == null) this.line.scaleMode = openfl.display.LineScaleMode.NORMAL; else this.line.scaleMode = line.scaleMode;
- if(line.caps == null) this.line.caps = openfl.display.CapsStyle.ROUND; else this.line.caps = line.caps;
- if(line.joints == null) this.line.joints = openfl.display.JointStyle.ROUND; else this.line.joints = line.joints;
- this.line.miterLimit = line.miterLimit;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.DrawPath
- };
- openfl._internal.renderer.opengl.utils.PathBuiler = function() { };
- $hxClasses["openfl._internal.renderer.opengl.utils.PathBuiler"] = openfl._internal.renderer.opengl.utils.PathBuiler;
- openfl._internal.renderer.opengl.utils.PathBuiler.__name__ = ["openfl","_internal","renderer","opengl","utils","PathBuiler"];
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = null;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths = null;
- openfl._internal.renderer.opengl.utils.PathBuiler.__line = null;
- openfl._internal.renderer.opengl.utils.PathBuiler.__fill = null;
- openfl._internal.renderer.opengl.utils.PathBuiler.closePath = function() {
- var l = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length;
- if(l <= 0) return;
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type == openfl._internal.renderer.opengl.utils.GraphicType.Polygon && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.fill != openfl._internal.renderer.opengl.utils.FillType.None) {
- var sx = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points[0];
- var sy = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points[1];
- var ex = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points[l - 2];
- var ey = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points[l - 1];
- if(!(sx == ex && sy == ey)) {
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.push(sx);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.push(sy);
- }
- }
- };
- openfl._internal.renderer.opengl.utils.PathBuiler.endFill = function() {
- openfl._internal.renderer.opengl.utils.PathBuiler.__fill = openfl._internal.renderer.opengl.utils.FillType.None;
- openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex++;
- };
- openfl._internal.renderer.opengl.utils.PathBuiler.moveTo = function(x,y) {
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Polygon;
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.push(x);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.push(y);
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- };
- openfl._internal.renderer.opengl.utils.PathBuiler.graphicDataPop = function() {
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- };
- openfl._internal.renderer.opengl.utils.PathBuiler.build = function(graphics,gl) {
- var glStack = null;
- var bounds = graphics.__bounds;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths = new Array();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__line = new openfl._internal.renderer.opengl.utils.LineStyle();
- openfl._internal.renderer.opengl.utils.PathBuiler.__fill = openfl._internal.renderer.opengl.utils.FillType.None;
- openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex = 0;
- glStack = graphics.__glStack[openfl._internal.renderer.opengl.GLRenderer.glContextId];
- if(glStack == null) glStack = graphics.__glStack[openfl._internal.renderer.opengl.GLRenderer.glContextId] = new openfl._internal.renderer.opengl.utils.GLStack(gl);
- if(!graphics.__visible || graphics.__commands.length == 0 || bounds == null || bounds.width == 0 || bounds.height == 0) {
- } else {
- var _g = 0;
- var _g1 = graphics.__commands;
- while(_g < _g1.length) {
- var command = _g1[_g];
- ++_g;
- switch(command[1]) {
- case 0:
- var smooth = command[5];
- var repeat = command[4];
- var matrix = command[3];
- var bitmap = command[2];
- openfl._internal.renderer.opengl.utils.PathBuiler.endFill();
- if(bitmap != null) openfl._internal.renderer.opengl.utils.PathBuiler.__fill = openfl._internal.renderer.opengl.utils.FillType.Texture(bitmap,matrix,repeat,smooth); else openfl._internal.renderer.opengl.utils.PathBuiler.__fill = openfl._internal.renderer.opengl.utils.FillType.None;
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) {
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [];
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Polygon;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- }
- break;
- case 1:
- var alpha = command[3];
- var rgb = command[2];
- openfl._internal.renderer.opengl.utils.PathBuiler.endFill();
- if(alpha > 0) openfl._internal.renderer.opengl.utils.PathBuiler.__fill = openfl._internal.renderer.opengl.utils.FillType.Color(rgb & 16777215,alpha); else openfl._internal.renderer.opengl.utils.PathBuiler.__fill = openfl._internal.renderer.opengl.utils.FillType.None;
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) {
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [];
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Polygon;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- }
- break;
- case 2:
- var y = command[7];
- var x = command[6];
- var cy2 = command[5];
- var cx2 = command[4];
- var cy = command[3];
- var cx = command[2];
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.moveTo(0,0);
- var n = 20;
- var dt = 0;
- var dt2 = 0;
- var dt3 = 0;
- var t2 = 0;
- var t3 = 0;
- var points = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points;
- var fromX = points[points.length - 2];
- var fromY = points[points.length - 1];
- var px = 0;
- var py = 0;
- var tmp = 0;
- var _g3 = 1;
- var _g2 = n + 1;
- while(_g3 < _g2) {
- var i = _g3++;
- tmp = i / n;
- dt = 1 - tmp;
- dt2 = dt * dt;
- dt3 = dt2 * dt;
- t2 = tmp * tmp;
- t3 = t2 * tmp;
- px = dt3 * fromX + 3 * dt2 * tmp * cx + 3 * dt * t2 * cx2 + t3 * x;
- py = dt3 * fromY + 3 * dt2 * tmp * cy + 3 * dt * t2 * cy2 + t3 * y;
- points.push(px);
- points.push(py);
- }
- break;
- case 3:
- var y1 = command[5];
- var x1 = command[4];
- var cy1 = command[3];
- var cx1 = command[2];
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.moveTo(0,0);
- var xa = 0;
- var ya = 0;
- var n1 = 20;
- var points1 = openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points;
- var fromX1 = points1[points1.length - 2];
- var fromY1 = points1[points1.length - 1];
- var px1 = 0;
- var py1 = 0;
- var tmp1 = 0;
- var _g31 = 1;
- var _g21 = n1 + 1;
- while(_g31 < _g21) {
- var i1 = _g31++;
- tmp1 = i1 / n1;
- xa = fromX1 + (cx1 - fromX1) * tmp1;
- ya = fromY1 + (cy1 - fromY1) * tmp1;
- px1 = xa + (cx1 + (x1 - cx1) * tmp1 - xa) * tmp1;
- py1 = ya + (cy1 + (y1 - cy1) * tmp1 - ya) * tmp1;
- points1.push(px1);
- points1.push(py1);
- }
- break;
- case 4:
- var radius = command[4];
- var y2 = command[3];
- var x2 = command[2];
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Circle;
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [x2,y2,radius];
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- case 5:
- var height = command[5];
- var width = command[4];
- var y3 = command[3];
- var x3 = command[2];
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Ellipse;
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [x3,y3,width,height];
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- case 6:
- var height1 = command[5];
- var width1 = command[4];
- var y4 = command[3];
- var x4 = command[2];
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Rectangle(false);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [x4,y4,width1,height1];
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- case 7:
- var ry = command[7];
- var rx = command[6];
- var height2 = command[5];
- var width2 = command[4];
- var y5 = command[3];
- var x5 = command[2];
- if(ry == -1) ry = rx;
- rx *= 0.5;
- ry *= 0.5;
- if(rx > width2 / 2) rx = width2 / 2;
- if(ry > height2 / 2) ry = height2 / 2;
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Rectangle(true);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [x5,y5,width2,height2,rx,ry];
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- case 10:
- openfl._internal.renderer.opengl.utils.PathBuiler.endFill();
- break;
- case 11:
- var miterLimit = command[9];
- var joints = command[8];
- var caps = command[7];
- var scaleMode = command[6];
- var pixelHinting = command[5];
- var alpha1 = command[4];
- var color = command[3];
- var thickness = command[2];
- openfl._internal.renderer.opengl.utils.PathBuiler.__line = new openfl._internal.renderer.opengl.utils.LineStyle();
- if(thickness == null || thickness == Math.NaN || thickness < 0) openfl._internal.renderer.opengl.utils.PathBuiler.__line.width = 0; else if(thickness == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__line.width = 1; else openfl._internal.renderer.opengl.utils.PathBuiler.__line.width = thickness;
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__line.color = color;
- openfl._internal.renderer.opengl.utils.PathBuiler.__line.alpha = alpha1;
- openfl._internal.renderer.opengl.utils.PathBuiler.__line.scaleMode = scaleMode;
- openfl._internal.renderer.opengl.utils.PathBuiler.__line.caps = caps;
- openfl._internal.renderer.opengl.utils.PathBuiler.__line.joints = joints;
- openfl._internal.renderer.opengl.utils.PathBuiler.__line.miterLimit = miterLimit;
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points = [];
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.Polygon;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- case 12:
- var y6 = command[3];
- var x6 = command[2];
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.push(x6);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.push(y6);
- break;
- case 13:
- var y7 = command[3];
- var x7 = command[2];
- openfl._internal.renderer.opengl.utils.PathBuiler.moveTo(x7,y7);
- break;
- case 9:
- var blendMode = command[7];
- var colors = command[6];
- var culling = command[5];
- var uvtData = command[4];
- var indices = command[3];
- var vertices = command[2];
- var isColor;
- {
- var _g22 = openfl._internal.renderer.opengl.utils.PathBuiler.__fill;
- switch(_g22[1]) {
- case 1:
- isColor = true;
- break;
- default:
- isColor = false;
- }
- }
- if(isColor && uvtData != null) continue;
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- if(uvtData == null) {
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(0);
- this1.data = this2;
- this1.length = 0;
- this1.fixed = false;
- uvtData = this1;
- {
- var _g23 = openfl._internal.renderer.opengl.utils.PathBuiler.__fill;
- switch(_g23[1]) {
- case 2:
- var b = _g23[2];
- var _g4 = 0;
- var _g32 = vertices.length / 2 | 0;
- while(_g4 < _g32) {
- var i2 = _g4++;
- if(!uvtData.fixed) {
- uvtData.length++;
- if(uvtData.data.length < uvtData.length) {
- var data;
- var this3;
- this3 = new Array(uvtData.data.length + 10);
- data = this3;
- haxe.ds._Vector.Vector_Impl_.blit(uvtData.data,0,data,0,uvtData.data.length);
- uvtData.data = data;
- }
- uvtData.data[uvtData.length - 1] = vertices.data[i2 * 2] / b.width;
- }
- uvtData.length;
- if(!uvtData.fixed) {
- uvtData.length++;
- if(uvtData.data.length < uvtData.length) {
- var data1;
- var this4;
- this4 = new Array(uvtData.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(uvtData.data,0,data1,0,uvtData.data.length);
- uvtData.data = data1;
- }
- uvtData.data[uvtData.length - 1] = vertices.data[i2 * 2 + 1] / b.height;
- }
- uvtData.length;
- }
- break;
- default:
- }
- }
- }
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.DrawTriangles(vertices,indices,uvtData,culling,colors,blendMode);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable = false;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- case 8:
- var count = command[6];
- var flags = command[5];
- var smooth1 = command[4];
- var tileData = command[3];
- var sheet = command[2];
- if(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable && openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.points.length == 0) openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.pop(); else openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex++;
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath = new openfl._internal.renderer.opengl.utils.DrawPath();
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.update(openfl._internal.renderer.opengl.utils.PathBuiler.__line,openfl._internal.renderer.opengl.utils.PathBuiler.__fill,openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.type = openfl._internal.renderer.opengl.utils.GraphicType.DrawTiles(sheet,tileData,smooth1,flags,count);
- openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath.isRemovable = false;
- openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths.push(openfl._internal.renderer.opengl.utils.PathBuiler.__currentPath);
- break;
- }
- }
- openfl._internal.renderer.opengl.utils.PathBuiler.closePath();
- }
- graphics.__drawPaths = openfl._internal.renderer.opengl.utils.PathBuiler.__drawPaths;
- return glStack;
- };
- openfl._internal.renderer.opengl.utils.LineStyle = function() {
- this.width = 0;
- this.color = 0;
- this.alpha = 1;
- this.scaleMode = openfl.display.LineScaleMode.NORMAL;
- this.caps = openfl.display.CapsStyle.ROUND;
- this.joints = openfl.display.JointStyle.ROUND;
- this.miterLimit = 3;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.LineStyle"] = openfl._internal.renderer.opengl.utils.LineStyle;
- openfl._internal.renderer.opengl.utils.LineStyle.__name__ = ["openfl","_internal","renderer","opengl","utils","LineStyle"];
- openfl._internal.renderer.opengl.utils.LineStyle.prototype = {
- __class__: openfl._internal.renderer.opengl.utils.LineStyle
- };
- openfl._internal.renderer.opengl.utils.FillType = $hxClasses["openfl._internal.renderer.opengl.utils.FillType"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","FillType"], __constructs__ : ["None","Color","Texture","Gradient"] };
- openfl._internal.renderer.opengl.utils.FillType.None = ["None",0];
- openfl._internal.renderer.opengl.utils.FillType.None.toString = $estr;
- openfl._internal.renderer.opengl.utils.FillType.None.__enum__ = openfl._internal.renderer.opengl.utils.FillType;
- openfl._internal.renderer.opengl.utils.FillType.Color = function(color,alpha) { var $x = ["Color",1,color,alpha]; $x.__enum__ = openfl._internal.renderer.opengl.utils.FillType; $x.toString = $estr; return $x; };
- openfl._internal.renderer.opengl.utils.FillType.Texture = function(bitmap,matrix,repeat,smooth) { var $x = ["Texture",2,bitmap,matrix,repeat,smooth]; $x.__enum__ = openfl._internal.renderer.opengl.utils.FillType; $x.toString = $estr; return $x; };
- openfl._internal.renderer.opengl.utils.FillType.Gradient = ["Gradient",3];
- openfl._internal.renderer.opengl.utils.FillType.Gradient.toString = $estr;
- openfl._internal.renderer.opengl.utils.FillType.Gradient.__enum__ = openfl._internal.renderer.opengl.utils.FillType;
- openfl._internal.renderer.opengl.utils.FilterManager = function(gl,transparent) {
- this.transparent = transparent;
- this.filterStack = [];
- this.offsetX = 0;
- this.offsetY = 0;
- this.setContext(gl);
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.FilterManager"] = openfl._internal.renderer.opengl.utils.FilterManager;
- openfl._internal.renderer.opengl.utils.FilterManager.__name__ = ["openfl","_internal","renderer","opengl","utils","FilterManager"];
- openfl._internal.renderer.opengl.utils.FilterManager.prototype = {
- applyFilterPass: function(filter,filterArea,width,height) {
- var gl = this.gl;
- var shader = filter.shaders[openfl._internal.renderer.opengl.GLRenderer.glContextId];
- if(shader == null) {
- shader = new openfl._internal.renderer.opengl.shaders.DefaultShader(gl);
- shader.fragmentSrc = filter.fragmentSrc;
- shader.uniforms = filter.uniforms;
- shader.init();
- filter.shaders[openfl._internal.renderer.opengl.GLRenderer.glContextId] = shader;
- }
- this.renderSession.shaderManager.setShader(shader);
- gl.uniform2f(shader.projectionVector,width / 2,-height / 2);
- gl.uniform2f(shader.offsetVector,0,0);
- if(filter.uniforms.dimensions != null) {
- filter.uniforms.dimensions.value[0] = this.width + 0.0;
- filter.uniforms.dimensions.value[1] = this.height + 0.0;
- filter.uniforms.dimensions.value[2] = this.vertexArray[0];
- filter.uniforms.dimensions.value[3] = this.vertexArray[5];
- }
- shader.syncUniforms();
- gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer);
- gl.vertexAttribPointer(shader.aVertexPosition,2,gl.FLOAT,false,0,0);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.uvBuffer);
- gl.vertexAttribPointer(shader.aTextureCoord,2,gl.FLOAT,false,0,0);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.colorBuffer);
- gl.vertexAttribPointer(shader.colorAttribute,2,gl.FLOAT,false,0,0);
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer);
- gl.drawElements(gl.TRIANGLES,6,gl.UNSIGNED_SHORT,0);
- this.renderSession.drawCount++;
- }
- ,begin: function(renderSession,buffer) {
- this.renderSession = renderSession;
- this.defaultShader = renderSession.shaderManager.defaultShader;
- var projection = renderSession.projection;
- this.width = projection.x * 2 | 0;
- this.height = -projection.y * 2 | 0;
- this.buffer = buffer;
- }
- ,destroy: function() {
- var gl = this.gl;
- this.filterStack = null;
- this.offsetX = 0;
- this.offsetY = 0;
- var _g = 0;
- var _g1 = this.texturePool;
- while(_g < _g1.length) {
- var texture = _g1[_g];
- ++_g;
- texture.destroy();
- }
- this.texturePool = null;
- gl.deleteBuffer(this.vertexBuffer);
- gl.deleteBuffer(this.uvBuffer);
- gl.deleteBuffer(this.colorBuffer);
- gl.deleteBuffer(this.indexBuffer);
- }
- ,initShaderBuffers: function() {
- var gl = this.gl;
- this.vertexBuffer = gl.createBuffer();
- this.uvBuffer = gl.createBuffer();
- this.colorBuffer = gl.createBuffer();
- this.indexBuffer = gl.createBuffer();
- this.vertexArray = new Float32Array([0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0]);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,this.vertexArray,gl.STATIC_DRAW);
- this.uvArray = new Float32Array([0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0]);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.uvBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,this.uvArray,gl.STATIC_DRAW);
- this.colorArray = new Float32Array([1.0,16777215,1.0,16777215,1.0,16777215,1.0,16777215]);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.colorBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,this.colorArray,gl.STATIC_DRAW);
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer);
- gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),gl.STATIC_DRAW);
- }
- ,popFilter: function() {
- var gl = this.gl;
- var filterBlock = this.filterStack.pop();
- var filterArea = filterBlock._filterArea;
- var texture = filterBlock._glFilterTexture;
- var projection = this.renderSession.projection;
- var offset = this.renderSession.offset;
- if(filterBlock.filterPasses.length > 1) {
- gl.viewport(0,0,filterArea.width | 0,filterArea.height | 0);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer);
- this.vertexArray[0] = 0;
- this.vertexArray[1] = filterArea.height;
- this.vertexArray[2] = filterArea.width;
- this.vertexArray[3] = filterArea.height;
- this.vertexArray[4] = 0;
- this.vertexArray[5] = 0;
- this.vertexArray[6] = filterArea.width;
- this.vertexArray[7] = 0;
- gl.bufferSubData(gl.ARRAY_BUFFER,0,this.vertexArray);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.uvBuffer);
- this.uvArray[2] = filterArea.width / this.width;
- this.uvArray[5] = filterArea.height / this.height;
- this.uvArray[6] = filterArea.width / this.width;
- this.uvArray[7] = filterArea.height / this.height;
- gl.bufferSubData(gl.ARRAY_BUFFER,0,this.uvArray);
- var inputTexture = texture;
- var outputTexture = this.texturePool.pop();
- if(outputTexture == null) outputTexture = new openfl._internal.renderer.opengl.utils.FilterTexture(gl,this.width,this.height);
- outputTexture.resize(this.width,this.height);
- gl.bindFramebuffer(gl.FRAMEBUFFER,outputTexture.frameBuffer);
- gl.clear(gl.COLOR_BUFFER_BIT);
- gl.disable(gl.BLEND);
- var _g1 = 0;
- var _g = filterBlock.filterPasses.length - 1 | 0;
- while(_g1 < _g) {
- var i = _g1++;
- var filterPass = filterBlock.filterPasses[i];
- gl.bindFramebuffer(gl.FRAMEBUFFER,outputTexture.frameBuffer);
- gl.activeTexture(gl.TEXTURE0);
- gl.bindTexture(gl.TEXTURE_2D,inputTexture.texture);
- this.applyFilterPass(filterPass,filterArea,filterArea.width | 0,filterArea.height | 0);
- var temp = inputTexture;
- inputTexture = outputTexture;
- outputTexture = temp;
- }
- gl.enable(gl.BLEND);
- texture = inputTexture;
- this.texturePool.push(outputTexture);
- }
- var filter = filterBlock.filterPasses[filterBlock.filterPasses.length - 1 | 0];
- this.offsetX -= filterArea.x;
- this.offsetY -= filterArea.y;
- var sizeX = this.width;
- var sizeY = this.height;
- var offsetX = 0.0;
- var offsetY = 0.0;
- var buffer = this.buffer;
- if(this.filterStack.length == 0) gl.colorMask(true,true,true,true); else {
- var currentFilter = this.filterStack[this.filterStack.length - 1];
- filterArea = currentFilter._filterArea;
- sizeX = filterArea.width | 0;
- sizeY = filterArea.height | 0;
- offsetX = filterArea.x;
- offsetY = filterArea.y;
- buffer = currentFilter._glFilterTexture.frameBuffer;
- }
- projection.x = sizeX / 2;
- projection.y = -sizeY / 2;
- offset.x = offsetX;
- offset.y = offsetY;
- filterArea = filterBlock._filterArea;
- var x = filterArea.x - offsetX;
- var y = filterArea.y - offsetY;
- gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer);
- this.vertexArray[0] = x;
- this.vertexArray[1] = y + filterArea.height;
- this.vertexArray[2] = x + filterArea.width;
- this.vertexArray[3] = y + filterArea.height;
- this.vertexArray[4] = x;
- this.vertexArray[5] = y;
- this.vertexArray[6] = x + filterArea.width;
- this.vertexArray[7] = y;
- gl.bufferSubData(gl.ARRAY_BUFFER,0,this.vertexArray);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.uvBuffer);
- this.uvArray[2] = filterArea.width / this.width;
- this.uvArray[5] = filterArea.height / this.height;
- this.uvArray[6] = filterArea.width / this.width;
- this.uvArray[7] = filterArea.height / this.height;
- gl.bufferSubData(gl.ARRAY_BUFFER,0,this.uvArray);
- gl.viewport(0,0,sizeX,sizeY);
- gl.bindFramebuffer(gl.FRAMEBUFFER,buffer);
- gl.activeTexture(gl.TEXTURE0);
- gl.bindTexture(gl.TEXTURE_2D,texture.texture);
- this.applyFilterPass(filter,filterArea,sizeX,sizeY);
- this.renderSession.shaderManager.setShader(this.defaultShader);
- gl.uniform2f(this.defaultShader.projectionVector,sizeX / 2,-sizeY / 2);
- gl.uniform2f(this.defaultShader.offsetVector,-offsetX,-offsetY);
- this.texturePool.push(texture);
- filterBlock._glFilterTexture = null;
- }
- ,pushFilter: function(filterBlock) {
- var gl = this.gl;
- var projection = this.renderSession.projection;
- var offset = this.renderSession.offset;
- if(filterBlock.target.filterArea != null) filterBlock._filterArea = filterBlock.target.filterArea; else filterBlock._filterArea = filterBlock.target.getBounds();
- this.filterStack.push(filterBlock);
- var filter = filterBlock.filterPasses[0];
- this.offsetX += filterBlock._filterArea.x;
- this.offsetY += filterBlock._filterArea.y;
- var texture = this.texturePool.pop();
- if(texture == null) texture = new openfl._internal.renderer.opengl.utils.FilterTexture(gl,this.width,this.height); else texture.resize(this.width,this.height);
- gl.bindTexture(gl.TEXTURE_2D,texture.texture);
- var filterArea = filterBlock._filterArea;
- var padding = filter.padding;
- filterArea.x -= padding;
- filterArea.y -= padding;
- filterArea.width += padding * 2;
- filterArea.height += padding * 2;
- if(filterArea.x < 0) filterArea.x = 0;
- if(filterArea.width > this.width) filterArea.width = this.width;
- if(filterArea.y < 0) filterArea.y = 0;
- if(filterArea.height > this.height) filterArea.height = this.height;
- gl.bindFramebuffer(gl.FRAMEBUFFER,texture.frameBuffer);
- gl.viewport(0,0,filterArea.width | 0,filterArea.height | 0);
- projection.x = filterArea.width / 2;
- projection.y = -filterArea.height / 2;
- offset.x = -filterArea.x;
- offset.y = -filterArea.y;
- this.renderSession.shaderManager.setShader(this.defaultShader);
- gl.uniform2f(this.defaultShader.projectionVector,filterArea.width / 2,-filterArea.height / 2);
- gl.uniform2f(this.defaultShader.offsetVector,-filterArea.x,-filterArea.y);
- gl.colorMask(true,true,true,true);
- gl.clearColor(0,0,0,0);
- gl.clear(gl.COLOR_BUFFER_BIT);
- filterBlock._glFilterTexture = texture;
- }
- ,setContext: function(gl) {
- this.gl = gl;
- this.texturePool = [];
- this.initShaderBuffers();
- }
- ,__class__: openfl._internal.renderer.opengl.utils.FilterManager
- };
- openfl._internal.renderer.opengl.utils.FilterTexture = function(gl,width,height,smoothing) {
- if(smoothing == null) smoothing = true;
- this.gl = gl;
- this.frameBuffer = gl.createFramebuffer();
- this.texture = gl.createTexture();
- gl.bindTexture(gl.TEXTURE_2D,this.texture);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,smoothing?gl.LINEAR:gl.NEAREST);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,smoothing?gl.LINEAR:gl.NEAREST);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);
- gl.bindFramebuffer(gl.FRAMEBUFFER,this.frameBuffer);
- gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,this.texture,0);
- this.renderBuffer = gl.createRenderbuffer();
- gl.bindRenderbuffer(gl.RENDERBUFFER,this.renderBuffer);
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_STENCIL_ATTACHMENT,gl.RENDERBUFFER,this.renderBuffer);
- this.resize(width,height);
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.FilterTexture"] = openfl._internal.renderer.opengl.utils.FilterTexture;
- openfl._internal.renderer.opengl.utils.FilterTexture.__name__ = ["openfl","_internal","renderer","opengl","utils","FilterTexture"];
- openfl._internal.renderer.opengl.utils.FilterTexture.prototype = {
- clear: function() {
- var gl = this.gl;
- gl.clearColor(0,0,0,0);
- gl.clear(gl.COLOR_BUFFER_BIT);
- }
- ,destroy: function() {
- var gl = this.gl;
- gl.deleteFramebuffer(this.frameBuffer);
- gl.deleteTexture(this.texture);
- this.frameBuffer = null;
- this.texture = null;
- }
- ,resize: function(width,height) {
- if(this.width == width && this.height == height) return;
- this.width = width;
- this.height = height;
- var gl = this.gl;
- gl.bindTexture(gl.TEXTURE_2D,this.texture);
- gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null);
- gl.bindRenderbuffer(gl.RENDERBUFFER,this.renderBuffer);
- gl.renderbufferStorage(gl.RENDERBUFFER,gl.DEPTH_STENCIL,width,height);
- }
- ,__class__: openfl._internal.renderer.opengl.utils.FilterTexture
- };
- openfl.geom.Rectangle = function(x,y,width,height) {
- if(height == null) height = 0;
- if(width == null) width = 0;
- if(y == null) y = 0;
- if(x == null) x = 0;
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- };
- $hxClasses["openfl.geom.Rectangle"] = openfl.geom.Rectangle;
- openfl.geom.Rectangle.__name__ = ["openfl","geom","Rectangle"];
- openfl.geom.Rectangle.prototype = {
- clone: function() {
- return new openfl.geom.Rectangle(this.x,this.y,this.width,this.height);
- }
- ,contains: function(x,y) {
- return x >= this.x && y >= this.y && x < this.get_right() && y < this.get_bottom();
- }
- ,containsPoint: function(point) {
- return this.contains(point.x,point.y);
- }
- ,containsRect: function(rect) {
- if(rect.width <= 0 || rect.height <= 0) return rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right() && rect.get_bottom() < this.get_bottom(); else return rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right() && rect.get_bottom() <= this.get_bottom();
- }
- ,copyFrom: function(sourceRect) {
- this.x = sourceRect.x;
- this.y = sourceRect.y;
- this.width = sourceRect.width;
- this.height = sourceRect.height;
- }
- ,equals: function(toCompare) {
- return toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width && this.height == toCompare.height;
- }
- ,inflate: function(dx,dy) {
- this.x -= dx;
- this.width += dx * 2;
- this.y -= dy;
- this.height += dy * 2;
- }
- ,inflatePoint: function(point) {
- this.inflate(point.x,point.y);
- }
- ,intersection: function(toIntersect) {
- var x0;
- if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x;
- var x1;
- if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right();
- if(x1 <= x0) return new openfl.geom.Rectangle();
- var y0;
- if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y;
- var y1;
- if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom();
- if(y1 <= y0) return new openfl.geom.Rectangle();
- return new openfl.geom.Rectangle(x0,y0,x1 - x0,y1 - y0);
- }
- ,intersects: function(toIntersect) {
- var x0;
- if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x;
- var x1;
- if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right();
- if(x1 <= x0) return false;
- var y0;
- if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y;
- var y1;
- if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom();
- return y1 > y0;
- }
- ,isEmpty: function() {
- return this.width <= 0 || this.height <= 0;
- }
- ,offset: function(dx,dy) {
- this.x += dx;
- this.y += dy;
- }
- ,offsetPoint: function(point) {
- this.x += point.x;
- this.y += point.y;
- }
- ,setEmpty: function() {
- this.x = this.y = this.width = this.height = 0;
- }
- ,setTo: function(xa,ya,widtha,heighta) {
- this.x = xa;
- this.y = ya;
- this.width = widtha;
- this.height = heighta;
- }
- ,transform: function(m) {
- var tx0 = m.a * this.x + m.c * this.y;
- var tx1 = tx0;
- var ty0 = m.b * this.x + m.d * this.y;
- var ty1 = tx0;
- var tx = m.a * (this.x + this.width) + m.c * this.y;
- var ty = m.b * (this.x + this.width) + m.d * this.y;
- if(tx < tx0) tx0 = tx;
- if(ty < ty0) ty0 = ty;
- if(tx > tx1) tx1 = tx;
- if(ty > ty1) ty1 = ty;
- tx = m.a * (this.x + this.width) + m.c * (this.y + this.height);
- ty = m.b * (this.x + this.width) + m.d * (this.y + this.height);
- if(tx < tx0) tx0 = tx;
- if(ty < ty0) ty0 = ty;
- if(tx > tx1) tx1 = tx;
- if(ty > ty1) ty1 = ty;
- tx = m.a * this.x + m.c * (this.y + this.height);
- ty = m.b * this.x + m.d * (this.y + this.height);
- if(tx < tx0) tx0 = tx;
- if(ty < ty0) ty0 = ty;
- if(tx > tx1) tx1 = tx;
- if(ty > ty1) ty1 = ty;
- return new openfl.geom.Rectangle(tx0 + m.tx,ty0 + m.ty,tx1 - tx0,ty1 - ty0);
- }
- ,union: function(toUnion) {
- if(this.width == 0 || this.height == 0) return toUnion.clone(); else if(toUnion.width == 0 || toUnion.height == 0) return this.clone();
- var x0;
- if(this.x > toUnion.x) x0 = toUnion.x; else x0 = this.x;
- var x1;
- if(this.get_right() < toUnion.get_right()) x1 = toUnion.get_right(); else x1 = this.get_right();
- var y0;
- if(this.y > toUnion.y) y0 = toUnion.y; else y0 = this.y;
- var y1;
- if(this.get_bottom() < toUnion.get_bottom()) y1 = toUnion.get_bottom(); else y1 = this.get_bottom();
- return new openfl.geom.Rectangle(x0,y0,x1 - x0,y1 - y0);
- }
- ,__contract: function(x,y,width,height) {
- if(this.width == 0 && this.height == 0) return;
- var cacheRight = this.get_right();
- var cacheBottom = this.get_bottom();
- if(this.x < x) this.x = x;
- if(this.y < y) this.y = y;
- if(this.get_right() > x + width) this.width = x + width - this.x;
- if(this.get_bottom() > y + height) this.height = y + height - this.y;
- }
- ,__expand: function(x,y,width,height) {
- if(this.width == 0 && this.height == 0) {
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- return;
- }
- var cacheRight = this.get_right();
- var cacheBottom = this.get_bottom();
- if(this.x > x) {
- this.x = x;
- this.width = cacheRight - x;
- }
- if(this.y > y) {
- this.y = y;
- this.height = cacheBottom - y;
- }
- if(cacheRight < x + width) this.width = x + width - this.x;
- if(cacheBottom < y + height) this.height = y + height - this.y;
- }
- ,__toLimeRectangle: function() {
- return new lime.math.Rectangle(this.x,this.y,this.width,this.height);
- }
- ,get_bottom: function() {
- return this.y + this.height;
- }
- ,set_bottom: function(b) {
- this.height = b - this.y;
- return b;
- }
- ,get_bottomRight: function() {
- return new openfl.geom.Point(this.x + this.width,this.y + this.height);
- }
- ,set_bottomRight: function(p) {
- this.width = p.x - this.x;
- this.height = p.y - this.y;
- return p.clone();
- }
- ,get_left: function() {
- return this.x;
- }
- ,set_left: function(l) {
- this.width -= l - this.x;
- this.x = l;
- return l;
- }
- ,get_right: function() {
- return this.x + this.width;
- }
- ,set_right: function(r) {
- this.width = r - this.x;
- return r;
- }
- ,get_size: function() {
- return new openfl.geom.Point(this.width,this.height);
- }
- ,set_size: function(p) {
- this.width = p.x;
- this.height = p.y;
- return p.clone();
- }
- ,get_top: function() {
- return this.y;
- }
- ,set_top: function(t) {
- this.height -= t - this.y;
- this.y = t;
- return t;
- }
- ,get_topLeft: function() {
- return new openfl.geom.Point(this.x,this.y);
- }
- ,set_topLeft: function(p) {
- this.x = p.x;
- this.y = p.y;
- return p.clone();
- }
- ,__class__: openfl.geom.Rectangle
- ,__properties__: {set_topLeft:"set_topLeft",get_topLeft:"get_topLeft",set_top:"set_top",get_top:"get_top",set_size:"set_size",get_size:"get_size",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_bottomRight:"set_bottomRight",get_bottomRight:"get_bottomRight",set_bottom:"set_bottom",get_bottom:"get_bottom"}
- };
- openfl.geom.Point = function(x,y) {
- if(y == null) y = 0;
- if(x == null) x = 0;
- this.x = x;
- this.y = y;
- };
- $hxClasses["openfl.geom.Point"] = openfl.geom.Point;
- openfl.geom.Point.__name__ = ["openfl","geom","Point"];
- openfl.geom.Point.distance = function(pt1,pt2) {
- var dx = pt1.x - pt2.x;
- var dy = pt1.y - pt2.y;
- return Math.sqrt(dx * dx + dy * dy);
- };
- openfl.geom.Point.interpolate = function(pt1,pt2,f) {
- return new openfl.geom.Point(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y));
- };
- openfl.geom.Point.polar = function(len,angle) {
- return new openfl.geom.Point(len * Math.cos(angle),len * Math.sin(angle));
- };
- openfl.geom.Point.prototype = {
- add: function(v) {
- return new openfl.geom.Point(v.x + this.x,v.y + this.y);
- }
- ,clone: function() {
- return new openfl.geom.Point(this.x,this.y);
- }
- ,copyFrom: function(sourcePoint) {
- this.x = sourcePoint.x;
- this.y = sourcePoint.y;
- }
- ,equals: function(toCompare) {
- return toCompare != null && toCompare.x == this.x && toCompare.y == this.y;
- }
- ,normalize: function(thickness) {
- if(this.x == 0 && this.y == 0) return; else {
- var norm = thickness / Math.sqrt(this.x * this.x + this.y * this.y);
- this.x *= norm;
- this.y *= norm;
- }
- }
- ,offset: function(dx,dy) {
- this.x += dx;
- this.y += dy;
- }
- ,setTo: function(xa,ya) {
- this.x = xa;
- this.y = ya;
- }
- ,subtract: function(v) {
- return new openfl.geom.Point(this.x - v.x,this.y - v.y);
- }
- ,toString: function() {
- return "(x=" + this.x + ", y=" + this.y + ")";
- }
- ,__toLimeVector2: function() {
- return new lime.math.Vector2(this.x,this.y);
- }
- ,get_length: function() {
- return Math.sqrt(this.x * this.x + this.y * this.y);
- }
- ,__class__: openfl.geom.Point
- ,__properties__: {get_length:"get_length"}
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer = function() { };
- $hxClasses["openfl._internal.renderer.opengl.utils.GraphicsRenderer"] = openfl._internal.renderer.opengl.utils.GraphicsRenderer;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.__name__ = ["openfl","_internal","renderer","opengl","utils","GraphicsRenderer"];
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.lastVertsBuffer = null;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.lastBucketMode = null;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.lastTexture = null;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.lastTextureRepeat = null;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.lastTextureSmooth = null;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildCircle = function(path,glStack,localCoords) {
- if(localCoords == null) localCoords = false;
- var rectData = path.points;
- var x = rectData[0];
- var y = rectData[1];
- var width = rectData[2];
- var height;
- if(rectData.length == 3) height = width; else height = rectData[3];
- if(path.type == openfl._internal.renderer.opengl.utils.GraphicType.Ellipse) {
- width /= 2;
- height /= 2;
- x += width;
- y += height;
- }
- if(localCoords) {
- x -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- y -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- }
- var totalSegs = 40;
- var seg = Math.PI * 2 / totalSegs;
- var bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- if(bucket != null) {
- var verts = bucket.verts;
- var indices = bucket.indices;
- var vertPos = verts.length / 2 | 0;
- indices.push(vertPos);
- var _g1 = 0;
- var _g = totalSegs + 1;
- while(_g1 < _g) {
- var i = _g1++;
- verts.push(x);
- verts.push(y);
- verts.push(x + Math.sin(seg * i) * width);
- verts.push(y + Math.cos(seg * i) * height);
- indices.push(vertPos++);
- indices.push(vertPos++);
- }
- indices.push(vertPos - 1);
- }
- if(path.line.width > 0) {
- var tempPoints = path.points;
- path.points = [];
- var _g11 = 0;
- var _g2 = totalSegs + 1;
- while(_g11 < _g2) {
- var i1 = _g11++;
- path.points.push(x + Math.sin(seg * i1) * width);
- path.points.push(y + Math.cos(seg * i1) * height);
- }
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildLine(path,bucket.line);
- path.points = tempPoints;
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildComplexPoly = function(path,glStack,localCoords) {
- if(localCoords == null) localCoords = false;
- if(path.points.length < 6) return;
- var points = path.points.slice();
- if(localCoords) {
- var _g1 = 0;
- var _g = points.length / 2 | 0;
- while(_g1 < _g) {
- var i = _g1++;
- points[i * 2] -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- points[i * 2 + 1] -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- }
- }
- var bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- bucket.drawMode = glStack.gl.TRIANGLE_FAN;
- bucket.verts = points;
- var indices = bucket.indices;
- var length = points.length / 2 | 0;
- var _g2 = 0;
- while(_g2 < length) {
- var i1 = _g2++;
- indices.push(i1);
- }
- if(path.line.width > 0) openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildLine(path,bucket.line,localCoords);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildLine = function(path,bucket,localCoords) {
- if(localCoords == null) localCoords = false;
- var points = path.points;
- if(points.length == 0) return;
- if(localCoords) {
- var _g1 = 0;
- var _g = points.length / 2 | 0;
- while(_g1 < _g) {
- var i = _g1++;
- points[i * 2] -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- points[i * 2 + 1] -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- }
- }
- if(path.line.width % 2 > 0) {
- var _g11 = 0;
- var _g2 = points.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- points[i1] += 0.5;
- }
- }
- var firstPoint = new openfl.geom.Point(points[0],points[1]);
- var lastPoint = new openfl.geom.Point(points[points.length - 2 | 0],points[points.length - 1 | 0]);
- if(firstPoint.x == lastPoint.x && firstPoint.y == lastPoint.y) {
- points = points.slice();
- points.pop();
- points.pop();
- lastPoint = new openfl.geom.Point(points[points.length - 2 | 0],points[points.length - 1 | 0]);
- var midPointX = lastPoint.x + (firstPoint.x - lastPoint.x) * 0.5;
- var midPointY = lastPoint.y + (firstPoint.y - lastPoint.y) * 0.5;
- points.unshift(midPointY);
- points.unshift(midPointX);
- points.push(midPointX);
- points.push(midPointY);
- }
- var verts = bucket.verts;
- var indices = bucket.indices;
- var length = points.length / 2 | 0;
- var indexCount = points.length;
- var indexStart = verts.length / 6 | 0;
- var width = path.line.width / 2;
- var color = openfl._internal.renderer.opengl.utils.GraphicsRenderer.hex2rgb(path.line.color);
- var alpha = path.line.alpha;
- var r = color[0] * alpha;
- var g = color[1] * alpha;
- var b = color[2] * alpha;
- var px;
- var py;
- var p1x;
- var p1y;
- var p2x;
- var p2y;
- var p3x;
- var p3y;
- var perpx;
- var perpy;
- var perp2x;
- var perp2y;
- var perp3x;
- var perp3y;
- var a1;
- var b1;
- var c1;
- var a2;
- var b2;
- var c2;
- var denom;
- var pdist;
- var dist;
- p1x = points[0];
- p1y = points[1];
- p2x = points[2];
- p2y = points[3];
- perpx = -(p1y - p2y);
- perpy = p1x - p2x;
- dist = Math.sqrt(Math.abs(perpx * perpx + perpy * perpy));
- perpx = perpx / dist;
- perpy = perpy / dist;
- perpx = perpx * width;
- perpy = perpy * width;
- verts.push(p1x - perpx);
- verts.push(p1y - perpy);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- verts.push(p1x + perpx);
- verts.push(p1y + perpy);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- var _g12 = 1;
- var _g3 = length - 1;
- while(_g12 < _g3) {
- var i2 = _g12++;
- p1x = points[(i2 - 1) * 2];
- p1y = points[(i2 - 1) * 2 + 1];
- p2x = points[i2 * 2];
- p2y = points[i2 * 2 + 1];
- p3x = points[(i2 + 1) * 2];
- p3y = points[(i2 + 1) * 2 + 1];
- perpx = -(p1y - p2y);
- perpy = p1x - p2x;
- dist = Math.sqrt(Math.abs(perpx * perpx + perpy * perpy));
- perpx = perpx / dist;
- perpy = perpy / dist;
- perpx = perpx * width;
- perpy = perpy * width;
- perp2x = -(p2y - p3y);
- perp2y = p2x - p3x;
- dist = Math.sqrt(Math.abs(perp2x * perp2x + perp2y * perp2y));
- perp2x = perp2x / dist;
- perp2y = perp2y / dist;
- perp2x = perp2x * width;
- perp2y = perp2y * width;
- a1 = -perpy + p1y - (-perpy + p2y);
- b1 = -perpx + p2x - (-perpx + p1x);
- c1 = (-perpx + p1x) * (-perpy + p2y) - (-perpx + p2x) * (-perpy + p1y);
- a2 = -perp2y + p3y - (-perp2y + p2y);
- b2 = -perp2x + p2x - (-perp2x + p3x);
- c2 = (-perp2x + p3x) * (-perp2y + p2y) - (-perp2x + p2x) * (-perp2y + p3y);
- denom = a1 * b2 - a2 * b1;
- if(Math.abs(denom) < 0.1) {
- denom += 10.1;
- verts.push(p2x - perpx);
- verts.push(p2y - perpy);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- verts.push(p2x + perpx);
- verts.push(p2y + perpy);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- continue;
- }
- px = (b1 * c2 - b2 * c1) / denom;
- py = (a2 * c1 - a1 * c2) / denom;
- pdist = (px - p2x) * (px - p2x) + (py - p2y) + (py - p2y);
- if(pdist > 19600) {
- perp3x = perpx - perp2x;
- perp3y = perpy - perp2y;
- dist = Math.sqrt(Math.abs(perp3x * perp3x + perp3y * perp3y));
- perp3x = perp3x / dist;
- perp3y = perp3y / dist;
- perp3x = perp3x * width;
- perp3y = perp3y * width;
- verts.push(p2x - perp3x);
- verts.push(p2y - perp3y);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- verts.push(p2x + perp3x);
- verts.push(p2y + perp3y);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- verts.push(p2x - perp3x);
- verts.push(p2y - perp3y);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- indexCount++;
- } else {
- verts.push(px);
- verts.push(py);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- verts.push(p2x - (px - p2x));
- verts.push(p2y - (py - p2y));
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- }
- }
- p1x = points[(length - 2) * 2];
- p1y = points[(length - 2) * 2 + 1];
- p2x = points[(length - 1) * 2];
- p2y = points[(length - 1) * 2 + 1];
- perpx = -(p1y - p2y);
- perpy = p1x - p2x;
- dist = Math.sqrt(Math.abs(perpx * perpx + perpy * perpy));
- if(!Math.isFinite(dist)) null;
- perpx = perpx / dist;
- perpy = perpy / dist;
- perpx = perpx * width;
- perpy = perpy * width;
- verts.push(p2x - perpx);
- verts.push(p2y - perpy);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- verts.push(p2x + perpx);
- verts.push(p2y + perpy);
- verts.push(r);
- verts.push(g);
- verts.push(b);
- verts.push(alpha);
- indices.push(indexStart);
- var _g4 = 0;
- while(_g4 < indexCount) {
- var i3 = _g4++;
- indices.push(indexStart++);
- }
- indices.push(indexStart - 1);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildPoly = function(path,glStack) {
- if(path.points.length < 6) return;
- var points = path.points;
- var l = points.length;
- var sx = points[0];
- var sy = points[1];
- var ex = points[l - 2];
- var ey = points[l - 1];
- if(sx != ex || sy != ey) {
- points.push(sx);
- points.push(sy);
- }
- var length = points.length / 2 | 0;
- var bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- var verts = bucket.verts;
- var indices = bucket.indices;
- if(bucket != null) {
- var triangles = openfl._internal.renderer.opengl.utils.PolyK.triangulate(points);
- var vertPos = verts.length / 2;
- var i = 0;
- while(i < triangles.length) {
- indices.push(triangles[i] + vertPos | 0);
- indices.push(triangles[i] + vertPos | 0);
- indices.push(triangles[i + 1] + vertPos | 0);
- indices.push(triangles[i + 2] + vertPos | 0);
- indices.push(triangles[i + 2] + vertPos | 0);
- i += 3;
- }
- var _g = 0;
- while(_g < length) {
- var i1 = _g++;
- verts.push(points[i1 * 2]);
- verts.push(points[i1 * 2 + 1]);
- }
- }
- if(path.line.width > 0) openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildLine(path,bucket.line);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildRectangle = function(path,glStack,localCoords) {
- if(localCoords == null) localCoords = false;
- var rectData = path.points;
- var x = rectData[0];
- var y = rectData[1];
- var width = rectData[2];
- var height = rectData[3];
- if(localCoords) {
- x -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- y -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- }
- var bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- if(bucket != null) {
- var verts = bucket.verts;
- var indices = bucket.indices;
- var vertPos = verts.length / 2 | 0;
- verts.push(x);
- verts.push(y);
- verts.push(x + width);
- verts.push(y);
- verts.push(x);
- verts.push(y + height);
- verts.push(x + width);
- verts.push(y + height);
- indices.push(vertPos);
- indices.push(vertPos);
- indices.push(vertPos + 1);
- indices.push(vertPos + 2);
- indices.push(vertPos + 3);
- indices.push(vertPos + 3);
- }
- if(path.line.width > 0) {
- var tempPoints = path.points;
- path.points = [x,y,x + width,y,x + width,y + height,x,y + height,x,y];
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildLine(path,bucket.line);
- path.points = tempPoints;
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildRoundedRectangle = function(path,glStack,localCoords) {
- if(localCoords == null) localCoords = false;
- var points = path.points.slice();
- var x = points[0];
- var y = points[1];
- var width = points[2];
- var height = points[3];
- var radius = points[4];
- if(localCoords) {
- x -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- y -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- }
- var recPoints = [];
- recPoints.push(x);
- recPoints.push(y + radius);
- recPoints = recPoints.concat(openfl._internal.renderer.opengl.utils.GraphicsRenderer.quadraticBezierCurve(x,y + height - radius,x,y + height,x + radius,y + height));
- recPoints = recPoints.concat(openfl._internal.renderer.opengl.utils.GraphicsRenderer.quadraticBezierCurve(x + width - radius,y + height,x + width,y + height,x + width,y + height - radius));
- recPoints = recPoints.concat(openfl._internal.renderer.opengl.utils.GraphicsRenderer.quadraticBezierCurve(x + width,y + radius,x + width,y,x + width - radius,y));
- recPoints = recPoints.concat(openfl._internal.renderer.opengl.utils.GraphicsRenderer.quadraticBezierCurve(x + radius,y,x,y,x,y + radius));
- var bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- if(bucket != null) {
- var verts = bucket.verts;
- var indices = bucket.indices;
- var vecPos = verts.length / 2;
- var triangles = openfl._internal.renderer.opengl.utils.PolyK.triangulate(recPoints);
- var i = 0;
- while(i < triangles.length) {
- indices.push(triangles[i] + vecPos | 0);
- indices.push(triangles[i] + vecPos | 0);
- indices.push(triangles[i + 1] + vecPos | 0);
- indices.push(triangles[i + 2] + vecPos | 0);
- indices.push(triangles[i + 2] + vecPos | 0);
- i += 3;
- }
- i = 0;
- while(i < recPoints.length) {
- verts.push(recPoints[i]);
- verts.push(recPoints[++i]);
- i++;
- }
- }
- if(path.line.width > 0) {
- var tempPoints = path.points;
- path.points = recPoints;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildLine(path,bucket.line);
- path.points = tempPoints;
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildDrawTriangles = function(path,object,glStack,localCoords) {
- if(localCoords == null) localCoords = false;
- var args = path.type.slice(2);
- var vertices = args[0];
- var indices = args[1];
- var uvtData = args[2];
- var culling = args[3];
- var colors = args[4];
- var blendMode = args[5];
- var a;
- var b;
- var c;
- var d;
- var tx;
- var ty;
- if(localCoords) {
- a = 1.0;
- b = 0.0;
- c = 0.0;
- d = 1.0;
- tx = 0.0;
- ty = 0.0;
- } else {
- a = object.__worldTransform.a;
- b = object.__worldTransform.b;
- c = object.__worldTransform.c;
- d = object.__worldTransform.d;
- tx = object.__worldTransform.tx;
- ty = object.__worldTransform.ty;
- }
- var hasColors = colors != null && colors.length > 0;
- var bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- bucket.rawVerts = true;
- bucket.glLength = indices.length;
- bucket.stride = 8;
- var vertsLength = bucket.glLength * bucket.stride;
- var verts;
- if(bucket.glVerts == null || bucket.glVerts.length < vertsLength) {
- verts = new Float32Array(vertsLength);
- bucket.glVerts = verts;
- } else verts = bucket.glVerts;
- var v0 = 0;
- var v1 = 0;
- var v2 = 0;
- var i0 = 0;
- var i1 = 0;
- var i2 = 0;
- var x0 = 0.0;
- var y0 = 0.0;
- var x1 = 0.0;
- var y1 = 0.0;
- var x2 = 0.0;
- var y2 = 0.0;
- var idx = 0;
- var color = [1.,1.,1.,1.];
- var ctmp = color;
- var _g1 = 0;
- var _g = indices.length / 3 | 0;
- while(_g1 < _g) {
- var i = _g1++;
- i0 = indices.data[i * 3];
- i1 = indices.data[i * 3 + 1];
- i2 = indices.data[i * 3 + 2];
- v0 = i0 * 2;
- v1 = i1 * 2;
- v2 = i2 * 2;
- x0 = vertices.data[v0];
- y0 = vertices.data[v0 + 1];
- x1 = vertices.data[v1];
- y1 = vertices.data[v1 + 1];
- x2 = vertices.data[v2];
- y2 = vertices.data[v2 + 1];
- if(localCoords) {
- x0 -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- y0 -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- x1 -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- y1 -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- x2 -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.x;
- y2 -= openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.y;
- }
- switch(culling[1]) {
- case 2:
- if(!((x1 - x0) * (y2 - y0) - (y1 - y0) * (x2 - x0) < 0)) continue;
- break;
- case 0:
- if((x1 - x0) * (y2 - y0) - (y1 - y0) * (x2 - x0) < 0) continue;
- break;
- default:
- }
- verts[idx++] = a * x0 + c * y0 + tx;
- verts[idx++] = b * x0 + d * y0 + ty;
- verts[idx++] = uvtData.data[v0];
- verts[idx++] = uvtData.data[v0 + 1];
- if(hasColors) {
- ctmp = openfl._internal.renderer.opengl.utils.GraphicsRenderer.hex2rgba(colors.data[i0]);
- verts[idx++] = ctmp[0];
- verts[idx++] = ctmp[1];
- verts[idx++] = ctmp[2];
- verts[idx++] = ctmp[3];
- } else {
- verts[idx++] = color[0];
- verts[idx++] = color[1];
- verts[idx++] = color[2];
- verts[idx++] = color[3];
- }
- verts[idx++] = a * x1 + c * y1 + tx;
- verts[idx++] = b * x1 + d * y1 + ty;
- verts[idx++] = uvtData.data[v1];
- verts[idx++] = uvtData.data[v1 + 1];
- if(hasColors) {
- ctmp = openfl._internal.renderer.opengl.utils.GraphicsRenderer.hex2rgba(colors.data[i1]);
- verts[idx++] = ctmp[0];
- verts[idx++] = ctmp[1];
- verts[idx++] = ctmp[2];
- verts[idx++] = ctmp[3];
- } else {
- verts[idx++] = color[0];
- verts[idx++] = color[1];
- verts[idx++] = color[2];
- verts[idx++] = color[3];
- }
- verts[idx++] = a * x2 + c * y2 + tx;
- verts[idx++] = b * x2 + d * y2 + ty;
- verts[idx++] = uvtData.data[v2];
- verts[idx++] = uvtData.data[v2 + 1];
- if(hasColors) {
- ctmp = openfl._internal.renderer.opengl.utils.GraphicsRenderer.hex2rgba(colors.data[i2]);
- verts[idx++] = ctmp[0];
- verts[idx++] = ctmp[1];
- verts[idx++] = ctmp[2];
- verts[idx++] = ctmp[3];
- } else {
- verts[idx++] = color[0];
- verts[idx++] = color[1];
- verts[idx++] = color[2];
- verts[idx++] = color[3];
- }
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildDrawTiles = function(path,glStack) {
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.quadraticBezierCurve = function(fromX,fromY,cpX,cpY,toX,toY) {
- var xa;
- var ya;
- var xb;
- var yb;
- var x;
- var y;
- var n = 20;
- var points = [];
- var getPt = function(n1,n2,perc) {
- var diff = n2 - n1;
- return n1 + diff * perc;
- };
- var j = 0.0;
- var _g1 = 0;
- var _g = n + 1;
- while(_g1 < _g) {
- var i = _g1++;
- j = i / n;
- xa = getPt(fromX,cpX,j);
- ya = getPt(fromY,cpY,j);
- xb = getPt(cpX,toX,j);
- yb = getPt(cpY,toY,j);
- x = getPt(xa,xb,j);
- y = getPt(ya,yb,j);
- points.push(x);
- points.push(y);
- }
- return points;
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.render = function(object,renderSession) {
- var graphics = object.__graphics;
- var spritebatch = renderSession.spriteBatch;
- var dirty = graphics.__dirty;
- if(graphics.__commands.length <= 0) return;
- if(dirty) openfl._internal.renderer.opengl.utils.GraphicsRenderer.updateGraphics(object,renderSession.gl,object.cacheAsBitmap);
- if(object.cacheAsBitmap) {
- if(dirty) {
- var gl = renderSession.gl;
- var bounds = graphics.__bounds;
- var texture = graphics.__cachedTexture;
- var w = Math.floor(bounds.width + 0.5);
- var h = Math.floor(bounds.height + 0.5);
- if(texture == null) {
- texture = new openfl._internal.renderer.opengl.utils.FilterTexture(gl,w,h,false);
- graphics.__cachedTexture = texture;
- }
- texture.resize(w,h);
- gl.bindFramebuffer(gl.FRAMEBUFFER,texture.frameBuffer);
- gl.viewport(0,0,w,h);
- texture.clear();
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderGraphics(object,renderSession,new openfl.geom.Point(w / 2,-h / 2),true);
- gl.bindFramebuffer(gl.FRAMEBUFFER,null);
- gl.viewport(0,0,renderSession.renderer.width,renderSession.renderer.height);
- }
- if(!spritebatch.drawing) spritebatch.begin(renderSession);
- spritebatch.renderCachedGraphics(object);
- } else openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderGraphics(object,renderSession,renderSession.projection,false);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderGraphics = function(object,renderSession,projection,localCoords) {
- if(localCoords == null) localCoords = false;
- var graphics = object.__graphics;
- var gl = renderSession.gl;
- var offset = renderSession.offset;
- var glStack = graphics.__glStack[openfl._internal.renderer.opengl.GLRenderer.glContextId];
- var bucket;
- var translationMatrix;
- if(localCoords) translationMatrix = openfl.geom.Matrix.__identity; else translationMatrix = object.__worldTransform;
- var batchDrawing = renderSession.spriteBatch.drawing;
- var _g1 = 0;
- var _g = glStack.buckets.length;
- while(_g1 < _g) {
- var i = _g1++;
- batchDrawing = renderSession.spriteBatch.drawing;
- bucket = glStack.buckets[i];
- var _g2 = bucket.mode;
- switch(_g2[1]) {
- case 1:case 2:
- if(batchDrawing && !localCoords) renderSession.spriteBatch.end();
- renderSession.stencilManager.pushBucket(bucket,renderSession,projection,translationMatrix.toArray(true));
- var shader = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareShader(bucket,renderSession,object,projection,translationMatrix.toArray(false));
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderFill(bucket,shader,renderSession);
- renderSession.stencilManager.popBucket(object,bucket,renderSession);
- break;
- case 5:
- if(batchDrawing && !localCoords) renderSession.spriteBatch.end();
- var shader1 = openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareShader(bucket,renderSession,object,projection,null);
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderDrawTriangles(bucket,shader1,renderSession);
- break;
- case 6:
- if(!batchDrawing) renderSession.spriteBatch.begin(renderSession);
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderDrawTiles(object,bucket,renderSession);
- break;
- default:
- }
- var _g21 = 0;
- var _g3 = bucket.data;
- while(_g21 < _g3.length) {
- var data = _g3[_g21];
- ++_g21;
- if(data.line != null && data.line.verts.length > 0) {
- batchDrawing = renderSession.spriteBatch.drawing;
- if(batchDrawing && !localCoords) renderSession.spriteBatch.end();
- var shader2 = renderSession.shaderManager.primitiveShader;
- renderSession.shaderManager.setShader(shader2);
- gl.uniformMatrix3fv(shader2.translationMatrix,false,translationMatrix.toArray(true));
- gl.uniform2f(shader2.projectionVector,projection.x,-projection.y);
- gl.uniform2f(shader2.offsetVector,-offset.x,-offset.y);
- gl.uniform1f(shader2.alpha,object.__worldAlpha);
- gl.bindBuffer(gl.ARRAY_BUFFER,data.line.vertsBuffer);
- gl.vertexAttribPointer(shader2.aVertexPosition,2,gl.FLOAT,false,24,0);
- gl.vertexAttribPointer(shader2.colorAttribute,4,gl.FLOAT,false,24,8);
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,data.line.indexBuffer);
- gl.drawElements(gl.TRIANGLE_STRIP,data.line.indices.length,gl.UNSIGNED_SHORT,0);
- }
- }
- batchDrawing = renderSession.spriteBatch.drawing;
- if(!batchDrawing && !localCoords) renderSession.spriteBatch.begin(renderSession);
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.updateGraphics = function(object,gl,localCoords) {
- if(localCoords == null) localCoords = false;
- var graphics = object.__graphics;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectPosition.setTo(object.get_x(),object.get_y());
- if(graphics.__bounds != null) openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds.copyFrom(graphics.__bounds);
- var glStack = null;
- if(graphics.__dirty) glStack = openfl._internal.renderer.opengl.utils.DrawPath.getStack(graphics,gl);
- graphics.__dirty = false;
- var _g = 0;
- var _g1 = glStack.buckets;
- while(_g < _g1.length) {
- var data = _g1[_g];
- ++_g;
- data.reset();
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.bucketPool.push(data);
- }
- glStack.reset();
- var _g11 = glStack.lastIndex;
- var _g2 = graphics.__drawPaths.length;
- while(_g11 < _g2) {
- var i = _g11++;
- var path = graphics.__drawPaths[i];
- {
- var _g21 = path.type;
- switch(_g21[1]) {
- case 0:
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildComplexPoly(path,glStack,localCoords);
- break;
- case 1:
- var rounded = _g21[2];
- if(rounded) openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildRoundedRectangle(path,glStack,localCoords); else openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildRectangle(path,glStack,localCoords);
- break;
- case 2:case 3:
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildCircle(path,glStack,localCoords);
- break;
- case 4:
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.buildDrawTriangles(path,object,glStack,localCoords);
- break;
- case 5:
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket(path,glStack);
- break;
- }
- }
- glStack.lastIndex++;
- }
- glStack.upload();
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareBucket = function(path,glStack) {
- var bucket = null;
- {
- var _g = path.fill;
- switch(_g[1]) {
- case 1:
- var a = _g[3];
- var c = _g[2];
- bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.switchBucket(path.fillIndex,glStack,openfl._internal.renderer.opengl.utils.BucketMode.Fill);
- if(c == null) bucket.color = [0,0,0]; else bucket.color = [(c >> 16 & 255) / 255,(c >> 8 & 255) / 255,(c & 255) / 255];
- bucket.alpha = a;
- bucket.uploadTileBuffer = true;
- break;
- case 2:
- var s = _g[5];
- var r = _g[4];
- var m = _g[3];
- var b = _g[2];
- bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.switchBucket(path.fillIndex,glStack,openfl._internal.renderer.opengl.utils.BucketMode.PatternFill);
- bucket.bitmap = b;
- bucket.textureRepeat = r;
- bucket.textureSmooth = s;
- bucket.texture = b.getTexture(glStack.gl);
- bucket.uploadTileBuffer = true;
- var tMatrix = bucket.textureMatrix;
- tMatrix.identity();
- var pMatrix;
- if(m == null) pMatrix = new openfl.geom.Matrix(); else pMatrix = new openfl.geom.Matrix(m.a,m.b,m.c,m.d,m.tx,m.ty);
- pMatrix = pMatrix.invert();
- pMatrix.__translateTransformed(new openfl.geom.Point(-openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectPosition.x,-openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectPosition.y));
- var tx = pMatrix.tx / b.width;
- var ty = pMatrix.ty / b.height;
- tMatrix.concat(pMatrix);
- bucket.textureTL.x = tx;
- bucket.textureTL.y = ty;
- bucket.textureBR.x = tx + 1;
- bucket.textureBR.y = ty + 1;
- tMatrix.scale(1 / b.width,1 / b.height);
- bucket.textureMatrix = tMatrix;
- break;
- default:
- bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.switchBucket(path.fillIndex,glStack,openfl._internal.renderer.opengl.utils.BucketMode.Line);
- bucket.uploadTileBuffer = false;
- }
- }
- {
- var _g1 = path.type;
- switch(_g1[1]) {
- case 4:
- bucket.mode = openfl._internal.renderer.opengl.utils.BucketMode.DrawTriangles;
- bucket.uploadTileBuffer = false;
- break;
- case 5:
- bucket.mode = openfl._internal.renderer.opengl.utils.BucketMode.DrawTiles;
- bucket.uploadTileBuffer = false;
- break;
- default:
- }
- }
- bucket.graphicType = path.type;
- var bucketData = bucket.getData();
- return bucketData;
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.getBucket = function(glStack,mode) {
- var b = openfl._internal.renderer.opengl.utils.GraphicsRenderer.bucketPool.pop();
- if(b == null) b = new openfl._internal.renderer.opengl.utils.GLBucket(glStack.gl);
- b.mode = mode;
- glStack.buckets.push(b);
- return b;
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.switchBucket = function(fillIndex,glStack,mode) {
- var bucket;
- if(glStack.buckets.length == 0) bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.getBucket(glStack,mode); else {
- bucket = glStack.buckets[glStack.buckets.length - 1];
- if(bucket.fillIndex != fillIndex) bucket = openfl._internal.renderer.opengl.utils.GraphicsRenderer.getBucket(glStack,mode);
- }
- bucket.dirty = true;
- bucket.fillIndex = fillIndex;
- return bucket;
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.prepareShader = function(bucket,renderSession,object,projection,translationMatrix) {
- var gl = renderSession.gl;
- var offset = renderSession.offset;
- var shader = null;
- var _g = bucket.mode;
- switch(_g[1]) {
- case 1:
- shader = renderSession.shaderManager.fillShader;
- break;
- case 2:
- shader = renderSession.shaderManager.patternFillShader;
- break;
- case 5:
- shader = renderSession.shaderManager.drawTrianglesShader;
- break;
- default:
- shader = null;
- }
- if(shader == null) return null;
- var newShader = renderSession.shaderManager.setShader(shader);
- gl.uniform2f(shader.projectionVector,projection.x,-projection.y);
- gl.uniform2f(shader.offsetVector,-offset.x,-offset.y);
- gl.uniform1f(shader.alpha,object.__worldAlpha * bucket.alpha);
- var _g1 = bucket.mode;
- switch(_g1[1]) {
- case 1:
- gl.uniformMatrix3fv(shader.translationMatrix,false,translationMatrix);
- gl.uniform3fv(shader.color,new Float32Array(bucket.color));
- break;
- case 2:
- gl.uniformMatrix3fv(shader.translationMatrix,false,translationMatrix);
- gl.uniform1i(shader.sampler,0);
- gl.uniform2f(shader.patternTL,bucket.textureTL.x,bucket.textureTL.y);
- gl.uniform2f(shader.patternBR,bucket.textureBR.x,bucket.textureBR.y);
- gl.uniformMatrix3fv(shader.patternMatrix,false,bucket.textureMatrix.toArray(false));
- break;
- case 5:
- if(bucket.texture != null) {
- gl.uniform1i(shader.useTexture,1);
- gl.uniform1i(shader.sampler,0);
- } else {
- gl.uniform1i(shader.useTexture,0);
- gl.uniform3fv(shader.color,new Float32Array(bucket.color));
- }
- break;
- default:
- }
- return shader;
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderFill = function(bucket,shader,renderSession) {
- var gl = renderSession.gl;
- if(bucket.mode == openfl._internal.renderer.opengl.utils.BucketMode.PatternFill && bucket.texture != null) openfl._internal.renderer.opengl.utils.GraphicsRenderer.bindTexture(gl,bucket);
- gl.bindBuffer(gl.ARRAY_BUFFER,bucket.tileBuffer);
- gl.vertexAttribPointer(shader.aVertexPosition,4,gl.SHORT,false,0,0);
- gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderDrawTriangles = function(bucket,shader,renderSession) {
- var gl = renderSession.gl;
- var _g = 0;
- var _g1 = bucket.data;
- while(_g < _g1.length) {
- var data = _g1[_g];
- ++_g;
- if(data.destroyed) continue;
- if(bucket.texture == null) {
- } else openfl._internal.renderer.opengl.utils.GraphicsRenderer.bindTexture(gl,bucket);
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.bindDrawTrianglesBuffer(gl,shader,data);
- gl.drawArrays(gl.TRIANGLES,data.glStart,data.glLength);
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.renderDrawTiles = function(object,bucket,renderSession) {
- var args = bucket.graphicType.slice(2);
- renderSession.spriteBatch.renderTiles(object,args[0],args[1],args[2],args[3],args[4]);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.bindDrawTrianglesBuffer = function(gl,shader,data) {
- gl.bindBuffer(gl.ARRAY_BUFFER,data.vertsBuffer);
- var stride = data.stride * 4;
- gl.vertexAttribPointer(shader.aVertexPosition,2,gl.FLOAT,false,stride,0);
- gl.vertexAttribPointer(shader.aTextureCoord,2,gl.FLOAT,false,stride,8);
- gl.vertexAttribPointer(shader.colorAttribute,4,gl.FLOAT,false,stride,16);
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.bindTexture = function(gl,bucket) {
- gl.bindTexture(gl.TEXTURE_2D,bucket.texture);
- if(bucket.textureRepeat && bucket.bitmap.__image.get_powerOfTwo()) {
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.REPEAT);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.REPEAT);
- } else {
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);
- }
- if(bucket.textureSmooth) {
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);
- } else {
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);
- gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST);
- }
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.isCCW = function(x1,y1,x2,y2,x3,y3) {
- return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0;
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.hex2rgb = function(hex) {
- if(hex == null) return [0,0,0]; else return [(hex >> 16 & 255) / 255,(hex >> 8 & 255) / 255,(hex & 255) / 255];
- };
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.hex2rgba = function(hex) {
- if(hex == null) return [1,1,1,1]; else return [(hex >> 16 & 255) / 255,(hex >> 8 & 255) / 255,(hex & 255) / 255,(hex >> 24 & 255) / 255];
- };
- openfl._internal.renderer.opengl.utils.GLStack = function(gl) {
- this.lastIndex = 0;
- this.gl = gl;
- this.buckets = [];
- this.lastIndex = 0;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.GLStack"] = openfl._internal.renderer.opengl.utils.GLStack;
- openfl._internal.renderer.opengl.utils.GLStack.__name__ = ["openfl","_internal","renderer","opengl","utils","GLStack"];
- openfl._internal.renderer.opengl.utils.GLStack.prototype = {
- reset: function() {
- this.buckets = [];
- this.lastIndex = 0;
- }
- ,upload: function() {
- var _g = 0;
- var _g1 = this.buckets;
- while(_g < _g1.length) {
- var bucket = _g1[_g];
- ++_g;
- if(bucket.dirty) bucket.upload();
- }
- }
- ,__class__: openfl._internal.renderer.opengl.utils.GLStack
- };
- openfl._internal.renderer.opengl.utils.GLBucket = function(gl) {
- this.uploadTileBuffer = true;
- this.textureSmooth = true;
- this.textureRepeat = false;
- this.data = [];
- this.fillIndex = 0;
- this.gl = gl;
- this.color = [0,0,0];
- this.lastIndex = 0;
- this.alpha = 1;
- this.dirty = true;
- this.mode = openfl._internal.renderer.opengl.utils.BucketMode.Fill;
- this.textureMatrix = new openfl.geom.Matrix();
- this.textureTL = new openfl.geom.Point();
- this.textureBR = new openfl.geom.Point(1,1);
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.GLBucket"] = openfl._internal.renderer.opengl.utils.GLBucket;
- openfl._internal.renderer.opengl.utils.GLBucket.__name__ = ["openfl","_internal","renderer","opengl","utils","GLBucket"];
- openfl._internal.renderer.opengl.utils.GLBucket.prototype = {
- getData: function() {
- var result = null;
- var remove = false;
- var _g = 0;
- var _g1 = this.data;
- while(_g < _g1.length) {
- var d = _g1[_g];
- ++_g;
- if(d.destroyed) {
- result = d;
- remove = true;
- break;
- }
- }
- if(result == null) result = new openfl._internal.renderer.opengl.utils.GLBucketData(this.gl);
- result.destroyed = false;
- result.parent = this;
- if(remove) HxOverrides.remove(this.data,result);
- this.data.push(result);
- return result;
- }
- ,reset: function() {
- var _g = 0;
- var _g1 = this.data;
- while(_g < _g1.length) {
- var d = _g1[_g];
- ++_g;
- d.destroy();
- }
- this.fillIndex = 0;
- this.uploadTileBuffer = true;
- this.graphicType = openfl._internal.renderer.opengl.utils.GraphicType.Polygon;
- }
- ,upload: function() {
- if(this.uploadTileBuffer) {
- if(this.tileBuffer == null) {
- this.tileBuffer = this.gl.createBuffer();
- this.tile = [0,0,0,0,4096,0,1,0,0,4096,0,1,4096,4096,1,1];
- this.glTile = new Int16Array(this.tile);
- }
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.tileBuffer);
- this.gl.bufferData(this.gl.ARRAY_BUFFER,this.glTile,this.gl.STATIC_DRAW);
- this.uploadTileBuffer = false;
- }
- var _g = 0;
- var _g1 = this.data;
- while(_g < _g1.length) {
- var d = _g1[_g];
- ++_g;
- if(!d.destroyed) d.upload();
- }
- this.dirty = false;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.GLBucket
- };
- openfl._internal.renderer.opengl.utils.GLBucketData = function(gl,initLine) {
- if(initLine == null) initLine = true;
- this.destroyed = false;
- this.rawIndices = false;
- this.stride = 0;
- this.rawVerts = false;
- this.lastVertsSize = 0;
- this.glStart = 0;
- this.glLength = 0;
- this.gl = gl;
- this.drawMode = gl.TRIANGLE_STRIP;
- this.verts = [];
- this.vertsBuffer = gl.createBuffer();
- this.indices = [];
- this.indexBuffer = gl.createBuffer();
- if(initLine) this.line = new openfl._internal.renderer.opengl.utils.GLBucketData(gl,false);
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.GLBucketData"] = openfl._internal.renderer.opengl.utils.GLBucketData;
- openfl._internal.renderer.opengl.utils.GLBucketData.__name__ = ["openfl","_internal","renderer","opengl","utils","GLBucketData"];
- openfl._internal.renderer.opengl.utils.GLBucketData.prototype = {
- destroy: function() {
- this.destroyed = true;
- this.verts = [];
- this.indices = [];
- this.glLength = 0;
- this.glStart = 0;
- this.stride = 0;
- this.rawVerts = false;
- this.rawIndices = false;
- if(this.line != null) this.line.destroy();
- }
- ,upload: function() {
- if(this.rawVerts && this.glVerts != null && this.glVerts.length > 0 || this.verts.length > 0) {
- if(!this.rawVerts) this.glVerts = new Float32Array(this.verts);
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.vertsBuffer);
- if(this.glVerts.length <= this.lastVertsSize) {
- var end = this.glLength * 4 * this.stride;
- if(this.glLength > 0 && this.lastVertsSize > end) {
- var view = this.glVerts.subarray(0,end);
- this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,view);
- view = null;
- } else this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,this.glVerts);
- } else {
- this.gl.bufferData(this.gl.ARRAY_BUFFER,this.glVerts,this.gl.STREAM_DRAW);
- this.lastVertsSize = this.glVerts.length;
- }
- }
- if(this.glLength == 0 && (this.rawIndices && this.glIndices != null && this.glIndices.length > 0 || this.indices.length > 0)) {
- if(!this.rawIndices) this.glIndices = new Uint16Array(this.indices);
- this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer);
- this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER,this.glIndices,this.gl.STREAM_DRAW);
- }
- if(this.line != null) this.line.upload();
- }
- ,__class__: openfl._internal.renderer.opengl.utils.GLBucketData
- };
- openfl._internal.renderer.opengl.utils.BucketMode = $hxClasses["openfl._internal.renderer.opengl.utils.BucketMode"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","BucketMode"], __constructs__ : ["None","Fill","PatternFill","Line","PatternLine","DrawTriangles","DrawTiles"] };
- openfl._internal.renderer.opengl.utils.BucketMode.None = ["None",0];
- openfl._internal.renderer.opengl.utils.BucketMode.None.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.None.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.BucketMode.Fill = ["Fill",1];
- openfl._internal.renderer.opengl.utils.BucketMode.Fill.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.Fill.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.BucketMode.PatternFill = ["PatternFill",2];
- openfl._internal.renderer.opengl.utils.BucketMode.PatternFill.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.PatternFill.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.BucketMode.Line = ["Line",3];
- openfl._internal.renderer.opengl.utils.BucketMode.Line.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.Line.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.BucketMode.PatternLine = ["PatternLine",4];
- openfl._internal.renderer.opengl.utils.BucketMode.PatternLine.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.PatternLine.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.BucketMode.DrawTriangles = ["DrawTriangles",5];
- openfl._internal.renderer.opengl.utils.BucketMode.DrawTriangles.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.DrawTriangles.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.BucketMode.DrawTiles = ["DrawTiles",6];
- openfl._internal.renderer.opengl.utils.BucketMode.DrawTiles.toString = $estr;
- openfl._internal.renderer.opengl.utils.BucketMode.DrawTiles.__enum__ = openfl._internal.renderer.opengl.utils.BucketMode;
- openfl._internal.renderer.opengl.utils.GLGraphicsData = function(gl) {
- this.indices = [];
- this.data = [];
- this.lastIndex = 0;
- this.mode = 0;
- this.dirty = true;
- this.alpha = 1.0;
- this.tint = [1.0,1.0,1.0];
- this.gl = gl;
- this.dataBuffer = gl.createBuffer();
- this.indexBuffer = gl.createBuffer();
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.GLGraphicsData"] = openfl._internal.renderer.opengl.utils.GLGraphicsData;
- openfl._internal.renderer.opengl.utils.GLGraphicsData.__name__ = ["openfl","_internal","renderer","opengl","utils","GLGraphicsData"];
- openfl._internal.renderer.opengl.utils.GLGraphicsData.prototype = {
- reset: function() {
- this.data = [];
- this.indices = [];
- this.lastIndex = 0;
- }
- ,upload: function() {
- this.glData = new Float32Array(this.data);
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.dataBuffer);
- this.gl.bufferData(this.gl.ARRAY_BUFFER,this.glData,this.gl.STATIC_DRAW);
- this.glIndices = new Uint16Array(this.indices);
- this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer);
- this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER,this.glIndices,this.gl.STATIC_DRAW);
- this.dirty = false;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.GLGraphicsData
- };
- openfl._internal.renderer.opengl.utils.PolyK = function() { };
- $hxClasses["openfl._internal.renderer.opengl.utils.PolyK"] = openfl._internal.renderer.opengl.utils.PolyK;
- openfl._internal.renderer.opengl.utils.PolyK.__name__ = ["openfl","_internal","renderer","opengl","utils","PolyK"];
- openfl._internal.renderer.opengl.utils.PolyK.triangulate = function(p) {
- var sign = true;
- var n = p.length >> 1;
- if(n < 3) return [];
- var tgs = [];
- var avl;
- var _g = [];
- var _g1 = 0;
- while(_g1 < n) {
- var i = _g1++;
- _g.push(i);
- }
- avl = _g;
- var i1 = 0;
- var al = n;
- var earFound = false;
- while(al > 3) {
- var i0 = avl[i1 % al];
- var i11 = avl[(i1 + 1) % al];
- var i2 = avl[(i1 + 2) % al];
- var ax = p[2 * i0];
- var ay = p[2 * i0 + 1];
- var bx = p[2 * i11];
- var by = p[2 * i11 + 1];
- var cx = p[2 * i2];
- var cy = p[2 * i2 + 1];
- earFound = false;
- if(openfl._internal.renderer.opengl.utils.PolyK._convex(ax,ay,bx,by,cx,cy,sign)) {
- earFound = true;
- var _g11 = 0;
- while(_g11 < al) {
- var j = _g11++;
- var vi = avl[j];
- if(vi == i0 || vi == i11 || vi == i2) continue;
- if(openfl._internal.renderer.opengl.utils.PolyK._PointInTriangle(p[2 * vi],p[2 * vi + 1],ax,ay,bx,by,cx,cy)) {
- earFound = false;
- break;
- }
- }
- }
- if(earFound) {
- tgs.push(i0);
- tgs.push(i11);
- tgs.push(i2);
- avl.splice((i1 + 1) % al,1);
- al--;
- i1 = 0;
- } else if(i1++ > 3 * al) {
- if(sign) {
- tgs = [];
- var _g12 = [];
- var _g2 = 0;
- while(_g2 < n) {
- var k = _g2++;
- _g12.push(k);
- }
- avl = _g12;
- i1 = 0;
- al = n;
- sign = false;
- } else return [];
- }
- }
- tgs.push(avl[0]);
- tgs.push(avl[1]);
- tgs.push(avl[2]);
- return tgs;
- };
- openfl._internal.renderer.opengl.utils.PolyK._PointInTriangle = function(px,py,ax,ay,bx,by,cx,cy) {
- var v0x = cx - ax | 0;
- var v0y = cy - ay | 0;
- var v1x = bx - ax | 0;
- var v1y = by - ay | 0;
- var v2x = px - ax | 0;
- var v2y = py - ay | 0;
- var dot00 = v0x * v0x + v0y * v0y;
- var dot01 = v0x * v1x + v0y * v1y;
- var dot02 = v0x * v2x + v0y * v2y;
- var dot11 = v1x * v1x + v1y * v1y;
- var dot12 = v1x * v2x + v1y * v2y;
- var invDenom = 1 / (dot00 * dot11 - dot01 * dot01);
- var u = (dot11 * dot02 - dot01 * dot12) * invDenom;
- var v = (dot00 * dot12 - dot01 * dot02) * invDenom;
- return u >= 0 && v >= 0 && u + v < 1;
- };
- openfl._internal.renderer.opengl.utils.PolyK._convex = function(ax,ay,bx,by,cx,cy,sign) {
- return (ay - by) * (cx - bx) + (bx - ax) * (cy - by) >= 0 == sign;
- };
- openfl._internal.renderer.opengl.utils.GraphicType = $hxClasses["openfl._internal.renderer.opengl.utils.GraphicType"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","GraphicType"], __constructs__ : ["Polygon","Rectangle","Circle","Ellipse","DrawTriangles","DrawTiles"] };
- openfl._internal.renderer.opengl.utils.GraphicType.Polygon = ["Polygon",0];
- openfl._internal.renderer.opengl.utils.GraphicType.Polygon.toString = $estr;
- openfl._internal.renderer.opengl.utils.GraphicType.Polygon.__enum__ = openfl._internal.renderer.opengl.utils.GraphicType;
- openfl._internal.renderer.opengl.utils.GraphicType.Rectangle = function(rounded) { var $x = ["Rectangle",1,rounded]; $x.__enum__ = openfl._internal.renderer.opengl.utils.GraphicType; $x.toString = $estr; return $x; };
- openfl._internal.renderer.opengl.utils.GraphicType.Circle = ["Circle",2];
- openfl._internal.renderer.opengl.utils.GraphicType.Circle.toString = $estr;
- openfl._internal.renderer.opengl.utils.GraphicType.Circle.__enum__ = openfl._internal.renderer.opengl.utils.GraphicType;
- openfl._internal.renderer.opengl.utils.GraphicType.Ellipse = ["Ellipse",3];
- openfl._internal.renderer.opengl.utils.GraphicType.Ellipse.toString = $estr;
- openfl._internal.renderer.opengl.utils.GraphicType.Ellipse.__enum__ = openfl._internal.renderer.opengl.utils.GraphicType;
- openfl._internal.renderer.opengl.utils.GraphicType.DrawTriangles = function(vertices,indices,uvtData,culling,colors,blendMode) { var $x = ["DrawTriangles",4,vertices,indices,uvtData,culling,colors,blendMode]; $x.__enum__ = openfl._internal.renderer.opengl.utils.GraphicType; $x.toString = $estr; return $x; };
- openfl._internal.renderer.opengl.utils.GraphicType.DrawTiles = function(sheet,tileData,smooth,flags,count) { var $x = ["DrawTiles",5,sheet,tileData,smooth,flags,count]; $x.__enum__ = openfl._internal.renderer.opengl.utils.GraphicType; $x.toString = $estr; return $x; };
- openfl._internal.renderer.opengl.utils._GraphicsRenderer = {};
- openfl._internal.renderer.opengl.utils._GraphicsRenderer.RenderMode_Impl_ = function() { };
- $hxClasses["openfl._internal.renderer.opengl.utils._GraphicsRenderer.RenderMode_Impl_"] = openfl._internal.renderer.opengl.utils._GraphicsRenderer.RenderMode_Impl_;
- openfl._internal.renderer.opengl.utils._GraphicsRenderer.RenderMode_Impl_.__name__ = ["openfl","_internal","renderer","opengl","utils","_GraphicsRenderer","RenderMode_Impl_"];
- openfl._internal.renderer.opengl.utils.MaskManager = function(gl) {
- this.maskStack = [];
- this.maskPosition = 0;
- this.setContext(gl);
- this.reverse = false;
- this.count = 0;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.MaskManager"] = openfl._internal.renderer.opengl.utils.MaskManager;
- openfl._internal.renderer.opengl.utils.MaskManager.__name__ = ["openfl","_internal","renderer","opengl","utils","MaskManager"];
- openfl._internal.renderer.opengl.utils.MaskManager.prototype = {
- destroy: function() {
- this.maskStack = null;
- this.gl = null;
- }
- ,popMask: function(maskData,renderSession) {
- var gl = this.gl;
- renderSession.stencilManager.popStencil(maskData,maskData._webGL[openfl._internal.renderer.opengl.GLRenderer.glContextId].data[0],renderSession);
- }
- ,pushMask: function(maskData,renderSession) {
- var gl = renderSession.gl;
- if(maskData.dirty) openfl._internal.renderer.opengl.utils.GraphicsRenderer.updateGraphics(maskData,gl);
- if(maskData._webGL[openfl._internal.renderer.opengl.GLRenderer.glContextId].data.length == 0) return;
- renderSession.stencilManager.pushStencil(maskData,maskData._webGL[openfl._internal.renderer.opengl.GLRenderer.glContextId].data[0],renderSession);
- }
- ,setContext: function(gl) {
- this.gl = gl;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.MaskManager
- };
- openfl._internal.renderer.opengl.utils.ShaderManager = function(gl) {
- this.maxAttibs = 10;
- this.attribState = [];
- this.tempAttribState = [];
- this.shaderMap = [];
- var _g1 = 0;
- var _g = this.maxAttibs;
- while(_g1 < _g) {
- var i = _g1++;
- this.attribState[i] = false;
- }
- this.setContext(gl);
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.ShaderManager"] = openfl._internal.renderer.opengl.utils.ShaderManager;
- openfl._internal.renderer.opengl.utils.ShaderManager.__name__ = ["openfl","_internal","renderer","opengl","utils","ShaderManager"];
- openfl._internal.renderer.opengl.utils.ShaderManager.prototype = {
- destroy: function() {
- this.attribState = null;
- this.tempAttribState = null;
- this.primitiveShader.destroy();
- this.defaultShader.destroy();
- this.fastShader.destroy();
- this.stripShader.destroy();
- this.fillShader.destroy();
- this.patternFillShader.destroy();
- this.drawTrianglesShader.destroy();
- this.gl = null;
- }
- ,setAttribs: function(attribs) {
- var _g1 = 0;
- var _g = this.tempAttribState.length;
- while(_g1 < _g) {
- var i = _g1++;
- this.tempAttribState[i] = false;
- }
- var _g11 = 0;
- var _g2 = attribs.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- var attribId = attribs[i1];
- this.tempAttribState[attribId] = true;
- }
- var gl = this.gl;
- var _g12 = 0;
- var _g3 = this.attribState.length;
- while(_g12 < _g3) {
- var i2 = _g12++;
- if(this.attribState[i2] != this.tempAttribState[i2]) {
- this.attribState[i2] = this.tempAttribState[i2];
- if(this.tempAttribState[i2]) gl.enableVertexAttribArray(i2); else gl.disableVertexAttribArray(i2);
- }
- }
- }
- ,setContext: function(gl) {
- this.gl = gl;
- this.primitiveShader = new openfl._internal.renderer.opengl.shaders.PrimitiveShader(gl);
- this.complexPrimitiveShader = new openfl._internal.renderer.opengl.shaders.ComplexPrimitiveShader(gl);
- this.defaultShader = new openfl._internal.renderer.opengl.shaders.DefaultShader(gl);
- this.fastShader = new openfl._internal.renderer.opengl.shaders.FastShader(gl);
- this.stripShader = new openfl._internal.renderer.opengl.shaders.StripShader(gl);
- this.fillShader = new openfl._internal.renderer.opengl.shaders.FillShader(gl);
- this.patternFillShader = new openfl._internal.renderer.opengl.shaders.PatternFillShader(gl);
- this.drawTrianglesShader = new openfl._internal.renderer.opengl.shaders.DrawTrianglesShader(gl);
- this.setShader(this.defaultShader);
- }
- ,setShader: function(shader) {
- if(this._currentId == shader._UID) return false;
- this._currentId = shader._UID;
- this.currentShader = shader;
- this.gl.useProgram(shader.program);
- this.setAttribs(shader.attributes);
- return true;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.ShaderManager
- };
- openfl._internal.renderer.opengl.utils.SpriteBatch = function(gl) {
- this.states = [];
- this.vertSize = 6;
- this.size = Math.floor(Math.pow(2,16) / this.vertSize);
- var numVerts = this.size * 4 * this.vertSize;
- var numIndices = this.size * 6;
- this.vertices = new Float32Array(numVerts);
- this.indices = new Uint16Array(numIndices);
- this.lastIndexCount = 0;
- var i = 0;
- var j = 0;
- while(i < numIndices) {
- this.indices[i] = j;
- this.indices[i + 1] = j + 1;
- this.indices[i + 2] = j + 2;
- this.indices[i + 3] = j;
- this.indices[i + 4] = j + 2;
- this.indices[i + 5] = j + 3;
- i += 6;
- j += 4;
- }
- this.drawing = false;
- this.currentBatchSize = 0;
- this.currentBaseTexture = null;
- this.setContext(gl);
- this.dirty = true;
- this.currentState = new openfl._internal.renderer.opengl.utils._SpriteBatch.State();
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.SpriteBatch"] = openfl._internal.renderer.opengl.utils.SpriteBatch;
- openfl._internal.renderer.opengl.utils.SpriteBatch.__name__ = ["openfl","_internal","renderer","opengl","utils","SpriteBatch"];
- openfl._internal.renderer.opengl.utils.SpriteBatch.prototype = {
- begin: function(renderSession) {
- this.renderSession = renderSession;
- this.shader = renderSession.shaderManager.defaultShader;
- this.drawing = true;
- this.start();
- }
- ,destroy: function() {
- this.vertices = null;
- this.indices = null;
- this.gl.deleteBuffer(this.vertexBuffer);
- this.gl.deleteBuffer(this.indexBuffer);
- this.currentBaseTexture = null;
- this.gl = null;
- }
- ,end: function() {
- this.flush();
- this.drawing = false;
- }
- ,flush: function() {
- if(this.currentBatchSize == 0) return;
- var gl = this.gl;
- this.renderSession.shaderManager.setShader(this.renderSession.shaderManager.defaultShader);
- if(this.dirty) {
- this.dirty = false;
- gl.activeTexture(gl.TEXTURE0);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer);
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer);
- var projection = this.renderSession.projection;
- gl.uniform2f(this.shader.projectionVector,projection.x,projection.y);
- var stride = this.vertSize * 4;
- gl.vertexAttribPointer(this.shader.aVertexPosition,2,gl.FLOAT,false,stride,0);
- gl.vertexAttribPointer(this.shader.aTextureCoord,2,gl.FLOAT,false,stride,8);
- gl.vertexAttribPointer(this.shader.colorAttribute,2,gl.FLOAT,false,stride,16);
- }
- if(this.currentBatchSize > this.size * 0.5) gl.bufferSubData(gl.ARRAY_BUFFER,0,this.vertices); else {
- var view = this.vertices.subarray(0,this.currentBatchSize * 4 * this.vertSize);
- gl.bufferSubData(gl.ARRAY_BUFFER,0,view);
- }
- var nextState;
- var batchSize = 0;
- var start = 0;
- this.currentState.texture = null;
- this.currentState.textureSmooth = true;
- this.currentState.blendMode = this.renderSession.blendModeManager.currentBlendMode;
- var j = this.currentBatchSize;
- var _g = 0;
- while(_g < j) {
- var i = _g++;
- nextState = this.states[i];
- if(this.currentState.texture != nextState.texture || this.currentState.blendMode != nextState.blendMode) {
- this.renderBatch(this.currentState,batchSize,start);
- start = i;
- batchSize = 0;
- this.currentState.texture = nextState.texture;
- this.currentState.textureSmooth = nextState.textureSmooth;
- this.currentState.blendMode = nextState.blendMode;
- this.renderSession.blendModeManager.setBlendMode(this.currentState.blendMode);
- }
- batchSize++;
- }
- this.renderBatch(this.currentState,batchSize,start);
- this.currentBatchSize = 0;
- }
- ,render: function(sprite) {
- var bitmapData = sprite.bitmapData;
- var texture = bitmapData.getTexture(this.gl);
- if(bitmapData == null) return;
- if(this.currentBatchSize >= this.size) {
- this.flush();
- this.currentState.texture = texture;
- }
- var uvs = bitmapData.__uvData;
- if(uvs == null) return;
- var alpha = sprite.__worldAlpha;
- var tint = 16777215;
- var aX = 0;
- var aY = 0;
- var index = this.currentBatchSize * 4 * this.vertSize;
- this.fillVertices(index,aX,aY,bitmapData.width,bitmapData.height,tint,alpha,uvs,sprite.__worldTransform);
- this.setState(this.currentBatchSize,texture,null,sprite.blendMode);
- this.currentBatchSize++;
- }
- ,renderCachedGraphics: function(object) {
- var cachedTexture = object.__graphics.__cachedTexture;
- if(cachedTexture == null) return;
- if(this.currentBatchSize >= this.size) {
- this.flush();
- this.currentBaseTexture = cachedTexture.texture;
- }
- var alpha = object.__worldAlpha;
- var tint = 16777215;
- var aX = 0;
- var aY = 0;
- var uvs = new openfl.display.TextureUvs();
- uvs.x0 = 0;
- uvs.y0 = 1;
- uvs.x1 = 1;
- uvs.y1 = 1;
- uvs.x2 = 1;
- uvs.y2 = 0;
- uvs.x3 = 0;
- uvs.y3 = 0;
- var index = this.currentBatchSize * 4 * this.vertSize;
- var worldTransform = object.__worldTransform.clone();
- worldTransform.__translateTransformed(new openfl.geom.Point(object.__graphics.__bounds.x,object.__graphics.__bounds.y));
- this.fillVertices(index,aX,aY,cachedTexture.width,cachedTexture.height,tint,alpha,uvs,worldTransform);
- this.setState(this.currentBatchSize,cachedTexture.texture,null,object.blendMode);
- this.currentBatchSize++;
- }
- ,renderTiles: function(object,sheet,tileData,smooth,flags,count) {
- if(count == null) count = -1;
- if(flags == null) flags = 0;
- if(smooth == null) smooth = false;
- var texture = sheet.__bitmap.getTexture(this.gl);
- if(texture == null) return;
- var useScale = (flags & 1) > 0;
- var useRotation = (flags & 2) > 0;
- var useTransform = (flags & 16) > 0;
- var useRGB = (flags & 4) > 0;
- var useAlpha = (flags & 8) > 0;
- var useRect = (flags & 32) > 0;
- var useOrigin = (flags & 64) > 0;
- var blendMode;
- var _g = flags & 983040;
- switch(_g) {
- case 65536:
- blendMode = openfl.display.BlendMode.ADD;
- break;
- case 131072:
- blendMode = openfl.display.BlendMode.MULTIPLY;
- break;
- case 262144:
- blendMode = openfl.display.BlendMode.SCREEN;
- break;
- default:
- blendMode = openfl.display.BlendMode.NORMAL;
- }
- if(useTransform) {
- useScale = false;
- useRotation = false;
- }
- var scaleIndex = 0;
- var rotationIndex = 0;
- var rgbIndex = 0;
- var alphaIndex = 0;
- var transformIndex = 0;
- var numValues = 3;
- if(useRect) if(useOrigin) numValues = 8; else numValues = 6;
- if(useScale) {
- scaleIndex = numValues;
- numValues++;
- }
- if(useRotation) {
- rotationIndex = numValues;
- numValues++;
- }
- if(useTransform) {
- transformIndex = numValues;
- numValues += 4;
- }
- if(useRGB) {
- rgbIndex = numValues;
- numValues += 3;
- }
- if(useAlpha) {
- alphaIndex = numValues;
- numValues++;
- }
- var totalCount = tileData.length;
- if(count >= 0 && totalCount > count) totalCount = count;
- var itemCount = totalCount / numValues | 0;
- var iIndex = 0;
- var tileID = -1;
- var rect = sheet.__rectTile;
- var tileUV = sheet.__rectUV;
- var center = sheet.__point;
- var x = 0.0;
- var y = 0.0;
- var alpha = 1.0;
- var tint = 16777215;
- var scale = 1.0;
- var rotation = 0.0;
- var cosTheta = 1.0;
- var sinTheta = 0.0;
- var a = 0.0;
- var b = 0.0;
- var c = 0.0;
- var d = 0.0;
- var tx = 0.0;
- var ty = 0.0;
- var ox = 0.0;
- var oy = 0.0;
- var matrix = new openfl.geom.Matrix();
- var oMatrix = object.__worldTransform;
- var uvs = new openfl.display.TextureUvs();
- var bIndex = 0;
- while(iIndex < totalCount) {
- if(this.currentBatchSize >= this.size) {
- this.flush();
- this.currentBaseTexture = texture;
- }
- x = tileData[iIndex];
- y = tileData[iIndex + 1];
- if(useRect) {
- tileID = -1;
- rect.x = tileData[iIndex + 2];
- rect.y = tileData[iIndex + 3];
- rect.width = tileData[iIndex + 4];
- rect.height = tileData[iIndex + 5];
- if(useOrigin) {
- center.x = tileData[iIndex + 6];
- center.y = tileData[iIndex + 7];
- } else {
- center.x = 0;
- center.y = 0;
- }
- tileUV.setTo(rect.get_left() / sheet.__bitmap.width,rect.get_top() / sheet.__bitmap.height,rect.get_right() / sheet.__bitmap.width,rect.get_bottom() / sheet.__bitmap.height);
- } else {
- tileID = (tileData[iIndex + 2] == null?0:tileData[iIndex + 2]) | 0;
- rect = sheet.__tileRects[tileID];
- center = sheet.__centerPoints[tileID];
- tileUV = sheet.__tileUVs[tileID];
- }
- if(rect != null && rect.width > 0 && rect.height > 0 && center != null) {
- alpha = 1;
- tint = 16777215;
- a = 1;
- b = 0;
- c = 0;
- d = 1;
- tx = 0;
- ty = 0;
- scale = 1.0;
- rotation = 0.0;
- cosTheta = 1.0;
- sinTheta = 0.0;
- matrix.identity();
- if(useAlpha) alpha = tileData[iIndex + alphaIndex];
- if(useRGB) tint = (tileData[iIndex + rgbIndex] * 255 | 0) << 16 | (tileData[iIndex + rgbIndex + 1] * 255 | 0) << 8 | (tileData[iIndex + rgbIndex + 2] * 255 | 0);
- if(useScale) scale = tileData[iIndex + scaleIndex];
- if(useRotation) {
- rotation = tileData[iIndex + rotationIndex];
- cosTheta = Math.cos(rotation);
- sinTheta = Math.sin(rotation);
- }
- if(useTransform) {
- a = tileData[iIndex + transformIndex];
- b = tileData[iIndex + transformIndex + 1];
- c = tileData[iIndex + transformIndex + 2];
- d = tileData[iIndex + transformIndex + 3];
- } else {
- a = scale * cosTheta;
- b = scale * sinTheta;
- c = -b;
- d = a;
- }
- ox = center.x * a + center.y * c;
- oy = center.x * b + center.y * d;
- tx = x - ox;
- ty = y - oy;
- matrix.a = a * oMatrix.a + b * oMatrix.c;
- matrix.b = a * oMatrix.b + b * oMatrix.d;
- matrix.c = c * oMatrix.a + d * oMatrix.c;
- matrix.d = c * oMatrix.b + d * oMatrix.d;
- matrix.tx = tx * oMatrix.a + ty * oMatrix.c;
- matrix.ty = tx * oMatrix.b + ty * oMatrix.d;
- uvs.x0 = tileUV.x;
- uvs.y0 = tileUV.y;
- uvs.x1 = tileUV.width;
- uvs.y1 = tileUV.y;
- uvs.x2 = tileUV.width;
- uvs.y2 = tileUV.height;
- uvs.x3 = tileUV.x;
- uvs.y3 = tileUV.height;
- bIndex = this.currentBatchSize * 4 * this.vertSize;
- this.fillVertices(bIndex,0,0,rect.width,rect.height,tint,alpha,uvs,matrix);
- this.setState(this.currentBatchSize,texture,smooth,blendMode);
- this.currentBatchSize++;
- }
- iIndex += numValues;
- }
- }
- ,fillVertices: function(index,aX,aY,width,height,tint,alpha,uvs,matrix) {
- var w0;
- var w1;
- var h0;
- var h1;
- w0 = width * (1 - aX);
- w1 = width * -aX;
- h0 = height * (1 - aY);
- h1 = height * -aY;
- var a = matrix.a;
- var b = matrix.b;
- var c = matrix.c;
- var d = matrix.d;
- var tx = matrix.tx;
- var ty = matrix.ty;
- this.vertices[index++] = a * w1 + c * h1 + tx;
- this.vertices[index++] = d * h1 + b * w1 + ty;
- this.vertices[index++] = uvs.x0;
- this.vertices[index++] = uvs.y0;
- this.vertices[index++] = alpha;
- this.vertices[index++] = tint;
- this.vertices[index++] = a * w0 + c * h1 + tx;
- this.vertices[index++] = d * h1 + b * w0 + ty;
- this.vertices[index++] = uvs.x1;
- this.vertices[index++] = uvs.y1;
- this.vertices[index++] = alpha;
- this.vertices[index++] = tint;
- this.vertices[index++] = a * w0 + c * h0 + tx;
- this.vertices[index++] = d * h0 + b * w0 + ty;
- this.vertices[index++] = uvs.x2;
- this.vertices[index++] = uvs.y2;
- this.vertices[index++] = alpha;
- this.vertices[index++] = tint;
- this.vertices[index++] = a * w1 + c * h0 + tx;
- this.vertices[index++] = d * h0 + b * w1 + ty;
- this.vertices[index++] = uvs.x3;
- this.vertices[index++] = uvs.y3;
- this.vertices[index++] = alpha;
- this.vertices[index++] = tint;
- }
- ,setState: function(index,texture,smooth,blendMode) {
- if(smooth == null) smooth = true;
- var state = this.states[this.currentBatchSize];
- if(state == null) state = this.states[this.currentBatchSize] = new openfl._internal.renderer.opengl.utils._SpriteBatch.State();
- state.texture = texture;
- state.textureSmooth = smooth;
- state.blendMode = blendMode;
- }
- ,renderBatch: function(state,size,startIndex) {
- if(size == 0) return;
- this.gl.bindTexture(this.gl.TEXTURE_2D,state.texture);
- if(state.textureSmooth) {
- this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR);
- this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR);
- } else {
- this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST);
- this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST);
- }
- this.gl.drawElements(this.gl.TRIANGLES,size * 6,this.gl.UNSIGNED_SHORT,startIndex * 6 * 2);
- this.renderSession.drawCount++;
- }
- ,renderTilingSprite: function(tilingSprite) {
- }
- ,setContext: function(gl) {
- this.gl = gl;
- this.vertexBuffer = gl.createBuffer();
- this.indexBuffer = gl.createBuffer();
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer);
- gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,this.indices,gl.STATIC_DRAW);
- gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer);
- gl.bufferData(gl.ARRAY_BUFFER,this.vertices,gl.DYNAMIC_DRAW);
- this.currentBlendMode = null;
- }
- ,start: function() {
- this.dirty = true;
- }
- ,stop: function() {
- this.flush();
- }
- ,__class__: openfl._internal.renderer.opengl.utils.SpriteBatch
- };
- openfl._internal.renderer.opengl.utils._SpriteBatch = {};
- openfl._internal.renderer.opengl.utils._SpriteBatch.State = function() {
- this.textureSmooth = true;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils._SpriteBatch.State"] = openfl._internal.renderer.opengl.utils._SpriteBatch.State;
- openfl._internal.renderer.opengl.utils._SpriteBatch.State.__name__ = ["openfl","_internal","renderer","opengl","utils","_SpriteBatch","State"];
- openfl._internal.renderer.opengl.utils._SpriteBatch.State.prototype = {
- __class__: openfl._internal.renderer.opengl.utils._SpriteBatch.State
- };
- openfl._internal.renderer.opengl.utils.StencilManager = function(gl) {
- this.stencilStack = [];
- this.bucketStack = [];
- this.setContext(gl);
- this.reverse = true;
- this.count = 0;
- };
- $hxClasses["openfl._internal.renderer.opengl.utils.StencilManager"] = openfl._internal.renderer.opengl.utils.StencilManager;
- openfl._internal.renderer.opengl.utils.StencilManager.__name__ = ["openfl","_internal","renderer","opengl","utils","StencilManager"];
- openfl._internal.renderer.opengl.utils.StencilManager.prototype = {
- prepareGraphics: function(bucketData,renderSession,projection,translationMatrix) {
- var offset = renderSession.offset;
- var shader = renderSession.shaderManager.fillShader;
- renderSession.shaderManager.setShader(shader);
- this.gl.uniformMatrix3fv(shader.translationMatrix,false,translationMatrix);
- this.gl.uniform2f(shader.projectionVector,projection.x,-projection.y);
- this.gl.uniform2f(shader.offsetVector,-offset.x,-offset.y);
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER,bucketData.vertsBuffer);
- this.gl.vertexAttribPointer(shader.aVertexPosition,2,this.gl.FLOAT,false,8,0);
- this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,bucketData.indexBuffer);
- }
- ,pushBucket: function(bucket,renderSession,projection,translationMatrix) {
- if(this.bucketStack.length == 0) {
- this.gl.enable(this.gl.STENCIL_TEST);
- this.gl.clear(this.gl.STENCIL_BUFFER_BIT);
- this.gl.stencilMask(255);
- }
- this.bucketStack.push(bucket);
- this.gl.colorMask(false,false,false,false);
- this.gl.stencilFunc(this.gl.NEVER,1,255);
- this.gl.stencilOp(this.gl.INVERT,this.gl.KEEP,this.gl.KEEP);
- this.gl.clear(this.gl.STENCIL_BUFFER_BIT);
- var _g = 0;
- var _g1 = bucket.data;
- while(_g < _g1.length) {
- var bucketData = _g1[_g];
- ++_g;
- if(bucketData.destroyed) continue;
- this.prepareGraphics(bucketData,renderSession,projection,translationMatrix);
- this.gl.drawElements(bucketData.drawMode,bucketData.glIndices.length,this.gl.UNSIGNED_SHORT,0);
- }
- this.gl.colorMask(true,true,true,true);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP);
- this.gl.stencilFunc(this.gl.EQUAL,255,255);
- }
- ,popBucket: function(object,bucket,renderSession) {
- this.bucketStack.pop();
- if(this.bucketStack.length == 0) this.gl.disable(this.gl.STENCIL_TEST);
- }
- ,bindGraphics: function(object,glData,renderSession) {
- var graphics = object.__graphics;
- var projection = renderSession.projection;
- var offset = renderSession.offset;
- if(glData.mode == 1) {
- var shader = renderSession.shaderManager.complexPrimitiveShader;
- renderSession.shaderManager.setShader(shader);
- this.gl.uniformMatrix3fv(shader.translationMatrix,false,object.__worldTransform.toArray(true));
- this.gl.uniform2f(shader.projectionVector,projection.x,-projection.y);
- this.gl.uniform2f(shader.offsetVector,-offset.x,-offset.y);
- this.gl.uniform3fv(shader.tintColor,new Float32Array([1.,1.,1.]));
- this.gl.uniform3fv(shader.color,new Float32Array(glData.tint));
- this.gl.uniform1f(shader.alpha,object.__worldAlpha * glData.alpha);
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER,glData.dataBuffer);
- this.gl.vertexAttribPointer(shader.aVertexPosition,2,this.gl.FLOAT,false,8,0);
- this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,glData.indexBuffer);
- } else {
- var shader1 = renderSession.shaderManager.primitiveShader;
- renderSession.shaderManager.setShader(shader1);
- this.gl.uniformMatrix3fv(shader1.translationMatrix,false,object.__worldTransform.toArray(true));
- this.gl.uniform2f(shader1.projectionVector,projection.x,-projection.y);
- this.gl.uniform2f(shader1.offsetVector,-offset.x,-offset.y);
- this.gl.uniform3fv(shader1.tintColor,new Float32Array([1.,1.,1.]));
- this.gl.uniform1f(shader1.alpha,object.__worldAlpha);
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER,glData.dataBuffer);
- this.gl.vertexAttribPointer(shader1.aVertexPosition,2,this.gl.FLOAT,false,24,0);
- this.gl.vertexAttribPointer(shader1.colorAttribute,4,this.gl.FLOAT,false,24,8);
- this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,glData.indexBuffer);
- }
- }
- ,destroy: function() {
- this.stencilStack = null;
- this.bucketStack = null;
- this.gl = null;
- }
- ,popStencil: function(object,glData,renderSession) {
- this.stencilStack.pop();
- this.count--;
- if(this.stencilStack.length == 0) this.gl.disable(this.gl.STENCIL_TEST); else {
- var level = this.count;
- this.bindGraphics(object,glData,renderSession);
- this.gl.colorMask(false,false,false,false);
- if(glData.mode == 1) {
- this.reverse = !this.reverse;
- if(this.reverse) {
- this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR);
- } else {
- this.gl.stencilFunc(this.gl.EQUAL,level + 1,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR);
- }
- this.gl.drawElements(this.gl.TRIANGLE_FAN,4,this.gl.UNSIGNED_SHORT,(glData.indices.length - 4) * 2);
- this.gl.stencilFunc(this.gl.ALWAYS,0,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INVERT);
- this.gl.drawElements(this.gl.TRIANGLE_FAN,glData.indices.length - 4,this.gl.UNSIGNED_SHORT,0);
- if(!this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - level,255); else this.gl.stencilFunc(this.gl.EQUAL,level,255);
- } else {
- if(!this.reverse) {
- this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR);
- } else {
- this.gl.stencilFunc(this.gl.EQUAL,level + 1,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR);
- }
- this.gl.drawElements(this.gl.TRIANGLE_STRIP,glData.indices.length,this.gl.UNSIGNED_SHORT,0);
- if(!this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - level,255); else this.gl.stencilFunc(this.gl.EQUAL,level,255);
- }
- this.gl.colorMask(true,true,true,true);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP);
- }
- }
- ,pushStencil: function(object,glData,renderSession) {
- this.bindGraphics(object,glData,renderSession);
- if(this.stencilStack.length == 0) {
- this.gl.enable(this.gl.STENCIL_TEST);
- this.gl.clear(this.gl.STENCIL_BUFFER_BIT);
- this.reverse = true;
- this.count = 0;
- }
- this.stencilStack.push(glData);
- var level = this.count;
- this.gl.colorMask(false,false,false,false);
- this.gl.stencilFunc(this.gl.ALWAYS,0,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INVERT);
- if(glData.mode == 1) {
- this.gl.drawElements(this.gl.TRIANGLE_FAN,glData.indices.length - 4,this.gl.UNSIGNED_SHORT,0);
- if(this.reverse) {
- this.gl.stencilFunc(this.gl.EQUAL,255 - level,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR);
- } else {
- this.gl.stencilFunc(this.gl.EQUAL,level,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR);
- }
- this.gl.drawElements(this.gl.TRIANGLE_FAN,4,this.gl.UNSIGNED_SHORT,(glData.indices.length - 4) * 2);
- if(this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255); else this.gl.stencilFunc(this.gl.EQUAL,level + 1,255);
- this.reverse = !this.reverse;
- } else {
- if(!this.reverse) {
- this.gl.stencilFunc(this.gl.EQUAL,255 - level,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR);
- } else {
- this.gl.stencilFunc(this.gl.EQUAL,level,255);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR);
- }
- this.gl.drawElements(this.gl.TRIANGLE_STRIP,glData.indices.length,this.gl.UNSIGNED_SHORT,0);
- if(!this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255); else this.gl.stencilFunc(this.gl.EQUAL,level + 1,255);
- }
- this.gl.colorMask(true,true,true,true);
- this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP);
- this.count++;
- }
- ,setContext: function(gl) {
- this.gl = gl;
- }
- ,__class__: openfl._internal.renderer.opengl.utils.StencilManager
- };
- openfl.display.Application = function() {
- this.__mouseOutStack = [];
- lime.app.Application.call(this);
- openfl.display.Application.__fixAndroidMath();
- openfl.Lib.application = this;
- };
- $hxClasses["openfl.display.Application"] = openfl.display.Application;
- openfl.display.Application.__name__ = ["openfl","display","Application"];
- openfl.display.Application.__fixAndroidMath = function() {
- if(window.navigator.userAgent.indexOf("Linux; U; Android 4") >= 0) {
- var sin = Math.sin;
- var cos = Math.cos;
- Math.sin = function(x) {
- if(x == 0) return 0; else return sin(x);
- };
- Math.cos = function(x1) {
- if(x1 == 0) return 1; else return cos(x1);
- };
- }
- };
- openfl.display.Application.__super__ = lime.app.Application;
- openfl.display.Application.prototype = $extend(lime.app.Application.prototype,{
- convertKeyCode: function(keyCode) {
- switch(keyCode) {
- case 8:
- return 8;
- case 9:
- return 9;
- case 13:
- return 13;
- case 27:
- return 27;
- case 32:
- return 32;
- case 39:
- return 222;
- case 44:
- return 188;
- case 45:
- return 189;
- case 46:
- return 190;
- case 47:
- return 191;
- case 48:
- return 48;
- case 49:
- return 49;
- case 50:
- return 50;
- case 51:
- return 51;
- case 52:
- return 52;
- case 53:
- return 53;
- case 54:
- return 54;
- case 55:
- return 55;
- case 56:
- return 56;
- case 57:
- return 57;
- case 59:
- return 186;
- case 61:
- return 187;
- case 91:
- return 219;
- case 92:
- return 220;
- case 93:
- return 221;
- case 96:
- return 192;
- case 97:
- return 65;
- case 98:
- return 66;
- case 99:
- return 67;
- case 100:
- return 68;
- case 101:
- return 69;
- case 102:
- return 70;
- case 103:
- return 71;
- case 104:
- return 72;
- case 105:
- return 73;
- case 106:
- return 74;
- case 107:
- return 75;
- case 108:
- return 76;
- case 109:
- return 77;
- case 110:
- return 78;
- case 111:
- return 79;
- case 112:
- return 80;
- case 113:
- return 81;
- case 114:
- return 82;
- case 115:
- return 83;
- case 116:
- return 84;
- case 117:
- return 85;
- case 118:
- return 86;
- case 119:
- return 87;
- case 120:
- return 88;
- case 121:
- return 89;
- case 122:
- return 90;
- case 127:
- return 46;
- case 1073741881:
- return 20;
- case 1073741882:
- return 112;
- case 1073741883:
- return 113;
- case 1073741884:
- return 114;
- case 1073741885:
- return 115;
- case 1073741886:
- return 116;
- case 1073741887:
- return 117;
- case 1073741888:
- return 118;
- case 1073741889:
- return 119;
- case 1073741890:
- return 120;
- case 1073741891:
- return 121;
- case 1073741892:
- return 122;
- case 1073741893:
- return 123;
- case 1073741897:
- return 45;
- case 1073741898:
- return 36;
- case 1073741899:
- return 33;
- case 1073741901:
- return 35;
- case 1073741902:
- return 34;
- case 1073741903:
- return 39;
- case 1073741904:
- return 37;
- case 1073741905:
- return 40;
- case 1073741906:
- return 38;
- case 1073741908:
- return 111;
- case 1073741909:
- return 106;
- case 1073741910:
- return 109;
- case 1073741911:
- return 107;
- case 1073741912:
- return 108;
- case 1073741913:
- return 97;
- case 1073741914:
- return 98;
- case 1073741915:
- return 99;
- case 1073741916:
- return 100;
- case 1073741917:
- return 101;
- case 1073741918:
- return 102;
- case 1073741919:
- return 103;
- case 1073741920:
- return 104;
- case 1073741921:
- return 105;
- case 1073741922:
- return 96;
- case 1073741923:
- return 110;
- case 1073741928:
- return 124;
- case 1073741929:
- return 125;
- case 1073741930:
- return 126;
- case 1073742048:
- return 17;
- case 1073742049:
- return 16;
- case 1073742050:
- return 18;
- case 1073742052:
- return 17;
- case 1073742053:
- return 16;
- case 1073742054:
- return 18;
- default:
- return keyCode;
- }
- }
- ,create: function(config) {
- lime.app.Application.prototype.create.call(this,config);
- this.stage = new openfl.display.Stage(this.windows[0].width,this.windows[0].height,config.background);
- this.stage.addChild(openfl.Lib.current);
- this.stage.align = openfl.display.StageAlign.TOP_LEFT;
- this.stage.scaleMode = openfl.display.StageScaleMode.NO_SCALE;
- }
- ,onKey: function(event) {
- var stack = new Array();
- if(this.stage.__focus == null) this.stage.__getInteractive(stack); else this.stage.__focus.__getInteractive(stack);
- if(stack.length > 0) {
- stack.reverse();
- this.stage.__fireEvent(event,stack);
- }
- }
- ,onKeyDown: function(keyCode,modifier) {
- var keyCode1 = this.convertKeyCode(keyCode);
- var charCode = keyCode1;
- this.onKey(new openfl.events.KeyboardEvent(openfl.events.KeyboardEvent.KEY_DOWN,true,false,charCode,keyCode1,null,lime.ui._KeyModifier.KeyModifier_Impl_.get_ctrlKey(modifier),lime.ui._KeyModifier.KeyModifier_Impl_.get_altKey(modifier),lime.ui._KeyModifier.KeyModifier_Impl_.get_shiftKey(modifier),lime.ui._KeyModifier.KeyModifier_Impl_.get_metaKey(modifier)));
- }
- ,onKeyUp: function(keyCode,modifier) {
- var keyCode1 = this.convertKeyCode(keyCode);
- var charCode = keyCode1;
- this.onKey(new openfl.events.KeyboardEvent(openfl.events.KeyboardEvent.KEY_UP,true,false,charCode,keyCode1,null,lime.ui._KeyModifier.KeyModifier_Impl_.get_ctrlKey(modifier),lime.ui._KeyModifier.KeyModifier_Impl_.get_altKey(modifier),lime.ui._KeyModifier.KeyModifier_Impl_.get_shiftKey(modifier),lime.ui._KeyModifier.KeyModifier_Impl_.get_metaKey(modifier)));
- }
- ,onMouse: function(type,x,y,button) {
- if(button > 2) return;
- this.stage.__mouseX = x;
- this.stage.__mouseY = y;
- var stack = [];
- var target = null;
- var targetPoint = new openfl.geom.Point(x,y);
- if(this.stage.__hitTest(x,y,false,stack,true)) target = stack[stack.length - 1]; else {
- target = this.stage;
- stack = [this.stage];
- }
- this.stage.__fireEvent(openfl.events.MouseEvent.__create(type,button,target == this.stage?targetPoint:target.globalToLocal(targetPoint),target),stack);
- var clickType;
- switch(type) {
- case openfl.events.MouseEvent.MOUSE_UP:
- clickType = openfl.events.MouseEvent.CLICK;
- break;
- case openfl.events.MouseEvent.MIDDLE_MOUSE_UP:
- clickType = openfl.events.MouseEvent.MIDDLE_CLICK;
- break;
- case openfl.events.MouseEvent.RIGHT_MOUSE_UP:
- clickType = openfl.events.MouseEvent.RIGHT_CLICK;
- break;
- default:
- clickType = null;
- }
- if(clickType != null) {
- this.stage.__fireEvent(openfl.events.MouseEvent.__create(clickType,button,target == this.stage?targetPoint:target.globalToLocal(targetPoint),target),stack);
- if(type == openfl.events.MouseEvent.MOUSE_UP && (js.Boot.__cast(target , openfl.display.InteractiveObject)).doubleClickEnabled) {
- var currentTime = openfl.Lib.getTimer();
- if(currentTime - this.__lastClickTime < 500) {
- this.stage.__fireEvent(openfl.events.MouseEvent.__create(openfl.events.MouseEvent.DOUBLE_CLICK,button,target == this.stage?targetPoint:target.globalToLocal(targetPoint),target),stack);
- this.__lastClickTime = 0;
- } else this.__lastClickTime = currentTime;
- }
- }
- if(js.Boot.__instanceof(target,openfl.display.Sprite)) {
- var targetSprite = target;
- if(targetSprite.buttonMode && targetSprite.useHandCursor) lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.POINTER); else lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.ARROW);
- } else if(js.Boot.__instanceof(target,openfl.display.SimpleButton)) {
- var targetButton = target;
- if(targetButton.useHandCursor) lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.POINTER); else lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.ARROW);
- } else if(js.Boot.__instanceof(target,openfl.text.TextField)) {
- var targetTextField = target;
- if(targetTextField.type == openfl.text.TextFieldType.INPUT) lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.TEXT); else lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.ARROW);
- } else lime.ui.Mouse.set_cursor(lime.ui.MouseCursor.ARROW);
- var _g = 0;
- var _g1 = this.__mouseOutStack;
- while(_g < _g1.length) {
- var target1 = _g1[_g];
- ++_g;
- if(HxOverrides.indexOf(stack,target1,0) == -1) {
- HxOverrides.remove(this.__mouseOutStack,target1);
- var localPoint = target1.globalToLocal(targetPoint);
- target1.dispatchEvent(new openfl.events.MouseEvent(openfl.events.MouseEvent.MOUSE_OUT,false,false,localPoint.x,localPoint.y,target1));
- }
- }
- var _g2 = 0;
- while(_g2 < stack.length) {
- var target2 = stack[_g2];
- ++_g2;
- if(HxOverrides.indexOf(this.__mouseOutStack,target2,0) == -1) {
- if(target2.hasEventListener(openfl.events.MouseEvent.MOUSE_OVER)) {
- var localPoint1 = target2.globalToLocal(targetPoint);
- target2.dispatchEvent(new openfl.events.MouseEvent(openfl.events.MouseEvent.MOUSE_OVER,false,false,localPoint1.x,localPoint1.y,target2));
- }
- if(target2.hasEventListener(openfl.events.MouseEvent.MOUSE_OUT)) this.__mouseOutStack.push(target2);
- }
- }
- if(this.stage.__dragObject != null) this.stage.__drag(targetPoint);
- }
- ,onMouseDown: function(x,y,button) {
- var type;
- switch(button) {
- case 1:
- type = openfl.events.MouseEvent.MIDDLE_MOUSE_DOWN;
- break;
- case 2:
- type = openfl.events.MouseEvent.RIGHT_MOUSE_DOWN;
- break;
- default:
- type = openfl.events.MouseEvent.MOUSE_DOWN;
- }
- this.onMouse(type,x,y,button);
- }
- ,onMouseMove: function(x,y,button) {
- this.onMouse(openfl.events.MouseEvent.MOUSE_MOVE,x,y,0);
- }
- ,onMouseUp: function(x,y,button) {
- var type;
- switch(button) {
- case 1:
- type = openfl.events.MouseEvent.MIDDLE_MOUSE_UP;
- break;
- case 2:
- type = openfl.events.MouseEvent.RIGHT_MOUSE_UP;
- break;
- default:
- type = openfl.events.MouseEvent.MOUSE_UP;
- }
- this.onMouse(type,x,y,button);
- }
- ,onTouch: function(type,x,y,id) {
- var point = new openfl.geom.Point(x,y);
- this.stage.__mouseX = point.x;
- this.stage.__mouseY = point.y;
- var __stack = [];
- var mouseType;
- switch(type) {
- case "touchBegin":
- mouseType = openfl.events.MouseEvent.MOUSE_DOWN;
- break;
- case "touchMove":
- mouseType = openfl.events.MouseEvent.MOUSE_MOVE;
- break;
- case "touchEnd":
- mouseType = openfl.events.MouseEvent.MOUSE_UP;
- break;
- default:
- mouseType = null;
- }
- if(this.stage.__hitTest(x,y,false,__stack,true)) {
- var target = __stack[__stack.length - 1];
- var localPoint = target.globalToLocal(point);
- var touchEvent = openfl.events.TouchEvent.__create(type,null,localPoint,target);
- touchEvent.touchPointID = id;
- touchEvent.isPrimaryTouchPoint = true;
- var mouseEvent = openfl.events.MouseEvent.__create(mouseType,0,localPoint,target);
- mouseEvent.buttonDown = type != "touchEnd";
- this.stage.__fireEvent(touchEvent,__stack);
- this.stage.__fireEvent(mouseEvent,__stack);
- } else {
- var touchEvent1 = openfl.events.TouchEvent.__create(type,null,point,this.stage);
- touchEvent1.touchPointID = id;
- touchEvent1.isPrimaryTouchPoint = true;
- var mouseEvent1 = openfl.events.MouseEvent.__create(mouseType,0,point,this.stage);
- mouseEvent1.buttonDown = type != "touchEnd";
- this.stage.__fireEvent(touchEvent1,[this.stage]);
- this.stage.__fireEvent(mouseEvent1,[this.stage]);
- }
- if(type == "touchMove" && this.stage.__dragObject != null) this.stage.__drag(point);
- }
- ,onTouchMove: function(x,y,id) {
- this.onTouch("touchMove",x,y,id);
- }
- ,onTouchEnd: function(x,y,id) {
- this.onTouch("touchEnd",x,y,id);
- }
- ,onTouchStart: function(x,y,id) {
- this.onTouch("touchBegin",x,y,id);
- }
- ,onWindowActivate: function() {
- var event = new openfl.events.Event(openfl.events.Event.ACTIVATE);
- this.stage.__broadcast(event,true);
- }
- ,onWindowDeactivate: function() {
- var event = new openfl.events.Event(openfl.events.Event.DEACTIVATE);
- this.stage.__broadcast(event,true);
- }
- ,onWindowResize: function(width,height) {
- this.stage.stageWidth = width;
- this.stage.stageHeight = height;
- var event = new openfl.events.Event(openfl.events.Event.RESIZE);
- this.stage.__broadcast(event,false);
- }
- ,render: function(context) {
- this.stage.__render(context);
- }
- ,__class__: openfl.display.Application
- });
- openfl.display.Bitmap = function(bitmapData,pixelSnapping,smoothing) {
- if(smoothing == null) smoothing = false;
- openfl.display.DisplayObjectContainer.call(this);
- this.bitmapData = bitmapData;
- this.pixelSnapping = pixelSnapping;
- this.smoothing = smoothing;
- if(pixelSnapping == null) this.pixelSnapping = openfl.display.PixelSnapping.AUTO;
- };
- $hxClasses["openfl.display.Bitmap"] = openfl.display.Bitmap;
- openfl.display.Bitmap.__name__ = ["openfl","display","Bitmap"];
- openfl.display.Bitmap.__super__ = openfl.display.DisplayObjectContainer;
- openfl.display.Bitmap.prototype = $extend(openfl.display.DisplayObjectContainer.prototype,{
- __getBounds: function(rect,matrix) {
- if(this.bitmapData != null) {
- var bounds = new openfl.geom.Rectangle(0,0,this.bitmapData.width,this.bitmapData.height);
- bounds = bounds.transform(this.__worldTransform);
- rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
- }
- }
- ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly) {
- if(!this.get_visible() || this.bitmapData == null) return false;
- var point = this.globalToLocal(new openfl.geom.Point(x,y));
- if(point.x > 0 && point.y > 0 && point.x <= this.bitmapData.width && point.y <= this.bitmapData.height) {
- if(stack != null && !interactiveOnly) stack.push(this);
- return true;
- }
- return false;
- }
- ,__renderCanvas: function(renderSession) {
- openfl._internal.renderer.canvas.CanvasBitmap.render(this,renderSession);
- }
- ,__renderDOM: function(renderSession) {
- if(this.stage != null && this.__worldVisible && this.__renderable && this.bitmapData != null && this.bitmapData.__isValid) {
- if(this.bitmapData.__image.buffer.__srcImage != null) openfl._internal.renderer.dom.DOMBitmap.renderImage(this,renderSession); else openfl._internal.renderer.dom.DOMBitmap.renderCanvas(this,renderSession);
- } else {
- if(this.__image != null) {
- renderSession.element.removeChild(this.__image);
- this.__image = null;
- this.__style = null;
- }
- if(this.__canvas != null) {
- renderSession.element.removeChild(this.__canvas);
- this.__canvas = null;
- this.__style = null;
- }
- }
- }
- ,__renderGL: function(renderSession) {
- openfl._internal.renderer.opengl.GLBitmap.render(this,renderSession);
- }
- ,__renderMask: function(renderSession) {
- renderSession.context.rect(0,0,this.get_width(),this.get_height());
- }
- ,get_height: function() {
- if(this.bitmapData != null) return this.bitmapData.height * this.get_scaleY();
- return 0;
- }
- ,set_height: function(value) {
- if(this.bitmapData != null) {
- if(value != this.bitmapData.height) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- this.set_scaleY(value / this.bitmapData.height);
- }
- return value;
- }
- return 0;
- }
- ,get_width: function() {
- if(this.bitmapData != null) return this.bitmapData.width * this.get_scaleX();
- return 0;
- }
- ,set_width: function(value) {
- if(this.bitmapData != null) {
- if(value != this.bitmapData.width) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- this.set_scaleX(value / this.bitmapData.width);
- }
- return value;
- }
- return 0;
- }
- ,__class__: openfl.display.Bitmap
- });
- openfl.display.TextureUvs = function() {
- this.y3 = 0;
- this.y2 = 0;
- this.y1 = 0;
- this.y0 = 0;
- this.x3 = 0;
- this.x2 = 0;
- this.x1 = 0;
- this.x0 = 0;
- };
- $hxClasses["openfl.display.TextureUvs"] = openfl.display.TextureUvs;
- openfl.display.TextureUvs.__name__ = ["openfl","display","TextureUvs"];
- openfl.display.TextureUvs.prototype = {
- __class__: openfl.display.TextureUvs
- };
- openfl.display.BlendMode = $hxClasses["openfl.display.BlendMode"] = { __ename__ : ["openfl","display","BlendMode"], __constructs__ : ["ADD","ALPHA","DARKEN","DIFFERENCE","ERASE","HARDLIGHT","INVERT","LAYER","LIGHTEN","MULTIPLY","NORMAL","OVERLAY","SCREEN","SUBTRACT"] };
- openfl.display.BlendMode.ADD = ["ADD",0];
- openfl.display.BlendMode.ADD.toString = $estr;
- openfl.display.BlendMode.ADD.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.ALPHA = ["ALPHA",1];
- openfl.display.BlendMode.ALPHA.toString = $estr;
- openfl.display.BlendMode.ALPHA.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.DARKEN = ["DARKEN",2];
- openfl.display.BlendMode.DARKEN.toString = $estr;
- openfl.display.BlendMode.DARKEN.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.DIFFERENCE = ["DIFFERENCE",3];
- openfl.display.BlendMode.DIFFERENCE.toString = $estr;
- openfl.display.BlendMode.DIFFERENCE.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.ERASE = ["ERASE",4];
- openfl.display.BlendMode.ERASE.toString = $estr;
- openfl.display.BlendMode.ERASE.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.HARDLIGHT = ["HARDLIGHT",5];
- openfl.display.BlendMode.HARDLIGHT.toString = $estr;
- openfl.display.BlendMode.HARDLIGHT.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.INVERT = ["INVERT",6];
- openfl.display.BlendMode.INVERT.toString = $estr;
- openfl.display.BlendMode.INVERT.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.LAYER = ["LAYER",7];
- openfl.display.BlendMode.LAYER.toString = $estr;
- openfl.display.BlendMode.LAYER.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.LIGHTEN = ["LIGHTEN",8];
- openfl.display.BlendMode.LIGHTEN.toString = $estr;
- openfl.display.BlendMode.LIGHTEN.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.MULTIPLY = ["MULTIPLY",9];
- openfl.display.BlendMode.MULTIPLY.toString = $estr;
- openfl.display.BlendMode.MULTIPLY.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.NORMAL = ["NORMAL",10];
- openfl.display.BlendMode.NORMAL.toString = $estr;
- openfl.display.BlendMode.NORMAL.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.OVERLAY = ["OVERLAY",11];
- openfl.display.BlendMode.OVERLAY.toString = $estr;
- openfl.display.BlendMode.OVERLAY.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.SCREEN = ["SCREEN",12];
- openfl.display.BlendMode.SCREEN.toString = $estr;
- openfl.display.BlendMode.SCREEN.__enum__ = openfl.display.BlendMode;
- openfl.display.BlendMode.SUBTRACT = ["SUBTRACT",13];
- openfl.display.BlendMode.SUBTRACT.toString = $estr;
- openfl.display.BlendMode.SUBTRACT.__enum__ = openfl.display.BlendMode;
- openfl.display.CapsStyle = $hxClasses["openfl.display.CapsStyle"] = { __ename__ : ["openfl","display","CapsStyle"], __constructs__ : ["NONE","ROUND","SQUARE"] };
- openfl.display.CapsStyle.NONE = ["NONE",0];
- openfl.display.CapsStyle.NONE.toString = $estr;
- openfl.display.CapsStyle.NONE.__enum__ = openfl.display.CapsStyle;
- openfl.display.CapsStyle.ROUND = ["ROUND",1];
- openfl.display.CapsStyle.ROUND.toString = $estr;
- openfl.display.CapsStyle.ROUND.__enum__ = openfl.display.CapsStyle;
- openfl.display.CapsStyle.SQUARE = ["SQUARE",2];
- openfl.display.CapsStyle.SQUARE.toString = $estr;
- openfl.display.CapsStyle.SQUARE.__enum__ = openfl.display.CapsStyle;
- openfl.display.DirectRenderer = function(type) {
- if(type == null) type = "DirectRenderer";
- openfl.display.DisplayObject.call(this);
- };
- $hxClasses["openfl.display.DirectRenderer"] = openfl.display.DirectRenderer;
- openfl.display.DirectRenderer.__name__ = ["openfl","display","DirectRenderer"];
- openfl.display.DirectRenderer.__super__ = openfl.display.DisplayObject;
- openfl.display.DirectRenderer.prototype = $extend(openfl.display.DisplayObject.prototype,{
- get_render: function() {
- return this.__render;
- }
- ,set_render: function(value) {
- return this.__render = value;
- }
- ,__class__: openfl.display.DirectRenderer
- ,__properties__: $extend(openfl.display.DisplayObject.prototype.__properties__,{set_render:"set_render",get_render:"get_render"})
- });
- openfl.display.FrameLabel = function(name,frame) {
- openfl.events.EventDispatcher.call(this);
- this.__name = name;
- this.__frame = frame;
- };
- $hxClasses["openfl.display.FrameLabel"] = openfl.display.FrameLabel;
- openfl.display.FrameLabel.__name__ = ["openfl","display","FrameLabel"];
- openfl.display.FrameLabel.__super__ = openfl.events.EventDispatcher;
- openfl.display.FrameLabel.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- get_frame: function() {
- return this.__frame;
- }
- ,get_name: function() {
- return this.__name;
- }
- ,__class__: openfl.display.FrameLabel
- ,__properties__: {get_name:"get_name",get_frame:"get_frame"}
- });
- openfl.display.GradientType = $hxClasses["openfl.display.GradientType"] = { __ename__ : ["openfl","display","GradientType"], __constructs__ : ["RADIAL","LINEAR"] };
- openfl.display.GradientType.RADIAL = ["RADIAL",0];
- openfl.display.GradientType.RADIAL.toString = $estr;
- openfl.display.GradientType.RADIAL.__enum__ = openfl.display.GradientType;
- openfl.display.GradientType.LINEAR = ["LINEAR",1];
- openfl.display.GradientType.LINEAR.toString = $estr;
- openfl.display.GradientType.LINEAR.__enum__ = openfl.display.GradientType;
- openfl.display.Graphics = function() {
- this.__visible = true;
- this.__glStack = [];
- this.__dirty = true;
- this.__commands = [];
- this.__commands = new Array();
- this.__halfStrokeWidth = 0;
- this.__positionX = 0;
- this.__positionY = 0;
- };
- $hxClasses["openfl.display.Graphics"] = openfl.display.Graphics;
- openfl.display.Graphics.__name__ = ["openfl","display","Graphics"];
- openfl.display.Graphics.prototype = {
- beginBitmapFill: function(bitmap,matrix,repeat,smooth) {
- if(smooth == null) smooth = false;
- if(repeat == null) repeat = true;
- this.__commands.push(openfl.display.DrawCommand.BeginBitmapFill(bitmap,matrix != null?new openfl.geom.Matrix(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty):null,repeat,smooth));
- this.__visible = true;
- }
- ,beginFill: function(color,alpha) {
- if(alpha == null) alpha = 1;
- if(color == null) color = 0;
- this.__commands.push(openfl.display.DrawCommand.BeginFill(color & 16777215,alpha));
- if(alpha > 0) this.__visible = true;
- }
- ,beginGradientFill: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
- openfl.Lib.notImplemented("Graphics.beginGradientFill");
- }
- ,clear: function() {
- this.__commands = new Array();
- this.__halfStrokeWidth = 0;
- if(this.__bounds != null) {
- this.__dirty = true;
- this.__transformDirty = true;
- this.__bounds = null;
- }
- this.__visible = false;
- }
- ,copyFrom: function(sourceGraphics) {
- this.__bounds = sourceGraphics.__bounds.clone();
- this.__commands = sourceGraphics.__commands.slice();
- this.__dirty = true;
- this.__halfStrokeWidth = sourceGraphics.__halfStrokeWidth;
- this.__positionX = sourceGraphics.__positionX;
- this.__positionY = sourceGraphics.__positionY;
- this.__transformDirty = true;
- this.__visible = sourceGraphics.__visible;
- }
- ,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
- this.__inflateBounds(this.__positionX - this.__halfStrokeWidth,this.__positionY - this.__halfStrokeWidth);
- this.__inflateBounds(this.__positionX + this.__halfStrokeWidth,this.__positionY + this.__halfStrokeWidth);
- this.__inflateBounds(controlX1,controlY1);
- this.__inflateBounds(controlX2,controlY2);
- this.__positionX = anchorX;
- this.__positionY = anchorY;
- this.__inflateBounds(this.__positionX - this.__halfStrokeWidth,this.__positionY - this.__halfStrokeWidth);
- this.__inflateBounds(this.__positionX + this.__halfStrokeWidth,this.__positionY + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.CubicCurveTo(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY));
- this.__dirty = true;
- }
- ,curveTo: function(controlX,controlY,anchorX,anchorY) {
- this.__inflateBounds(this.__positionX - this.__halfStrokeWidth,this.__positionY - this.__halfStrokeWidth);
- this.__inflateBounds(this.__positionX + this.__halfStrokeWidth,this.__positionY + this.__halfStrokeWidth);
- this.__inflateBounds(controlX,controlY);
- this.__positionX = anchorX;
- this.__positionY = anchorY;
- this.__inflateBounds(this.__positionX - this.__halfStrokeWidth,this.__positionY - this.__halfStrokeWidth);
- this.__inflateBounds(this.__positionX + this.__halfStrokeWidth,this.__positionY + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.CurveTo(controlX,controlY,anchorX,anchorY));
- this.__dirty = true;
- }
- ,drawCircle: function(x,y,radius) {
- if(radius <= 0) return;
- this.__inflateBounds(x - radius - this.__halfStrokeWidth,y - radius - this.__halfStrokeWidth);
- this.__inflateBounds(x + radius + this.__halfStrokeWidth,y + radius + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.DrawCircle(x,y,radius));
- this.__dirty = true;
- }
- ,drawEllipse: function(x,y,width,height) {
- if(width <= 0 || height <= 0) return;
- this.__inflateBounds(x - this.__halfStrokeWidth,y - this.__halfStrokeWidth);
- this.__inflateBounds(x + width + this.__halfStrokeWidth,y + height + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.DrawEllipse(x,y,width,height));
- this.__dirty = true;
- }
- ,drawGraphicsData: function(graphicsData) {
- openfl.Lib.notImplemented("Graphics.drawGraphicsData");
- }
- ,drawPath: function(commands,data,winding) {
- var dataIndex = 0;
- var _g = 0;
- while(_g < commands.length) {
- var command = commands.data[_g];
- ++_g;
- switch(command) {
- case 1:
- this.moveTo(data.data[dataIndex],data.data[dataIndex + 1]);
- dataIndex += 2;
- break;
- case 2:
- this.lineTo(data.data[dataIndex],data.data[dataIndex + 1]);
- dataIndex += 2;
- break;
- case 3:
- this.curveTo(data.data[dataIndex],data.data[dataIndex + 1],data.data[dataIndex + 2],data.data[dataIndex + 3]);
- dataIndex += 4;
- break;
- case 6:
- this.cubicCurveTo(data.data[dataIndex],data.data[dataIndex + 1],data.data[dataIndex + 2],data.data[dataIndex + 3],data.data[dataIndex + 4],data.data[dataIndex + 5]);
- dataIndex += 6;
- break;
- default:
- }
- }
- }
- ,drawRect: function(x,y,width,height) {
- if(width <= 0 || height <= 0) return;
- this.__inflateBounds(x - this.__halfStrokeWidth,y - this.__halfStrokeWidth);
- this.__inflateBounds(x + width + this.__halfStrokeWidth,y + height + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.DrawRect(x,y,width,height));
- this.__dirty = true;
- }
- ,drawRoundRect: function(x,y,width,height,rx,ry) {
- if(ry == null) ry = -1;
- if(width <= 0 || height <= 0) return;
- this.__inflateBounds(x - this.__halfStrokeWidth,y - this.__halfStrokeWidth);
- this.__inflateBounds(x + width + this.__halfStrokeWidth,y + height + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.DrawRoundRect(x,y,width,height,rx,ry));
- this.__dirty = true;
- }
- ,drawRoundRectComplex: function(x,y,width,height,topLeftRadius,topRightRadius,bottomLeftRadius,bottomRightRadius) {
- openfl.Lib.notImplemented("Graphics.drawRoundRectComplex");
- }
- ,drawTiles: function(sheet,tileData,smooth,flags,count) {
- if(count == null) count = -1;
- if(flags == null) flags = 0;
- if(smooth == null) smooth = false;
- this.__inflateBounds(0,0);
- this.__inflateBounds(openfl.Lib.current.stage.stageWidth,openfl.Lib.current.stage.stageHeight);
- this.__commands.push(openfl.display.DrawCommand.DrawTiles(sheet,tileData,smooth,flags,count));
- this.__dirty = true;
- this.__visible = true;
- }
- ,drawTriangles: function(vertices,indices,uvtData,culling,colors,blendMode) {
- if(blendMode == null) blendMode = 0;
- var vlen = vertices.length / 2 | 0;
- if(culling == null) culling = openfl.display.TriangleCulling.NONE;
- if(indices == null) {
- if(vlen % 3 != 0) throw new openfl.errors.ArgumentError("Not enough vertices to close a triangle.");
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(0);
- this1.data = this2;
- this1.length = 0;
- this1.fixed = false;
- indices = this1;
- var _g = 0;
- while(_g < vlen) {
- var i = _g++;
- if(!indices.fixed) {
- indices.length++;
- if(indices.data.length < indices.length) {
- var data;
- var this3;
- this3 = new Array(indices.data.length + 10);
- data = this3;
- haxe.ds._Vector.Vector_Impl_.blit(indices.data,0,data,0,indices.data.length);
- indices.data = data;
- }
- indices.data[indices.length - 1] = i;
- }
- indices.length;
- }
- }
- this.__inflateBounds(0,0);
- var tmpx = Math.NEGATIVE_INFINITY;
- var tmpy = Math.NEGATIVE_INFINITY;
- var maxX = Math.NEGATIVE_INFINITY;
- var maxY = Math.NEGATIVE_INFINITY;
- var _g1 = 0;
- while(_g1 < vlen) {
- var i1 = _g1++;
- tmpx = vertices.data[i1 * 2];
- tmpy = vertices.data[i1 * 2 + 1];
- if(maxX < tmpx) maxX = tmpx;
- if(maxY < tmpy) maxY = tmpy;
- }
- this.__inflateBounds(maxX,maxY);
- this.__commands.push(openfl.display.DrawCommand.DrawTriangles(vertices,indices,uvtData,culling,colors,blendMode));
- this.__dirty = true;
- this.__visible = true;
- }
- ,endFill: function() {
- this.__commands.push(openfl.display.DrawCommand.EndFill);
- }
- ,lineBitmapStyle: function(bitmap,matrix,repeat,smooth) {
- if(smooth == null) smooth = false;
- if(repeat == null) repeat = true;
- openfl.Lib.notImplemented("Graphics.lineBitmapStyle");
- }
- ,lineGradientStyle: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
- openfl.Lib.notImplemented("Graphics.lineGradientStyle");
- }
- ,lineStyle: function(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit) {
- if(thickness != null) this.__halfStrokeWidth = thickness / 2; else this.__halfStrokeWidth = 0;
- this.__commands.push(openfl.display.DrawCommand.LineStyle(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit));
- if(thickness != null) this.__visible = true;
- }
- ,lineTo: function(x,y) {
- this.__inflateBounds(this.__positionX - this.__halfStrokeWidth,this.__positionY - this.__halfStrokeWidth);
- this.__inflateBounds(this.__positionX + this.__halfStrokeWidth,this.__positionY + this.__halfStrokeWidth);
- this.__positionX = x;
- this.__positionY = y;
- this.__inflateBounds(this.__positionX - this.__halfStrokeWidth,this.__positionY - this.__halfStrokeWidth);
- this.__inflateBounds(this.__positionX + this.__halfStrokeWidth,this.__positionY + this.__halfStrokeWidth);
- this.__commands.push(openfl.display.DrawCommand.LineTo(x,y));
- this.__dirty = true;
- }
- ,moveTo: function(x,y) {
- this.__positionX = x;
- this.__positionY = y;
- this.__commands.push(openfl.display.DrawCommand.MoveTo(x,y));
- }
- ,__getBounds: function(rect,matrix) {
- if(this.__bounds == null) return;
- var bounds = this.__bounds.clone().transform(matrix);
- rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
- }
- ,__hitTest: function(x,y,shapeFlag,matrix) {
- if(this.__bounds == null) return false;
- var bounds = this.__bounds.clone().transform(matrix);
- return x > bounds.x && y > bounds.y && x <= bounds.get_right() && y <= bounds.get_bottom();
- }
- ,__inflateBounds: function(x,y) {
- if(this.__bounds == null) {
- this.__bounds = new openfl.geom.Rectangle(x,y,0,0);
- this.__transformDirty = true;
- return;
- }
- if(x < this.__bounds.x) {
- this.__bounds.width += this.__bounds.x - x;
- this.__bounds.x = x;
- this.__transformDirty = true;
- }
- if(y < this.__bounds.y) {
- this.__bounds.height += this.__bounds.y - y;
- this.__bounds.y = y;
- this.__transformDirty = true;
- }
- if(x > this.__bounds.x + this.__bounds.width) this.__bounds.width = x - this.__bounds.x;
- if(y > this.__bounds.y + this.__bounds.height) this.__bounds.height = y - this.__bounds.y;
- }
- ,__class__: openfl.display.Graphics
- };
- openfl.display.DrawCommand = $hxClasses["openfl.display.DrawCommand"] = { __ename__ : ["openfl","display","DrawCommand"], __constructs__ : ["BeginBitmapFill","BeginFill","CubicCurveTo","CurveTo","DrawCircle","DrawEllipse","DrawRect","DrawRoundRect","DrawTiles","DrawTriangles","EndFill","LineStyle","LineTo","MoveTo"] };
- openfl.display.DrawCommand.BeginBitmapFill = function(bitmap,matrix,repeat,smooth) { var $x = ["BeginBitmapFill",0,bitmap,matrix,repeat,smooth]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.BeginFill = function(color,alpha) { var $x = ["BeginFill",1,color,alpha]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.CubicCurveTo = function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { var $x = ["CubicCurveTo",2,controlX1,controlY1,controlX2,controlY2,anchorX,anchorY]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.CurveTo = function(controlX,controlY,anchorX,anchorY) { var $x = ["CurveTo",3,controlX,controlY,anchorX,anchorY]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.DrawCircle = function(x,y,radius) { var $x = ["DrawCircle",4,x,y,radius]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.DrawEllipse = function(x,y,width,height) { var $x = ["DrawEllipse",5,x,y,width,height]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.DrawRect = function(x,y,width,height) { var $x = ["DrawRect",6,x,y,width,height]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.DrawRoundRect = function(x,y,width,height,rx,ry) { var $x = ["DrawRoundRect",7,x,y,width,height,rx,ry]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.DrawTiles = function(sheet,tileData,smooth,flags,count) { var $x = ["DrawTiles",8,sheet,tileData,smooth,flags,count]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.DrawTriangles = function(vertices,indices,uvtData,culling,colors,blendMode) { var $x = ["DrawTriangles",9,vertices,indices,uvtData,culling,colors,blendMode]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.EndFill = ["EndFill",10];
- openfl.display.DrawCommand.EndFill.toString = $estr;
- openfl.display.DrawCommand.EndFill.__enum__ = openfl.display.DrawCommand;
- openfl.display.DrawCommand.LineStyle = function(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit) { var $x = ["LineStyle",11,thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.LineTo = function(x,y) { var $x = ["LineTo",12,x,y]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.DrawCommand.MoveTo = function(x,y) { var $x = ["MoveTo",13,x,y]; $x.__enum__ = openfl.display.DrawCommand; $x.toString = $estr; return $x; };
- openfl.display.GraphicsPathCommand = function() { };
- $hxClasses["openfl.display.GraphicsPathCommand"] = openfl.display.GraphicsPathCommand;
- openfl.display.GraphicsPathCommand.__name__ = ["openfl","display","GraphicsPathCommand"];
- openfl.display.GraphicsPathWinding = $hxClasses["openfl.display.GraphicsPathWinding"] = { __ename__ : ["openfl","display","GraphicsPathWinding"], __constructs__ : ["EVEN_ODD","NON_ZERO"] };
- openfl.display.GraphicsPathWinding.EVEN_ODD = ["EVEN_ODD",0];
- openfl.display.GraphicsPathWinding.EVEN_ODD.toString = $estr;
- openfl.display.GraphicsPathWinding.EVEN_ODD.__enum__ = openfl.display.GraphicsPathWinding;
- openfl.display.GraphicsPathWinding.NON_ZERO = ["NON_ZERO",1];
- openfl.display.GraphicsPathWinding.NON_ZERO.toString = $estr;
- openfl.display.GraphicsPathWinding.NON_ZERO.__enum__ = openfl.display.GraphicsPathWinding;
- openfl.display.IGraphicsData = function() { };
- $hxClasses["openfl.display.IGraphicsData"] = openfl.display.IGraphicsData;
- openfl.display.IGraphicsData.__name__ = ["openfl","display","IGraphicsData"];
- openfl.display.IGraphicsData.prototype = {
- __class__: openfl.display.IGraphicsData
- };
- openfl.display.GraphicsDataType = $hxClasses["openfl.display.GraphicsDataType"] = { __ename__ : ["openfl","display","GraphicsDataType"], __constructs__ : ["STROKE","SOLID","GRADIENT","PATH","BITMAP","END"] };
- openfl.display.GraphicsDataType.STROKE = ["STROKE",0];
- openfl.display.GraphicsDataType.STROKE.toString = $estr;
- openfl.display.GraphicsDataType.STROKE.__enum__ = openfl.display.GraphicsDataType;
- openfl.display.GraphicsDataType.SOLID = ["SOLID",1];
- openfl.display.GraphicsDataType.SOLID.toString = $estr;
- openfl.display.GraphicsDataType.SOLID.__enum__ = openfl.display.GraphicsDataType;
- openfl.display.GraphicsDataType.GRADIENT = ["GRADIENT",2];
- openfl.display.GraphicsDataType.GRADIENT.toString = $estr;
- openfl.display.GraphicsDataType.GRADIENT.__enum__ = openfl.display.GraphicsDataType;
- openfl.display.GraphicsDataType.PATH = ["PATH",3];
- openfl.display.GraphicsDataType.PATH.toString = $estr;
- openfl.display.GraphicsDataType.PATH.__enum__ = openfl.display.GraphicsDataType;
- openfl.display.GraphicsDataType.BITMAP = ["BITMAP",4];
- openfl.display.GraphicsDataType.BITMAP.toString = $estr;
- openfl.display.GraphicsDataType.BITMAP.__enum__ = openfl.display.GraphicsDataType;
- openfl.display.GraphicsDataType.END = ["END",5];
- openfl.display.GraphicsDataType.END.toString = $estr;
- openfl.display.GraphicsDataType.END.__enum__ = openfl.display.GraphicsDataType;
- openfl.display.InterpolationMethod = $hxClasses["openfl.display.InterpolationMethod"] = { __ename__ : ["openfl","display","InterpolationMethod"], __constructs__ : ["RGB","LINEAR_RGB"] };
- openfl.display.InterpolationMethod.RGB = ["RGB",0];
- openfl.display.InterpolationMethod.RGB.toString = $estr;
- openfl.display.InterpolationMethod.RGB.__enum__ = openfl.display.InterpolationMethod;
- openfl.display.InterpolationMethod.LINEAR_RGB = ["LINEAR_RGB",1];
- openfl.display.InterpolationMethod.LINEAR_RGB.toString = $estr;
- openfl.display.InterpolationMethod.LINEAR_RGB.__enum__ = openfl.display.InterpolationMethod;
- openfl.display.JPEGEncoderOptions = function(quality) {
- if(quality == null) quality = 80;
- this.quality = quality;
- };
- $hxClasses["openfl.display.JPEGEncoderOptions"] = openfl.display.JPEGEncoderOptions;
- openfl.display.JPEGEncoderOptions.__name__ = ["openfl","display","JPEGEncoderOptions"];
- openfl.display.JPEGEncoderOptions.prototype = {
- __class__: openfl.display.JPEGEncoderOptions
- };
- openfl.display.JointStyle = $hxClasses["openfl.display.JointStyle"] = { __ename__ : ["openfl","display","JointStyle"], __constructs__ : ["MITER","ROUND","BEVEL"] };
- openfl.display.JointStyle.MITER = ["MITER",0];
- openfl.display.JointStyle.MITER.toString = $estr;
- openfl.display.JointStyle.MITER.__enum__ = openfl.display.JointStyle;
- openfl.display.JointStyle.ROUND = ["ROUND",1];
- openfl.display.JointStyle.ROUND.toString = $estr;
- openfl.display.JointStyle.ROUND.__enum__ = openfl.display.JointStyle;
- openfl.display.JointStyle.BEVEL = ["BEVEL",2];
- openfl.display.JointStyle.BEVEL.toString = $estr;
- openfl.display.JointStyle.BEVEL.__enum__ = openfl.display.JointStyle;
- openfl.display.LineScaleMode = $hxClasses["openfl.display.LineScaleMode"] = { __ename__ : ["openfl","display","LineScaleMode"], __constructs__ : ["HORIZONTAL","NONE","NORMAL","VERTICAL"] };
- openfl.display.LineScaleMode.HORIZONTAL = ["HORIZONTAL",0];
- openfl.display.LineScaleMode.HORIZONTAL.toString = $estr;
- openfl.display.LineScaleMode.HORIZONTAL.__enum__ = openfl.display.LineScaleMode;
- openfl.display.LineScaleMode.NONE = ["NONE",1];
- openfl.display.LineScaleMode.NONE.toString = $estr;
- openfl.display.LineScaleMode.NONE.__enum__ = openfl.display.LineScaleMode;
- openfl.display.LineScaleMode.NORMAL = ["NORMAL",2];
- openfl.display.LineScaleMode.NORMAL.toString = $estr;
- openfl.display.LineScaleMode.NORMAL.__enum__ = openfl.display.LineScaleMode;
- openfl.display.LineScaleMode.VERTICAL = ["VERTICAL",3];
- openfl.display.LineScaleMode.VERTICAL.toString = $estr;
- openfl.display.LineScaleMode.VERTICAL.__enum__ = openfl.display.LineScaleMode;
- openfl.display.Loader = function() {
- openfl.display.Sprite.call(this);
- this.contentLoaderInfo = openfl.display.LoaderInfo.create(this);
- };
- $hxClasses["openfl.display.Loader"] = openfl.display.Loader;
- openfl.display.Loader.__name__ = ["openfl","display","Loader"];
- openfl.display.Loader.__super__ = openfl.display.Sprite;
- openfl.display.Loader.prototype = $extend(openfl.display.Sprite.prototype,{
- close: function() {
- openfl.Lib.notImplemented("Loader.close");
- }
- ,load: function(request,context) {
- var extension = "";
- var parts = request.url.split(".");
- if(parts.length > 0) extension = parts[parts.length - 1].toLowerCase();
- if(extension.indexOf("?") != -1) extension = extension.split("?")[0];
- var transparent = true;
- this.contentLoaderInfo.url = request.url;
- if(request.contentType == null && request.contentType != "") switch(extension) {
- case "swf":
- this.contentLoaderInfo.contentType = "application/x-shockwave-flash";
- break;
- case "jpg":case "jpeg":
- transparent = false;
- this.contentLoaderInfo.contentType = "image/jpeg";
- break;
- case "png":
- this.contentLoaderInfo.contentType = "image/png";
- break;
- case "gif":
- this.contentLoaderInfo.contentType = "image/gif";
- break;
- default:
- this.contentLoaderInfo.contentType = "application/x-www-form-urlencoded";
- } else this.contentLoaderInfo.contentType = request.contentType;
- openfl.display.BitmapData.fromFile(request.url,$bind(this,this.BitmapData_onLoad),$bind(this,this.BitmapData_onError));
- }
- ,loadBytes: function(buffer) {
- openfl.display.BitmapData.fromBytes(buffer,null,$bind(this,this.BitmapData_onLoad));
- }
- ,unload: function() {
- if(this.get_numChildren() > 0) {
- while(this.get_numChildren() > 0) this.removeChildAt(0);
- this.content = null;
- this.contentLoaderInfo.url = null;
- this.contentLoaderInfo.contentType = null;
- this.contentLoaderInfo.content = null;
- this.contentLoaderInfo.bytesLoaded = 0;
- this.contentLoaderInfo.bytesTotal = 0;
- this.contentLoaderInfo.width = 0;
- this.contentLoaderInfo.height = 0;
- var event = new openfl.events.Event(openfl.events.Event.UNLOAD);
- event.currentTarget = this;
- this.dispatchEvent(event);
- }
- }
- ,unloadAndStop: function(gc) {
- if(gc == null) gc = true;
- openfl.Lib.notImplemented("Loader.unloadAndStop");
- }
- ,BitmapData_onLoad: function(bitmapData) {
- this.contentLoaderInfo.content = new openfl.display.Bitmap(bitmapData);
- this.content = this.contentLoaderInfo.content;
- this.addChild(this.contentLoaderInfo.content);
- var event = new openfl.events.Event(openfl.events.Event.COMPLETE);
- event.target = this.contentLoaderInfo;
- event.currentTarget = this.contentLoaderInfo;
- this.contentLoaderInfo.dispatchEvent(event);
- }
- ,BitmapData_onError: function() {
- var event = new openfl.events.IOErrorEvent(openfl.events.IOErrorEvent.IO_ERROR);
- event.target = this.contentLoaderInfo;
- event.currentTarget = this.contentLoaderInfo;
- this.contentLoaderInfo.dispatchEvent(event);
- }
- ,__class__: openfl.display.Loader
- });
- openfl.display.OpenGLView = function() {
- openfl.display.DirectRenderer.call(this,"OpenGLView");
- if(!this.__added) {
- this.__added = true;
- null;
- }
- };
- $hxClasses["openfl.display.OpenGLView"] = openfl.display.OpenGLView;
- openfl.display.OpenGLView.__name__ = ["openfl","display","OpenGLView"];
- openfl.display.OpenGLView.__properties__ = {get_isSupported:"get_isSupported"}
- openfl.display.OpenGLView.isSupported = null;
- openfl.display.OpenGLView.get_isSupported = function() {
- if(!window.WebGLRenderingContext) return false;
- if(lime.graphics.opengl.GL.context != null) return true; else {
- var canvas = window.document.createElement("canvas");
- var context = canvas.getContext("webgl");
- if(context == null) context = canvas.getContext("experimental-webgl");
- return context != null;
- }
- return true;
- };
- openfl.display.OpenGLView.__super__ = openfl.display.DirectRenderer;
- openfl.display.OpenGLView.prototype = $extend(openfl.display.DirectRenderer.prototype,{
- __renderCanvas: function(renderSession) {
- }
- ,__renderDOM: function(renderSession) {
- if(this.stage != null && this.__worldVisible && this.__renderable) {
- if(!this.__added) {
- renderSession.element.appendChild(this.__canvas);
- this.__added = true;
- openfl._internal.renderer.dom.DOMRenderer.initializeElement(this,this.__canvas,renderSession);
- }
- if(this.__context != null) {
- var rect = null;
- if(this.get_scrollRect() == null) rect = new openfl.geom.Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight); else rect = new openfl.geom.Rectangle(this.get_x() + this.get_scrollRect().x,this.get_y() + this.get_scrollRect().y,this.get_scrollRect().width,this.get_scrollRect().height);
- if(this.__render != null) this.__render(rect);
- }
- } else if(this.__added) {
- renderSession.element.removeChild(this.__canvas);
- this.__added = false;
- }
- }
- ,__renderGL: function(renderSession) {
- if(this.stage != null && this.__renderable) {
- var rect = null;
- if(this.get_scrollRect() == null) rect = new openfl.geom.Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight); else rect = new openfl.geom.Rectangle(this.get_x() + this.get_scrollRect().x,this.get_y() + this.get_scrollRect().y,this.get_scrollRect().width,this.get_scrollRect().height);
- if(this.__render != null) this.__render(rect);
- }
- }
- ,__class__: openfl.display.OpenGLView
- });
- openfl.display.PNGEncoderOptions = function(fastCompression) {
- if(fastCompression == null) fastCompression = false;
- this.fastCompression = fastCompression;
- };
- $hxClasses["openfl.display.PNGEncoderOptions"] = openfl.display.PNGEncoderOptions;
- openfl.display.PNGEncoderOptions.__name__ = ["openfl","display","PNGEncoderOptions"];
- openfl.display.PNGEncoderOptions.prototype = {
- __class__: openfl.display.PNGEncoderOptions
- };
- openfl.display.PixelSnapping = $hxClasses["openfl.display.PixelSnapping"] = { __ename__ : ["openfl","display","PixelSnapping"], __constructs__ : ["NEVER","AUTO","ALWAYS"] };
- openfl.display.PixelSnapping.NEVER = ["NEVER",0];
- openfl.display.PixelSnapping.NEVER.toString = $estr;
- openfl.display.PixelSnapping.NEVER.__enum__ = openfl.display.PixelSnapping;
- openfl.display.PixelSnapping.AUTO = ["AUTO",1];
- openfl.display.PixelSnapping.AUTO.toString = $estr;
- openfl.display.PixelSnapping.AUTO.__enum__ = openfl.display.PixelSnapping;
- openfl.display.PixelSnapping.ALWAYS = ["ALWAYS",2];
- openfl.display.PixelSnapping.ALWAYS.toString = $estr;
- openfl.display.PixelSnapping.ALWAYS.__enum__ = openfl.display.PixelSnapping;
- openfl.display.Preloader = function(display) {
- lime.app.Preloader.call(this);
- if(display != null) {
- this.display = display;
- openfl.Lib.current.addChild(display);
- if(js.Boot.__instanceof(display,NMEPreloader)) (js.Boot.__cast(display , NMEPreloader)).onInit();
- }
- };
- $hxClasses["openfl.display.Preloader"] = openfl.display.Preloader;
- openfl.display.Preloader.__name__ = ["openfl","display","Preloader"];
- openfl.display.Preloader.__super__ = lime.app.Preloader;
- openfl.display.Preloader.prototype = $extend(lime.app.Preloader.prototype,{
- load: function(urls,types) {
- var sounds = [];
- var musics = [];
- var url = null;
- var isAndroid = /Android/.test(navigator.userAgent);
- var isChrome = /Chrome/.test(navigator.userAgent);
- var _g1 = 0;
- var _g = urls.length;
- while(_g1 < _g) {
- var i = _g1++;
- url = urls[i];
- var _g2 = types[i];
- switch(_g2) {
- case "SOUND":
- var sound = haxe.io.Path.withoutExtension(url);
- if(!HxOverrides.remove(sounds,sound)) this.total++;
- sounds.push(sound);
- break;
- case "MUSIC":
- var music = haxe.io.Path.withoutExtension(url);
- if(isChrome) {
- if(!HxOverrides.remove(musics,music)) this.total++;
- musics.push(music);
- } else {
- var sound1 = haxe.io.Path.withoutExtension(url);
- if(!HxOverrides.remove(sounds,sound1)) this.total++;
- sounds.push(sound1);
- }
- break;
- default:
- }
- }
- if(isAndroid && !isChrome) {
- while(sounds.length > 0) {
- sounds.pop();
- this.total--;
- }
- while(musics.length > 0) {
- musics.pop();
- this.total--;
- }
- }
- var _g3 = 0;
- while(_g3 < sounds.length) {
- var soundName = sounds[_g3];
- ++_g3;
- var sound2 = new openfl.media.Sound();
- sound2.addEventListener(openfl.events.Event.COMPLETE,$bind(this,this.sound_onComplete));
- sound2.addEventListener(openfl.events.IOErrorEvent.IO_ERROR,$bind(this,this.sound_onIOError));
- sound2.load(new openfl.net.URLRequest(soundName + ".ogg"));
- }
- var _g4 = 0;
- while(_g4 < musics.length) {
- var musicName = musics[_g4];
- ++_g4;
- this.loadAudioTag(musicName);
- }
- lime.app.Preloader.prototype.load.call(this,urls,types);
- }
- ,loadAudioTag: function(id) {
- var audio = new Audio();
- co.doubleduck.utils.SoundMgr.audios.set(id,audio);
- audio.addEventListener("canplaythrough",$bind(this,this.audio_onLoad));
- audio.loop = true;
- audio.onerror = $bind(this,this.handleLoadError);
- audio.src = id + ".mp3";
- }
- ,audio_onLoad: function(data) {
- var audio = data.target;
- audio.removeEventListener("canplaythrough",$bind(this,this.audio_onLoad));
- this.sound_onComplete(null);
- }
- ,start: function() {
- if(this.display != null && js.Boot.__instanceof(this.display,NMEPreloader)) {
- this.display.addEventListener(openfl.events.Event.COMPLETE,$bind(this,this.display_onComplete));
- (js.Boot.__cast(this.display , NMEPreloader)).onLoaded();
- } else lime.app.Preloader.prototype.start.call(this);
- }
- ,update: function(loaded,total) {
- if(this.display != null && js.Boot.__instanceof(this.display,NMEPreloader)) (js.Boot.__cast(this.display , NMEPreloader)).onUpdate(loaded,total);
- }
- ,display_onComplete: function(event) {
- this.display.removeEventListener(openfl.events.Event.COMPLETE,$bind(this,this.display_onComplete));
- openfl.Lib.current.removeChild(this.display);
- openfl.Lib.current.stage.set_focus(null);
- this.display = null;
- lime.app.Preloader.prototype.start.call(this);
- }
- ,sound_onComplete: function(event) {
- this.loaded++;
- this.update(this.loaded,this.total);
- if(this.loaded == this.total) this.start();
- }
- ,sound_onIOError: function(event) {
- this.loaded++;
- this.update(this.loaded,this.total);
- if(this.loaded == this.total) this.start();
- }
- ,__class__: openfl.display.Preloader
- });
- openfl.display.Shape = function() {
- openfl.display.DisplayObject.call(this);
- };
- $hxClasses["openfl.display.Shape"] = openfl.display.Shape;
- openfl.display.Shape.__name__ = ["openfl","display","Shape"];
- openfl.display.Shape.__super__ = openfl.display.DisplayObject;
- openfl.display.Shape.prototype = $extend(openfl.display.DisplayObject.prototype,{
- __getBounds: function(rect,matrix) {
- if(this.__graphics != null) this.__graphics.__getBounds(rect,this.__worldTransform);
- }
- ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly) {
- if(this.get_visible() && this.__graphics != null && this.__graphics.__hitTest(x,y,shapeFlag,this.__getTransform())) {
- if(!interactiveOnly) stack.push(this);
- return true;
- }
- return false;
- }
- ,__renderCanvas: function(renderSession) {
- openfl._internal.renderer.canvas.CanvasShape.render(this,renderSession);
- }
- ,__renderDOM: function(renderSession) {
- openfl._internal.renderer.dom.DOMShape.render(this,renderSession);
- }
- ,__renderGL: function(renderSession) {
- if(!this.__renderable || this.__worldAlpha <= 0) return;
- if(this.__graphics != null) openfl._internal.renderer.opengl.utils.GraphicsRenderer.render(this,renderSession);
- }
- ,__renderMask: function(renderSession) {
- if(this.__graphics != null) openfl._internal.renderer.canvas.CanvasGraphics.renderMask(this.__graphics,renderSession);
- }
- ,get_graphics: function() {
- if(this.__graphics == null) this.__graphics = new openfl.display.Graphics();
- return this.__graphics;
- }
- ,__class__: openfl.display.Shape
- ,__properties__: $extend(openfl.display.DisplayObject.prototype.__properties__,{get_graphics:"get_graphics"})
- });
- openfl.display.SimpleButton = function(upState,overState,downState,hitTestState) {
- openfl.display.DisplayObjectContainer.call(this);
- this.enabled = true;
- this.trackAsMenu = false;
- this.useHandCursor = true;
- this.mouseChildren = false;
- this.set_upState(upState != null?upState:this.__generateDefaultState());
- this.set_overState(overState != null?overState:this.__generateDefaultState());
- this.set_downState(downState != null?downState:this.__generateDefaultState());
- this.set_hitTestState(hitTestState != null?hitTestState:this.__generateDefaultState());
- this.set___currentState(this.upState);
- };
- $hxClasses["openfl.display.SimpleButton"] = openfl.display.SimpleButton;
- openfl.display.SimpleButton.__name__ = ["openfl","display","SimpleButton"];
- openfl.display.SimpleButton.__super__ = openfl.display.DisplayObjectContainer;
- openfl.display.SimpleButton.prototype = $extend(openfl.display.DisplayObjectContainer.prototype,{
- switchState: function(state) {
- if(this.__currentState != null && this.__currentState.parent == this) this.removeChild(this.__currentState);
- if(state != null) this.addChild(state);
- }
- ,__generateDefaultState: function() {
- return new openfl.display.DisplayObject();
- }
- ,set_downState: function(downState) {
- if(this.downState != null && this.__currentState == this.downState) this.set___currentState(downState);
- return this.downState = downState;
- }
- ,set_hitTestState: function(hitTestState) {
- if(hitTestState != this.hitTestState) {
- if(this.hitTestState != null && this.hitTestState.parent == this) this.removeChild(this.hitTestState);
- this.removeEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.__this_onMouseDown));
- this.removeEventListener(openfl.events.MouseEvent.MOUSE_OUT,$bind(this,this.__this_onMouseOut));
- this.removeEventListener(openfl.events.MouseEvent.MOUSE_OVER,$bind(this,this.__this_onMouseOver));
- this.removeEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.__this_onMouseUp));
- if(hitTestState != null) {
- this.addEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.__this_onMouseDown));
- this.addEventListener(openfl.events.MouseEvent.MOUSE_OUT,$bind(this,this.__this_onMouseOut));
- this.addEventListener(openfl.events.MouseEvent.MOUSE_OVER,$bind(this,this.__this_onMouseOver));
- this.addEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.__this_onMouseUp));
- hitTestState.set_alpha(0.0);
- this.addChild(hitTestState);
- }
- }
- return this.hitTestState = hitTestState;
- }
- ,set_overState: function(overState) {
- if(this.overState != null && this.__currentState == this.overState) this.set___currentState(overState);
- return this.overState = overState;
- }
- ,get_soundTransform: function() {
- if(this.__soundTransform == null) this.__soundTransform = new openfl.media.SoundTransform();
- return new openfl.media.SoundTransform(this.__soundTransform.volume,this.__soundTransform.pan);
- }
- ,set_soundTransform: function(value) {
- this.__soundTransform = new openfl.media.SoundTransform(value.volume,value.pan);
- return value;
- }
- ,set_upState: function(upState) {
- if(this.upState != null && this.__currentState == this.upState) this.set___currentState(upState);
- return this.upState = upState;
- }
- ,set___currentState: function(state) {
- if(this.__currentState == state) return state;
- this.switchState(state);
- return this.__currentState = state;
- }
- ,__this_onMouseDown: function(event) {
- this.set___currentState(this.downState);
- }
- ,__this_onMouseOut: function(event) {
- if(this.upState != this.__currentState) this.set___currentState(this.upState);
- }
- ,__this_onMouseOver: function(event) {
- if(this.overState != this.__currentState) this.set___currentState(this.overState);
- }
- ,__this_onMouseUp: function(event) {
- this.set___currentState(this.overState);
- }
- ,__class__: openfl.display.SimpleButton
- ,__properties__: $extend(openfl.display.DisplayObjectContainer.prototype.__properties__,{set___currentState:"set___currentState",set_upState:"set_upState",set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform",set_overState:"set_overState",set_hitTestState:"set_hitTestState",set_downState:"set_downState"})
- });
- openfl.display.SpreadMethod = $hxClasses["openfl.display.SpreadMethod"] = { __ename__ : ["openfl","display","SpreadMethod"], __constructs__ : ["REPEAT","REFLECT","PAD"] };
- openfl.display.SpreadMethod.REPEAT = ["REPEAT",0];
- openfl.display.SpreadMethod.REPEAT.toString = $estr;
- openfl.display.SpreadMethod.REPEAT.__enum__ = openfl.display.SpreadMethod;
- openfl.display.SpreadMethod.REFLECT = ["REFLECT",1];
- openfl.display.SpreadMethod.REFLECT.toString = $estr;
- openfl.display.SpreadMethod.REFLECT.__enum__ = openfl.display.SpreadMethod;
- openfl.display.SpreadMethod.PAD = ["PAD",2];
- openfl.display.SpreadMethod.PAD.toString = $estr;
- openfl.display.SpreadMethod.PAD.__enum__ = openfl.display.SpreadMethod;
- openfl.display.Stage = function(width,height,color) {
- this.__mouseY = 0;
- this.__mouseX = 0;
- openfl.display.Sprite.call(this);
- if(color == null) {
- this.__transparent = true;
- this.set_color(0);
- } else this.set_color(color);
- this.set_name(null);
- this.__mouseX = 0;
- this.__mouseY = 0;
- this.stageWidth = width;
- this.stageHeight = height;
- this.stage = this;
- this.align = openfl.display.StageAlign.TOP_LEFT;
- this.allowsFullScreen = false;
- this.set_displayState(openfl.display.StageDisplayState.NORMAL);
- this.frameRate = 60;
- this.quality = openfl.display.StageQuality.HIGH;
- this.scaleMode = openfl.display.StageScaleMode.NO_SCALE;
- this.stageFocusRect = true;
- this.__clearBeforeRender = true;
- this.__stack = [];
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(0);
- this1.data = this2;
- this1.length = 0;
- this1.fixed = false;
- this.stage3Ds = this1;
- var this3 = this.stage3Ds;
- var x = new openfl.display.Stage3D();
- if(!this3.fixed) {
- this3.length++;
- if(this3.data.length < this3.length) {
- var data;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data,0,this3.data.length);
- this3.data = data;
- }
- this3.data[this3.length - 1] = x;
- }
- this3.length;
- };
- $hxClasses["openfl.display.Stage"] = openfl.display.Stage;
- openfl.display.Stage.__name__ = ["openfl","display","Stage"];
- openfl.display.Stage.__super__ = openfl.display.Sprite;
- openfl.display.Stage.prototype = $extend(openfl.display.Sprite.prototype,{
- globalToLocal: function(pos) {
- return pos;
- }
- ,invalidate: function() {
- this.__invalidated = true;
- }
- ,localToGlobal: function(pos) {
- return pos;
- }
- ,__drag: function(mouse) {
- var parent = this.__dragObject.parent;
- if(parent != null) mouse = parent.globalToLocal(mouse);
- var x = mouse.x + this.__dragOffsetX;
- var y = mouse.y + this.__dragOffsetY;
- if(this.__dragBounds != null) {
- if(x < this.__dragBounds.x) x = this.__dragBounds.x; else if(x > this.__dragBounds.get_right()) x = this.__dragBounds.get_right();
- if(y < this.__dragBounds.y) y = this.__dragBounds.y; else if(y > this.__dragBounds.get_bottom()) y = this.__dragBounds.get_bottom();
- }
- this.__dragObject.set_x(x);
- this.__dragObject.set_y(y);
- }
- ,__fireEvent: function(event,stack) {
- var length = stack.length;
- if(length == 0) {
- event.eventPhase = openfl.events.EventPhase.AT_TARGET;
- event.target.__broadcast(event,false);
- } else {
- event.eventPhase = openfl.events.EventPhase.CAPTURING_PHASE;
- event.target = stack[stack.length - 1];
- var _g1 = 0;
- var _g = length - 1;
- while(_g1 < _g) {
- var i = _g1++;
- stack[i].__broadcast(event,false);
- if(event.__isCancelled) return;
- }
- event.eventPhase = openfl.events.EventPhase.AT_TARGET;
- event.target.__broadcast(event,false);
- if(event.__isCancelled) return;
- if(event.bubbles) {
- event.eventPhase = openfl.events.EventPhase.BUBBLING_PHASE;
- var i1 = length - 2;
- while(i1 >= 0) {
- stack[i1].__broadcast(event,false);
- if(event.__isCancelled) return;
- i1--;
- }
- }
- }
- }
- ,__getInteractive: function(stack) {
- stack.push(this);
- }
- ,__render: function(context) {
- this.__broadcast(new openfl.events.Event(openfl.events.Event.ENTER_FRAME),true);
- if(this.__invalidated) {
- this.__invalidated = false;
- this.__broadcast(new openfl.events.Event(openfl.events.Event.RENDER),true);
- }
- this.__renderable = true;
- this.__update(false,true);
- switch(context[1]) {
- case 0:
- var gl = context[2];
- if(this.__renderer == null) this.__renderer = new openfl._internal.renderer.opengl.GLRenderer(this.stageWidth,this.stageHeight,gl);
- this.__renderer.render(this);
- break;
- case 1:
- var context1 = context[2];
- if(this.__renderer == null) this.__renderer = new openfl._internal.renderer.canvas.CanvasRenderer(this.stageWidth,this.stageHeight,context1);
- this.__renderer.render(this);
- break;
- case 2:
- var element = context[2];
- if(this.__renderer == null) this.__renderer = new openfl._internal.renderer.dom.DOMRenderer(this.stageWidth,this.stageHeight,element);
- this.__renderer.render(this);
- break;
- default:
- }
- }
- ,__resize: function() {
- }
- ,__startDrag: function(sprite,lockCenter,bounds) {
- if(bounds == null) this.__dragBounds = null; else this.__dragBounds = bounds.clone();
- this.__dragObject = sprite;
- if(this.__dragObject != null) {
- if(lockCenter) {
- this.__dragOffsetX = -this.__dragObject.get_width() / 2;
- this.__dragOffsetY = -this.__dragObject.get_height() / 2;
- } else {
- var mouse = new openfl.geom.Point(this.get_mouseX(),this.get_mouseY());
- var parent = this.__dragObject.parent;
- if(parent != null) mouse = parent.globalToLocal(mouse);
- this.__dragOffsetX = this.__dragObject.get_x() - mouse.x;
- this.__dragOffsetY = this.__dragObject.get_y() - mouse.y;
- }
- }
- }
- ,__stopDrag: function(sprite) {
- this.__dragBounds = null;
- this.__dragObject = null;
- }
- ,__update: function(transformOnly,updateChildren) {
- if(transformOnly) {
- if(openfl.display.DisplayObject.__worldTransformDirty > 0) {
- openfl.display.Sprite.prototype.__update.call(this,true,updateChildren);
- if(updateChildren) {
- openfl.display.DisplayObject.__worldTransformDirty = 0;
- this.__dirty = true;
- }
- }
- } else if(openfl.display.DisplayObject.__worldTransformDirty > 0 || this.__dirty || openfl.display.DisplayObject.__worldRenderDirty > 0) {
- openfl.display.Sprite.prototype.__update.call(this,false,updateChildren);
- if(updateChildren) {
- openfl.display.DisplayObject.__worldTransformDirty = 0;
- openfl.display.DisplayObject.__worldRenderDirty = 0;
- this.__dirty = false;
- }
- }
- }
- ,get_mouseX: function() {
- return this.__mouseX;
- }
- ,get_mouseY: function() {
- return this.__mouseY;
- }
- ,canvas_onContextLost: function(event) {
- }
- ,canvas_onContextRestored: function(event) {
- }
- ,get_color: function() {
- return this.__color;
- }
- ,set_color: function(value) {
- var r = (value & 16711680) >>> 16;
- var g = (value & 65280) >>> 8;
- var b = value & 255;
- this.__colorSplit = [r / 255,g / 255,b / 255];
- this.__colorString = "#" + StringTools.hex(value,6);
- return this.__color = value;
- }
- ,get_focus: function() {
- return this.__focus;
- }
- ,set_focus: function(value) {
- if(value != this.__focus) {
- if(this.__focus != null) {
- var event = new openfl.events.FocusEvent(openfl.events.FocusEvent.FOCUS_OUT,true,false,value,false,0);
- this.__stack = [];
- this.__focus.__getInteractive(this.__stack);
- this.__stack.reverse();
- this.__fireEvent(event,this.__stack);
- }
- if(value != null) {
- var event1 = new openfl.events.FocusEvent(openfl.events.FocusEvent.FOCUS_IN,true,false,this.__focus,false,0);
- this.__stack = [];
- value.__getInteractive(this.__stack);
- this.__stack.reverse();
- this.__fireEvent(event1,this.__stack);
- }
- this.__focus = value;
- }
- return this.__focus;
- }
- ,set_displayState: function(value) {
- this.displayState = value;
- return value;
- }
- ,__class__: openfl.display.Stage
- ,__properties__: $extend(openfl.display.Sprite.prototype.__properties__,{set_focus:"set_focus",get_focus:"get_focus",set_displayState:"set_displayState",set_color:"set_color",get_color:"get_color"})
- });
- openfl.display.Stage3D = function() {
- openfl.events.EventDispatcher.call(this);
- };
- $hxClasses["openfl.display.Stage3D"] = openfl.display.Stage3D;
- openfl.display.Stage3D.__name__ = ["openfl","display","Stage3D"];
- openfl.display.Stage3D.__super__ = openfl.events.EventDispatcher;
- openfl.display.Stage3D.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- requestContext3D: function(context3DRenderMode) {
- if(context3DRenderMode == null) context3DRenderMode = "";
- if(openfl.display.OpenGLView.get_isSupported()) {
- this.context3D = new openfl.display3D.Context3D();
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.CONTEXT3D_CREATE));
- } else this.dispatchEvent(new openfl.events.ErrorEvent(openfl.events.ErrorEvent.ERROR));
- }
- ,__class__: openfl.display.Stage3D
- });
- openfl.display.StageAlign = $hxClasses["openfl.display.StageAlign"] = { __ename__ : ["openfl","display","StageAlign"], __constructs__ : ["TOP_RIGHT","TOP_LEFT","TOP","RIGHT","LEFT","BOTTOM_RIGHT","BOTTOM_LEFT","BOTTOM"] };
- openfl.display.StageAlign.TOP_RIGHT = ["TOP_RIGHT",0];
- openfl.display.StageAlign.TOP_RIGHT.toString = $estr;
- openfl.display.StageAlign.TOP_RIGHT.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.TOP_LEFT = ["TOP_LEFT",1];
- openfl.display.StageAlign.TOP_LEFT.toString = $estr;
- openfl.display.StageAlign.TOP_LEFT.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.TOP = ["TOP",2];
- openfl.display.StageAlign.TOP.toString = $estr;
- openfl.display.StageAlign.TOP.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.RIGHT = ["RIGHT",3];
- openfl.display.StageAlign.RIGHT.toString = $estr;
- openfl.display.StageAlign.RIGHT.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.LEFT = ["LEFT",4];
- openfl.display.StageAlign.LEFT.toString = $estr;
- openfl.display.StageAlign.LEFT.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.BOTTOM_RIGHT = ["BOTTOM_RIGHT",5];
- openfl.display.StageAlign.BOTTOM_RIGHT.toString = $estr;
- openfl.display.StageAlign.BOTTOM_RIGHT.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.BOTTOM_LEFT = ["BOTTOM_LEFT",6];
- openfl.display.StageAlign.BOTTOM_LEFT.toString = $estr;
- openfl.display.StageAlign.BOTTOM_LEFT.__enum__ = openfl.display.StageAlign;
- openfl.display.StageAlign.BOTTOM = ["BOTTOM",7];
- openfl.display.StageAlign.BOTTOM.toString = $estr;
- openfl.display.StageAlign.BOTTOM.__enum__ = openfl.display.StageAlign;
- openfl.display.StageDisplayState = $hxClasses["openfl.display.StageDisplayState"] = { __ename__ : ["openfl","display","StageDisplayState"], __constructs__ : ["NORMAL","FULL_SCREEN","FULL_SCREEN_INTERACTIVE"] };
- openfl.display.StageDisplayState.NORMAL = ["NORMAL",0];
- openfl.display.StageDisplayState.NORMAL.toString = $estr;
- openfl.display.StageDisplayState.NORMAL.__enum__ = openfl.display.StageDisplayState;
- openfl.display.StageDisplayState.FULL_SCREEN = ["FULL_SCREEN",1];
- openfl.display.StageDisplayState.FULL_SCREEN.toString = $estr;
- openfl.display.StageDisplayState.FULL_SCREEN.__enum__ = openfl.display.StageDisplayState;
- openfl.display.StageDisplayState.FULL_SCREEN_INTERACTIVE = ["FULL_SCREEN_INTERACTIVE",2];
- openfl.display.StageDisplayState.FULL_SCREEN_INTERACTIVE.toString = $estr;
- openfl.display.StageDisplayState.FULL_SCREEN_INTERACTIVE.__enum__ = openfl.display.StageDisplayState;
- openfl.display.StageQuality = $hxClasses["openfl.display.StageQuality"] = { __ename__ : ["openfl","display","StageQuality"], __constructs__ : ["BEST","HIGH","MEDIUM","LOW"] };
- openfl.display.StageQuality.BEST = ["BEST",0];
- openfl.display.StageQuality.BEST.toString = $estr;
- openfl.display.StageQuality.BEST.__enum__ = openfl.display.StageQuality;
- openfl.display.StageQuality.HIGH = ["HIGH",1];
- openfl.display.StageQuality.HIGH.toString = $estr;
- openfl.display.StageQuality.HIGH.__enum__ = openfl.display.StageQuality;
- openfl.display.StageQuality.MEDIUM = ["MEDIUM",2];
- openfl.display.StageQuality.MEDIUM.toString = $estr;
- openfl.display.StageQuality.MEDIUM.__enum__ = openfl.display.StageQuality;
- openfl.display.StageQuality.LOW = ["LOW",3];
- openfl.display.StageQuality.LOW.toString = $estr;
- openfl.display.StageQuality.LOW.__enum__ = openfl.display.StageQuality;
- openfl.display.StageScaleMode = $hxClasses["openfl.display.StageScaleMode"] = { __ename__ : ["openfl","display","StageScaleMode"], __constructs__ : ["SHOW_ALL","NO_SCALE","NO_BORDER","EXACT_FIT"] };
- openfl.display.StageScaleMode.SHOW_ALL = ["SHOW_ALL",0];
- openfl.display.StageScaleMode.SHOW_ALL.toString = $estr;
- openfl.display.StageScaleMode.SHOW_ALL.__enum__ = openfl.display.StageScaleMode;
- openfl.display.StageScaleMode.NO_SCALE = ["NO_SCALE",1];
- openfl.display.StageScaleMode.NO_SCALE.toString = $estr;
- openfl.display.StageScaleMode.NO_SCALE.__enum__ = openfl.display.StageScaleMode;
- openfl.display.StageScaleMode.NO_BORDER = ["NO_BORDER",2];
- openfl.display.StageScaleMode.NO_BORDER.toString = $estr;
- openfl.display.StageScaleMode.NO_BORDER.__enum__ = openfl.display.StageScaleMode;
- openfl.display.StageScaleMode.EXACT_FIT = ["EXACT_FIT",3];
- openfl.display.StageScaleMode.EXACT_FIT.toString = $estr;
- openfl.display.StageScaleMode.EXACT_FIT.__enum__ = openfl.display.StageScaleMode;
- openfl.display.Tilesheet = function(image) {
- this.__bitmap = image;
- this.__centerPoints = new Array();
- this.__tileRects = new Array();
- this.__tileUVs = new Array();
- this.__rectTile = new openfl.geom.Rectangle();
- this.__rectUV = new openfl.geom.Rectangle();
- this.__point = new openfl.geom.Point();
- };
- $hxClasses["openfl.display.Tilesheet"] = openfl.display.Tilesheet;
- openfl.display.Tilesheet.__name__ = ["openfl","display","Tilesheet"];
- openfl.display.Tilesheet.prototype = {
- addTileRect: function(rectangle,centerPoint) {
- this.__tileRects.push(rectangle);
- if(centerPoint == null) centerPoint = openfl.display.Tilesheet.__defaultPoint;
- this.__centerPoints.push(centerPoint);
- this.__tileUVs.push(new openfl.geom.Rectangle(rectangle.get_left() / this.__bitmap.width,rectangle.get_top() / this.__bitmap.height,rectangle.get_right() / this.__bitmap.width,rectangle.get_bottom() / this.__bitmap.height));
- return this.__tileRects.length - 1;
- }
- ,drawTiles: function(graphics,tileData,smooth,flags,count) {
- if(count == null) count = -1;
- if(flags == null) flags = 0;
- if(smooth == null) smooth = false;
- graphics.drawTiles(this,tileData,smooth,flags,count);
- }
- ,getTileCenter: function(index) {
- return this.__centerPoints[index];
- }
- ,getTileRect: function(index) {
- return this.__tileRects[index];
- }
- ,getTileUVs: function(index) {
- return this.__tileUVs[index];
- }
- ,__class__: openfl.display.Tilesheet
- };
- openfl.display.TriangleCulling = $hxClasses["openfl.display.TriangleCulling"] = { __ename__ : ["openfl","display","TriangleCulling"], __constructs__ : ["NEGATIVE","NONE","POSITIVE"] };
- openfl.display.TriangleCulling.NEGATIVE = ["NEGATIVE",0];
- openfl.display.TriangleCulling.NEGATIVE.toString = $estr;
- openfl.display.TriangleCulling.NEGATIVE.__enum__ = openfl.display.TriangleCulling;
- openfl.display.TriangleCulling.NONE = ["NONE",1];
- openfl.display.TriangleCulling.NONE.toString = $estr;
- openfl.display.TriangleCulling.NONE.__enum__ = openfl.display.TriangleCulling;
- openfl.display.TriangleCulling.POSITIVE = ["POSITIVE",2];
- openfl.display.TriangleCulling.POSITIVE.toString = $estr;
- openfl.display.TriangleCulling.POSITIVE.__enum__ = openfl.display.TriangleCulling;
- openfl.display3D = {};
- openfl.display3D.Context3D = function() {
- this.disposed = false;
- this._yFlip = 1;
- this.vertexBuffersCreated = new Array();
- this.indexBuffersCreated = new Array();
- this.programsCreated = new Array();
- this.texturesCreated = new Array();
- this.samplerParameters = new Array();
- var _g1 = 0;
- var _g = openfl.display3D.Context3D.MAX_SAMPLERS;
- while(_g1 < _g) {
- var i = _g1++;
- this.samplerParameters[i] = new openfl.display3D._Context3D.SamplerState();
- this.samplerParameters[i].wrap = openfl.display3D.Context3DWrapMode.CLAMP;
- this.samplerParameters[i].filter = openfl.display3D.Context3DTextureFilter.LINEAR;
- this.samplerParameters[i].mipfilter = openfl.display3D.Context3DMipFilter.MIPNONE;
- }
- var stage = openfl.Lib.current.stage;
- this.ogl = new openfl.display.OpenGLView();
- this.ogl.set_scrollRect(new openfl.geom.Rectangle(0,0,stage.stageWidth,stage.stageHeight));
- this.scrollRect = this.ogl.get_scrollRect().clone();
- this.ogl.set_width(stage.stageWidth);
- this.ogl.set_height(stage.stageHeight);
- stage.addChildAt(this.ogl,0);
- };
- $hxClasses["openfl.display3D.Context3D"] = openfl.display3D.Context3D;
- openfl.display3D.Context3D.__name__ = ["openfl","display3D","Context3D"];
- openfl.display3D.Context3D.prototype = {
- clear: function(red,green,blue,alpha,depth,stencil,mask) {
- if(mask == null) mask = 17664;
- if(stencil == null) stencil = 0;
- if(depth == null) depth = 1;
- if(alpha == null) alpha = 1;
- if(blue == null) blue = 0;
- if(green == null) green = 0;
- if(red == null) red = 0;
- if(!this.drawing) {
- this.__updateBlendStatus();
- this.drawing = true;
- }
- lime.graphics.opengl.GL.context.clearColor(red,green,blue,alpha);
- lime.graphics.opengl.GL.context.clearDepth(depth);
- lime.graphics.opengl.GL.context.clearStencil(stencil);
- lime.graphics.opengl.GL.context.clear(mask);
- }
- ,configureBackBuffer: function(width,height,antiAlias,enableDepthAndStencil) {
- if(enableDepthAndStencil == null) enableDepthAndStencil = true;
- if(enableDepthAndStencil) {
- lime.graphics.opengl.GL.context.enable(2929);
- lime.graphics.opengl.GL.context.enable(2960);
- }
- this.ogl.set_scrollRect(new openfl.geom.Rectangle(0,0,width,height));
- this.ogl.set_width(width);
- this.ogl.set_height(height);
- this.scrollRect = this.ogl.get_scrollRect().clone();
- lime.graphics.opengl.GL.context.viewport(this.scrollRect.x | 0,this.scrollRect.y | 0,this.scrollRect.width | 0,this.scrollRect.height | 0);
- }
- ,createCubeTexture: function(size,format,optimizeForRenderToTexture,streamingLevels) {
- if(streamingLevels == null) streamingLevels = 0;
- var texture = new openfl.display3D.textures.CubeTexture(lime.graphics.opengl.GL.context.createTexture(),size);
- this.texturesCreated.push(texture);
- return texture;
- }
- ,createIndexBuffer: function(numIndices) {
- var indexBuffer = new openfl.display3D.IndexBuffer3D(lime.graphics.opengl.GL.context.createBuffer(),numIndices);
- this.indexBuffersCreated.push(indexBuffer);
- return indexBuffer;
- }
- ,createProgram: function() {
- var program = new openfl.display3D.Program3D(lime.graphics.opengl.GL.context.createProgram());
- this.programsCreated.push(program);
- return program;
- }
- ,createRectangleTexture: function(width,height,format,optimizeForRenderToTexture) {
- var texture = new openfl.display3D.textures.RectangleTexture(lime.graphics.opengl.GL.context.createTexture(),optimizeForRenderToTexture,width,height);
- this.texturesCreated.push(texture);
- return texture;
- }
- ,createTexture: function(width,height,format,optimizeForRenderToTexture,streamingLevels) {
- if(streamingLevels == null) streamingLevels = 0;
- var texture = new openfl.display3D.textures.Texture(lime.graphics.opengl.GL.context.createTexture(),optimizeForRenderToTexture,width,height);
- this.texturesCreated.push(texture);
- return texture;
- }
- ,createVertexBuffer: function(numVertices,data32PerVertex) {
- var vertexBuffer = new openfl.display3D.VertexBuffer3D(lime.graphics.opengl.GL.context.createBuffer(),numVertices,data32PerVertex);
- this.vertexBuffersCreated.push(vertexBuffer);
- return vertexBuffer;
- }
- ,dispose: function() {
- var _g = 0;
- var _g1 = this.vertexBuffersCreated;
- while(_g < _g1.length) {
- var vertexBuffer = _g1[_g];
- ++_g;
- vertexBuffer.dispose();
- }
- this.vertexBuffersCreated = null;
- var _g2 = 0;
- var _g11 = this.indexBuffersCreated;
- while(_g2 < _g11.length) {
- var indexBuffer = _g11[_g2];
- ++_g2;
- indexBuffer.dispose();
- }
- this.indexBuffersCreated = null;
- var _g3 = 0;
- var _g12 = this.programsCreated;
- while(_g3 < _g12.length) {
- var program = _g12[_g3];
- ++_g3;
- program.dispose();
- }
- this.programsCreated = null;
- this.samplerParameters = null;
- var _g4 = 0;
- var _g13 = this.texturesCreated;
- while(_g4 < _g13.length) {
- var texture = _g13[_g4];
- ++_g4;
- texture.dispose();
- }
- this.texturesCreated = null;
- if(this.framebuffer != null) {
- lime.graphics.opengl.GL.context.deleteFramebuffer(this.framebuffer);
- this.framebuffer = null;
- }
- if(this.renderbuffer != null) {
- lime.graphics.opengl.GL.context.deleteRenderbuffer(this.renderbuffer);
- this.renderbuffer = null;
- }
- this.disposed = true;
- }
- ,drawToBitmapData: function(destination) {
- }
- ,drawTriangles: function(indexBuffer,firstIndex,numTriangles) {
- if(numTriangles == null) numTriangles = -1;
- if(firstIndex == null) firstIndex = 0;
- var location = lime.graphics.opengl.GL.context.getUniformLocation(this.currentProgram.glProgram,"yflip");
- lime.graphics.opengl.GL.context.uniform1f(location,this._yFlip);
- if(!this.drawing) throw new openfl.errors.Error("Need to clear before drawing if the buffer has not been cleared since the last present() call.");
- var numIndices;
- if(numTriangles == -1) numIndices = indexBuffer.numIndices; else numIndices = numTriangles * 3;
- var byteOffset = firstIndex * 2;
- lime.graphics.opengl.GL.context.bindBuffer(34963,indexBuffer.glBuffer);
- lime.graphics.opengl.GL.context.drawElements(4,numIndices,5123,byteOffset);
- }
- ,present: function() {
- this.drawing = false;
- lime.graphics.opengl.GL.context.useProgram(null);
- lime.graphics.opengl.GL.context.bindBuffer(34962,null);
- lime.graphics.opengl.GL.context.disable(2884);
- if(this.framebuffer != null) lime.graphics.opengl.GL.context.bindFramebuffer(36160,null);
- if(this.renderbuffer != null) lime.graphics.opengl.GL.context.bindRenderbuffer(36161,null);
- }
- ,removeRenderMethod: function(func) {
- this.ogl.set_render(null);
- }
- ,setBlendFactors: function(sourceFactor,destinationFactor) {
- this.blendEnabled = true;
- this.blendSourceFactor = sourceFactor;
- this.blendDestinationFactor = destinationFactor;
- this.__updateBlendStatus();
- }
- ,setColorMask: function(red,green,blue,alpha) {
- lime.graphics.opengl.GL.context.colorMask(red,green,blue,alpha);
- }
- ,setCulling: function(triangleFaceToCull) {
- if(triangleFaceToCull == 0) lime.graphics.opengl.GL.context.disable(2884); else {
- lime.graphics.opengl.GL.context.enable(2884);
- switch(triangleFaceToCull) {
- case 1029:
- lime.graphics.opengl.GL.context.cullFace(1029);
- break;
- case 1028:
- lime.graphics.opengl.GL.context.cullFace(1028);
- break;
- case 1032:
- lime.graphics.opengl.GL.context.cullFace(1032);
- break;
- default:
- throw "Unknown Context3DTriangleFace type.";
- }
- }
- switch(triangleFaceToCull) {
- case 1029:
- this._yFlip = -1;
- break;
- case 1028:
- this._yFlip = 1;
- break;
- case 1032:
- this._yFlip = 1;
- break;
- case 0:
- this._yFlip = 1;
- break;
- default:
- throw "Unknown culling mode " + triangleFaceToCull + ".";
- }
- }
- ,setDepthTest: function(depthMask,passCompareMode) {
- lime.graphics.opengl.GL.context.depthFunc(passCompareMode);
- lime.graphics.opengl.GL.context.depthMask(depthMask);
- }
- ,setGLSLProgramConstantsFromByteArray: function(locationName,data,byteArrayOffset) {
- if(byteArrayOffset == null) byteArrayOffset = 0;
- data.position = byteArrayOffset;
- var location = lime.graphics.opengl.GL.context.getUniformLocation(this.currentProgram.glProgram,locationName);
- lime.graphics.opengl.GL.uniform4f(location,data.readFloat(),data.readFloat(),data.readFloat(),data.readFloat());
- }
- ,setGLSLProgramConstantsFromMatrix: function(locationName,matrix,transposedMatrix) {
- if(transposedMatrix == null) transposedMatrix = false;
- var location = lime.graphics.opengl.GL.context.getUniformLocation(this.currentProgram.glProgram,locationName);
- lime.graphics.opengl.GL.uniformMatrix4fv(location,!transposedMatrix,new Float32Array((function($this) {
- var $r;
- var this1 = matrix.rawData;
- var value = new Array();
- {
- var _g1 = 0;
- var _g = this1.data.length;
- while(_g1 < _g) {
- var i = _g1++;
- value.push(this1.data[i]);
- }
- }
- $r = value;
- return $r;
- }(this))));
- }
- ,setGLSLProgramConstantsFromVector4: function(locationName,data,startIndex) {
- if(startIndex == null) startIndex = 0;
- var location = lime.graphics.opengl.GL.context.getUniformLocation(this.currentProgram.glProgram,locationName);
- lime.graphics.opengl.GL.context.uniform4f(location,data[startIndex],data[startIndex + 1],data[startIndex + 2],data[startIndex + 3]);
- }
- ,setGLSLTextureAt: function(locationName,texture,textureIndex) {
- switch(textureIndex) {
- case 0:
- lime.graphics.opengl.GL.context.activeTexture(33984);
- break;
- case 1:
- lime.graphics.opengl.GL.context.activeTexture(33985);
- break;
- case 2:
- lime.graphics.opengl.GL.context.activeTexture(33986);
- break;
- case 3:
- lime.graphics.opengl.GL.context.activeTexture(33987);
- break;
- case 4:
- lime.graphics.opengl.GL.context.activeTexture(33988);
- break;
- case 5:
- lime.graphics.opengl.GL.context.activeTexture(33989);
- break;
- case 6:
- lime.graphics.opengl.GL.context.activeTexture(33990);
- break;
- case 7:
- lime.graphics.opengl.GL.context.activeTexture(33991);
- break;
- default:
- throw "Does not support texture8 or more";
- }
- if(texture == null) {
- lime.graphics.opengl.GL.context.bindTexture(3553,null);
- lime.graphics.opengl.GL.context.bindTexture(34067,null);
- return;
- }
- var location = lime.graphics.opengl.GL.context.getUniformLocation(this.currentProgram.glProgram,locationName);
- if(js.Boot.__instanceof(texture,openfl.display3D.textures.Texture)) {
- lime.graphics.opengl.GL.context.bindTexture(3553,(js.Boot.__cast(texture , openfl.display3D.textures.Texture)).glTexture);
- lime.graphics.opengl.GL.context.uniform1i(location,textureIndex);
- } else if(js.Boot.__instanceof(texture,openfl.display3D.textures.RectangleTexture)) {
- lime.graphics.opengl.GL.context.bindTexture(3553,(js.Boot.__cast(texture , openfl.display3D.textures.RectangleTexture)).glTexture);
- lime.graphics.opengl.GL.context.uniform1i(location,textureIndex);
- } else if(js.Boot.__instanceof(texture,openfl.display3D.textures.CubeTexture)) {
- lime.graphics.opengl.GL.context.bindTexture(34067,(js.Boot.__cast(texture , openfl.display3D.textures.CubeTexture)).glTexture);
- lime.graphics.opengl.GL.context.uniform1i(location,textureIndex);
- } else throw "Texture of type " + Type.getClassName(Type.getClass(texture)) + " not supported yet";
- var parameters = this.samplerParameters[textureIndex];
- if(parameters != null) this.setTextureParameters(texture,parameters.wrap,parameters.filter,parameters.mipfilter); else this.setTextureParameters(texture,openfl.display3D.Context3DWrapMode.CLAMP,openfl.display3D.Context3DTextureFilter.NEAREST,openfl.display3D.Context3DMipFilter.MIPNONE);
- }
- ,setGLSLVertexBufferAt: function(locationName,buffer,bufferOffset,format) {
- if(bufferOffset == null) bufferOffset = 0;
- var location;
- if(this.currentProgram != null && this.currentProgram.glProgram != null) location = lime.graphics.opengl.GL.context.getAttribLocation(this.currentProgram.glProgram,locationName); else location = -1;
- if(buffer == null) {
- if(location > -1) lime.graphics.opengl.GL.context.disableVertexAttribArray(location);
- return;
- }
- lime.graphics.opengl.GL.context.bindBuffer(34962,buffer.glBuffer);
- var dimension = 4;
- var type = 5126;
- var numBytes = 4;
- if(format == openfl.display3D.Context3DVertexBufferFormat.BYTES_4) {
- dimension = 4;
- type = 5126;
- numBytes = 4;
- } else if(format == openfl.display3D.Context3DVertexBufferFormat.FLOAT_1) {
- dimension = 1;
- type = 5126;
- numBytes = 4;
- } else if(format == openfl.display3D.Context3DVertexBufferFormat.FLOAT_2) {
- dimension = 2;
- type = 5126;
- numBytes = 4;
- } else if(format == openfl.display3D.Context3DVertexBufferFormat.FLOAT_3) {
- dimension = 3;
- type = 5126;
- numBytes = 4;
- } else if(format == openfl.display3D.Context3DVertexBufferFormat.FLOAT_4) {
- dimension = 4;
- type = 5126;
- numBytes = 4;
- } else throw "Buffer format " + Std.string(format) + " is not supported";
- lime.graphics.opengl.GL.context.enableVertexAttribArray(location);
- lime.graphics.opengl.GL.context.vertexAttribPointer(location,dimension,type,false,buffer.data32PerVertex * numBytes,bufferOffset * numBytes);
- }
- ,setProgram: function(program3D) {
- var glProgram = null;
- if(program3D != null) glProgram = program3D.glProgram;
- lime.graphics.opengl.GL.context.useProgram(glProgram);
- this.currentProgram = program3D;
- }
- ,setProgramConstantsFromByteArray: function(programType,firstRegister,numRegisters,data,byteArrayOffset) {
- data.position = byteArrayOffset;
- var _g = 0;
- while(_g < numRegisters) {
- var i = _g++;
- var locationName = this.__getUniformLocationNameFromAgalRegisterIndex(programType,firstRegister + i);
- this.setGLSLProgramConstantsFromByteArray(locationName,data);
- }
- }
- ,setProgramConstantsFromMatrix: function(programType,firstRegister,matrix,transposedMatrix) {
- if(transposedMatrix == null) transposedMatrix = false;
- var d = matrix.rawData;
- if(transposedMatrix) {
- this.setProgramConstantsFromVector(programType,firstRegister,[d.data[0],d.data[4],d.data[8],d.data[12]],1);
- this.setProgramConstantsFromVector(programType,firstRegister + 1,[d.data[1],d.data[5],d.data[9],d.data[13]],1);
- this.setProgramConstantsFromVector(programType,firstRegister + 2,[d.data[2],d.data[6],d.data[10],d.data[14]],1);
- this.setProgramConstantsFromVector(programType,firstRegister + 3,[d.data[3],d.data[7],d.data[11],d.data[15]],1);
- } else {
- this.setProgramConstantsFromVector(programType,firstRegister,[d.data[0],d.data[1],d.data[2],d.data[3]],1);
- this.setProgramConstantsFromVector(programType,firstRegister + 1,[d.data[4],d.data[5],d.data[6],d.data[7]],1);
- this.setProgramConstantsFromVector(programType,firstRegister + 2,[d.data[8],d.data[9],d.data[10],d.data[11]],1);
- this.setProgramConstantsFromVector(programType,firstRegister + 3,[d.data[12],d.data[13],d.data[14],d.data[15]],1);
- }
- }
- ,setProgramConstantsFromVector: function(programType,firstRegister,data,numRegisters) {
- if(numRegisters == null) numRegisters = 1;
- var _g = 0;
- while(_g < numRegisters) {
- var i = _g++;
- var currentIndex = i * 4;
- var locationName = this.__getUniformLocationNameFromAgalRegisterIndex(programType,firstRegister + i);
- this.setGLSLProgramConstantsFromVector4(locationName,data,currentIndex);
- }
- }
- ,setRenderMethod: function(func) {
- this.ogl.set_render(function(rect) {
- func(null);
- });
- }
- ,setRenderToBackBuffer: function() {
- lime.graphics.opengl.GL.context.disable(2929);
- lime.graphics.opengl.GL.context.disable(2960);
- lime.graphics.opengl.GL.context.disable(3089);
- if(this.framebuffer != null) lime.graphics.opengl.GL.context.bindFramebuffer(36160,null);
- if(this.renderbuffer != null) lime.graphics.opengl.GL.context.bindRenderbuffer(36161,null);
- }
- ,setRenderToTexture: function(texture,enableDepthAndStencil,antiAlias,surfaceSelector) {
- if(surfaceSelector == null) surfaceSelector = 0;
- if(antiAlias == null) antiAlias = 0;
- if(enableDepthAndStencil == null) enableDepthAndStencil = false;
- if(this.framebuffer == null) this.framebuffer = lime.graphics.opengl.GL.context.createFramebuffer();
- lime.graphics.opengl.GL.context.bindFramebuffer(36160,this.framebuffer);
- if(this.renderbuffer == null) this.renderbuffer = lime.graphics.opengl.GL.context.createRenderbuffer();
- lime.graphics.opengl.GL.context.bindRenderbuffer(36161,this.renderbuffer);
- lime.graphics.opengl.GL.context.renderbufferStorage(36161,6408,texture.width,texture.height);
- lime.graphics.opengl.GL.context.framebufferTexture2D(36160,36064,3553,texture.glTexture,0);
- lime.graphics.opengl.GL.context.renderbufferStorage(36161,34041,texture.width,texture.height);
- lime.graphics.opengl.GL.context.framebufferRenderbuffer(36160,33306,36161,this.renderbuffer);
- if(enableDepthAndStencil) {
- lime.graphics.opengl.GL.context.enable(2929);
- lime.graphics.opengl.GL.context.enable(2960);
- }
- lime.graphics.opengl.GL.context.bindTexture(3553,texture.glTexture);
- lime.graphics.opengl.GL.context.texImage2D(3553,0,6408,texture.width,texture.height,0,6408,5121,null);
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9729);
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9985);
- lime.graphics.opengl.GL.context.viewport(0,0,texture.width,texture.height);
- }
- ,setSamplerStateAt: function(sampler,wrap,filter,mipfilter) {
- if(0 <= sampler && sampler < openfl.display3D.Context3D.MAX_SAMPLERS) {
- this.samplerParameters[sampler].wrap = wrap;
- this.samplerParameters[sampler].filter = filter;
- this.samplerParameters[sampler].mipfilter = mipfilter;
- } else throw "Sampler is out of bounds.";
- }
- ,setScissorRectangle: function(rectangle) {
- if(rectangle == null) {
- lime.graphics.opengl.GL.context.disable(3089);
- return;
- }
- lime.graphics.opengl.GL.context.enable(3089);
- lime.graphics.opengl.GL.context.scissor(rectangle.x | 0,rectangle.y | 0,rectangle.width | 0,rectangle.height | 0);
- }
- ,setStencilActions: function(triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail) {
- this.stencilCompareMode = compareMode;
- lime.graphics.opengl.GL.context.stencilOp(actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail);
- lime.graphics.opengl.GL.context.stencilFunc(this.stencilCompareMode,this.stencilRef,this.stencilReadMask);
- }
- ,setStencilReferenceValue: function(referenceValue,readMask,writeMask) {
- if(writeMask == null) writeMask = 255;
- if(readMask == null) readMask = 255;
- this.stencilReadMask = readMask;
- this.stencilRef = referenceValue;
- lime.graphics.opengl.GL.context.stencilFunc(this.stencilCompareMode,this.stencilRef,this.stencilReadMask);
- lime.graphics.opengl.GL.context.stencilMask(writeMask);
- }
- ,setTextureAt: function(sampler,texture) {
- var locationName = "fs" + sampler;
- this.setGLSLTextureAt(locationName,texture,sampler);
- }
- ,setTextureParameters: function(texture,wrap,filter,mipfilter) {
- if(!openfl.display3D.Context3D.anisotropySupportTested) {
- var ext = lime.graphics.opengl.GL.context.getExtension("EXT_texture_filter_anisotropic");
- if(ext == null) ext = lime.graphics.opengl.GL.context.getExtension("MOZ_EXT_texture_filter_anisotropic");
- if(ext == null) ext = lime.graphics.opengl.GL.context.getExtension("WEBKIT_EXT_texture_filter_anisotropic");
- openfl.display3D.Context3D.supportsAnisotropy = ext != null;
- openfl.display3D.Context3D.anisotropySupportTested = true;
- lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var $int = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = $int < 0?4294967296.0 + $int:$int + 0.0;
- return $r;
- }(this)));
- openfl.display3D.Context3D.maxSupportedAnisotropy = lime.graphics.opengl.GL.context.getTexParameter(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT);
- }
- if(js.Boot.__instanceof(texture,openfl.display3D.textures.Texture)) {
- switch(wrap[1]) {
- case 0:
- lime.graphics.opengl.GL.context.texParameteri(3553,10242,33071);
- lime.graphics.opengl.GL.context.texParameteri(3553,10243,33071);
- break;
- case 1:
- lime.graphics.opengl.GL.context.texParameteri(3553,10242,10497);
- lime.graphics.opengl.GL.context.texParameteri(3553,10243,10497);
- break;
- }
- switch(filter[1]) {
- case 4:
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9729);
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1);
- break;
- case 5:
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9728);
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1);
- break;
- case 0:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg = 2 < 0;
- var bNeg = a < 0;
- $r = aNeg != bNeg?aNeg:2 > a;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int1 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int1 < 0?4294967296.0 + int1:int1 + 0.0;
- return $r;
- }(this)):2);
- break;
- case 1:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a1 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg1 = 4 < 0;
- var bNeg1 = a1 < 0;
- $r = aNeg1 != bNeg1?aNeg1:4 > a1;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int2 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int2 < 0?4294967296.0 + int2:int2 + 0.0;
- return $r;
- }(this)):4);
- break;
- case 2:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a2 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg2 = 8 < 0;
- var bNeg2 = a2 < 0;
- $r = aNeg2 != bNeg2?aNeg2:8 > a2;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int3 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int3 < 0?4294967296.0 + int3:int3 + 0.0;
- return $r;
- }(this)):8);
- break;
- case 3:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a3 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg3 = 16 < 0;
- var bNeg3 = a3 < 0;
- $r = aNeg3 != bNeg3?aNeg3:16 > a3;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int4 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int4 < 0?4294967296.0 + int4:int4 + 0.0;
- return $r;
- }(this)):16);
- break;
- }
- switch(mipfilter[1]) {
- case 0:
- lime.graphics.opengl.GL.context.generateMipmap(3553);
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9987);
- break;
- case 1:
- lime.graphics.opengl.GL.context.generateMipmap(3553);
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9984);
- break;
- case 2:
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9729);
- break;
- }
- } else if(js.Boot.__instanceof(texture,openfl.display3D.textures.RectangleTexture)) {
- lime.graphics.opengl.GL.context.texParameteri(3553,10242,33071);
- lime.graphics.opengl.GL.context.texParameteri(3553,10243,33071);
- switch(filter[1]) {
- case 4:
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9729);
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1);
- break;
- case 5:
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9728);
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1);
- break;
- case 0:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a4 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg4 = 2 < 0;
- var bNeg4 = a4 < 0;
- $r = aNeg4 != bNeg4?aNeg4:2 > a4;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int5 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int5 < 0?4294967296.0 + int5:int5 + 0.0;
- return $r;
- }(this)):2);
- break;
- case 1:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a5 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg5 = 4 < 0;
- var bNeg5 = a5 < 0;
- $r = aNeg5 != bNeg5?aNeg5:4 > a5;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int6 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int6 < 0?4294967296.0 + int6:int6 + 0.0;
- return $r;
- }(this)):4);
- break;
- case 2:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a6 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg6 = 8 < 0;
- var bNeg6 = a6 < 0;
- $r = aNeg6 != bNeg6?aNeg6:8 > a6;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int7 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int7 < 0?4294967296.0 + int7:int7 + 0.0;
- return $r;
- }(this)):8);
- break;
- case 3:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(3553,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a7 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg7 = 16 < 0;
- var bNeg7 = a7 < 0;
- $r = aNeg7 != bNeg7?aNeg7:16 > a7;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int8 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int8 < 0?4294967296.0 + int8:int8 + 0.0;
- return $r;
- }(this)):16);
- break;
- }
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9729);
- } else if(js.Boot.__instanceof(texture,openfl.display3D.textures.CubeTexture)) {
- switch(wrap[1]) {
- case 0:
- lime.graphics.opengl.GL.context.texParameteri(34067,10242,33071);
- lime.graphics.opengl.GL.context.texParameteri(34067,10243,33071);
- break;
- case 1:
- lime.graphics.opengl.GL.context.texParameteri(34067,10242,10497);
- lime.graphics.opengl.GL.context.texParameteri(34067,10243,10497);
- break;
- }
- switch(filter[1]) {
- case 4:
- lime.graphics.opengl.GL.context.texParameteri(34067,10240,9729);
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(34067,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1);
- break;
- case 5:
- lime.graphics.opengl.GL.context.texParameteri(34067,10240,9728);
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(34067,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1);
- break;
- case 0:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(34067,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a8 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg8 = 2 < 0;
- var bNeg8 = a8 < 0;
- $r = aNeg8 != bNeg8?aNeg8:2 > a8;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int9 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int9 < 0?4294967296.0 + int9:int9 + 0.0;
- return $r;
- }(this)):2);
- break;
- case 1:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(34067,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a9 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg9 = 4 < 0;
- var bNeg9 = a9 < 0;
- $r = aNeg9 != bNeg9?aNeg9:4 > a9;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int10 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int10 < 0?4294967296.0 + int10:int10 + 0.0;
- return $r;
- }(this)):4);
- break;
- case 2:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(34067,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a10 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg10 = 8 < 0;
- var bNeg10 = a10 < 0;
- $r = aNeg10 != bNeg10?aNeg10:8 > a10;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int11 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int11 < 0?4294967296.0 + int11:int11 + 0.0;
- return $r;
- }(this)):8);
- break;
- case 3:
- if(openfl.display3D.Context3D.supportsAnisotropy) lime.graphics.opengl.GL.context.texParameterf(34067,openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT,(function($this) {
- var $r;
- var a11 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = (function($this) {
- var $r;
- var aNeg11 = 16 < 0;
- var bNeg11 = a11 < 0;
- $r = aNeg11 != bNeg11?aNeg11:16 > a11;
- return $r;
- }($this));
- return $r;
- }(this))?(function($this) {
- var $r;
- var int12 = openfl.display3D.Context3D.maxSupportedAnisotropy;
- $r = int12 < 0?4294967296.0 + int12:int12 + 0.0;
- return $r;
- }(this)):16);
- break;
- }
- switch(mipfilter[1]) {
- case 0:
- lime.graphics.opengl.GL.context.texParameteri(34067,10241,9987);
- break;
- case 1:
- lime.graphics.opengl.GL.context.texParameteri(34067,10241,9984);
- break;
- case 2:
- lime.graphics.opengl.GL.context.texParameteri(34067,10241,9729);
- break;
- }
- } else throw "Texture of type " + Type.getClassName(Type.getClass(texture)) + " not supported yet";
- }
- ,setVertexBufferAt: function(index,buffer,bufferOffset,format) {
- if(bufferOffset == null) bufferOffset = 0;
- var locationName = "va" + index;
- this.setGLSLVertexBufferAt(locationName,buffer,bufferOffset,format);
- }
- ,__getUniformLocationNameFromAgalRegisterIndex: function(programType,firstRegister) {
- if(programType == openfl.display3D.Context3DProgramType.VERTEX) return "vc" + firstRegister; else if(programType == openfl.display3D.Context3DProgramType.FRAGMENT) return "fc" + firstRegister;
- throw "Program Type " + Std.string(programType) + " not supported";
- }
- ,__updateBlendStatus: function() {
- if(this.blendEnabled) {
- lime.graphics.opengl.GL.context.enable(3042);
- lime.graphics.opengl.GL.context.blendEquation(32774);
- lime.graphics.opengl.GL.context.blendFunc(this.blendSourceFactor,this.blendDestinationFactor);
- } else lime.graphics.opengl.GL.context.disable(3042);
- }
- ,__class__: openfl.display3D.Context3D
- };
- openfl.display3D._Context3D = {};
- openfl.display3D._Context3D.SamplerState = function() {
- };
- $hxClasses["openfl.display3D._Context3D.SamplerState"] = openfl.display3D._Context3D.SamplerState;
- openfl.display3D._Context3D.SamplerState.__name__ = ["openfl","display3D","_Context3D","SamplerState"];
- openfl.display3D._Context3D.SamplerState.prototype = {
- __class__: openfl.display3D._Context3D.SamplerState
- };
- openfl.display3D.Context3DClearMask = function() { };
- $hxClasses["openfl.display3D.Context3DClearMask"] = openfl.display3D.Context3DClearMask;
- openfl.display3D.Context3DClearMask.__name__ = ["openfl","display3D","Context3DClearMask"];
- openfl.display3D.Context3DMipFilter = $hxClasses["openfl.display3D.Context3DMipFilter"] = { __ename__ : ["openfl","display3D","Context3DMipFilter"], __constructs__ : ["MIPLINEAR","MIPNEAREST","MIPNONE"] };
- openfl.display3D.Context3DMipFilter.MIPLINEAR = ["MIPLINEAR",0];
- openfl.display3D.Context3DMipFilter.MIPLINEAR.toString = $estr;
- openfl.display3D.Context3DMipFilter.MIPLINEAR.__enum__ = openfl.display3D.Context3DMipFilter;
- openfl.display3D.Context3DMipFilter.MIPNEAREST = ["MIPNEAREST",1];
- openfl.display3D.Context3DMipFilter.MIPNEAREST.toString = $estr;
- openfl.display3D.Context3DMipFilter.MIPNEAREST.__enum__ = openfl.display3D.Context3DMipFilter;
- openfl.display3D.Context3DMipFilter.MIPNONE = ["MIPNONE",2];
- openfl.display3D.Context3DMipFilter.MIPNONE.toString = $estr;
- openfl.display3D.Context3DMipFilter.MIPNONE.__enum__ = openfl.display3D.Context3DMipFilter;
- openfl.display3D.Context3DProgramType = $hxClasses["openfl.display3D.Context3DProgramType"] = { __ename__ : ["openfl","display3D","Context3DProgramType"], __constructs__ : ["VERTEX","FRAGMENT"] };
- openfl.display3D.Context3DProgramType.VERTEX = ["VERTEX",0];
- openfl.display3D.Context3DProgramType.VERTEX.toString = $estr;
- openfl.display3D.Context3DProgramType.VERTEX.__enum__ = openfl.display3D.Context3DProgramType;
- openfl.display3D.Context3DProgramType.FRAGMENT = ["FRAGMENT",1];
- openfl.display3D.Context3DProgramType.FRAGMENT.toString = $estr;
- openfl.display3D.Context3DProgramType.FRAGMENT.__enum__ = openfl.display3D.Context3DProgramType;
- openfl.display3D.Context3DTextureFilter = $hxClasses["openfl.display3D.Context3DTextureFilter"] = { __ename__ : ["openfl","display3D","Context3DTextureFilter"], __constructs__ : ["ANISOTROPIC2X","ANISOTROPIC4X","ANISOTROPIC8X","ANISOTROPIC16X","LINEAR","NEAREST"] };
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC2X = ["ANISOTROPIC2X",0];
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC2X.toString = $estr;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC2X.__enum__ = openfl.display3D.Context3DTextureFilter;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC4X = ["ANISOTROPIC4X",1];
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC4X.toString = $estr;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC4X.__enum__ = openfl.display3D.Context3DTextureFilter;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC8X = ["ANISOTROPIC8X",2];
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC8X.toString = $estr;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC8X.__enum__ = openfl.display3D.Context3DTextureFilter;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC16X = ["ANISOTROPIC16X",3];
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC16X.toString = $estr;
- openfl.display3D.Context3DTextureFilter.ANISOTROPIC16X.__enum__ = openfl.display3D.Context3DTextureFilter;
- openfl.display3D.Context3DTextureFilter.LINEAR = ["LINEAR",4];
- openfl.display3D.Context3DTextureFilter.LINEAR.toString = $estr;
- openfl.display3D.Context3DTextureFilter.LINEAR.__enum__ = openfl.display3D.Context3DTextureFilter;
- openfl.display3D.Context3DTextureFilter.NEAREST = ["NEAREST",5];
- openfl.display3D.Context3DTextureFilter.NEAREST.toString = $estr;
- openfl.display3D.Context3DTextureFilter.NEAREST.__enum__ = openfl.display3D.Context3DTextureFilter;
- openfl.display3D.Context3DTextureFormat = $hxClasses["openfl.display3D.Context3DTextureFormat"] = { __ename__ : ["openfl","display3D","Context3DTextureFormat"], __constructs__ : ["BGRA","COMPRESSED","COMPRESSED_ALPHA"] };
- openfl.display3D.Context3DTextureFormat.BGRA = ["BGRA",0];
- openfl.display3D.Context3DTextureFormat.BGRA.toString = $estr;
- openfl.display3D.Context3DTextureFormat.BGRA.__enum__ = openfl.display3D.Context3DTextureFormat;
- openfl.display3D.Context3DTextureFormat.COMPRESSED = ["COMPRESSED",1];
- openfl.display3D.Context3DTextureFormat.COMPRESSED.toString = $estr;
- openfl.display3D.Context3DTextureFormat.COMPRESSED.__enum__ = openfl.display3D.Context3DTextureFormat;
- openfl.display3D.Context3DTextureFormat.COMPRESSED_ALPHA = ["COMPRESSED_ALPHA",2];
- openfl.display3D.Context3DTextureFormat.COMPRESSED_ALPHA.toString = $estr;
- openfl.display3D.Context3DTextureFormat.COMPRESSED_ALPHA.__enum__ = openfl.display3D.Context3DTextureFormat;
- openfl.display3D._Context3DTriangleFace = {};
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_ = function() { };
- $hxClasses["openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_"] = openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_;
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.__name__ = ["openfl","display3D","_Context3DTriangleFace","Context3DTriangleFace_Impl_"];
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_._new = function(a) {
- return a;
- };
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.fromInt = function(s) {
- return s;
- };
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.toInt = function(this1) {
- return this1;
- };
- openfl.display3D.Context3DVertexBufferFormat = $hxClasses["openfl.display3D.Context3DVertexBufferFormat"] = { __ename__ : ["openfl","display3D","Context3DVertexBufferFormat"], __constructs__ : ["BYTES_4","FLOAT_1","FLOAT_2","FLOAT_3","FLOAT_4"] };
- openfl.display3D.Context3DVertexBufferFormat.BYTES_4 = ["BYTES_4",0];
- openfl.display3D.Context3DVertexBufferFormat.BYTES_4.toString = $estr;
- openfl.display3D.Context3DVertexBufferFormat.BYTES_4.__enum__ = openfl.display3D.Context3DVertexBufferFormat;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_1 = ["FLOAT_1",1];
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_1.toString = $estr;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_1.__enum__ = openfl.display3D.Context3DVertexBufferFormat;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_2 = ["FLOAT_2",2];
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_2.toString = $estr;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_2.__enum__ = openfl.display3D.Context3DVertexBufferFormat;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_3 = ["FLOAT_3",3];
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_3.toString = $estr;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_3.__enum__ = openfl.display3D.Context3DVertexBufferFormat;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_4 = ["FLOAT_4",4];
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_4.toString = $estr;
- openfl.display3D.Context3DVertexBufferFormat.FLOAT_4.__enum__ = openfl.display3D.Context3DVertexBufferFormat;
- openfl.display3D.Context3DWrapMode = $hxClasses["openfl.display3D.Context3DWrapMode"] = { __ename__ : ["openfl","display3D","Context3DWrapMode"], __constructs__ : ["CLAMP","REPEAT"] };
- openfl.display3D.Context3DWrapMode.CLAMP = ["CLAMP",0];
- openfl.display3D.Context3DWrapMode.CLAMP.toString = $estr;
- openfl.display3D.Context3DWrapMode.CLAMP.__enum__ = openfl.display3D.Context3DWrapMode;
- openfl.display3D.Context3DWrapMode.REPEAT = ["REPEAT",1];
- openfl.display3D.Context3DWrapMode.REPEAT.toString = $estr;
- openfl.display3D.Context3DWrapMode.REPEAT.__enum__ = openfl.display3D.Context3DWrapMode;
- openfl.display3D.IndexBuffer3D = function(glBuffer,numIndices) {
- this.glBuffer = glBuffer;
- this.numIndices = numIndices;
- };
- $hxClasses["openfl.display3D.IndexBuffer3D"] = openfl.display3D.IndexBuffer3D;
- openfl.display3D.IndexBuffer3D.__name__ = ["openfl","display3D","IndexBuffer3D"];
- openfl.display3D.IndexBuffer3D.prototype = {
- dispose: function() {
- lime.graphics.opengl.GL.context.deleteBuffer(this.glBuffer);
- }
- ,uploadFromByteArray: function(byteArray,byteArrayOffset,startOffset,count) {
- var bytesPerIndex = 2;
- lime.graphics.opengl.GL.context.bindBuffer(34963,this.glBuffer);
- var length = count * bytesPerIndex;
- var offset = byteArrayOffset + startOffset * bytesPerIndex;
- var indices;
- indices = new Int16Array(length);
- byteArray.position = offset;
- var i = 0;
- while(byteArray.position < length + offset) {
- indices[i] = byteArray.readUnsignedByte();
- i++;
- }
- lime.graphics.opengl.GL.context.bufferData(34963,indices,35044);
- }
- ,uploadFromVector: function(data,startOffset,count) {
- lime.graphics.opengl.GL.context.bindBuffer(34963,this.glBuffer);
- var indices;
- indices = new Int16Array(count);
- var _g1 = startOffset;
- var _g = startOffset + count;
- while(_g1 < _g) {
- var i = _g1++;
- indices[i] = data.data[i];
- }
- lime.graphics.opengl.GL.context.bufferData(34963,indices,35044);
- }
- ,__class__: openfl.display3D.IndexBuffer3D
- };
- openfl.display3D.Program3D = function(program) {
- this.glProgram = program;
- };
- $hxClasses["openfl.display3D.Program3D"] = openfl.display3D.Program3D;
- openfl.display3D.Program3D.__name__ = ["openfl","display3D","Program3D"];
- openfl.display3D.Program3D.prototype = {
- dispose: function() {
- lime.graphics.opengl.GL.context.deleteProgram(this.glProgram);
- }
- ,upload: function(vertexShader,fragmentShader) {
- lime.graphics.opengl.GL.context.attachShader(this.glProgram,vertexShader);
- lime.graphics.opengl.GL.context.attachShader(this.glProgram,fragmentShader);
- lime.graphics.opengl.GL.context.linkProgram(this.glProgram);
- if(lime.graphics.opengl.GL.context.getProgramParameter(this.glProgram,35714) == 0) {
- var result = lime.graphics.opengl.GL.context.getProgramInfoLog(this.glProgram);
- if(result != "") throw result;
- }
- }
- ,__class__: openfl.display3D.Program3D
- };
- openfl.display3D.VertexBuffer3D = function(glBuffer,numVertices,data32PerVertex) {
- this.glBuffer = glBuffer;
- this.numVertices = numVertices;
- this.data32PerVertex = data32PerVertex;
- };
- $hxClasses["openfl.display3D.VertexBuffer3D"] = openfl.display3D.VertexBuffer3D;
- openfl.display3D.VertexBuffer3D.__name__ = ["openfl","display3D","VertexBuffer3D"];
- openfl.display3D.VertexBuffer3D.prototype = {
- dispose: function() {
- lime.graphics.opengl.GL.context.deleteBuffer(this.glBuffer);
- }
- ,uploadFromByteArray: function(byteArray,byteArrayOffset,startOffset,count) {
- var bytesPerVertex = this.data32PerVertex * 4;
- lime.graphics.opengl.GL.context.bindBuffer(34962,this.glBuffer);
- var length = count * bytesPerVertex;
- var offset = byteArrayOffset + startOffset * bytesPerVertex;
- var float32Array;
- float32Array = new Float32Array(length);
- byteArray.position = offset;
- var i = 0;
- while(byteArray.position < length + offset) {
- float32Array[i] = byteArray.readUnsignedByte();
- i++;
- }
- lime.graphics.opengl.GL.context.bufferData(34962,float32Array,35044);
- }
- ,uploadFromFloat32Array: function(data,startVertex,numVertices) {
- lime.graphics.opengl.GL.context.bindBuffer(34962,this.glBuffer);
- lime.graphics.opengl.GL.context.bufferData(34962,data,35044);
- }
- ,uploadFromVector: function(data,startVertex,numVertices) {
- var bytesPerVertex = this.data32PerVertex * 4;
- lime.graphics.opengl.GL.context.bindBuffer(34962,this.glBuffer);
- var length = numVertices * this.data32PerVertex;
- var offset = startVertex;
- var float32Array;
- float32Array = new Float32Array(length);
- var _g1 = startVertex;
- var _g = startVertex + length;
- while(_g1 < _g) {
- var i = _g1++;
- float32Array[i] = data.data[i];
- }
- lime.graphics.opengl.GL.context.bufferData(34962,float32Array,35044);
- float32Array = null;
- }
- ,__class__: openfl.display3D.VertexBuffer3D
- };
- openfl.display3D.textures = {};
- openfl.display3D.textures.TextureBase = function(glTexture,width,height) {
- if(height == null) height = 0;
- if(width == null) width = 0;
- openfl.events.EventDispatcher.call(this);
- this.width = width;
- this.height = height;
- this.glTexture = glTexture;
- };
- $hxClasses["openfl.display3D.textures.TextureBase"] = openfl.display3D.textures.TextureBase;
- openfl.display3D.textures.TextureBase.__name__ = ["openfl","display3D","textures","TextureBase"];
- openfl.display3D.textures.TextureBase.__super__ = openfl.events.EventDispatcher;
- openfl.display3D.textures.TextureBase.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- dispose: function() {
- lime.graphics.opengl.GL.context.deleteTexture(this.glTexture);
- }
- ,__class__: openfl.display3D.textures.TextureBase
- });
- openfl.display3D.textures.CubeTexture = function(glTexture,size) {
- openfl.display3D.textures.TextureBase.call(this,glTexture,size,size);
- this.size = size;
- this._textures = [];
- var _g = 0;
- while(_g < 6) {
- var i = _g++;
- this._textures[i] = lime.graphics.opengl.GL.context.createTexture();
- }
- };
- $hxClasses["openfl.display3D.textures.CubeTexture"] = openfl.display3D.textures.CubeTexture;
- openfl.display3D.textures.CubeTexture.__name__ = ["openfl","display3D","textures","CubeTexture"];
- openfl.display3D.textures.CubeTexture.__super__ = openfl.display3D.textures.TextureBase;
- openfl.display3D.textures.CubeTexture.prototype = $extend(openfl.display3D.textures.TextureBase.prototype,{
- glTextureAt: function(index) {
- return this._textures[index];
- }
- ,uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) {
- if(async == null) async = false;
- }
- ,uploadFromBitmapData: function(bitmapData,side,miplevel) {
- if(miplevel == null) miplevel = 0;
- var source = bitmapData.__image.get_data();
- lime.graphics.opengl.GL.context.bindTexture(34067,this.glTexture);
- switch(side) {
- case 0:
- lime.graphics.opengl.GL.context.texImage2D(34069,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source);
- break;
- case 1:
- lime.graphics.opengl.GL.context.texImage2D(34070,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source);
- break;
- case 2:
- lime.graphics.opengl.GL.context.texImage2D(34071,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source);
- break;
- case 3:
- lime.graphics.opengl.GL.context.texImage2D(34072,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source);
- break;
- case 4:
- lime.graphics.opengl.GL.context.texImage2D(34073,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source);
- break;
- case 5:
- lime.graphics.opengl.GL.context.texImage2D(34074,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source);
- break;
- default:
- throw "unknown side type";
- }
- lime.graphics.opengl.GL.context.bindTexture(34067,null);
- }
- ,uploadFromByteArray: function(data,byteArrayOffset,side,miplevel) {
- if(miplevel == null) miplevel = 0;
- }
- ,__class__: openfl.display3D.textures.CubeTexture
- });
- openfl.display3D.textures.RectangleTexture = function(glTexture,optimize,width,height) {
- this.optimizeForRenderToTexture = optimize;
- if(this.optimizeForRenderToTexture == null) this.optimizeForRenderToTexture = false;
- openfl.display3D.textures.TextureBase.call(this,glTexture,width,height);
- };
- $hxClasses["openfl.display3D.textures.RectangleTexture"] = openfl.display3D.textures.RectangleTexture;
- openfl.display3D.textures.RectangleTexture.__name__ = ["openfl","display3D","textures","RectangleTexture"];
- openfl.display3D.textures.RectangleTexture.__super__ = openfl.display3D.textures.TextureBase;
- openfl.display3D.textures.RectangleTexture.prototype = $extend(openfl.display3D.textures.TextureBase.prototype,{
- uploadFromBitmapData: function(bitmapData,miplevel) {
- if(miplevel == null) miplevel = 0;
- var p = lime.utils.ByteArray.__ofBuffer(bitmapData.__image.get_data().buffer);
- this.width = bitmapData.width;
- this.height = bitmapData.height;
- this.uploadFromByteArray(p,0);
- }
- ,uploadFromByteArray: function(data,byteArrayOffset) {
- lime.graphics.opengl.GL.context.bindTexture(3553,this.glTexture);
- if(this.optimizeForRenderToTexture) lime.graphics.opengl.GL.context.pixelStorei(37440,1);
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9728);
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9728);
- lime.graphics.opengl.GL.context.texParameteri(3553,10242,33071);
- lime.graphics.opengl.GL.context.texParameteri(3553,10243,33071);
- var source = new Uint8Array(data.length);
- data.position = byteArrayOffset;
- var i = 0;
- while(data.position < data.length) {
- source[i] = data.readUnsignedByte();
- i++;
- }
- lime.graphics.opengl.GL.context.texImage2D(3553,0,6408,this.width,this.height,0,6408,5121,source);
- lime.graphics.opengl.GL.context.bindTexture(3553,null);
- }
- ,__class__: openfl.display3D.textures.RectangleTexture
- });
- openfl.display3D.textures.Texture = function(glTexture,optimize,width,height) {
- this.optimizeForRenderToTexture = optimize;
- if(this.optimizeForRenderToTexture == null) this.optimizeForRenderToTexture = false;
- openfl.display3D.textures.TextureBase.call(this,glTexture,width,height);
- };
- $hxClasses["openfl.display3D.textures.Texture"] = openfl.display3D.textures.Texture;
- openfl.display3D.textures.Texture.__name__ = ["openfl","display3D","textures","Texture"];
- openfl.display3D.textures.Texture.__super__ = openfl.display3D.textures.TextureBase;
- openfl.display3D.textures.Texture.prototype = $extend(openfl.display3D.textures.TextureBase.prototype,{
- uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) {
- if(async == null) async = false;
- }
- ,uploadFromBitmapData: function(bitmapData,miplevel) {
- if(miplevel == null) miplevel = 0;
- var p = lime.utils.ByteArray.__ofBuffer(bitmapData.__image.get_data().buffer);
- this.width = bitmapData.width;
- this.height = bitmapData.height;
- this.uploadFromByteArray(p,0,miplevel);
- }
- ,uploadFromByteArray: function(data,byteArrayOffset,miplevel) {
- if(miplevel == null) miplevel = 0;
- lime.graphics.opengl.GL.context.bindTexture(3553,this.glTexture);
- if(this.optimizeForRenderToTexture) {
- lime.graphics.opengl.GL.context.pixelStorei(37440,1);
- lime.graphics.opengl.GL.context.texParameteri(3553,10240,9728);
- lime.graphics.opengl.GL.context.texParameteri(3553,10241,9728);
- lime.graphics.opengl.GL.context.texParameteri(3553,10242,33071);
- lime.graphics.opengl.GL.context.texParameteri(3553,10243,33071);
- }
- var source = new Uint8Array(data.length);
- data.position = byteArrayOffset;
- var i = 0;
- while(data.position < data.length) {
- source[i] = data.readUnsignedByte();
- i++;
- }
- lime.graphics.opengl.GL.context.texImage2D(3553,miplevel,6408,this.width,this.height,0,6408,5121,source);
- lime.graphics.opengl.GL.context.bindTexture(3553,null);
- }
- ,__class__: openfl.display3D.textures.Texture
- });
- openfl.errors = {};
- openfl.errors.Error = function(message,id) {
- if(id == null) id = 0;
- if(message == null) message = "";
- this.message = message;
- this.errorID = id;
- this.name = "Error";
- };
- $hxClasses["openfl.errors.Error"] = openfl.errors.Error;
- openfl.errors.Error.__name__ = ["openfl","errors","Error"];
- openfl.errors.Error.prototype = {
- getStackTrace: function() {
- return haxe.CallStack.toString(haxe.CallStack.exceptionStack());
- }
- ,toString: function() {
- if(this.message != null) return this.message; else return "Error";
- }
- ,__class__: openfl.errors.Error
- };
- openfl.errors.ArgumentError = function(inMessage) {
- if(inMessage == null) inMessage = "";
- openfl.errors.Error.call(this,inMessage);
- };
- $hxClasses["openfl.errors.ArgumentError"] = openfl.errors.ArgumentError;
- openfl.errors.ArgumentError.__name__ = ["openfl","errors","ArgumentError"];
- openfl.errors.ArgumentError.__super__ = openfl.errors.Error;
- openfl.errors.ArgumentError.prototype = $extend(openfl.errors.Error.prototype,{
- __class__: openfl.errors.ArgumentError
- });
- openfl.errors.IOError = function(message) {
- if(message == null) message = "";
- openfl.errors.Error.call(this,message);
- };
- $hxClasses["openfl.errors.IOError"] = openfl.errors.IOError;
- openfl.errors.IOError.__name__ = ["openfl","errors","IOError"];
- openfl.errors.IOError.__super__ = openfl.errors.Error;
- openfl.errors.IOError.prototype = $extend(openfl.errors.Error.prototype,{
- __class__: openfl.errors.IOError
- });
- openfl.errors.RangeError = function(inMessage) {
- if(inMessage == null) inMessage = "";
- openfl.errors.Error.call(this,inMessage,0);
- };
- $hxClasses["openfl.errors.RangeError"] = openfl.errors.RangeError;
- openfl.errors.RangeError.__name__ = ["openfl","errors","RangeError"];
- openfl.errors.RangeError.__super__ = openfl.errors.Error;
- openfl.errors.RangeError.prototype = $extend(openfl.errors.Error.prototype,{
- __class__: openfl.errors.RangeError
- });
- openfl.errors.TypeError = function(inMessage) {
- if(inMessage == null) inMessage = "";
- openfl.errors.Error.call(this,inMessage,0);
- };
- $hxClasses["openfl.errors.TypeError"] = openfl.errors.TypeError;
- openfl.errors.TypeError.__name__ = ["openfl","errors","TypeError"];
- openfl.errors.TypeError.__super__ = openfl.errors.Error;
- openfl.errors.TypeError.prototype = $extend(openfl.errors.Error.prototype,{
- __class__: openfl.errors.TypeError
- });
- openfl.events.TextEvent = function(type,bubbles,cancelable,text) {
- if(text == null) text = "";
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = false;
- openfl.events.Event.call(this,type,bubbles,cancelable);
- this.text = text;
- };
- $hxClasses["openfl.events.TextEvent"] = openfl.events.TextEvent;
- openfl.events.TextEvent.__name__ = ["openfl","events","TextEvent"];
- openfl.events.TextEvent.__super__ = openfl.events.Event;
- openfl.events.TextEvent.prototype = $extend(openfl.events.Event.prototype,{
- clone: function() {
- return new openfl.events.TextEvent(this.type,this.bubbles,this.cancelable,this.text);
- }
- ,toString: function() {
- return "[TextEvent type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + " text=" + this.text + "]";
- }
- ,__class__: openfl.events.TextEvent
- });
- openfl.events.DataEvent = function(type,bubbles,cancelable,data) {
- if(data == null) data = "";
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = false;
- openfl.events.TextEvent.call(this,type,bubbles,cancelable);
- this.data = data;
- };
- $hxClasses["openfl.events.DataEvent"] = openfl.events.DataEvent;
- openfl.events.DataEvent.__name__ = ["openfl","events","DataEvent"];
- openfl.events.DataEvent.__super__ = openfl.events.TextEvent;
- openfl.events.DataEvent.prototype = $extend(openfl.events.TextEvent.prototype,{
- __class__: openfl.events.DataEvent
- });
- openfl.events.ErrorEvent = function(type,bubbles,cancelable,text,id) {
- if(id == null) id = 0;
- if(text == null) text = "";
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = false;
- openfl.events.TextEvent.call(this,type,bubbles,cancelable,text);
- this.errorID = id;
- };
- $hxClasses["openfl.events.ErrorEvent"] = openfl.events.ErrorEvent;
- openfl.events.ErrorEvent.__name__ = ["openfl","events","ErrorEvent"];
- openfl.events.ErrorEvent.__super__ = openfl.events.TextEvent;
- openfl.events.ErrorEvent.prototype = $extend(openfl.events.TextEvent.prototype,{
- clone: function() {
- return new openfl.events.ErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID);
- }
- ,toString: function() {
- return "[ErrorEvent type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + " text=" + this.text + " errorID=" + this.errorID + "]";
- }
- ,__class__: openfl.events.ErrorEvent
- });
- openfl.events._EventDispatcher = {};
- openfl.events._EventDispatcher.Listener = function(callback,useCapture,priority) {
- this.callback = callback;
- this.useCapture = useCapture;
- this.priority = priority;
- };
- $hxClasses["openfl.events._EventDispatcher.Listener"] = openfl.events._EventDispatcher.Listener;
- openfl.events._EventDispatcher.Listener.__name__ = ["openfl","events","_EventDispatcher","Listener"];
- openfl.events._EventDispatcher.Listener.prototype = {
- match: function(callback,useCapture) {
- return Reflect.compareMethods(this.callback,callback) && this.useCapture == useCapture;
- }
- ,__class__: openfl.events._EventDispatcher.Listener
- };
- openfl.events.EventPhase = $hxClasses["openfl.events.EventPhase"] = { __ename__ : ["openfl","events","EventPhase"], __constructs__ : ["CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE"] };
- openfl.events.EventPhase.CAPTURING_PHASE = ["CAPTURING_PHASE",0];
- openfl.events.EventPhase.CAPTURING_PHASE.toString = $estr;
- openfl.events.EventPhase.CAPTURING_PHASE.__enum__ = openfl.events.EventPhase;
- openfl.events.EventPhase.AT_TARGET = ["AT_TARGET",1];
- openfl.events.EventPhase.AT_TARGET.toString = $estr;
- openfl.events.EventPhase.AT_TARGET.__enum__ = openfl.events.EventPhase;
- openfl.events.EventPhase.BUBBLING_PHASE = ["BUBBLING_PHASE",2];
- openfl.events.EventPhase.BUBBLING_PHASE.toString = $estr;
- openfl.events.EventPhase.BUBBLING_PHASE.__enum__ = openfl.events.EventPhase;
- openfl.events.FocusEvent = function(type,bubbles,cancelable,relatedObject,shiftKey,keyCode) {
- if(keyCode == null) keyCode = 0;
- if(shiftKey == null) shiftKey = false;
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = false;
- openfl.events.Event.call(this,type,bubbles,cancelable);
- this.keyCode = keyCode;
- this.shiftKey = shiftKey;
- this.relatedObject = relatedObject;
- };
- $hxClasses["openfl.events.FocusEvent"] = openfl.events.FocusEvent;
- openfl.events.FocusEvent.__name__ = ["openfl","events","FocusEvent"];
- openfl.events.FocusEvent.__super__ = openfl.events.Event;
- openfl.events.FocusEvent.prototype = $extend(openfl.events.Event.prototype,{
- clone: function() {
- var event = new openfl.events.FocusEvent(this.type,this.bubbles,this.cancelable,this.relatedObject,this.shiftKey,this.keyCode);
- event.target = this.target;
- event.currentTarget = this.currentTarget;
- event.eventPhase = this.eventPhase;
- return event;
- }
- ,toString: function() {
- return "[FocusEvent type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + " relatedObject=" + Std.string(this.relatedObject) + " shiftKey=" + Std.string(this.shiftKey) + " keyCode=" + this.keyCode + "]";
- }
- ,__class__: openfl.events.FocusEvent
- });
- openfl.events.IOErrorEvent = function(type,bubbles,cancelable,text,id) {
- if(id == null) id = 0;
- if(text == null) text = "";
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = true;
- openfl.events.ErrorEvent.call(this,type,bubbles,cancelable,text,id);
- };
- $hxClasses["openfl.events.IOErrorEvent"] = openfl.events.IOErrorEvent;
- openfl.events.IOErrorEvent.__name__ = ["openfl","events","IOErrorEvent"];
- openfl.events.IOErrorEvent.__super__ = openfl.events.ErrorEvent;
- openfl.events.IOErrorEvent.prototype = $extend(openfl.events.ErrorEvent.prototype,{
- clone: function() {
- return new openfl.events.IOErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID);
- }
- ,toString: function() {
- return "[IOErrorEvent type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + " text=" + this.text + " errorID=" + this.errorID + "]";
- }
- ,__class__: openfl.events.IOErrorEvent
- });
- openfl.events.KeyboardEvent = function(type,bubbles,cancelable,charCodeValue,keyCodeValue,keyLocationValue,ctrlKeyValue,altKeyValue,shiftKeyValue,controlKeyValue,commandKeyValue) {
- if(commandKeyValue == null) commandKeyValue = false;
- if(controlKeyValue == null) controlKeyValue = false;
- if(shiftKeyValue == null) shiftKeyValue = false;
- if(altKeyValue == null) altKeyValue = false;
- if(ctrlKeyValue == null) ctrlKeyValue = false;
- if(keyCodeValue == null) keyCodeValue = 0;
- if(charCodeValue == null) charCodeValue = 0;
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = false;
- openfl.events.Event.call(this,type,bubbles,cancelable);
- this.charCode = charCodeValue;
- this.keyCode = keyCodeValue;
- if(keyLocationValue != null) this.keyLocation = keyLocationValue; else this.keyLocation = 0;
- this.ctrlKey = ctrlKeyValue;
- this.altKey = altKeyValue;
- this.shiftKey = shiftKeyValue;
- this.controlKey = controlKeyValue;
- this.commandKey = commandKeyValue;
- };
- $hxClasses["openfl.events.KeyboardEvent"] = openfl.events.KeyboardEvent;
- openfl.events.KeyboardEvent.__name__ = ["openfl","events","KeyboardEvent"];
- openfl.events.KeyboardEvent.__super__ = openfl.events.Event;
- openfl.events.KeyboardEvent.prototype = $extend(openfl.events.Event.prototype,{
- clone: function() {
- return new openfl.events.KeyboardEvent(this.type,this.bubbles,this.cancelable,this.charCode,this.keyCode,this.keyLocation,this.ctrlKey,this.altKey,this.shiftKey,this.controlKey,this.commandKey);
- }
- ,toString: function() {
- return "[KeyboardEvent type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + " charCode=" + this.charCode + " keyCode=" + this.keyCode + " keyLocation=" + Std.string(this.keyLocation) + " ctrlKey=" + Std.string(this.ctrlKey) + " altKey=" + Std.string(this.altKey) + " shiftKey=" + Std.string(this.shiftKey) + "]";
- }
- ,__class__: openfl.events.KeyboardEvent
- });
- openfl.events.MouseEvent = function(type,bubbles,cancelable,localX,localY,relatedObject,ctrlKey,altKey,shiftKey,buttonDown,delta,commandKey,clickCount) {
- if(clickCount == null) clickCount = 0;
- if(commandKey == null) commandKey = false;
- if(delta == null) delta = 0;
- if(buttonDown == null) buttonDown = false;
- if(shiftKey == null) shiftKey = false;
- if(altKey == null) altKey = false;
- if(ctrlKey == null) ctrlKey = false;
- if(localY == null) localY = 0;
- if(localX == null) localX = 0;
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = true;
- openfl.events.Event.call(this,type,bubbles,cancelable);
- this.shiftKey = shiftKey;
- this.altKey = altKey;
- this.ctrlKey = ctrlKey;
- this.bubbles = bubbles;
- this.relatedObject = relatedObject;
- this.delta = delta;
- this.localX = localX;
- this.localY = localY;
- this.buttonDown = buttonDown;
- this.commandKey = commandKey;
- this.clickCount = clickCount;
- };
- $hxClasses["openfl.events.MouseEvent"] = openfl.events.MouseEvent;
- openfl.events.MouseEvent.__name__ = ["openfl","events","MouseEvent"];
- openfl.events.MouseEvent.__create = function(type,button,local,target) {
- var delta = 2;
- switch(type) {
- case openfl.events.MouseEvent.MOUSE_DOWN:case openfl.events.MouseEvent.MIDDLE_MOUSE_DOWN:case openfl.events.MouseEvent.RIGHT_MOUSE_DOWN:
- openfl.events.MouseEvent.__buttonDown[button] = true;
- break;
- case openfl.events.MouseEvent.MOUSE_UP:case openfl.events.MouseEvent.MIDDLE_MOUSE_UP:case openfl.events.MouseEvent.RIGHT_MOUSE_UP:
- openfl.events.MouseEvent.__buttonDown[button] = false;
- break;
- }
- var pseudoEvent = new openfl.events.MouseEvent(type,true,false,local.x,local.y,null,false,false,false,openfl.events.MouseEvent.__buttonDown[button],delta);
- pseudoEvent.stageX = openfl.Lib.current.stage.get_mouseX();
- pseudoEvent.stageY = openfl.Lib.current.stage.get_mouseY();
- pseudoEvent.target = target;
- return pseudoEvent;
- };
- openfl.events.MouseEvent.__super__ = openfl.events.Event;
- openfl.events.MouseEvent.prototype = $extend(openfl.events.Event.prototype,{
- clone: function() {
- return new openfl.events.MouseEvent(this.type,this.bubbles,this.cancelable,this.localX,this.localY,this.relatedObject,this.ctrlKey,this.altKey,this.shiftKey,this.buttonDown,this.delta,this.commandKey,this.clickCount);
- }
- ,toString: function() {
- return "[MouseEvent type=" + this.type + " bubbles=" + Std.string(this.bubbles) + " cancelable=" + Std.string(this.cancelable) + " localX=" + this.localX + " localY=" + this.localY + " relatedObject=" + Std.string(this.relatedObject) + " ctrlKey=" + Std.string(this.ctrlKey) + " altKey=" + Std.string(this.altKey) + " shiftKey=" + Std.string(this.shiftKey) + " buttonDown=" + Std.string(this.buttonDown) + " delta=" + this.delta + "]";
- }
- ,updateAfterEvent: function() {
- }
- ,__class__: openfl.events.MouseEvent
- });
- openfl.events.TouchEvent = function(type,bubbles,cancelable,localX,localY,sizeX,sizeY,relatedObject,ctrlKey,altKey,shiftKey,buttonDown,delta,commandKey,clickCount) {
- if(clickCount == null) clickCount = 0;
- if(commandKey == null) commandKey = false;
- if(delta == null) delta = 0;
- if(buttonDown == null) buttonDown = false;
- if(shiftKey == null) shiftKey = false;
- if(altKey == null) altKey = false;
- if(ctrlKey == null) ctrlKey = false;
- if(sizeY == null) sizeY = 1;
- if(sizeX == null) sizeX = 1;
- if(localY == null) localY = 0;
- if(localX == null) localX = 0;
- if(cancelable == null) cancelable = false;
- if(bubbles == null) bubbles = true;
- openfl.events.Event.call(this,type,bubbles,cancelable);
- this.shiftKey = shiftKey;
- this.altKey = altKey;
- this.ctrlKey = ctrlKey;
- this.bubbles = bubbles;
- this.relatedObject = relatedObject;
- this.delta = delta;
- this.localX = localX;
- this.localY = localY;
- this.sizeX = sizeX;
- this.sizeY = sizeY;
- this.buttonDown = buttonDown;
- this.commandKey = commandKey;
- this.pressure = 1;
- this.touchPointID = 0;
- this.isPrimaryTouchPoint = true;
- };
- $hxClasses["openfl.events.TouchEvent"] = openfl.events.TouchEvent;
- openfl.events.TouchEvent.__name__ = ["openfl","events","TouchEvent"];
- openfl.events.TouchEvent.__create = function(type,touch,local,target) {
- var evt = new openfl.events.TouchEvent(type,true,false,local.x,local.y,null,null,null,false,false,false,false,0,null,0);
- evt.stageX = openfl.Lib.current.stage.get_mouseX();
- evt.stageY = openfl.Lib.current.stage.get_mouseY();
- evt.target = target;
- return evt;
- };
- openfl.events.TouchEvent.__super__ = openfl.events.Event;
- openfl.events.TouchEvent.prototype = $extend(openfl.events.Event.prototype,{
- updateAfterEvent: function() {
- }
- ,__class__: openfl.events.TouchEvent
- });
- openfl.filters = {};
- openfl.filters.BitmapFilter = function() {
- };
- $hxClasses["openfl.filters.BitmapFilter"] = openfl.filters.BitmapFilter;
- openfl.filters.BitmapFilter.__name__ = ["openfl","filters","BitmapFilter"];
- openfl.filters.BitmapFilter.prototype = {
- clone: function() {
- return new openfl.filters.BitmapFilter();
- }
- ,__applyFilter: function(sourceData,targetData,sourceRect,destPoint) {
- }
- ,__class__: openfl.filters.BitmapFilter
- };
- openfl.geom.ColorTransform = function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) {
- if(alphaOffset == null) alphaOffset = 0;
- if(blueOffset == null) blueOffset = 0;
- if(greenOffset == null) greenOffset = 0;
- if(redOffset == null) redOffset = 0;
- if(alphaMultiplier == null) alphaMultiplier = 1;
- if(blueMultiplier == null) blueMultiplier = 1;
- if(greenMultiplier == null) greenMultiplier = 1;
- if(redMultiplier == null) redMultiplier = 1;
- this.redMultiplier = redMultiplier;
- this.greenMultiplier = greenMultiplier;
- this.blueMultiplier = blueMultiplier;
- this.alphaMultiplier = alphaMultiplier;
- this.redOffset = redOffset;
- this.greenOffset = greenOffset;
- this.blueOffset = blueOffset;
- this.alphaOffset = alphaOffset;
- };
- $hxClasses["openfl.geom.ColorTransform"] = openfl.geom.ColorTransform;
- openfl.geom.ColorTransform.__name__ = ["openfl","geom","ColorTransform"];
- openfl.geom.ColorTransform.prototype = {
- concat: function(second) {
- this.redMultiplier += second.redMultiplier;
- this.greenMultiplier += second.greenMultiplier;
- this.blueMultiplier += second.blueMultiplier;
- this.alphaMultiplier += second.alphaMultiplier;
- }
- ,get_color: function() {
- return (this.redOffset | 0) << 16 | (this.greenOffset | 0) << 8 | (this.blueOffset | 0);
- }
- ,set_color: function(value) {
- this.redOffset = value >> 16 & 255;
- this.greenOffset = value >> 8 & 255;
- this.blueOffset = value & 255;
- this.redMultiplier = 0;
- this.greenMultiplier = 0;
- this.blueMultiplier = 0;
- return this.get_color();
- }
- ,__toLimeColorMatrix: function() {
- return new Float32Array([this.redMultiplier,0,0,0,this.redOffset / 255,0,this.greenMultiplier,0,0,this.greenOffset / 255,0,0,this.blueMultiplier,0,this.blueOffset / 255,0,0,0,this.alphaMultiplier,this.alphaOffset / 255]);
- }
- ,__class__: openfl.geom.ColorTransform
- ,__properties__: {set_color:"set_color",get_color:"get_color"}
- };
- openfl.geom.Matrix3D = function(v) {
- if(v != null && v.length == 16) this.rawData = v; else {
- var value = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- this.rawData = vectorData;
- }
- };
- $hxClasses["openfl.geom.Matrix3D"] = openfl.geom.Matrix3D;
- openfl.geom.Matrix3D.__name__ = ["openfl","geom","Matrix3D"];
- openfl.geom.Matrix3D.create2D = function(x,y,scale,rotation) {
- if(rotation == null) rotation = 0;
- if(scale == null) scale = 1;
- var theta = rotation * Math.PI / 180.0;
- var c = Math.cos(theta);
- var s = Math.sin(theta);
- return new openfl.geom.Matrix3D((function($this) {
- var $r;
- var value = [c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- {
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- }
- $r = vectorData;
- return $r;
- }(this)));
- };
- openfl.geom.Matrix3D.createABCD = function(a,b,c,d,tx,ty) {
- return new openfl.geom.Matrix3D((function($this) {
- var $r;
- var value = [a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- {
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- }
- $r = vectorData;
- return $r;
- }(this)));
- };
- openfl.geom.Matrix3D.createOrtho = function(x0,x1,y0,y1,zNear,zFar) {
- var sx = 1.0 / (x1 - x0);
- var sy = 1.0 / (y1 - y0);
- var sz = 1.0 / (zFar - zNear);
- return new openfl.geom.Matrix3D((function($this) {
- var $r;
- var value = [2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2. * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- {
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- }
- $r = vectorData;
- return $r;
- }(this)));
- };
- openfl.geom.Matrix3D.interpolate = function(thisMat,toMat,percent) {
- var m = new openfl.geom.Matrix3D();
- var _g = 0;
- while(_g < 16) {
- var i = _g++;
- var this1 = m.rawData;
- if(!this1.fixed) {
- if(i >= this1.length) this1.length = i + 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[i] = thisMat.rawData.data[i] + (toMat.rawData.data[i] - thisMat.rawData.data[i]) * percent;
- }
- return m;
- };
- openfl.geom.Matrix3D.getAxisRotation = function(x,y,z,degrees) {
- var m = new openfl.geom.Matrix3D();
- var a1 = new openfl.geom.Vector3D(x,y,z);
- var rad = -degrees * (Math.PI / 180);
- var c = Math.cos(rad);
- var s = Math.sin(rad);
- var t = 1.0 - c;
- var this1 = m.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = c + a1.x * a1.x * t;
- var this3 = m.rawData;
- if(!this3.fixed) {
- if(5 >= this3.length) this3.length = 6;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[5] = c + a1.y * a1.y * t;
- var this5 = m.rawData;
- if(!this5.fixed) {
- if(10 >= this5.length) this5.length = 11;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[10] = c + a1.z * a1.z * t;
- var tmp1 = a1.x * a1.y * t;
- var tmp2 = a1.z * s;
- var this7 = m.rawData;
- if(!this7.fixed) {
- if(4 >= this7.length) this7.length = 5;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[4] = tmp1 + tmp2;
- var this9 = m.rawData;
- if(!this9.fixed) {
- if(1 >= this9.length) this9.length = 2;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[1] = tmp1 - tmp2;
- tmp1 = a1.x * a1.z * t;
- tmp2 = a1.y * s;
- var this11 = m.rawData;
- if(!this11.fixed) {
- if(8 >= this11.length) this11.length = 9;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[8] = tmp1 - tmp2;
- var this13 = m.rawData;
- if(!this13.fixed) {
- if(2 >= this13.length) this13.length = 3;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[2] = tmp1 + tmp2;
- tmp1 = a1.y * a1.z * t;
- tmp2 = a1.x * s;
- var this15 = m.rawData;
- if(!this15.fixed) {
- if(9 >= this15.length) this15.length = 10;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[9] = tmp1 + tmp2;
- var this17 = m.rawData;
- if(!this17.fixed) {
- if(6 >= this17.length) this17.length = 7;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[6] = tmp1 - tmp2;
- return m;
- };
- openfl.geom.Matrix3D.prototype = {
- append: function(lhs) {
- var m111 = this.rawData.data[0];
- var m121 = this.rawData.data[4];
- var m131 = this.rawData.data[8];
- var m141 = this.rawData.data[12];
- var m112 = this.rawData.data[1];
- var m122 = this.rawData.data[5];
- var m132 = this.rawData.data[9];
- var m142 = this.rawData.data[13];
- var m113 = this.rawData.data[2];
- var m123 = this.rawData.data[6];
- var m133 = this.rawData.data[10];
- var m143 = this.rawData.data[14];
- var m114 = this.rawData.data[3];
- var m124 = this.rawData.data[7];
- var m134 = this.rawData.data[11];
- var m144 = this.rawData.data[15];
- var m211 = lhs.rawData.data[0];
- var m221 = lhs.rawData.data[4];
- var m231 = lhs.rawData.data[8];
- var m241 = lhs.rawData.data[12];
- var m212 = lhs.rawData.data[1];
- var m222 = lhs.rawData.data[5];
- var m232 = lhs.rawData.data[9];
- var m242 = lhs.rawData.data[13];
- var m213 = lhs.rawData.data[2];
- var m223 = lhs.rawData.data[6];
- var m233 = lhs.rawData.data[10];
- var m243 = lhs.rawData.data[14];
- var m214 = lhs.rawData.data[3];
- var m224 = lhs.rawData.data[7];
- var m234 = lhs.rawData.data[11];
- var m244 = lhs.rawData.data[15];
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(1 >= this3.length) this3.length = 2;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(2 >= this5.length) this5.length = 3;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243;
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(3 >= this7.length) this7.length = 4;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244;
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(4 >= this9.length) this9.length = 5;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241;
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242;
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(6 >= this13.length) this13.length = 7;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243;
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(7 >= this15.length) this15.length = 8;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244;
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(8 >= this17.length) this17.length = 9;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241;
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(9 >= this19.length) this19.length = 10;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242;
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243;
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(11 >= this23.length) this23.length = 12;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244;
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(12 >= this25.length) this25.length = 13;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241;
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(13 >= this27.length) this27.length = 14;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242;
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(14 >= this29.length) this29.length = 15;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243;
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244;
- }
- ,appendRotation: function(degrees,axis,pivotPoint) {
- var m = openfl.geom.Matrix3D.getAxisRotation(axis.x,axis.y,axis.z,degrees);
- if(pivotPoint != null) {
- var p = pivotPoint;
- m.appendTranslation(p.x,p.y,p.z);
- }
- this.append(m);
- }
- ,appendScale: function(xScale,yScale,zScale) {
- this.append(new openfl.geom.Matrix3D((function($this) {
- var $r;
- var value = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- {
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- }
- $r = vectorData;
- return $r;
- }(this))));
- }
- ,appendTranslation: function(x,y,z) {
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(12 >= this1.length) this1.length = 13;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[12] = this.rawData.data[12] + x;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(13 >= this3.length) this3.length = 14;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[13] = this.rawData.data[13] + y;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(14 >= this5.length) this5.length = 15;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[14] = this.rawData.data[14] + z;
- }
- ,clone: function() {
- return new openfl.geom.Matrix3D((function($this) {
- var $r;
- var this1 = $this.rawData;
- var vectorData = new openfl.VectorData();
- vectorData.length = this1.length;
- vectorData.fixed = this1.fixed;
- {
- var this2;
- this2 = new Array(this1.length);
- vectorData.data = this2;
- }
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,vectorData.data,0,this1.length);
- $r = vectorData;
- return $r;
- }(this)));
- }
- ,copyColumnFrom: function(column,vector3D) {
- switch(column) {
- case 0:
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = vector3D.x;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(1 >= this3.length) this3.length = 2;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[1] = vector3D.y;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(2 >= this5.length) this5.length = 3;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[2] = vector3D.z;
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(3 >= this7.length) this7.length = 4;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[3] = vector3D.w;
- break;
- case 1:
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(4 >= this9.length) this9.length = 5;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[4] = vector3D.x;
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = vector3D.y;
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(6 >= this13.length) this13.length = 7;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[6] = vector3D.z;
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(7 >= this15.length) this15.length = 8;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[7] = vector3D.w;
- break;
- case 2:
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(8 >= this17.length) this17.length = 9;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[8] = vector3D.x;
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(9 >= this19.length) this19.length = 10;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[9] = vector3D.y;
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = vector3D.z;
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(11 >= this23.length) this23.length = 12;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[11] = vector3D.w;
- break;
- case 3:
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(12 >= this25.length) this25.length = 13;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[12] = vector3D.x;
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(13 >= this27.length) this27.length = 14;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[13] = vector3D.y;
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(14 >= this29.length) this29.length = 15;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[14] = vector3D.z;
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = vector3D.w;
- break;
- default:
- throw new openfl.errors.Error("Error, Column " + column + " out of bounds [0, ..., 3]");
- }
- }
- ,copyColumnTo: function(column,vector3D) {
- switch(column) {
- case 0:
- vector3D.x = this.rawData.data[0];
- vector3D.y = this.rawData.data[1];
- vector3D.z = this.rawData.data[2];
- vector3D.w = this.rawData.data[3];
- break;
- case 1:
- vector3D.x = this.rawData.data[4];
- vector3D.y = this.rawData.data[5];
- vector3D.z = this.rawData.data[6];
- vector3D.w = this.rawData.data[7];
- break;
- case 2:
- vector3D.x = this.rawData.data[8];
- vector3D.y = this.rawData.data[9];
- vector3D.z = this.rawData.data[10];
- vector3D.w = this.rawData.data[11];
- break;
- case 3:
- vector3D.x = this.rawData.data[12];
- vector3D.y = this.rawData.data[13];
- vector3D.z = this.rawData.data[14];
- vector3D.w = this.rawData.data[15];
- break;
- default:
- throw new openfl.errors.Error("Error, Column " + column + " out of bounds [0, ..., 3]");
- }
- }
- ,copyFrom: function(other) {
- var this1 = other.rawData;
- var vectorData = new openfl.VectorData();
- vectorData.length = this1.length;
- vectorData.fixed = this1.fixed;
- var this2;
- this2 = new Array(this1.length);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,vectorData.data,0,this1.length);
- this.rawData = vectorData;
- }
- ,copyRawDataFrom: function(vector,index,transpose) {
- if(transpose == null) transpose = false;
- if(index == null) index = 0;
- if(transpose) this.transpose();
- var l = vector.length - index;
- var _g = 0;
- while(_g < l) {
- var c = _g++;
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(c >= this1.length) this1.length = c + 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[c] = vector.data[c + index];
- }
- if(transpose) this.transpose();
- }
- ,copyRawDataTo: function(vector,index,transpose) {
- if(transpose == null) transpose = false;
- if(index == null) index = 0;
- if(transpose) this.transpose();
- var l = this.rawData.length;
- var _g = 0;
- while(_g < l) {
- var c = _g++;
- var key = c + index;
- if(!vector.fixed) {
- if(key >= vector.length) vector.length = key + 1;
- if(vector.data.length < vector.length) {
- var data;
- var this1;
- this1 = new Array(vector.data.length + 10);
- data = this1;
- haxe.ds._Vector.Vector_Impl_.blit(vector.data,0,data,0,vector.data.length);
- vector.data = data;
- }
- }
- vector.data[key] = this.rawData.data[c];
- }
- if(transpose) this.transpose();
- }
- ,copyRowFrom: function(row,vector3D) {
- switch(row) {
- case 0:
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = vector3D.x;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(4 >= this3.length) this3.length = 5;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[4] = vector3D.y;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(8 >= this5.length) this5.length = 9;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[8] = vector3D.z;
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(12 >= this7.length) this7.length = 13;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[12] = vector3D.w;
- break;
- case 1:
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(1 >= this9.length) this9.length = 2;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[1] = vector3D.x;
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = vector3D.y;
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(9 >= this13.length) this13.length = 10;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[9] = vector3D.z;
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(13 >= this15.length) this15.length = 14;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[13] = vector3D.w;
- break;
- case 2:
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(2 >= this17.length) this17.length = 3;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[2] = vector3D.x;
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(6 >= this19.length) this19.length = 7;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[6] = vector3D.y;
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = vector3D.z;
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(14 >= this23.length) this23.length = 15;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[14] = vector3D.w;
- break;
- case 3:
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(3 >= this25.length) this25.length = 4;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[3] = vector3D.x;
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(7 >= this27.length) this27.length = 8;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[7] = vector3D.y;
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(11 >= this29.length) this29.length = 12;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[11] = vector3D.z;
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = vector3D.w;
- break;
- default:
- throw new openfl.errors.Error("Error, Row " + Std.string((function($this) {
- var $r;
- var $int = row;
- $r = $int < 0?4294967296.0 + $int:$int + 0.0;
- return $r;
- }(this))) + " out of bounds [0, ..., 3]");
- }
- }
- ,copyRowTo: function(row,vector3D) {
- switch(row) {
- case 0:
- vector3D.x = this.rawData.data[0];
- vector3D.y = this.rawData.data[4];
- vector3D.z = this.rawData.data[8];
- vector3D.w = this.rawData.data[12];
- break;
- case 1:
- vector3D.x = this.rawData.data[1];
- vector3D.y = this.rawData.data[5];
- vector3D.z = this.rawData.data[9];
- vector3D.w = this.rawData.data[13];
- break;
- case 2:
- vector3D.x = this.rawData.data[2];
- vector3D.y = this.rawData.data[6];
- vector3D.z = this.rawData.data[10];
- vector3D.w = this.rawData.data[14];
- break;
- case 3:
- vector3D.x = this.rawData.data[3];
- vector3D.y = this.rawData.data[7];
- vector3D.z = this.rawData.data[11];
- vector3D.w = this.rawData.data[15];
- break;
- default:
- throw new openfl.errors.Error("Error, Row " + row + " out of bounds [0, ..., 3]");
- }
- }
- ,copyToMatrix3D: function(other) {
- var this1 = this.rawData;
- var vectorData = new openfl.VectorData();
- vectorData.length = this1.length;
- vectorData.fixed = this1.fixed;
- var this2;
- this2 = new Array(this1.length);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,vectorData.data,0,this1.length);
- other.rawData = vectorData;
- }
- ,decompose: function(orientationStyle) {
- if(orientationStyle == null) orientationStyle = openfl.geom.Orientation3D.EULER_ANGLES;
- var vec;
- var this1;
- this1 = new openfl.VectorData();
- var this2;
- this2 = new Array(0);
- this1.data = this2;
- this1.length = 0;
- this1.fixed = false;
- vec = this1;
- var m = this.clone();
- var mr;
- var this3 = m.rawData;
- var vectorData = new openfl.VectorData();
- vectorData.length = this3.length;
- vectorData.fixed = this3.fixed;
- var this4;
- this4 = new Array(this3.length);
- vectorData.data = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,vectorData.data,0,this3.length);
- mr = vectorData;
- var pos = new openfl.geom.Vector3D(mr.data[12],mr.data[13],mr.data[14]);
- if(!mr.fixed) {
- if(12 >= mr.length) mr.length = 13;
- if(mr.data.length < mr.length) {
- var data;
- var this5;
- this5 = new Array(mr.data.length + 10);
- data = this5;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data,0,mr.data.length);
- mr.data = data;
- }
- }
- mr.data[12] = 0;
- if(!mr.fixed) {
- if(13 >= mr.length) mr.length = 14;
- if(mr.data.length < mr.length) {
- var data1;
- var this6;
- this6 = new Array(mr.data.length + 10);
- data1 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data1,0,mr.data.length);
- mr.data = data1;
- }
- }
- mr.data[13] = 0;
- if(!mr.fixed) {
- if(14 >= mr.length) mr.length = 15;
- if(mr.data.length < mr.length) {
- var data2;
- var this7;
- this7 = new Array(mr.data.length + 10);
- data2 = this7;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data2,0,mr.data.length);
- mr.data = data2;
- }
- }
- mr.data[14] = 0;
- var scale = new openfl.geom.Vector3D();
- scale.x = Math.sqrt(mr.data[0] * mr.data[0] + mr.data[1] * mr.data[1] + mr.data[2] * mr.data[2]);
- scale.y = Math.sqrt(mr.data[4] * mr.data[4] + mr.data[5] * mr.data[5] + mr.data[6] * mr.data[6]);
- scale.z = Math.sqrt(mr.data[8] * mr.data[8] + mr.data[9] * mr.data[9] + mr.data[10] * mr.data[10]);
- if(mr.data[0] * (mr.data[5] * mr.data[10] - mr.data[6] * mr.data[9]) - mr.data[1] * (mr.data[4] * mr.data[10] - mr.data[6] * mr.data[8]) + mr.data[2] * (mr.data[4] * mr.data[9] - mr.data[5] * mr.data[8]) < 0) scale.z = -scale.z;
- if(!mr.fixed) {
- if(0 >= mr.length) mr.length = 1;
- if(mr.data.length < mr.length) {
- var data3;
- var this8;
- this8 = new Array(mr.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data3,0,mr.data.length);
- mr.data = data3;
- }
- }
- mr.data[0] = mr.data[0] / scale.x;
- if(!mr.fixed) {
- if(1 >= mr.length) mr.length = 2;
- if(mr.data.length < mr.length) {
- var data4;
- var this9;
- this9 = new Array(mr.data.length + 10);
- data4 = this9;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data4,0,mr.data.length);
- mr.data = data4;
- }
- }
- mr.data[1] = mr.data[1] / scale.x;
- if(!mr.fixed) {
- if(2 >= mr.length) mr.length = 3;
- if(mr.data.length < mr.length) {
- var data5;
- var this10;
- this10 = new Array(mr.data.length + 10);
- data5 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data5,0,mr.data.length);
- mr.data = data5;
- }
- }
- mr.data[2] = mr.data[2] / scale.x;
- if(!mr.fixed) {
- if(4 >= mr.length) mr.length = 5;
- if(mr.data.length < mr.length) {
- var data6;
- var this11;
- this11 = new Array(mr.data.length + 10);
- data6 = this11;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data6,0,mr.data.length);
- mr.data = data6;
- }
- }
- mr.data[4] = mr.data[4] / scale.y;
- if(!mr.fixed) {
- if(5 >= mr.length) mr.length = 6;
- if(mr.data.length < mr.length) {
- var data7;
- var this12;
- this12 = new Array(mr.data.length + 10);
- data7 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data7,0,mr.data.length);
- mr.data = data7;
- }
- }
- mr.data[5] = mr.data[5] / scale.y;
- if(!mr.fixed) {
- if(6 >= mr.length) mr.length = 7;
- if(mr.data.length < mr.length) {
- var data8;
- var this13;
- this13 = new Array(mr.data.length + 10);
- data8 = this13;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data8,0,mr.data.length);
- mr.data = data8;
- }
- }
- mr.data[6] = mr.data[6] / scale.y;
- if(!mr.fixed) {
- if(8 >= mr.length) mr.length = 9;
- if(mr.data.length < mr.length) {
- var data9;
- var this14;
- this14 = new Array(mr.data.length + 10);
- data9 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data9,0,mr.data.length);
- mr.data = data9;
- }
- }
- mr.data[8] = mr.data[8] / scale.z;
- if(!mr.fixed) {
- if(9 >= mr.length) mr.length = 10;
- if(mr.data.length < mr.length) {
- var data10;
- var this15;
- this15 = new Array(mr.data.length + 10);
- data10 = this15;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data10,0,mr.data.length);
- mr.data = data10;
- }
- }
- mr.data[9] = mr.data[9] / scale.z;
- if(!mr.fixed) {
- if(10 >= mr.length) mr.length = 11;
- if(mr.data.length < mr.length) {
- var data11;
- var this16;
- this16 = new Array(mr.data.length + 10);
- data11 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(mr.data,0,data11,0,mr.data.length);
- mr.data = data11;
- }
- }
- mr.data[10] = mr.data[10] / scale.z;
- var rot = new openfl.geom.Vector3D();
- switch(orientationStyle[1]) {
- case 0:
- rot.w = Math.acos((mr.data[0] + mr.data[5] + mr.data[10] - 1) / 2);
- var len = Math.sqrt((mr.data[6] - mr.data[9]) * (mr.data[6] - mr.data[9]) + (mr.data[8] - mr.data[2]) * (mr.data[8] - mr.data[2]) + (mr.data[1] - mr.data[4]) * (mr.data[1] - mr.data[4]));
- if(len != 0) {
- rot.x = (mr.data[6] - mr.data[9]) / len;
- rot.y = (mr.data[8] - mr.data[2]) / len;
- rot.z = (mr.data[1] - mr.data[4]) / len;
- } else rot.x = rot.y = rot.z = 0;
- break;
- case 2:
- var tr = mr.data[0] + mr.data[5] + mr.data[10];
- if(tr > 0) {
- rot.w = Math.sqrt(1 + tr) / 2;
- rot.x = (mr.data[6] - mr.data[9]) / (4 * rot.w);
- rot.y = (mr.data[8] - mr.data[2]) / (4 * rot.w);
- rot.z = (mr.data[1] - mr.data[4]) / (4 * rot.w);
- } else if(mr.data[0] > mr.data[5] && mr.data[0] > mr.data[10]) {
- rot.x = Math.sqrt(1 + mr.data[0] - mr.data[5] - mr.data[10]) / 2;
- rot.w = (mr.data[6] - mr.data[9]) / (4 * rot.x);
- rot.y = (mr.data[1] + mr.data[4]) / (4 * rot.x);
- rot.z = (mr.data[8] + mr.data[2]) / (4 * rot.x);
- } else if(mr.data[5] > mr.data[10]) {
- rot.y = Math.sqrt(1 + mr.data[5] - mr.data[0] - mr.data[10]) / 2;
- rot.x = (mr.data[1] + mr.data[4]) / (4 * rot.y);
- rot.w = (mr.data[8] - mr.data[2]) / (4 * rot.y);
- rot.z = (mr.data[6] + mr.data[9]) / (4 * rot.y);
- } else {
- rot.z = Math.sqrt(1 + mr.data[10] - mr.data[0] - mr.data[5]) / 2;
- rot.x = (mr.data[8] + mr.data[2]) / (4 * rot.z);
- rot.y = (mr.data[6] + mr.data[9]) / (4 * rot.z);
- rot.w = (mr.data[1] - mr.data[4]) / (4 * rot.z);
- }
- break;
- case 1:
- rot.y = Math.asin(-mr.data[2]);
- if(mr.data[2] != 1 && mr.data[2] != -1) {
- rot.x = Math.atan2(mr.data[6],mr.data[10]);
- rot.z = Math.atan2(mr.data[1],mr.data[0]);
- } else {
- rot.z = 0;
- rot.x = Math.atan2(mr.data[4],mr.data[5]);
- }
- break;
- }
- if(!vec.fixed) {
- vec.length++;
- if(vec.data.length < vec.length) {
- var data12;
- var this17;
- this17 = new Array(vec.data.length + 10);
- data12 = this17;
- haxe.ds._Vector.Vector_Impl_.blit(vec.data,0,data12,0,vec.data.length);
- vec.data = data12;
- }
- vec.data[vec.length - 1] = pos;
- }
- vec.length;
- if(!vec.fixed) {
- vec.length++;
- if(vec.data.length < vec.length) {
- var data13;
- var this18;
- this18 = new Array(vec.data.length + 10);
- data13 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(vec.data,0,data13,0,vec.data.length);
- vec.data = data13;
- }
- vec.data[vec.length - 1] = rot;
- }
- vec.length;
- if(!vec.fixed) {
- vec.length++;
- if(vec.data.length < vec.length) {
- var data14;
- var this19;
- this19 = new Array(vec.data.length + 10);
- data14 = this19;
- haxe.ds._Vector.Vector_Impl_.blit(vec.data,0,data14,0,vec.data.length);
- vec.data = data14;
- }
- vec.data[vec.length - 1] = scale;
- }
- vec.length;
- return vec;
- }
- ,deltaTransformVector: function(v) {
- var x = v.x;
- var y = v.y;
- var z = v.z;
- return new openfl.geom.Vector3D(x * this.rawData.data[0] + y * this.rawData.data[4] + z * this.rawData.data[8] + this.rawData.data[3],x * this.rawData.data[1] + y * this.rawData.data[5] + z * this.rawData.data[9] + this.rawData.data[7],x * this.rawData.data[2] + y * this.rawData.data[6] + z * this.rawData.data[10] + this.rawData.data[11],0);
- }
- ,identity: function() {
- var value = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- this.rawData = vectorData;
- }
- ,interpolateTo: function(toMat,percent) {
- var _g = 0;
- while(_g < 16) {
- var i = _g++;
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(i >= this1.length) this1.length = i + 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[i] = this.rawData.data[i] + (toMat.rawData.data[i] - this.rawData.data[i]) * percent;
- }
- }
- ,invert: function() {
- var d = (this.rawData.data[0] * this.rawData.data[5] - this.rawData.data[4] * this.rawData.data[1]) * (this.rawData.data[10] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[11]) - (this.rawData.data[0] * this.rawData.data[9] - this.rawData.data[8] * this.rawData.data[1]) * (this.rawData.data[6] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[7]) + (this.rawData.data[0] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[1]) * (this.rawData.data[6] * this.rawData.data[11] - this.rawData.data[10] * this.rawData.data[7]) + (this.rawData.data[4] * this.rawData.data[9] - this.rawData.data[8] * this.rawData.data[5]) * (this.rawData.data[2] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[3]) - (this.rawData.data[4] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[5]) * (this.rawData.data[2] * this.rawData.data[11] - this.rawData.data[10] * this.rawData.data[3]) + (this.rawData.data[8] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[9]) * (this.rawData.data[2] * this.rawData.data[7] - this.rawData.data[6] * this.rawData.data[3]);
- var invertable = Math.abs(d) > 0.00000000001;
- if(invertable) {
- d = 1 / d;
- var m11 = this.rawData.data[0];
- var m21 = this.rawData.data[4];
- var m31 = this.rawData.data[8];
- var m41 = this.rawData.data[12];
- var m12 = this.rawData.data[1];
- var m22 = this.rawData.data[5];
- var m32 = this.rawData.data[9];
- var m42 = this.rawData.data[13];
- var m13 = this.rawData.data[2];
- var m23 = this.rawData.data[6];
- var m33 = this.rawData.data[10];
- var m43 = this.rawData.data[14];
- var m14 = this.rawData.data[3];
- var m24 = this.rawData.data[7];
- var m34 = this.rawData.data[11];
- var m44 = this.rawData.data[15];
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24));
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(1 >= this3.length) this3.length = 2;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[1] = -d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14));
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(2 >= this5.length) this5.length = 3;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[2] = d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14));
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(3 >= this7.length) this7.length = 4;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[3] = -d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14));
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(4 >= this9.length) this9.length = 5;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[4] = -d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24));
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14));
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(6 >= this13.length) this13.length = 7;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[6] = -d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14));
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(7 >= this15.length) this15.length = 8;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[7] = d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14));
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(8 >= this17.length) this17.length = 9;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[8] = d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24));
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(9 >= this19.length) this19.length = 10;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[9] = -d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14));
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14));
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(11 >= this23.length) this23.length = 12;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[11] = -d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14));
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(12 >= this25.length) this25.length = 13;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[12] = -d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23));
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(13 >= this27.length) this27.length = 14;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[13] = d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13));
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(14 >= this29.length) this29.length = 15;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[14] = -d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13));
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = d * (m11 * (m22 * m33 - m32 * m23) - m21 * (m12 * m33 - m32 * m13) + m31 * (m12 * m23 - m22 * m13));
- }
- return invertable;
- }
- ,pointAt: function(pos,at,up) {
- if(at == null) at = new openfl.geom.Vector3D(0,0,-1);
- if(up == null) up = new openfl.geom.Vector3D(0,-1,0);
- var dir = new openfl.geom.Vector3D(at.x - pos.x,at.y - pos.y,at.z - pos.z);
- var vup = new openfl.geom.Vector3D(up.x,up.y,up.z,up.w);
- var right;
- dir.normalize();
- vup.normalize();
- var dir2 = new openfl.geom.Vector3D(dir.x,dir.y,dir.z,dir.w);
- dir2.scaleBy(vup.x * dir.x + vup.y * dir.y + vup.z * dir.z);
- vup = new openfl.geom.Vector3D(vup.x - dir2.x,vup.y - dir2.y,vup.z - dir2.z);
- if(Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z) > 0) vup.normalize(); else if(dir.x != 0) vup = new openfl.geom.Vector3D(-dir.y,dir.x,0); else vup = new openfl.geom.Vector3D(1,0,0);
- right = new openfl.geom.Vector3D(vup.y * dir.z - vup.z * dir.y,vup.z * dir.x - vup.x * dir.z,vup.x * dir.y - vup.y * dir.x,1);
- right.normalize();
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = right.x;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(4 >= this3.length) this3.length = 5;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[4] = right.y;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(8 >= this5.length) this5.length = 9;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[8] = right.z;
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(12 >= this7.length) this7.length = 13;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[12] = 0.0;
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(1 >= this9.length) this9.length = 2;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[1] = vup.x;
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = vup.y;
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(9 >= this13.length) this13.length = 10;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[9] = vup.z;
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(13 >= this15.length) this15.length = 14;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[13] = 0.0;
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(2 >= this17.length) this17.length = 3;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[2] = dir.x;
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(6 >= this19.length) this19.length = 7;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[6] = dir.y;
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = dir.z;
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(14 >= this23.length) this23.length = 15;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[14] = 0.0;
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(3 >= this25.length) this25.length = 4;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[3] = pos.x;
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(7 >= this27.length) this27.length = 8;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[7] = pos.y;
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(11 >= this29.length) this29.length = 12;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[11] = pos.z;
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = 1.0;
- }
- ,prepend: function(rhs) {
- var m111 = rhs.rawData.data[0];
- var m121 = rhs.rawData.data[4];
- var m131 = rhs.rawData.data[8];
- var m141 = rhs.rawData.data[12];
- var m112 = rhs.rawData.data[1];
- var m122 = rhs.rawData.data[5];
- var m132 = rhs.rawData.data[9];
- var m142 = rhs.rawData.data[13];
- var m113 = rhs.rawData.data[2];
- var m123 = rhs.rawData.data[6];
- var m133 = rhs.rawData.data[10];
- var m143 = rhs.rawData.data[14];
- var m114 = rhs.rawData.data[3];
- var m124 = rhs.rawData.data[7];
- var m134 = rhs.rawData.data[11];
- var m144 = rhs.rawData.data[15];
- var m211 = this.rawData.data[0];
- var m221 = this.rawData.data[4];
- var m231 = this.rawData.data[8];
- var m241 = this.rawData.data[12];
- var m212 = this.rawData.data[1];
- var m222 = this.rawData.data[5];
- var m232 = this.rawData.data[9];
- var m242 = this.rawData.data[13];
- var m213 = this.rawData.data[2];
- var m223 = this.rawData.data[6];
- var m233 = this.rawData.data[10];
- var m243 = this.rawData.data[14];
- var m214 = this.rawData.data[3];
- var m224 = this.rawData.data[7];
- var m234 = this.rawData.data[11];
- var m244 = this.rawData.data[15];
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(1 >= this3.length) this3.length = 2;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(2 >= this5.length) this5.length = 3;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243;
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(3 >= this7.length) this7.length = 4;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244;
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(4 >= this9.length) this9.length = 5;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241;
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242;
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(6 >= this13.length) this13.length = 7;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243;
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(7 >= this15.length) this15.length = 8;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244;
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(8 >= this17.length) this17.length = 9;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241;
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(9 >= this19.length) this19.length = 10;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242;
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243;
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(11 >= this23.length) this23.length = 12;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244;
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(12 >= this25.length) this25.length = 13;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241;
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(13 >= this27.length) this27.length = 14;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242;
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(14 >= this29.length) this29.length = 15;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243;
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244;
- }
- ,prependRotation: function(degrees,axis,pivotPoint) {
- var m = openfl.geom.Matrix3D.getAxisRotation(axis.x,axis.y,axis.z,degrees);
- if(pivotPoint != null) {
- var p = pivotPoint;
- m.appendTranslation(p.x,p.y,p.z);
- }
- this.prepend(m);
- }
- ,prependScale: function(xScale,yScale,zScale) {
- this.prepend(new openfl.geom.Matrix3D((function($this) {
- var $r;
- var value = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- {
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- }
- $r = vectorData;
- return $r;
- }(this))));
- }
- ,prependTranslation: function(x,y,z) {
- var m = new openfl.geom.Matrix3D();
- m.set_position(new openfl.geom.Vector3D(x,y,z));
- this.prepend(m);
- }
- ,recompose: function(components,orientationStyle) {
- if(components.length < 3 || components.data[2].x == 0 || components.data[2].y == 0 || components.data[2].z == 0) return false;
- if(orientationStyle == null) orientationStyle = openfl.geom.Orientation3D.EULER_ANGLES;
- this.identity();
- var scale = [];
- scale[0] = scale[1] = scale[2] = components.data[2].x;
- scale[4] = scale[5] = scale[6] = components.data[2].y;
- scale[8] = scale[9] = scale[10] = components.data[2].z;
- switch(orientationStyle[1]) {
- case 1:
- var cx = Math.cos(components.data[1].x);
- var cy = Math.cos(components.data[1].y);
- var cz = Math.cos(components.data[1].z);
- var sx = Math.sin(components.data[1].x);
- var sy = Math.sin(components.data[1].y);
- var sz = Math.sin(components.data[1].z);
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(0 >= this1.length) this1.length = 1;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[0] = cy * cz * scale[0];
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(1 >= this3.length) this3.length = 2;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[1] = cy * sz * scale[1];
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(2 >= this5.length) this5.length = 3;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[2] = -sy * scale[2];
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(3 >= this7.length) this7.length = 4;
- if(this7.data.length < this7.length) {
- var data3;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data3 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data3,0,this7.data.length);
- this7.data = data3;
- }
- }
- this7.data[3] = 0;
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(4 >= this9.length) this9.length = 5;
- if(this9.data.length < this9.length) {
- var data4;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data4 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data4,0,this9.data.length);
- this9.data = data4;
- }
- }
- this9.data[4] = (sx * sy * cz - cx * sz) * scale[4];
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(5 >= this11.length) this11.length = 6;
- if(this11.data.length < this11.length) {
- var data5;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data5 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data5,0,this11.data.length);
- this11.data = data5;
- }
- }
- this11.data[5] = (sx * sy * sz + cx * cz) * scale[5];
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(6 >= this13.length) this13.length = 7;
- if(this13.data.length < this13.length) {
- var data6;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data6 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data6,0,this13.data.length);
- this13.data = data6;
- }
- }
- this13.data[6] = sx * cy * scale[6];
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(7 >= this15.length) this15.length = 8;
- if(this15.data.length < this15.length) {
- var data7;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data7 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data7,0,this15.data.length);
- this15.data = data7;
- }
- }
- this15.data[7] = 0;
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(8 >= this17.length) this17.length = 9;
- if(this17.data.length < this17.length) {
- var data8;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data8 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data8,0,this17.data.length);
- this17.data = data8;
- }
- }
- this17.data[8] = (cx * sy * cz + sx * sz) * scale[8];
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(9 >= this19.length) this19.length = 10;
- if(this19.data.length < this19.length) {
- var data9;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data9 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data9,0,this19.data.length);
- this19.data = data9;
- }
- }
- this19.data[9] = (cx * sy * sz - sx * cz) * scale[9];
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(10 >= this21.length) this21.length = 11;
- if(this21.data.length < this21.length) {
- var data10;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data10 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data10,0,this21.data.length);
- this21.data = data10;
- }
- }
- this21.data[10] = cx * cy * scale[10];
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(11 >= this23.length) this23.length = 12;
- if(this23.data.length < this23.length) {
- var data11;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data11 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data11,0,this23.data.length);
- this23.data = data11;
- }
- }
- this23.data[11] = 0;
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(12 >= this25.length) this25.length = 13;
- if(this25.data.length < this25.length) {
- var data12;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data12 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data12,0,this25.data.length);
- this25.data = data12;
- }
- }
- this25.data[12] = components.data[0].x;
- var this27 = this.rawData;
- if(!this27.fixed) {
- if(13 >= this27.length) this27.length = 14;
- if(this27.data.length < this27.length) {
- var data13;
- var this28;
- this28 = new Array(this27.data.length + 10);
- data13 = this28;
- haxe.ds._Vector.Vector_Impl_.blit(this27.data,0,data13,0,this27.data.length);
- this27.data = data13;
- }
- }
- this27.data[13] = components.data[0].y;
- var this29 = this.rawData;
- if(!this29.fixed) {
- if(14 >= this29.length) this29.length = 15;
- if(this29.data.length < this29.length) {
- var data14;
- var this30;
- this30 = new Array(this29.data.length + 10);
- data14 = this30;
- haxe.ds._Vector.Vector_Impl_.blit(this29.data,0,data14,0,this29.data.length);
- this29.data = data14;
- }
- }
- this29.data[14] = components.data[0].z;
- var this31 = this.rawData;
- if(!this31.fixed) {
- if(15 >= this31.length) this31.length = 16;
- if(this31.data.length < this31.length) {
- var data15;
- var this32;
- this32 = new Array(this31.data.length + 10);
- data15 = this32;
- haxe.ds._Vector.Vector_Impl_.blit(this31.data,0,data15,0,this31.data.length);
- this31.data = data15;
- }
- }
- this31.data[15] = 1;
- break;
- default:
- var x = components.data[1].x;
- var y = components.data[1].y;
- var z = components.data[1].z;
- var w = components.data[1].w;
- if(Type.enumEq(orientationStyle,openfl.geom.Orientation3D.AXIS_ANGLE)) {
- x *= Math.sin(w / 2);
- y *= Math.sin(w / 2);
- z *= Math.sin(w / 2);
- w = Math.cos(w / 2);
- }
- var this33 = this.rawData;
- if(!this33.fixed) {
- if(0 >= this33.length) this33.length = 1;
- if(this33.data.length < this33.length) {
- var data16;
- var this34;
- this34 = new Array(this33.data.length + 10);
- data16 = this34;
- haxe.ds._Vector.Vector_Impl_.blit(this33.data,0,data16,0,this33.data.length);
- this33.data = data16;
- }
- }
- this33.data[0] = (1 - 2 * y * y - 2 * z * z) * scale[0];
- var this35 = this.rawData;
- if(!this35.fixed) {
- if(1 >= this35.length) this35.length = 2;
- if(this35.data.length < this35.length) {
- var data17;
- var this36;
- this36 = new Array(this35.data.length + 10);
- data17 = this36;
- haxe.ds._Vector.Vector_Impl_.blit(this35.data,0,data17,0,this35.data.length);
- this35.data = data17;
- }
- }
- this35.data[1] = (2 * x * y + 2 * w * z) * scale[1];
- var this37 = this.rawData;
- if(!this37.fixed) {
- if(2 >= this37.length) this37.length = 3;
- if(this37.data.length < this37.length) {
- var data18;
- var this38;
- this38 = new Array(this37.data.length + 10);
- data18 = this38;
- haxe.ds._Vector.Vector_Impl_.blit(this37.data,0,data18,0,this37.data.length);
- this37.data = data18;
- }
- }
- this37.data[2] = (2 * x * z - 2 * w * y) * scale[2];
- var this39 = this.rawData;
- if(!this39.fixed) {
- if(3 >= this39.length) this39.length = 4;
- if(this39.data.length < this39.length) {
- var data19;
- var this40;
- this40 = new Array(this39.data.length + 10);
- data19 = this40;
- haxe.ds._Vector.Vector_Impl_.blit(this39.data,0,data19,0,this39.data.length);
- this39.data = data19;
- }
- }
- this39.data[3] = 0;
- var this41 = this.rawData;
- if(!this41.fixed) {
- if(4 >= this41.length) this41.length = 5;
- if(this41.data.length < this41.length) {
- var data20;
- var this42;
- this42 = new Array(this41.data.length + 10);
- data20 = this42;
- haxe.ds._Vector.Vector_Impl_.blit(this41.data,0,data20,0,this41.data.length);
- this41.data = data20;
- }
- }
- this41.data[4] = (2 * x * y - 2 * w * z) * scale[4];
- var this43 = this.rawData;
- if(!this43.fixed) {
- if(5 >= this43.length) this43.length = 6;
- if(this43.data.length < this43.length) {
- var data21;
- var this44;
- this44 = new Array(this43.data.length + 10);
- data21 = this44;
- haxe.ds._Vector.Vector_Impl_.blit(this43.data,0,data21,0,this43.data.length);
- this43.data = data21;
- }
- }
- this43.data[5] = (1 - 2 * x * x - 2 * z * z) * scale[5];
- var this45 = this.rawData;
- if(!this45.fixed) {
- if(6 >= this45.length) this45.length = 7;
- if(this45.data.length < this45.length) {
- var data22;
- var this46;
- this46 = new Array(this45.data.length + 10);
- data22 = this46;
- haxe.ds._Vector.Vector_Impl_.blit(this45.data,0,data22,0,this45.data.length);
- this45.data = data22;
- }
- }
- this45.data[6] = (2 * y * z + 2 * w * x) * scale[6];
- var this47 = this.rawData;
- if(!this47.fixed) {
- if(7 >= this47.length) this47.length = 8;
- if(this47.data.length < this47.length) {
- var data23;
- var this48;
- this48 = new Array(this47.data.length + 10);
- data23 = this48;
- haxe.ds._Vector.Vector_Impl_.blit(this47.data,0,data23,0,this47.data.length);
- this47.data = data23;
- }
- }
- this47.data[7] = 0;
- var this49 = this.rawData;
- if(!this49.fixed) {
- if(8 >= this49.length) this49.length = 9;
- if(this49.data.length < this49.length) {
- var data24;
- var this50;
- this50 = new Array(this49.data.length + 10);
- data24 = this50;
- haxe.ds._Vector.Vector_Impl_.blit(this49.data,0,data24,0,this49.data.length);
- this49.data = data24;
- }
- }
- this49.data[8] = (2 * x * z + 2 * w * y) * scale[8];
- var this51 = this.rawData;
- if(!this51.fixed) {
- if(9 >= this51.length) this51.length = 10;
- if(this51.data.length < this51.length) {
- var data25;
- var this52;
- this52 = new Array(this51.data.length + 10);
- data25 = this52;
- haxe.ds._Vector.Vector_Impl_.blit(this51.data,0,data25,0,this51.data.length);
- this51.data = data25;
- }
- }
- this51.data[9] = (2 * y * z - 2 * w * x) * scale[9];
- var this53 = this.rawData;
- if(!this53.fixed) {
- if(10 >= this53.length) this53.length = 11;
- if(this53.data.length < this53.length) {
- var data26;
- var this54;
- this54 = new Array(this53.data.length + 10);
- data26 = this54;
- haxe.ds._Vector.Vector_Impl_.blit(this53.data,0,data26,0,this53.data.length);
- this53.data = data26;
- }
- }
- this53.data[10] = (1 - 2 * x * x - 2 * y * y) * scale[10];
- var this55 = this.rawData;
- if(!this55.fixed) {
- if(11 >= this55.length) this55.length = 12;
- if(this55.data.length < this55.length) {
- var data27;
- var this56;
- this56 = new Array(this55.data.length + 10);
- data27 = this56;
- haxe.ds._Vector.Vector_Impl_.blit(this55.data,0,data27,0,this55.data.length);
- this55.data = data27;
- }
- }
- this55.data[11] = 0;
- var this57 = this.rawData;
- if(!this57.fixed) {
- if(12 >= this57.length) this57.length = 13;
- if(this57.data.length < this57.length) {
- var data28;
- var this58;
- this58 = new Array(this57.data.length + 10);
- data28 = this58;
- haxe.ds._Vector.Vector_Impl_.blit(this57.data,0,data28,0,this57.data.length);
- this57.data = data28;
- }
- }
- this57.data[12] = components.data[0].x;
- var this59 = this.rawData;
- if(!this59.fixed) {
- if(13 >= this59.length) this59.length = 14;
- if(this59.data.length < this59.length) {
- var data29;
- var this60;
- this60 = new Array(this59.data.length + 10);
- data29 = this60;
- haxe.ds._Vector.Vector_Impl_.blit(this59.data,0,data29,0,this59.data.length);
- this59.data = data29;
- }
- }
- this59.data[13] = components.data[0].y;
- var this61 = this.rawData;
- if(!this61.fixed) {
- if(14 >= this61.length) this61.length = 15;
- if(this61.data.length < this61.length) {
- var data30;
- var this62;
- this62 = new Array(this61.data.length + 10);
- data30 = this62;
- haxe.ds._Vector.Vector_Impl_.blit(this61.data,0,data30,0,this61.data.length);
- this61.data = data30;
- }
- }
- this61.data[14] = components.data[0].z;
- var this63 = this.rawData;
- if(!this63.fixed) {
- if(15 >= this63.length) this63.length = 16;
- if(this63.data.length < this63.length) {
- var data31;
- var this64;
- this64 = new Array(this63.data.length + 10);
- data31 = this64;
- haxe.ds._Vector.Vector_Impl_.blit(this63.data,0,data31,0,this63.data.length);
- this63.data = data31;
- }
- }
- this63.data[15] = 1;
- }
- if(components.data[2].x == 0) {
- var this65 = this.rawData;
- if(!this65.fixed) {
- if(0 >= this65.length) this65.length = 1;
- if(this65.data.length < this65.length) {
- var data32;
- var this66;
- this66 = new Array(this65.data.length + 10);
- data32 = this66;
- haxe.ds._Vector.Vector_Impl_.blit(this65.data,0,data32,0,this65.data.length);
- this65.data = data32;
- }
- }
- this65.data[0] = 1e-15;
- }
- if(components.data[2].y == 0) {
- var this67 = this.rawData;
- if(!this67.fixed) {
- if(5 >= this67.length) this67.length = 6;
- if(this67.data.length < this67.length) {
- var data33;
- var this68;
- this68 = new Array(this67.data.length + 10);
- data33 = this68;
- haxe.ds._Vector.Vector_Impl_.blit(this67.data,0,data33,0,this67.data.length);
- this67.data = data33;
- }
- }
- this67.data[5] = 1e-15;
- }
- if(components.data[2].z == 0) {
- var this69 = this.rawData;
- if(!this69.fixed) {
- if(10 >= this69.length) this69.length = 11;
- if(this69.data.length < this69.length) {
- var data34;
- var this70;
- this70 = new Array(this69.data.length + 10);
- data34 = this70;
- haxe.ds._Vector.Vector_Impl_.blit(this69.data,0,data34,0,this69.data.length);
- this69.data = data34;
- }
- }
- this69.data[10] = 1e-15;
- }
- return !(components.data[2].x == 0 || components.data[2].y == 0 || components.data[2].y == 0);
- }
- ,transformVector: function(v) {
- var x = v.x;
- var y = v.y;
- var z = v.z;
- return new openfl.geom.Vector3D(x * this.rawData.data[0] + y * this.rawData.data[4] + z * this.rawData.data[8] + this.rawData.data[12],x * this.rawData.data[1] + y * this.rawData.data[5] + z * this.rawData.data[9] + this.rawData.data[13],x * this.rawData.data[2] + y * this.rawData.data[6] + z * this.rawData.data[10] + this.rawData.data[14],x * this.rawData.data[3] + y * this.rawData.data[7] + z * this.rawData.data[11] + this.rawData.data[15]);
- }
- ,transformVectors: function(vin,vout) {
- var i = 0;
- while(i + 3 <= vin.length) {
- var x = vin.data[i];
- var y = vin.data[i + 1];
- var z = vin.data[i + 2];
- if(!vout.fixed) {
- if(i >= vout.length) vout.length = i + 1;
- if(vout.data.length < vout.length) {
- var data;
- var this1;
- this1 = new Array(vout.data.length + 10);
- data = this1;
- haxe.ds._Vector.Vector_Impl_.blit(vout.data,0,data,0,vout.data.length);
- vout.data = data;
- }
- }
- vout.data[i] = x * this.rawData.data[0] + y * this.rawData.data[4] + z * this.rawData.data[8] + this.rawData.data[12];
- var key = i + 1;
- if(!vout.fixed) {
- if(key >= vout.length) vout.length = key + 1;
- if(vout.data.length < vout.length) {
- var data1;
- var this2;
- this2 = new Array(vout.data.length + 10);
- data1 = this2;
- haxe.ds._Vector.Vector_Impl_.blit(vout.data,0,data1,0,vout.data.length);
- vout.data = data1;
- }
- }
- vout.data[key] = x * this.rawData.data[1] + y * this.rawData.data[5] + z * this.rawData.data[9] + this.rawData.data[13];
- var key1 = i + 2;
- if(!vout.fixed) {
- if(key1 >= vout.length) vout.length = key1 + 1;
- if(vout.data.length < vout.length) {
- var data2;
- var this3;
- this3 = new Array(vout.data.length + 10);
- data2 = this3;
- haxe.ds._Vector.Vector_Impl_.blit(vout.data,0,data2,0,vout.data.length);
- vout.data = data2;
- }
- }
- vout.data[key1] = x * this.rawData.data[2] + y * this.rawData.data[6] + z * this.rawData.data[10] + this.rawData.data[14];
- i += 3;
- }
- }
- ,transpose: function() {
- var oRawData;
- var this1 = this.rawData;
- var vectorData = new openfl.VectorData();
- vectorData.length = this1.length;
- vectorData.fixed = this1.fixed;
- var this2;
- this2 = new Array(this1.length);
- vectorData.data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,vectorData.data,0,this1.length);
- oRawData = vectorData;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(1 >= this3.length) this3.length = 2;
- if(this3.data.length < this3.length) {
- var data;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data,0,this3.data.length);
- this3.data = data;
- }
- }
- this3.data[1] = oRawData.data[4];
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(2 >= this5.length) this5.length = 3;
- if(this5.data.length < this5.length) {
- var data1;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data1 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data1,0,this5.data.length);
- this5.data = data1;
- }
- }
- this5.data[2] = oRawData.data[8];
- var this7 = this.rawData;
- if(!this7.fixed) {
- if(3 >= this7.length) this7.length = 4;
- if(this7.data.length < this7.length) {
- var data2;
- var this8;
- this8 = new Array(this7.data.length + 10);
- data2 = this8;
- haxe.ds._Vector.Vector_Impl_.blit(this7.data,0,data2,0,this7.data.length);
- this7.data = data2;
- }
- }
- this7.data[3] = oRawData.data[12];
- var this9 = this.rawData;
- if(!this9.fixed) {
- if(4 >= this9.length) this9.length = 5;
- if(this9.data.length < this9.length) {
- var data3;
- var this10;
- this10 = new Array(this9.data.length + 10);
- data3 = this10;
- haxe.ds._Vector.Vector_Impl_.blit(this9.data,0,data3,0,this9.data.length);
- this9.data = data3;
- }
- }
- this9.data[4] = oRawData.data[1];
- var this11 = this.rawData;
- if(!this11.fixed) {
- if(6 >= this11.length) this11.length = 7;
- if(this11.data.length < this11.length) {
- var data4;
- var this12;
- this12 = new Array(this11.data.length + 10);
- data4 = this12;
- haxe.ds._Vector.Vector_Impl_.blit(this11.data,0,data4,0,this11.data.length);
- this11.data = data4;
- }
- }
- this11.data[6] = oRawData.data[9];
- var this13 = this.rawData;
- if(!this13.fixed) {
- if(7 >= this13.length) this13.length = 8;
- if(this13.data.length < this13.length) {
- var data5;
- var this14;
- this14 = new Array(this13.data.length + 10);
- data5 = this14;
- haxe.ds._Vector.Vector_Impl_.blit(this13.data,0,data5,0,this13.data.length);
- this13.data = data5;
- }
- }
- this13.data[7] = oRawData.data[13];
- var this15 = this.rawData;
- if(!this15.fixed) {
- if(8 >= this15.length) this15.length = 9;
- if(this15.data.length < this15.length) {
- var data6;
- var this16;
- this16 = new Array(this15.data.length + 10);
- data6 = this16;
- haxe.ds._Vector.Vector_Impl_.blit(this15.data,0,data6,0,this15.data.length);
- this15.data = data6;
- }
- }
- this15.data[8] = oRawData.data[2];
- var this17 = this.rawData;
- if(!this17.fixed) {
- if(9 >= this17.length) this17.length = 10;
- if(this17.data.length < this17.length) {
- var data7;
- var this18;
- this18 = new Array(this17.data.length + 10);
- data7 = this18;
- haxe.ds._Vector.Vector_Impl_.blit(this17.data,0,data7,0,this17.data.length);
- this17.data = data7;
- }
- }
- this17.data[9] = oRawData.data[6];
- var this19 = this.rawData;
- if(!this19.fixed) {
- if(11 >= this19.length) this19.length = 12;
- if(this19.data.length < this19.length) {
- var data8;
- var this20;
- this20 = new Array(this19.data.length + 10);
- data8 = this20;
- haxe.ds._Vector.Vector_Impl_.blit(this19.data,0,data8,0,this19.data.length);
- this19.data = data8;
- }
- }
- this19.data[11] = oRawData.data[14];
- var this21 = this.rawData;
- if(!this21.fixed) {
- if(12 >= this21.length) this21.length = 13;
- if(this21.data.length < this21.length) {
- var data9;
- var this22;
- this22 = new Array(this21.data.length + 10);
- data9 = this22;
- haxe.ds._Vector.Vector_Impl_.blit(this21.data,0,data9,0,this21.data.length);
- this21.data = data9;
- }
- }
- this21.data[12] = oRawData.data[3];
- var this23 = this.rawData;
- if(!this23.fixed) {
- if(13 >= this23.length) this23.length = 14;
- if(this23.data.length < this23.length) {
- var data10;
- var this24;
- this24 = new Array(this23.data.length + 10);
- data10 = this24;
- haxe.ds._Vector.Vector_Impl_.blit(this23.data,0,data10,0,this23.data.length);
- this23.data = data10;
- }
- }
- this23.data[13] = oRawData.data[7];
- var this25 = this.rawData;
- if(!this25.fixed) {
- if(14 >= this25.length) this25.length = 15;
- if(this25.data.length < this25.length) {
- var data11;
- var this26;
- this26 = new Array(this25.data.length + 10);
- data11 = this26;
- haxe.ds._Vector.Vector_Impl_.blit(this25.data,0,data11,0,this25.data.length);
- this25.data = data11;
- }
- }
- this25.data[14] = oRawData.data[11];
- }
- ,get_determinant: function() {
- return (this.rawData.data[0] * this.rawData.data[5] - this.rawData.data[4] * this.rawData.data[1]) * (this.rawData.data[10] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[11]) - (this.rawData.data[0] * this.rawData.data[9] - this.rawData.data[8] * this.rawData.data[1]) * (this.rawData.data[6] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[7]) + (this.rawData.data[0] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[1]) * (this.rawData.data[6] * this.rawData.data[11] - this.rawData.data[10] * this.rawData.data[7]) + (this.rawData.data[4] * this.rawData.data[9] - this.rawData.data[8] * this.rawData.data[5]) * (this.rawData.data[2] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[3]) - (this.rawData.data[4] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[5]) * (this.rawData.data[2] * this.rawData.data[11] - this.rawData.data[10] * this.rawData.data[3]) + (this.rawData.data[8] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[9]) * (this.rawData.data[2] * this.rawData.data[7] - this.rawData.data[6] * this.rawData.data[3]);
- }
- ,get_position: function() {
- return new openfl.geom.Vector3D(this.rawData.data[12],this.rawData.data[13],this.rawData.data[14]);
- }
- ,set_position: function(val) {
- var this1 = this.rawData;
- if(!this1.fixed) {
- if(12 >= this1.length) this1.length = 13;
- if(this1.data.length < this1.length) {
- var data;
- var this2;
- this2 = new Array(this1.data.length + 10);
- data = this2;
- haxe.ds._Vector.Vector_Impl_.blit(this1.data,0,data,0,this1.data.length);
- this1.data = data;
- }
- }
- this1.data[12] = val.x;
- var this3 = this.rawData;
- if(!this3.fixed) {
- if(13 >= this3.length) this3.length = 14;
- if(this3.data.length < this3.length) {
- var data1;
- var this4;
- this4 = new Array(this3.data.length + 10);
- data1 = this4;
- haxe.ds._Vector.Vector_Impl_.blit(this3.data,0,data1,0,this3.data.length);
- this3.data = data1;
- }
- }
- this3.data[13] = val.y;
- var this5 = this.rawData;
- if(!this5.fixed) {
- if(14 >= this5.length) this5.length = 15;
- if(this5.data.length < this5.length) {
- var data2;
- var this6;
- this6 = new Array(this5.data.length + 10);
- data2 = this6;
- haxe.ds._Vector.Vector_Impl_.blit(this5.data,0,data2,0,this5.data.length);
- this5.data = data2;
- }
- }
- this5.data[14] = val.z;
- return val;
- }
- ,__class__: openfl.geom.Matrix3D
- ,__properties__: {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"}
- };
- openfl.geom.Orientation3D = $hxClasses["openfl.geom.Orientation3D"] = { __ename__ : ["openfl","geom","Orientation3D"], __constructs__ : ["AXIS_ANGLE","EULER_ANGLES","QUATERNION"] };
- openfl.geom.Orientation3D.AXIS_ANGLE = ["AXIS_ANGLE",0];
- openfl.geom.Orientation3D.AXIS_ANGLE.toString = $estr;
- openfl.geom.Orientation3D.AXIS_ANGLE.__enum__ = openfl.geom.Orientation3D;
- openfl.geom.Orientation3D.EULER_ANGLES = ["EULER_ANGLES",1];
- openfl.geom.Orientation3D.EULER_ANGLES.toString = $estr;
- openfl.geom.Orientation3D.EULER_ANGLES.__enum__ = openfl.geom.Orientation3D;
- openfl.geom.Orientation3D.QUATERNION = ["QUATERNION",2];
- openfl.geom.Orientation3D.QUATERNION.toString = $estr;
- openfl.geom.Orientation3D.QUATERNION.__enum__ = openfl.geom.Orientation3D;
- openfl.geom.Transform = function(displayObject) {
- this.__colorTransform = new openfl.geom.ColorTransform();
- this.concatenatedColorTransform = new openfl.geom.ColorTransform();
- this.concatenatedMatrix = new openfl.geom.Matrix();
- this.pixelBounds = new openfl.geom.Rectangle();
- this.__displayObject = displayObject;
- this.__hasMatrix = true;
- };
- $hxClasses["openfl.geom.Transform"] = openfl.geom.Transform;
- openfl.geom.Transform.__name__ = ["openfl","geom","Transform"];
- openfl.geom.Transform.prototype = {
- get_colorTransform: function() {
- return this.__colorTransform;
- }
- ,set_colorTransform: function(value) {
- this.__colorTransform = value;
- if(value != null) this.__displayObject.set_alpha(value.alphaMultiplier);
- return this.__colorTransform;
- }
- ,get_matrix: function() {
- if(this.__hasMatrix) {
- var matrix = new openfl.geom.Matrix();
- matrix.scale(this.__displayObject.get_scaleX(),this.__displayObject.get_scaleY());
- matrix.rotate(this.__displayObject.get_rotation() * (Math.PI / 180));
- matrix.translate(this.__displayObject.get_x(),this.__displayObject.get_y());
- return matrix;
- }
- return null;
- }
- ,set_matrix: function(value) {
- if(value == null) {
- this.__hasMatrix = false;
- return null;
- }
- this.__hasMatrix = true;
- this.__hasMatrix3D = false;
- if(this.__displayObject != null) {
- this.__displayObject.set_x(value.tx);
- this.__displayObject.set_y(value.ty);
- this.__displayObject.set_scaleX(Math.sqrt(value.a * value.a + value.b * value.b));
- this.__displayObject.set_scaleY(Math.sqrt(value.c * value.c + value.d * value.d));
- this.__displayObject.set_rotation(Math.atan2(value.b,value.a) * (180 / Math.PI));
- }
- return value;
- }
- ,get_matrix3D: function() {
- if(this.__hasMatrix3D) {
- var matrix = new openfl.geom.Matrix();
- matrix.scale(this.__displayObject.get_scaleX(),this.__displayObject.get_scaleY());
- matrix.rotate(this.__displayObject.get_rotation() * (Math.PI / 180));
- matrix.translate(this.__displayObject.get_x(),this.__displayObject.get_y());
- return new openfl.geom.Matrix3D((function($this) {
- var $r;
- var value = [matrix.a,matrix.b,0.0,0.0,matrix.c,matrix.d,0.0,0.0,0.0,0.0,1.0,0.0,matrix.tx,matrix.ty,0.0,1.0];
- var vectorData = new openfl.VectorData();
- vectorData.length = value.length;
- vectorData.fixed = true;
- {
- var vec;
- var this1;
- this1 = new Array(value.length);
- vec = this1;
- var _g1 = 0;
- var _g = value.length;
- while(_g1 < _g) {
- var i = _g1++;
- vec[i] = value[i];
- }
- vectorData.data = vec;
- }
- $r = vectorData;
- return $r;
- }(this)));
- }
- return null;
- }
- ,set_matrix3D: function(value) {
- if(value == null) {
- this.__hasMatrix3D = false;
- return null;
- }
- this.__hasMatrix = false;
- this.__hasMatrix3D = true;
- if(this.__displayObject != null) {
- this.__displayObject.set_x(value.rawData.data[12]);
- this.__displayObject.set_y(value.rawData.data[13]);
- this.__displayObject.set_scaleX(Math.sqrt(value.rawData.data[0] * value.rawData.data[0] + value.rawData.data[1] * value.rawData.data[1]));
- this.__displayObject.set_scaleY(Math.sqrt(value.rawData.data[4] * value.rawData.data[4] + value.rawData.data[5] * value.rawData.data[5]));
- this.__displayObject.set_rotation(Math.atan2(value.rawData.data[1],value.rawData.data[0]) * (180 / Math.PI));
- }
- return value;
- }
- ,__class__: openfl.geom.Transform
- ,__properties__: {set_matrix3D:"set_matrix3D",get_matrix3D:"get_matrix3D",set_matrix:"set_matrix",get_matrix:"get_matrix",set_colorTransform:"set_colorTransform",get_colorTransform:"get_colorTransform"}
- };
- openfl.geom.Vector3D = function(x,y,z,w) {
- if(w == null) w = 0;
- if(z == null) z = 0;
- if(y == null) y = 0;
- if(x == null) x = 0;
- this.w = w;
- this.x = x;
- this.y = y;
- this.z = z;
- };
- $hxClasses["openfl.geom.Vector3D"] = openfl.geom.Vector3D;
- openfl.geom.Vector3D.__name__ = ["openfl","geom","Vector3D"];
- openfl.geom.Vector3D.__properties__ = {get_Z_AXIS:"get_Z_AXIS",get_Y_AXIS:"get_Y_AXIS",get_X_AXIS:"get_X_AXIS"}
- openfl.geom.Vector3D.X_AXIS = null;
- openfl.geom.Vector3D.Y_AXIS = null;
- openfl.geom.Vector3D.Z_AXIS = null;
- openfl.geom.Vector3D.angleBetween = function(a,b) {
- var a0 = new openfl.geom.Vector3D(a.x,a.y,a.z,a.w);
- a0.normalize();
- var b0 = new openfl.geom.Vector3D(b.x,b.y,b.z,b.w);
- b0.normalize();
- return Math.acos(a0.x * b0.x + a0.y * b0.y + a0.z * b0.z);
- };
- openfl.geom.Vector3D.distance = function(pt1,pt2) {
- var x = pt2.x - pt1.x;
- var y = pt2.y - pt1.y;
- var z = pt2.z - pt1.z;
- return Math.sqrt(x * x + y * y + z * z);
- };
- openfl.geom.Vector3D.get_X_AXIS = function() {
- return new openfl.geom.Vector3D(1,0,0);
- };
- openfl.geom.Vector3D.get_Y_AXIS = function() {
- return new openfl.geom.Vector3D(0,1,0);
- };
- openfl.geom.Vector3D.get_Z_AXIS = function() {
- return new openfl.geom.Vector3D(0,0,1);
- };
- openfl.geom.Vector3D.prototype = {
- add: function(a) {
- return new openfl.geom.Vector3D(this.x + a.x,this.y + a.y,this.z + a.z);
- }
- ,clone: function() {
- return new openfl.geom.Vector3D(this.x,this.y,this.z,this.w);
- }
- ,copyFrom: function(sourceVector3D) {
- this.x = sourceVector3D.x;
- this.y = sourceVector3D.y;
- this.z = sourceVector3D.z;
- }
- ,crossProduct: function(a) {
- return new openfl.geom.Vector3D(this.y * a.z - this.z * a.y,this.z * a.x - this.x * a.z,this.x * a.y - this.y * a.x,1);
- }
- ,decrementBy: function(a) {
- this.x -= a.x;
- this.y -= a.y;
- this.z -= a.z;
- }
- ,dotProduct: function(a) {
- return this.x * a.x + this.y * a.y + this.z * a.z;
- }
- ,equals: function(toCompare,allFour) {
- if(allFour == null) allFour = false;
- return this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z && (!allFour || this.w == toCompare.w);
- }
- ,incrementBy: function(a) {
- this.x += a.x;
- this.y += a.y;
- this.z += a.z;
- }
- ,nearEquals: function(toCompare,tolerance,allFour) {
- if(allFour == null) allFour = false;
- return Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance && (!allFour || Math.abs(this.w - toCompare.w) < tolerance);
- }
- ,negate: function() {
- this.x *= -1;
- this.y *= -1;
- this.z *= -1;
- }
- ,normalize: function() {
- var l = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
- if(l != 0) {
- this.x /= l;
- this.y /= l;
- this.z /= l;
- }
- return l;
- }
- ,project: function() {
- this.x /= this.w;
- this.y /= this.w;
- this.z /= this.w;
- }
- ,scaleBy: function(s) {
- this.x *= s;
- this.y *= s;
- this.z *= s;
- }
- ,setTo: function(xa,ya,za) {
- this.x = xa;
- this.y = ya;
- this.z = za;
- }
- ,subtract: function(a) {
- return new openfl.geom.Vector3D(this.x - a.x,this.y - a.y,this.z - a.z);
- }
- ,toString: function() {
- return "Vector3D(" + this.x + ", " + this.y + ", " + this.z + ")";
- }
- ,get_length: function() {
- return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
- }
- ,get_lengthSquared: function() {
- return this.x * this.x + this.y * this.y + this.z * this.z;
- }
- ,__class__: openfl.geom.Vector3D
- ,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"}
- };
- openfl.media = {};
- openfl.media.ID3Info = function() {
- };
- $hxClasses["openfl.media.ID3Info"] = openfl.media.ID3Info;
- openfl.media.ID3Info.__name__ = ["openfl","media","ID3Info"];
- openfl.media.ID3Info.prototype = {
- __class__: openfl.media.ID3Info
- };
- openfl.media.Sound = function(stream,context) {
- openfl.events.EventDispatcher.call(this,this);
- this.bytesLoaded = 0;
- this.bytesTotal = 0;
- this.id3 = null;
- this.isBuffering = false;
- this.length = 0;
- this.url = null;
- if(stream != null) this.load(stream,context);
- };
- $hxClasses["openfl.media.Sound"] = openfl.media.Sound;
- openfl.media.Sound.__name__ = ["openfl","media","Sound"];
- openfl.media.Sound.fromAudioBuffer = function(buffer) {
- var sound = new openfl.media.Sound();
- sound.__buffer = buffer;
- return sound;
- };
- openfl.media.Sound.__super__ = openfl.events.EventDispatcher;
- openfl.media.Sound.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- close: function() {
- if(openfl.media.Sound.__registeredSounds.exists(this.__soundID)) createjs.Sound.removeSound(this.__soundID);
- }
- ,load: function(stream,context) {
- this.url = stream.url;
- this.__soundID = haxe.io.Path.withoutExtension(stream.url);
- if(!openfl.media.Sound.__registeredSounds.exists(this.__soundID)) {
- openfl.media.Sound.__registeredSounds.set(this.__soundID,true);
- createjs.Sound.addEventListener("fileload",$bind(this,this.SoundJS_onFileLoad));
- createjs.Sound.addEventListener("fileerror",$bind(this,this.SoundJS_onFileError));
- createjs.Sound.registerSound(this.url,this.__soundID);
- } else this.dispatchEvent(new openfl.events.Event(openfl.events.Event.COMPLETE));
- }
- ,loadCompressedDataFromByteArray: function(bytes,bytesLength,forcePlayAsMusic) {
- if(forcePlayAsMusic == null) forcePlayAsMusic = false;
- openfl.Lib.notImplemented("Sound.loadCompressedDataFromByteArray");
- }
- ,loadPCMFromByteArray: function(bytes,samples,format,stereo,sampleRate) {
- if(sampleRate == null) sampleRate = 44100;
- if(stereo == null) stereo = true;
- openfl.Lib.notImplemented("Sound.loadPCMFromByteArray");
- }
- ,play: function(startTime,loops,sndTransform) {
- if(loops == null) loops = 0;
- if(startTime == null) startTime = 0.0;
- if(sndTransform == null) sndTransform = new openfl.media.SoundTransform(1,0);
- var instance = createjs.Sound.play(this.__soundID,"any",0,startTime | 0,loops,sndTransform.volume,sndTransform.pan);
- return new openfl.media.SoundChannel(instance);
- }
- ,get_id3: function() {
- return new openfl.media.ID3Info();
- }
- ,AudioBuffer_onURLLoad: function(buffer) {
- this.__buffer = buffer;
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.COMPLETE));
- }
- ,SoundJS_onFileLoad: function(event) {
- if(event.id == this.__soundID) {
- createjs.Sound.removeEventListener("fileload",$bind(this,this.SoundJS_onFileLoad));
- createjs.Sound.removeEventListener("fileerror",$bind(this,this.SoundJS_onFileError));
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.COMPLETE));
- }
- }
- ,SoundJS_onFileError: function(event) {
- if(event.id == this.__soundID) {
- createjs.Sound.removeEventListener("fileload",$bind(this,this.SoundJS_onFileLoad));
- createjs.Sound.removeEventListener("fileerror",$bind(this,this.SoundJS_onFileError));
- this.dispatchEvent(new openfl.events.IOErrorEvent(openfl.events.IOErrorEvent.IO_ERROR));
- }
- }
- ,__class__: openfl.media.Sound
- ,__properties__: {get_id3:"get_id3"}
- });
- openfl.media.SoundChannel = function(soundInstance) {
- openfl.events.EventDispatcher.call(this,this);
- if(soundInstance != null) {
- this.__soundInstance = soundInstance;
- this.__soundInstance.addEventListener("complete",$bind(this,this.source_onComplete));
- this.__isValid = true;
- }
- };
- $hxClasses["openfl.media.SoundChannel"] = openfl.media.SoundChannel;
- openfl.media.SoundChannel.__name__ = ["openfl","media","SoundChannel"];
- openfl.media.SoundChannel.__super__ = openfl.events.EventDispatcher;
- openfl.media.SoundChannel.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- stop: function() {
- if(!this.__isValid) return;
- this.__soundInstance.stop();
- }
- ,__dispose: function() {
- if(!this.__isValid) return;
- this.__soundInstance.stop();
- this.__soundInstance = null;
- }
- ,get_position: function() {
- if(!this.__isValid) return 0;
- return this.__soundInstance.getPosition();
- }
- ,set_position: function(value) {
- if(!this.__isValid) return 0;
- this.__soundInstance.setPosition(value | 0);
- return this.__soundInstance.getPosition();
- }
- ,get_soundTransform: function() {
- if(!this.__isValid) return new openfl.media.SoundTransform();
- return new openfl.media.SoundTransform(this.__soundInstance.getVolume(),this.__soundInstance.getPan());
- }
- ,set_soundTransform: function(value) {
- if(!this.__isValid) return value;
- this.__soundInstance.setVolume(value.volume);
- this.__soundInstance.setPan(value.pan);
- return value;
- }
- ,soundInstance_onComplete: function(_) {
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.SOUND_COMPLETE));
- }
- ,source_onComplete: function() {
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.SOUND_COMPLETE));
- }
- ,__class__: openfl.media.SoundChannel
- ,__properties__: {set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform",set_position:"set_position",get_position:"get_position"}
- });
- openfl.media.SoundLoaderContext = function(bufferTime,checkPolicyFile) {
- if(checkPolicyFile == null) checkPolicyFile = false;
- if(bufferTime == null) bufferTime = 0;
- this.bufferTime = bufferTime;
- this.checkPolicyFile = checkPolicyFile;
- };
- $hxClasses["openfl.media.SoundLoaderContext"] = openfl.media.SoundLoaderContext;
- openfl.media.SoundLoaderContext.__name__ = ["openfl","media","SoundLoaderContext"];
- openfl.media.SoundLoaderContext.prototype = {
- __class__: openfl.media.SoundLoaderContext
- };
- openfl.media.SoundTransform = function(vol,panning) {
- if(panning == null) panning = 0;
- if(vol == null) vol = 1;
- this.volume = vol;
- this.pan = panning;
- this.leftToLeft = 0;
- this.leftToRight = 0;
- this.rightToLeft = 0;
- this.rightToRight = 0;
- };
- $hxClasses["openfl.media.SoundTransform"] = openfl.media.SoundTransform;
- openfl.media.SoundTransform.__name__ = ["openfl","media","SoundTransform"];
- openfl.media.SoundTransform.prototype = {
- clone: function() {
- return new openfl.media.SoundTransform(this.volume,this.pan);
- }
- ,__class__: openfl.media.SoundTransform
- };
- openfl.net = {};
- openfl.net.SharedObject = function() {
- openfl.events.EventDispatcher.call(this);
- };
- $hxClasses["openfl.net.SharedObject"] = openfl.net.SharedObject;
- openfl.net.SharedObject.__name__ = ["openfl","net","SharedObject"];
- openfl.net.SharedObject.getLocal = function(name,localPath,secure) {
- if(secure == null) secure = false;
- if(localPath == null) localPath = window.location.href;
- var so = new openfl.net.SharedObject();
- so.__key = localPath + ":" + name;
- var rawData = null;
- try {
- rawData = openfl.net.SharedObject.__getLocalStorage().getItem(so.__key);
- } catch( e ) {
- }
- so.data = { };
- if(rawData != null && rawData != "") {
- var unserializer = new haxe.Unserializer(rawData);
- unserializer.setResolver({ resolveEnum : Type.resolveEnum, resolveClass : openfl.net.SharedObject.resolveClass});
- so.data = unserializer.unserialize();
- }
- if(so.data == null) so.data = { };
- return so;
- };
- openfl.net.SharedObject.__getLocalStorage = function() {
- var res = js.Browser.getLocalStorage();
- if(res == null) throw new openfl.errors.Error("SharedObject not supported");
- return res;
- };
- openfl.net.SharedObject.resolveClass = function(name) {
- if(name != null) return Type.resolveClass(StringTools.replace(StringTools.replace(name,"jeash.","flash."),"browser.","flash."));
- return null;
- };
- openfl.net.SharedObject.__super__ = openfl.events.EventDispatcher;
- openfl.net.SharedObject.prototype = $extend(openfl.events.EventDispatcher.prototype,{
- clear: function() {
- this.data = { };
- try {
- openfl.net.SharedObject.__getLocalStorage().removeItem(this.__key);
- } catch( e ) {
- }
- this.flush();
- }
- ,flush: function(minDiskSpace) {
- if(minDiskSpace == null) minDiskSpace = 0;
- var data = haxe.Serializer.run(this.data);
- try {
- openfl.net.SharedObject.__getLocalStorage().removeItem(this.__key);
- openfl.net.SharedObject.__getLocalStorage().setItem(this.__key,data);
- } catch( e ) {
- return openfl.net.SharedObjectFlushStatus.PENDING;
- }
- return openfl.net.SharedObjectFlushStatus.FLUSHED;
- }
- ,setProperty: function(propertyName,value) {
- if(this.data != null) this.data[propertyName] = value;
- }
- ,get_size: function() {
- var d = haxe.Serializer.run(this.data);
- return haxe.io.Bytes.ofString(d).length;
- }
- ,__class__: openfl.net.SharedObject
- ,__properties__: {get_size:"get_size"}
- });
- openfl.net.SharedObjectFlushStatus = $hxClasses["openfl.net.SharedObjectFlushStatus"] = { __ename__ : ["openfl","net","SharedObjectFlushStatus"], __constructs__ : ["FLUSHED","PENDING"] };
- openfl.net.SharedObjectFlushStatus.FLUSHED = ["FLUSHED",0];
- openfl.net.SharedObjectFlushStatus.FLUSHED.toString = $estr;
- openfl.net.SharedObjectFlushStatus.FLUSHED.__enum__ = openfl.net.SharedObjectFlushStatus;
- openfl.net.SharedObjectFlushStatus.PENDING = ["PENDING",1];
- openfl.net.SharedObjectFlushStatus.PENDING.toString = $estr;
- openfl.net.SharedObjectFlushStatus.PENDING.__enum__ = openfl.net.SharedObjectFlushStatus;
- openfl.net.URLLoaderDataFormat = $hxClasses["openfl.net.URLLoaderDataFormat"] = { __ename__ : ["openfl","net","URLLoaderDataFormat"], __constructs__ : ["BINARY","TEXT","VARIABLES"] };
- openfl.net.URLLoaderDataFormat.BINARY = ["BINARY",0];
- openfl.net.URLLoaderDataFormat.BINARY.toString = $estr;
- openfl.net.URLLoaderDataFormat.BINARY.__enum__ = openfl.net.URLLoaderDataFormat;
- openfl.net.URLLoaderDataFormat.TEXT = ["TEXT",1];
- openfl.net.URLLoaderDataFormat.TEXT.toString = $estr;
- openfl.net.URLLoaderDataFormat.TEXT.__enum__ = openfl.net.URLLoaderDataFormat;
- openfl.net.URLLoaderDataFormat.VARIABLES = ["VARIABLES",2];
- openfl.net.URLLoaderDataFormat.VARIABLES.toString = $estr;
- openfl.net.URLLoaderDataFormat.VARIABLES.__enum__ = openfl.net.URLLoaderDataFormat;
- openfl.net.URLRequest = function(inURL) {
- if(inURL != null) this.url = inURL;
- this.requestHeaders = [];
- this.method = openfl.net.URLRequestMethod.GET;
- this.contentType = null;
- };
- $hxClasses["openfl.net.URLRequest"] = openfl.net.URLRequest;
- openfl.net.URLRequest.__name__ = ["openfl","net","URLRequest"];
- openfl.net.URLRequest.prototype = {
- formatRequestHeaders: function() {
- var res = this.requestHeaders;
- if(res == null) res = [];
- if(this.method == openfl.net.URLRequestMethod.GET || this.data == null) return res;
- if(typeof(this.data) == "string" || js.Boot.__instanceof(this.data,lime.utils.ByteArray)) {
- res = res.slice();
- res.push(new openfl.net.URLRequestHeader("Content-Type",this.contentType != null?this.contentType:"application/x-www-form-urlencoded"));
- }
- return res;
- }
- ,__class__: openfl.net.URLRequest
- };
- openfl.net.URLRequestHeader = function(name,value) {
- if(value == null) value = "";
- if(name == null) name = "";
- this.name = name;
- this.value = value;
- };
- $hxClasses["openfl.net.URLRequestHeader"] = openfl.net.URLRequestHeader;
- openfl.net.URLRequestHeader.__name__ = ["openfl","net","URLRequestHeader"];
- openfl.net.URLRequestHeader.prototype = {
- __class__: openfl.net.URLRequestHeader
- };
- openfl.net.URLRequestMethod = function() { };
- $hxClasses["openfl.net.URLRequestMethod"] = openfl.net.URLRequestMethod;
- openfl.net.URLRequestMethod.__name__ = ["openfl","net","URLRequestMethod"];
- openfl.system.LoaderContext = function(checkPolicyFile,applicationDomain,securityDomain) {
- if(checkPolicyFile == null) checkPolicyFile = false;
- this.checkPolicyFile = checkPolicyFile;
- this.securityDomain = securityDomain;
- this.applicationDomain = applicationDomain;
- this.allowCodeImport = true;
- this.allowLoadBytesCodeExecution = true;
- };
- $hxClasses["openfl.system.LoaderContext"] = openfl.system.LoaderContext;
- openfl.system.LoaderContext.__name__ = ["openfl","system","LoaderContext"];
- openfl.system.LoaderContext.prototype = {
- __class__: openfl.system.LoaderContext
- };
- openfl.system.SecurityDomain = function() {
- };
- $hxClasses["openfl.system.SecurityDomain"] = openfl.system.SecurityDomain;
- openfl.system.SecurityDomain.__name__ = ["openfl","system","SecurityDomain"];
- openfl.system.SecurityDomain.prototype = {
- __class__: openfl.system.SecurityDomain
- };
- openfl.text = {};
- openfl.text.AntiAliasType = $hxClasses["openfl.text.AntiAliasType"] = { __ename__ : ["openfl","text","AntiAliasType"], __constructs__ : ["ADVANCED","NORMAL"] };
- openfl.text.AntiAliasType.ADVANCED = ["ADVANCED",0];
- openfl.text.AntiAliasType.ADVANCED.toString = $estr;
- openfl.text.AntiAliasType.ADVANCED.__enum__ = openfl.text.AntiAliasType;
- openfl.text.AntiAliasType.NORMAL = ["NORMAL",1];
- openfl.text.AntiAliasType.NORMAL.toString = $estr;
- openfl.text.AntiAliasType.NORMAL.__enum__ = openfl.text.AntiAliasType;
- openfl.text.Font = function(name) {
- lime.graphics.Font.call(this,name);
- };
- $hxClasses["openfl.text.Font"] = openfl.text.Font;
- openfl.text.Font.__name__ = ["openfl","text","Font"];
- openfl.text.Font.enumerateFonts = function(enumerateDeviceFonts) {
- if(enumerateDeviceFonts == null) enumerateDeviceFonts = false;
- return [];
- };
- openfl.text.Font.fromBytes = function(bytes) {
- var font = new openfl.text.Font();
- return font;
- };
- openfl.text.Font.fromFile = function(path) {
- var font = new openfl.text.Font();
- font.__fromFile(path);
- return font;
- };
- openfl.text.Font.registerFont = function(font) {
- var instance;
- instance = js.Boot.__cast(Type.createInstance(font,[]) , openfl.text.Font);
- if(instance != null) openfl.text.Font.__registeredFonts.push(instance);
- };
- openfl.text.Font.__super__ = lime.graphics.Font;
- openfl.text.Font.prototype = $extend(lime.graphics.Font.prototype,{
- __class__: openfl.text.Font
- });
- openfl.text.FontStyle = $hxClasses["openfl.text.FontStyle"] = { __ename__ : ["openfl","text","FontStyle"], __constructs__ : ["REGULAR","ITALIC","BOLD_ITALIC","BOLD"] };
- openfl.text.FontStyle.REGULAR = ["REGULAR",0];
- openfl.text.FontStyle.REGULAR.toString = $estr;
- openfl.text.FontStyle.REGULAR.__enum__ = openfl.text.FontStyle;
- openfl.text.FontStyle.ITALIC = ["ITALIC",1];
- openfl.text.FontStyle.ITALIC.toString = $estr;
- openfl.text.FontStyle.ITALIC.__enum__ = openfl.text.FontStyle;
- openfl.text.FontStyle.BOLD_ITALIC = ["BOLD_ITALIC",2];
- openfl.text.FontStyle.BOLD_ITALIC.toString = $estr;
- openfl.text.FontStyle.BOLD_ITALIC.__enum__ = openfl.text.FontStyle;
- openfl.text.FontStyle.BOLD = ["BOLD",3];
- openfl.text.FontStyle.BOLD.toString = $estr;
- openfl.text.FontStyle.BOLD.__enum__ = openfl.text.FontStyle;
- openfl.text.FontType = $hxClasses["openfl.text.FontType"] = { __ename__ : ["openfl","text","FontType"], __constructs__ : ["DEVICE","EMBEDDED","EMBEDDED_CFF"] };
- openfl.text.FontType.DEVICE = ["DEVICE",0];
- openfl.text.FontType.DEVICE.toString = $estr;
- openfl.text.FontType.DEVICE.__enum__ = openfl.text.FontType;
- openfl.text.FontType.EMBEDDED = ["EMBEDDED",1];
- openfl.text.FontType.EMBEDDED.toString = $estr;
- openfl.text.FontType.EMBEDDED.__enum__ = openfl.text.FontType;
- openfl.text.FontType.EMBEDDED_CFF = ["EMBEDDED_CFF",2];
- openfl.text.FontType.EMBEDDED_CFF.toString = $estr;
- openfl.text.FontType.EMBEDDED_CFF.__enum__ = openfl.text.FontType;
- openfl.text.GridFitType = $hxClasses["openfl.text.GridFitType"] = { __ename__ : ["openfl","text","GridFitType"], __constructs__ : ["NONE","PIXEL","SUBPIXEL"] };
- openfl.text.GridFitType.NONE = ["NONE",0];
- openfl.text.GridFitType.NONE.toString = $estr;
- openfl.text.GridFitType.NONE.__enum__ = openfl.text.GridFitType;
- openfl.text.GridFitType.PIXEL = ["PIXEL",1];
- openfl.text.GridFitType.PIXEL.toString = $estr;
- openfl.text.GridFitType.PIXEL.__enum__ = openfl.text.GridFitType;
- openfl.text.GridFitType.SUBPIXEL = ["SUBPIXEL",2];
- openfl.text.GridFitType.SUBPIXEL.toString = $estr;
- openfl.text.GridFitType.SUBPIXEL.__enum__ = openfl.text.GridFitType;
- openfl.text.TextField = function() {
- openfl.display.InteractiveObject.call(this);
- this.__width = 100;
- this.__height = 100;
- this.__text = "";
- this.set_type(openfl.text.TextFieldType.DYNAMIC);
- this.set_autoSize(openfl.text.TextFieldAutoSize.NONE);
- this.displayAsPassword = false;
- this.embedFonts = false;
- this.selectable = true;
- this.set_borderColor(0);
- this.set_border(false);
- this.set_backgroundColor(16777215);
- this.set_background(false);
- this.gridFitType = openfl.text.GridFitType.PIXEL;
- this.maxChars = 0;
- this.multiline = false;
- this.sharpness = 0;
- this.scrollH = 0;
- this.scrollV = 1;
- this.set_wordWrap(false);
- if(openfl.text.TextField.__defaultTextFormat == null) {
- openfl.text.TextField.__defaultTextFormat = new openfl.text.TextFormat("Times New Roman",12,0,false,false,false,"","",openfl.text.TextFormatAlign.LEFT,0,0,0,0);
- openfl.text.TextField.__defaultTextFormat.blockIndent = 0;
- openfl.text.TextField.__defaultTextFormat.bullet = false;
- openfl.text.TextField.__defaultTextFormat.letterSpacing = 0;
- openfl.text.TextField.__defaultTextFormat.kerning = false;
- }
- this.__textFormat = openfl.text.TextField.__defaultTextFormat.clone();
- };
- $hxClasses["openfl.text.TextField"] = openfl.text.TextField;
- openfl.text.TextField.__name__ = ["openfl","text","TextField"];
- openfl.text.TextField.__defaultTextFormat = null;
- openfl.text.TextField.__super__ = openfl.display.InteractiveObject;
- openfl.text.TextField.prototype = $extend(openfl.display.InteractiveObject.prototype,{
- appendText: function(text) {
- var _g = this;
- _g.set_text(_g.get_text() + text);
- }
- ,getCharBoundaries: function(a) {
- openfl.Lib.notImplemented("TextField.getCharBoundaries");
- return null;
- }
- ,getCharIndexAtPoint: function(x,y) {
- openfl.Lib.notImplemented("TextField.getCharIndexAtPoint");
- return 0;
- }
- ,getLineIndexAtPoint: function(x,y) {
- openfl.Lib.notImplemented("TextField.getLineIndexAtPoint");
- return 0;
- }
- ,getLineMetrics: function(lineIndex) {
- openfl.Lib.notImplemented("TextField.getLineMetrics");
- return new openfl.text.TextLineMetrics(0,0,0,0,0,0);
- }
- ,getLineOffset: function(lineIndex) {
- openfl.Lib.notImplemented("TextField.getLineOffset");
- return 0;
- }
- ,getLineText: function(lineIndex) {
- openfl.Lib.notImplemented("TextField.getLineText");
- return "";
- }
- ,getTextFormat: function(beginIndex,endIndex) {
- if(endIndex == null) endIndex = 0;
- if(beginIndex == null) beginIndex = 0;
- return this.__textFormat.clone();
- }
- ,setSelection: function(beginIndex,endIndex) {
- openfl.Lib.notImplemented("TextField.setSelection");
- }
- ,setTextFormat: function(format,beginIndex,endIndex) {
- if(endIndex == null) endIndex = 0;
- if(beginIndex == null) beginIndex = 0;
- if(format.font != null) this.__textFormat.font = format.font;
- if(format.size != null) this.__textFormat.size = format.size;
- if(format.color != null) this.__textFormat.color = format.color;
- if(format.bold != null) this.__textFormat.bold = format.bold;
- if(format.italic != null) this.__textFormat.italic = format.italic;
- if(format.underline != null) this.__textFormat.underline = format.underline;
- if(format.url != null) this.__textFormat.url = format.url;
- if(format.target != null) this.__textFormat.target = format.target;
- if(format.align != null) this.__textFormat.align = format.align;
- if(format.leftMargin != null) this.__textFormat.leftMargin = format.leftMargin;
- if(format.rightMargin != null) this.__textFormat.rightMargin = format.rightMargin;
- if(format.indent != null) this.__textFormat.indent = format.indent;
- if(format.leading != null) this.__textFormat.leading = format.leading;
- if(format.blockIndent != null) this.__textFormat.blockIndent = format.blockIndent;
- if(format.bullet != null) this.__textFormat.bullet = format.bullet;
- if(format.kerning != null) this.__textFormat.kerning = format.kerning;
- if(format.letterSpacing != null) this.__textFormat.letterSpacing = format.letterSpacing;
- if(format.tabStops != null) this.__textFormat.tabStops = format.tabStops;
- this.__dirty = true;
- }
- ,__clipText: function(value) {
- var textWidth = this.__getTextWidth(value);
- var fillPer = textWidth / this.__width;
- this.set_text(fillPer > 1?(function($this) {
- var $r;
- var _this = $this.get_text();
- var pos = -1 * Math.floor($this.get_text().length / fillPer);
- $r = HxOverrides.substr(_this,pos,null);
- return $r;
- }(this)):this.get_text());
- return this.get_text() + "";
- }
- ,__disableInputMode: function() {
- this.this_onRemovedFromStage(null);
- }
- ,__enableInputMode: function() {
- this.__cursorPosition = -1;
- if(this.__hiddenInput == null) {
- this.__hiddenInput = window.document.createElement("input");
- this.__hiddenInput.type = "text";
- this.__hiddenInput.style.position = "absolute";
- this.__hiddenInput.style.opacity = "0";
- this.__hiddenInput.style.pointerEvents = "none";
- this.__hiddenInput.style.left = this.get_x() + (this.__canvas != null?this.__canvas.offsetLeft:0) + "px";
- this.__hiddenInput.style.top = this.get_y() + (this.__canvas != null?this.__canvas.offsetTop:0) + "px";
- this.__hiddenInput.style.width = this.__width + "px";
- this.__hiddenInput.style.height = this.__height + "px";
- this.__hiddenInput.style.zIndex = "0";
- if(this.maxChars > 0) this.__hiddenInput.maxLength = this.maxChars;
- window.document.body.appendChild(this.__hiddenInput);
- this.__hiddenInput.value = this.__text;
- }
- if(this.stage != null) this.this_onAddedToStage(null); else {
- this.addEventListener(openfl.events.Event.ADDED_TO_STAGE,$bind(this,this.this_onAddedToStage));
- this.addEventListener(openfl.events.Event.REMOVED_FROM_STAGE,$bind(this,this.this_onRemovedFromStage));
- }
- }
- ,__getBounds: function(rect,matrix) {
- var bounds = new openfl.geom.Rectangle(0,0,this.__width,this.__height);
- bounds.transform(this.__worldTransform);
- rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
- }
- ,__getFont: function(format) {
- var font;
- if(format.italic) font = "italic "; else font = "normal ";
- font += "normal ";
- if(format.bold) font += "bold "; else font += "normal ";
- font += format.size + "px";
- font += "/" + (format.size + format.leading + 4) + "px ";
- font += "'" + (function($this) {
- var $r;
- var _g = format.font;
- $r = (function($this) {
- var $r;
- switch(_g) {
- case "_sans":
- $r = "sans-serif";
- break;
- case "_serif":
- $r = "serif";
- break;
- case "_typewriter":
- $r = "monospace";
- break;
- default:
- $r = format.font;
- }
- return $r;
- }($this));
- return $r;
- }(this));
- font += "'";
- return font;
- }
- ,__getPosition: function(x,y) {
- var value = this.get_text();
- var text = value;
- var totalW = 0;
- var pos = text.length;
- if(x < this.__getTextWidth(text)) {
- var _g1 = 0;
- var _g = text.length;
- while(_g1 < _g) {
- var i = _g1++;
- totalW += this.__getTextWidth(text.charAt(i));
- if(totalW >= x) {
- pos = i;
- break;
- }
- }
- }
- return pos;
- }
- ,__getTextWidth: function(text) {
- if(this.__context == null) {
- this.__canvas = window.document.createElement("canvas");
- this.__context = this.__canvas.getContext("2d");
- }
- this.__context.font = this.__getFont(this.__textFormat);
- this.__context.textAlign = "left";
- return this.__context.measureText(text).width;
- }
- ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly) {
- if(!this.get_visible() || interactiveOnly && !this.mouseEnabled) return false;
- var point = this.globalToLocal(new openfl.geom.Point(x,y));
- if(point.x > 0 && point.y > 0 && point.x <= this.__width && point.y <= this.__height) {
- if(stack != null) stack.push(this);
- return true;
- }
- return false;
- }
- ,__measureText: function() {
- if(this.__ranges == null) {
- this.__context.font = this.__getFont(this.__textFormat);
- return [this.__context.measureText(this.__text).width];
- } else {
- var measurements = [];
- var _g = 0;
- var _g1 = this.__ranges;
- while(_g < _g1.length) {
- var range = _g1[_g];
- ++_g;
- this.__context.font = this.__getFont(range.format);
- measurements.push(this.__context.measureText(this.get_text().substring(range.start,range.end)).width);
- }
- return measurements;
- }
- }
- ,__measureTextWithDOM: function() {
- var div = this.__div;
- if(this.__div == null) {
- div = window.document.createElement("div");
- div.innerHTML = new EReg("\n","g").replace(this.__text,"<br>");
- div.style.setProperty("font",this.__getFont(this.__textFormat),null);
- div.style.position = "absolute";
- div.style.top = "110%";
- window.document.body.appendChild(div);
- }
- this.__measuredWidth = div.clientWidth;
- if(this.__div == null) div.style.width = Std.string(this.__width) + "px";
- this.__measuredHeight = div.clientHeight;
- if(this.__div == null) window.document.body.removeChild(div);
- }
- ,__renderCanvas: function(renderSession) {
- openfl._internal.renderer.canvas.CanvasTextField.render(this,renderSession);
- }
- ,__renderDOM: function(renderSession) {
- openfl._internal.renderer.dom.DOMTextField.render(this,renderSession);
- }
- ,__renderGL: function(renderSession) {
- openfl._internal.renderer.opengl.GLTextField.render(this,renderSession);
- }
- ,__startCursorTimer: function() {
- this.__cursorTimer = haxe.Timer.delay($bind(this,this.__startCursorTimer),500);
- this.__showCursor = !this.__showCursor;
- this.__dirty = true;
- }
- ,__stopCursorTimer: function() {
- if(this.__cursorTimer != null) this.__cursorTimer.stop();
- }
- ,input_onKeyUp: function(event) {
- this.__isKeyDown = false;
- if(event == null) event == window.event;
- this.__text = this.__hiddenInput.value;
- this.__ranges = null;
- this.__isHTML = false;
- this.__cursorPosition = this.__hiddenInput.selectionStart;
- this.__selectionStart = this.__cursorPosition;
- this.__dirty = true;
- this.dispatchEvent(new openfl.events.Event(openfl.events.Event.CHANGE,true));
- }
- ,input_onKeyDown: function(event) {
- this.__isKeyDown = true;
- if(event == null) event == window.event;
- var keyCode = event.which;
- var isShift = event.shiftKey;
- if(keyCode == 65 && (event.ctrlKey || event.metaKey)) {
- this.__hiddenInput.selectionStart = 0;
- this.__hiddenInput.selectionEnd = this.get_text().length;
- event.preventDefault();
- this.__dirty = true;
- return;
- }
- if(keyCode == 17 || event.metaKey || event.ctrlKey) return;
- this.__text = this.__hiddenInput.value;
- this.__ranges = null;
- this.__isHTML = false;
- this.__selectionStart = this.__hiddenInput.selectionStart;
- this.__dirty = true;
- }
- ,stage_onFocusOut: function(event) {
- this.__cursorPosition = -1;
- this.__hasFocus = false;
- this.__stopCursorTimer();
- this.__hiddenInput.blur();
- this.__dirty = true;
- }
- ,stage_onMouseMove: function(event) {
- if(this.__hasFocus && this.__selectionStart >= 0) {
- this.__cursorPosition = this.__getPosition(event.localX,event.localY);
- this.__dirty = true;
- }
- }
- ,stage_onMouseUp: function(event) {
- var upPos = this.__getPosition(event.localX,event.localY);
- var leftPos;
- var rightPos;
- leftPos = Std["int"](Math.min(this.__selectionStart,upPos));
- rightPos = Std["int"](Math.max(this.__selectionStart,upPos));
- this.__selectionStart = leftPos;
- this.__cursorPosition = rightPos;
- this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.stage_onMouseMove));
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.stage_onMouseUp));
- this.stage.set_focus(this);
- if(this.__cursorPosition < 0) {
- this.__cursorPosition = this.__text.length;
- this.__selectionStart = this.__cursorPosition;
- }
- this.__hiddenInput.focus();
- this.__hiddenInput.selectionStart = this.__selectionStart;
- this.__hiddenInput.selectionEnd = this.__cursorPosition;
- this.__stopCursorTimer();
- this.__startCursorTimer();
- this.__hasFocus = true;
- this.__dirty = true;
- }
- ,this_onAddedToStage: function(event) {
- this.stage.addEventListener(openfl.events.FocusEvent.FOCUS_OUT,$bind(this,this.stage_onFocusOut));
- this.__hiddenInput.addEventListener("keydown",$bind(this,this.input_onKeyDown));
- this.__hiddenInput.addEventListener("keyup",$bind(this,this.input_onKeyUp));
- this.__hiddenInput.addEventListener("input",$bind(this,this.input_onKeyUp));
- this.addEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.this_onMouseDown));
- }
- ,this_onMouseDown: function(event) {
- this.__selectionStart = this.__getPosition(event.localX,event.localY);
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.stage_onMouseMove));
- this.stage.addEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.stage_onMouseUp));
- }
- ,this_onRemovedFromStage: function(event) {
- if(this.stage != null) this.stage.removeEventListener(openfl.events.FocusEvent.FOCUS_OUT,$bind(this,this.stage_onFocusOut));
- if(this.__hiddenInput != null) this.__hiddenInput.removeEventListener("keydown",$bind(this,this.input_onKeyDown));
- if(this.__hiddenInput != null) this.__hiddenInput.removeEventListener("keyup",$bind(this,this.input_onKeyUp));
- if(this.__hiddenInput != null) this.__hiddenInput.removeEventListener("input",$bind(this,this.input_onKeyUp));
- this.removeEventListener(openfl.events.MouseEvent.MOUSE_DOWN,$bind(this,this.this_onMouseDown));
- if(this.stage != null) this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_MOVE,$bind(this,this.stage_onMouseMove));
- if(this.stage != null) this.stage.removeEventListener(openfl.events.MouseEvent.MOUSE_UP,$bind(this,this.stage_onMouseUp));
- }
- ,set_autoSize: function(value) {
- if(value != this.autoSize) this.__dirty = true;
- return this.autoSize = value;
- }
- ,set_background: function(value) {
- if(value != this.background) this.__dirty = true;
- return this.background = value;
- }
- ,set_backgroundColor: function(value) {
- if(value != this.backgroundColor) this.__dirty = true;
- return this.backgroundColor = value;
- }
- ,set_border: function(value) {
- if(value != this.border) this.__dirty = true;
- return this.border = value;
- }
- ,set_borderColor: function(value) {
- if(value != this.borderColor) this.__dirty = true;
- return this.borderColor = value;
- }
- ,get_bottomScrollV: function() {
- return this.get_numLines();
- }
- ,get_caretPos: function() {
- return 0;
- }
- ,get_defaultTextFormat: function() {
- return this.__textFormat.clone();
- }
- ,set_defaultTextFormat: function(value) {
- this.__textFormat.__merge(value);
- return value;
- }
- ,get_height: function() {
- return this.__height * this.get_scaleY();
- }
- ,set_height: function(value) {
- if(this.get_scaleY() != 1 || value != this.__height) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- this.__dirty = true;
- }
- this.set_scaleY(1);
- return this.__height = value;
- }
- ,get_htmlText: function() {
- return this.__text;
- }
- ,set_htmlText: function(value) {
- if(!this.__isHTML || this.__text != value) this.__dirty = true;
- this.__ranges = null;
- this.__isHTML = true;
- if(this.__div == null) {
- value = new EReg("<br>","g").replace(value,"\n");
- value = new EReg("<br/>","g").replace(value,"\n");
- var segments = value.split("<font");
- if(segments.length == 1) {
- value = new EReg("<.*?>","g").replace(value,"");
- if(this.__hiddenInput != null) this.__hiddenInput.value = value;
- return this.__text = value;
- } else {
- value = "";
- this.__ranges = [];
- var _g = 0;
- while(_g < segments.length) {
- var segment = segments[_g];
- ++_g;
- if(segment == "") continue;
- var closeFontIndex = segment.indexOf("</font>");
- if(closeFontIndex > -1) {
- var start = segment.indexOf(">") + 1;
- var end = closeFontIndex;
- var format = this.__textFormat.clone();
- var faceIndex = segment.indexOf("face=");
- var colorIndex = segment.indexOf("color=");
- var sizeIndex = segment.indexOf("size=");
- if(faceIndex > -1 && faceIndex < start) {
- var len = segment.indexOf("\"",faceIndex);
- format.font = HxOverrides.substr(segment,faceIndex + 6,len);
- }
- if(colorIndex > -1 && colorIndex < start) format.color = Std.parseInt("0x" + HxOverrides.substr(segment,colorIndex + 8,6));
- if(sizeIndex > -1 && sizeIndex < start) format.size = Std.parseInt((function($this) {
- var $r;
- var len1 = segment.indexOf("\"",sizeIndex);
- $r = HxOverrides.substr(segment,sizeIndex + 6,len1);
- return $r;
- }(this)));
- var sub = segment.substring(start,end);
- sub = new EReg("<.*?>","g").replace(sub,"");
- this.__ranges.push(new openfl.text.TextFormatRange(format,value.length,value.length + sub.length));
- value += sub;
- if(closeFontIndex + 7 < segment.length) {
- sub = HxOverrides.substr(segment,closeFontIndex + 7,null);
- this.__ranges.push(new openfl.text.TextFormatRange(this.__textFormat,value.length,value.length + sub.length));
- value += sub;
- }
- } else {
- this.__ranges.push(new openfl.text.TextFormatRange(this.__textFormat,value.length,value.length + segment.length));
- value += segment;
- }
- }
- }
- }
- if(this.__hiddenInput != null) this.__hiddenInput.value = value;
- return this.__text = value;
- }
- ,get_maxScrollH: function() {
- return 0;
- }
- ,get_maxScrollV: function() {
- return 1;
- }
- ,get_numLines: function() {
- if(this.get_text() != "" && this.get_text() != null) {
- var count = this.get_text().split("\n").length;
- if(this.__isHTML) count += this.get_text().split("<br>").length - 1;
- return count;
- }
- return 1;
- }
- ,get_text: function() {
- if(this.__isHTML) {
- }
- return this.__text;
- }
- ,set_text: function(value) {
- if(this.__text != value && this.__hiddenInput != null) this.__hiddenInput.value = value;
- if(this.__isHTML || this.__text != value) this.__dirty = true;
- this.__ranges = null;
- this.__isHTML = false;
- return this.__text = value;
- }
- ,get_textColor: function() {
- return this.__textFormat.color;
- }
- ,set_textColor: function(value) {
- if(value != this.__textFormat.color) this.__dirty = true;
- if(this.__ranges != null) {
- var _g = 0;
- var _g1 = this.__ranges;
- while(_g < _g1.length) {
- var range = _g1[_g];
- ++_g;
- range.format.color = value;
- }
- }
- return this.__textFormat.color = value;
- }
- ,get_textWidth: function() {
- if(this.__canvas != null) {
- var sizes = this.__measureText();
- var total = 0;
- var _g = 0;
- while(_g < sizes.length) {
- var size = sizes[_g];
- ++_g;
- total += size;
- }
- return total;
- } else if(this.__div != null) return this.__div.clientWidth; else {
- this.__measureTextWithDOM();
- return this.__measuredWidth;
- }
- }
- ,get_textHeight: function() {
- if(this.__canvas != null) return this.__textFormat.size * 1.185; else if(this.__div != null) return this.__div.clientHeight; else {
- this.__measureTextWithDOM();
- return this.__measuredHeight + this.__textFormat.size * 0.185;
- }
- }
- ,set_type: function(value) {
- if(value != this.type) {
- if(value == openfl.text.TextFieldType.INPUT) this.__enableInputMode(); else this.__disableInputMode();
- this.__dirty = true;
- }
- return this.type = value;
- }
- ,get_width: function() {
- if(this.autoSize == openfl.text.TextFieldAutoSize.LEFT) return (this.get_textWidth() + 4) * this.get_scaleX(); else return this.__width * this.get_scaleX();
- }
- ,set_width: function(value) {
- if(this.get_scaleX() != 1 || this.__width != value) {
- if(!this.__transformDirty) {
- this.__transformDirty = true;
- openfl.display.DisplayObject.__worldTransformDirty++;
- }
- this.__dirty = true;
- }
- this.set_scaleX(1);
- return this.__width = value;
- }
- ,get_wordWrap: function() {
- return this.wordWrap;
- }
- ,set_wordWrap: function(value) {
- return this.wordWrap = value;
- }
- ,__class__: openfl.text.TextField
- ,__properties__: $extend(openfl.display.InteractiveObject.prototype.__properties__,{set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_type:"set_type",get_textWidth:"get_textWidth",get_textHeight:"get_textHeight",set_textColor:"set_textColor",get_textColor:"get_textColor",set_text:"set_text",get_text:"get_text",get_numLines:"get_numLines",get_maxScrollV:"get_maxScrollV",get_maxScrollH:"get_maxScrollH",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText",set_defaultTextFormat:"set_defaultTextFormat",get_defaultTextFormat:"get_defaultTextFormat",get_caretPos:"get_caretPos",get_bottomScrollV:"get_bottomScrollV",set_borderColor:"set_borderColor",set_border:"set_border",set_backgroundColor:"set_backgroundColor",set_background:"set_background",set_autoSize:"set_autoSize"})
- });
- openfl.text.TextFormatRange = function(format,start,end) {
- this.format = format;
- this.start = start;
- this.end = end;
- };
- $hxClasses["openfl.text.TextFormatRange"] = openfl.text.TextFormatRange;
- openfl.text.TextFormatRange.__name__ = ["openfl","text","TextFormatRange"];
- openfl.text.TextFormatRange.prototype = {
- __class__: openfl.text.TextFormatRange
- };
- openfl.text.TextFieldAutoSize = $hxClasses["openfl.text.TextFieldAutoSize"] = { __ename__ : ["openfl","text","TextFieldAutoSize"], __constructs__ : ["CENTER","LEFT","NONE","RIGHT"] };
- openfl.text.TextFieldAutoSize.CENTER = ["CENTER",0];
- openfl.text.TextFieldAutoSize.CENTER.toString = $estr;
- openfl.text.TextFieldAutoSize.CENTER.__enum__ = openfl.text.TextFieldAutoSize;
- openfl.text.TextFieldAutoSize.LEFT = ["LEFT",1];
- openfl.text.TextFieldAutoSize.LEFT.toString = $estr;
- openfl.text.TextFieldAutoSize.LEFT.__enum__ = openfl.text.TextFieldAutoSize;
- openfl.text.TextFieldAutoSize.NONE = ["NONE",2];
- openfl.text.TextFieldAutoSize.NONE.toString = $estr;
- openfl.text.TextFieldAutoSize.NONE.__enum__ = openfl.text.TextFieldAutoSize;
- openfl.text.TextFieldAutoSize.RIGHT = ["RIGHT",3];
- openfl.text.TextFieldAutoSize.RIGHT.toString = $estr;
- openfl.text.TextFieldAutoSize.RIGHT.__enum__ = openfl.text.TextFieldAutoSize;
- openfl.text.TextFieldType = $hxClasses["openfl.text.TextFieldType"] = { __ename__ : ["openfl","text","TextFieldType"], __constructs__ : ["DYNAMIC","INPUT"] };
- openfl.text.TextFieldType.DYNAMIC = ["DYNAMIC",0];
- openfl.text.TextFieldType.DYNAMIC.toString = $estr;
- openfl.text.TextFieldType.DYNAMIC.__enum__ = openfl.text.TextFieldType;
- openfl.text.TextFieldType.INPUT = ["INPUT",1];
- openfl.text.TextFieldType.INPUT.toString = $estr;
- openfl.text.TextFieldType.INPUT.__enum__ = openfl.text.TextFieldType;
- openfl.text.TextFormat = function(font,size,color,bold,italic,underline,url,target,align,leftMargin,rightMargin,indent,leading) {
- this.font = font;
- this.size = size;
- this.color = color;
- this.bold = bold;
- this.italic = italic;
- this.underline = underline;
- this.url = url;
- this.target = target;
- this.align = align;
- this.leftMargin = leftMargin;
- this.rightMargin = rightMargin;
- this.indent = indent;
- this.leading = leading;
- };
- $hxClasses["openfl.text.TextFormat"] = openfl.text.TextFormat;
- openfl.text.TextFormat.__name__ = ["openfl","text","TextFormat"];
- openfl.text.TextFormat.prototype = {
- clone: function() {
- var newFormat = new openfl.text.TextFormat(this.font,this.size,this.color,this.bold,this.italic,this.underline,this.url,this.target);
- newFormat.align = this.align;
- newFormat.leftMargin = this.leftMargin;
- newFormat.rightMargin = this.rightMargin;
- newFormat.indent = this.indent;
- newFormat.leading = this.leading;
- newFormat.blockIndent = this.blockIndent;
- newFormat.bullet = this.bullet;
- newFormat.kerning = this.kerning;
- newFormat.letterSpacing = this.letterSpacing;
- newFormat.tabStops = this.tabStops;
- return newFormat;
- }
- ,__merge: function(format) {
- if(format.font != null) this.font = format.font;
- if(format.size != null) this.size = format.size;
- if(format.color != null) this.color = format.color;
- if(format.bold != null) this.bold = format.bold;
- if(format.italic != null) this.italic = format.italic;
- if(format.underline != null) this.underline = format.underline;
- if(format.url != null) this.url = format.url;
- if(format.target != null) this.target = format.target;
- if(format.align != null) this.align = format.align;
- if(format.leftMargin != null) this.leftMargin = format.leftMargin;
- if(format.rightMargin != null) this.rightMargin = format.rightMargin;
- if(format.indent != null) this.indent = format.indent;
- if(format.leading != null) this.leading = format.leading;
- if(format.blockIndent != null) this.blockIndent = format.blockIndent;
- if(format.bullet != null) this.bullet = format.bullet;
- if(format.kerning != null) this.kerning = format.kerning;
- if(format.letterSpacing != null) this.letterSpacing = format.letterSpacing;
- if(format.tabStops != null) this.tabStops = format.tabStops;
- }
- ,__class__: openfl.text.TextFormat
- };
- openfl.text.TextFormatAlign = $hxClasses["openfl.text.TextFormatAlign"] = { __ename__ : ["openfl","text","TextFormatAlign"], __constructs__ : ["LEFT","RIGHT","JUSTIFY","CENTER"] };
- openfl.text.TextFormatAlign.LEFT = ["LEFT",0];
- openfl.text.TextFormatAlign.LEFT.toString = $estr;
- openfl.text.TextFormatAlign.LEFT.__enum__ = openfl.text.TextFormatAlign;
- openfl.text.TextFormatAlign.RIGHT = ["RIGHT",1];
- openfl.text.TextFormatAlign.RIGHT.toString = $estr;
- openfl.text.TextFormatAlign.RIGHT.__enum__ = openfl.text.TextFormatAlign;
- openfl.text.TextFormatAlign.JUSTIFY = ["JUSTIFY",2];
- openfl.text.TextFormatAlign.JUSTIFY.toString = $estr;
- openfl.text.TextFormatAlign.JUSTIFY.__enum__ = openfl.text.TextFormatAlign;
- openfl.text.TextFormatAlign.CENTER = ["CENTER",3];
- openfl.text.TextFormatAlign.CENTER.toString = $estr;
- openfl.text.TextFormatAlign.CENTER.__enum__ = openfl.text.TextFormatAlign;
- openfl.text.TextLineMetrics = function(x,width,height,ascent,descent,leading) {
- this.x = x;
- this.width = width;
- this.height = height;
- this.ascent = ascent;
- this.descent = descent;
- this.leading = leading;
- };
- $hxClasses["openfl.text.TextLineMetrics"] = openfl.text.TextLineMetrics;
- openfl.text.TextLineMetrics.__name__ = ["openfl","text","TextLineMetrics"];
- openfl.text.TextLineMetrics.prototype = {
- __class__: openfl.text.TextLineMetrics
- };
- openfl.ui = {};
- openfl.ui._KeyLocation = {};
- openfl.ui._KeyLocation.KeyLocation_Impl_ = function() { };
- $hxClasses["openfl.ui._KeyLocation.KeyLocation_Impl_"] = openfl.ui._KeyLocation.KeyLocation_Impl_;
- openfl.ui._KeyLocation.KeyLocation_Impl_.__name__ = ["openfl","ui","_KeyLocation","KeyLocation_Impl_"];
- openfl.ui.Keyboard = function() { };
- $hxClasses["openfl.ui.Keyboard"] = openfl.ui.Keyboard;
- openfl.ui.Keyboard.__name__ = ["openfl","ui","Keyboard"];
- openfl.ui.Keyboard.capsLock = null;
- openfl.ui.Keyboard.numLock = null;
- openfl.ui.Keyboard.isAccessible = function() {
- return false;
- };
- openfl.ui.Keyboard.__convertMozillaCode = function(code) {
- switch(code) {
- case 8:
- return 8;
- case 9:
- return 9;
- case 13:
- return 13;
- case 14:
- return 13;
- case 16:
- return 16;
- case 17:
- return 17;
- case 20:
- return 20;
- case 27:
- return 27;
- case 32:
- return 32;
- case 33:
- return 33;
- case 34:
- return 34;
- case 35:
- return 35;
- case 36:
- return 36;
- case 37:
- return 37;
- case 39:
- return 39;
- case 38:
- return 38;
- case 40:
- return 40;
- case 45:
- return 45;
- case 46:
- return 46;
- case 144:
- return 144;
- default:
- return code;
- }
- };
- openfl.ui.Keyboard.__convertWebkitCode = function(code) {
- var _g = code.toLowerCase();
- switch(_g) {
- case "backspace":
- return 8;
- case "tab":
- return 9;
- case "enter":
- return 13;
- case "shift":
- return 16;
- case "control":
- return 17;
- case "capslock":
- return 20;
- case "escape":
- return 27;
- case "space":
- return 32;
- case "pageup":
- return 33;
- case "pagedown":
- return 34;
- case "end":
- return 35;
- case "home":
- return 36;
- case "left":
- return 37;
- case "right":
- return 39;
- case "up":
- return 38;
- case "down":
- return 40;
- case "insert":
- return 45;
- case "delete":
- return 46;
- case "numlock":
- return 144;
- case "break":
- return 19;
- }
- if(code.indexOf("U+") == 0) return Std.parseInt("0x" + HxOverrides.substr(code,3,null));
- throw "Unrecognized key code: " + code;
- return 0;
- };
- var spritesheet = {};
- spritesheet.Spritesheet = function(image,frames,behaviors,imageAlpha) {
- this.sourceImage = image;
- this.sourceImageAlpha = imageAlpha;
- if(frames == null) {
- this.frames = new Array();
- this.totalFrames = 0;
- } else {
- this.frames = frames;
- this.totalFrames = frames.length;
- }
- if(behaviors == null) this.behaviors = new haxe.ds.StringMap(); else this.behaviors = behaviors;
- };
- $hxClasses["spritesheet.Spritesheet"] = spritesheet.Spritesheet;
- spritesheet.Spritesheet.__name__ = ["spritesheet","Spritesheet"];
- spritesheet.Spritesheet.prototype = {
- addBehavior: function(behavior) {
- this.behaviors.set(behavior.name,behavior);
- }
- ,addFrame: function(frame) {
- this.frames.push(frame);
- this.totalFrames++;
- }
- ,generateBitmaps: function() {
- var _g1 = 0;
- var _g = this.totalFrames;
- while(_g1 < _g) {
- var i = _g1++;
- this.generateBitmap(i);
- }
- }
- ,generateBitmap: function(index) {
- var frame = this.frames[index];
- var bitmapData = new openfl.display.BitmapData(frame.width,frame.height,true);
- var sourceRectangle = new openfl.geom.Rectangle(frame.x,frame.y,frame.width,frame.height);
- var targetPoint = new openfl.geom.Point();
- bitmapData.copyPixels(this.sourceImage,sourceRectangle,targetPoint);
- if(this.sourceImageAlpha != null) bitmapData.copyChannel(this.sourceImageAlpha,sourceRectangle,targetPoint,2,8);
- frame.bitmapData = bitmapData;
- }
- ,getFrame: function(index,autoGenerate) {
- if(autoGenerate == null) autoGenerate = true;
- var frame = this.frames[index];
- if(frame != null && frame.bitmapData == null && autoGenerate) this.generateBitmap(index);
- return frame;
- }
- ,getFrameByName: function(frameName,autoGenerate) {
- if(autoGenerate == null) autoGenerate = true;
- var frameIndex = 0;
- var frame = null;
- var _g1 = 0;
- var _g = this.totalFrames;
- while(_g1 < _g) {
- var index = _g1++;
- if(this.frames[index].name == frameName) {
- frameIndex = index;
- frame = this.frames[index];
- break;
- }
- }
- if(frame != null && frame.bitmapData == null && autoGenerate) this.generateBitmap(frameIndex);
- return frame;
- }
- ,getFrameIDs: function() {
- var ids = [];
- var _g1 = 0;
- var _g = this.totalFrames;
- while(_g1 < _g) {
- var i = _g1++;
- ids.push(i);
- }
- return ids;
- }
- ,getFrames: function() {
- return this.frames.slice();
- }
- ,merge: function(spritesheet) {
- var cacheTotalFrames = this.totalFrames;
- var _g1 = 0;
- var _g = spritesheet.frames.length;
- while(_g1 < _g) {
- var i = _g1++;
- if(spritesheet.frames[i].bitmapData == null && (spritesheet.sourceImage != this.sourceImage || spritesheet.sourceImageAlpha != this.sourceImageAlpha)) spritesheet.generateBitmap(i);
- this.addFrame(spritesheet.frames[i]);
- }
- var $it0 = spritesheet.behaviors.iterator();
- while( $it0.hasNext() ) {
- var behavior = $it0.next();
- if(!this.behaviors.exists(behavior.name)) {
- var clone = behavior.clone();
- clone.name = behavior.name;
- var _g11 = 0;
- var _g2 = behavior.frames.length;
- while(_g11 < _g2) {
- var i1 = _g11++;
- behavior.frames[i1] += cacheTotalFrames;
- }
- this.addBehavior(behavior);
- }
- }
- var ids = [];
- var _g12 = cacheTotalFrames;
- var _g3 = this.totalFrames;
- while(_g12 < _g3) {
- var i2 = _g12++;
- ids.push(i2);
- }
- return ids;
- }
- ,updateImage: function(image,imageAlpha) {
- this.sourceImage = image;
- this.sourceImageAlpha = imageAlpha;
- var _g = 0;
- var _g1 = this.frames;
- while(_g < _g1.length) {
- var frame = _g1[_g];
- ++_g;
- if(frame.bitmapData != null) frame.bitmapData = null;
- }
- }
- ,__class__: spritesheet.Spritesheet
- };
- spritesheet.data = {};
- spritesheet.data.BehaviorData = function(name,frames,loop,frameRate,originX,originY) {
- if(originY == null) originY = 0;
- if(originX == null) originX = 0;
- if(frameRate == null) frameRate = 30;
- if(loop == null) loop = false;
- if(name == null) name = "";
- if(name == "") name = "behavior" + spritesheet.data.BehaviorData.uniqueID++;
- if(frames == null) frames = [];
- this.name = name;
- this.frames = frames;
- this.loop = loop;
- this.frameRate = frameRate;
- this.originX = originX;
- this.originY = originY;
- this.frameData = new Array();
- var _g1 = 0;
- var _g = this.frames.length;
- while(_g1 < _g) {
- var i = _g1++;
- this.frameData.push(null);
- }
- };
- $hxClasses["spritesheet.data.BehaviorData"] = spritesheet.data.BehaviorData;
- spritesheet.data.BehaviorData.__name__ = ["spritesheet","data","BehaviorData"];
- spritesheet.data.BehaviorData.prototype = {
- clone: function() {
- return new spritesheet.data.BehaviorData("behavior" + spritesheet.data.BehaviorData.uniqueID++,this.frames.slice(),this.loop,this.frameRate,this.originX,this.originY);
- }
- ,__class__: spritesheet.data.BehaviorData
- };
- spritesheet.data.SpritesheetFrame = function(x,y,width,height,offsetX,offsetY) {
- if(offsetY == null) offsetY = 0;
- if(offsetX == null) offsetX = 0;
- if(height == null) height = 0;
- if(width == null) width = 0;
- if(y == null) y = 0;
- if(x == null) x = 0;
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- this.offsetX = offsetX;
- this.offsetY = offsetY;
- };
- $hxClasses["spritesheet.data.SpritesheetFrame"] = spritesheet.data.SpritesheetFrame;
- spritesheet.data.SpritesheetFrame.__name__ = ["spritesheet","data","SpritesheetFrame"];
- spritesheet.data.SpritesheetFrame.prototype = {
- __class__: spritesheet.data.SpritesheetFrame
- };
- spritesheet.importers = {};
- spritesheet.importers.BitmapImporter = function() { };
- $hxClasses["spritesheet.importers.BitmapImporter"] = spritesheet.importers.BitmapImporter;
- spritesheet.importers.BitmapImporter.__name__ = ["spritesheet","importers","BitmapImporter"];
- spritesheet.importers.BitmapImporter.create = function(bitmapData,columns,rows,tileWidth,tileHeight,adjustLength,scale) {
- if(scale == null) scale = 1;
- if(adjustLength == null) adjustLength = 0;
- var frames = [];
- var totalLength = rows * columns + adjustLength;
- var _g = 0;
- while(_g < rows) {
- var row = _g++;
- var _g1 = 0;
- while(_g1 < columns) {
- var column = _g1++;
- if(frames.length < totalLength) {
- var x = tileWidth * column;
- var y = tileHeight * row;
- var frame = new spritesheet.data.SpritesheetFrame(x,y,tileWidth,tileHeight,0,0);
- if(scale != 1) {
- var sourceBitmapData = new openfl.display.BitmapData(tileWidth,tileHeight,true,0);
- sourceBitmapData.copyPixels(bitmapData,new openfl.geom.Rectangle(x,y,tileWidth,tileHeight),new openfl.geom.Point());
- var bitmap = new openfl.display.Bitmap(sourceBitmapData);
- bitmap.smoothing = true;
- var matrix = new openfl.geom.Matrix();
- matrix.scale(scale,scale);
- var bitmapData1 = new openfl.display.BitmapData(Math.round(tileWidth * scale),Math.round(tileHeight * scale),true,0);
- bitmapData1.draw(bitmap,matrix);
- frame.bitmapData = bitmapData1;
- }
- frames.push(frame);
- }
- }
- }
- while(frames.length < totalLength) frames.push(new spritesheet.data.SpritesheetFrame());
- return new spritesheet.Spritesheet(bitmapData,frames);
- };
- function $iterator(o) { if( o instanceof Array ) return function() { return HxOverrides.iter(o); }; return typeof(o.iterator) == 'function' ? $bind(o,o.iterator) : o.iterator; }
- var $_, $fid = 0;
- function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $fid++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = function(){ return f.method.apply(f.scope, arguments); }; f.scope = o; f.method = m; o.hx__closures__[m.__id__] = f; } return f; }
- if(Array.prototype.indexOf) HxOverrides.indexOf = function(a,o,i) {
- return Array.prototype.indexOf.call(a,o,i);
- };
- Math.NaN = Number.NaN;
- Math.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
- Math.POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
- $hxClasses.Math = Math;
- Math.isFinite = function(i) {
- return isFinite(i);
- };
- Math.isNaN = function(i1) {
- return isNaN(i1);
- };
- String.prototype.__class__ = $hxClasses.String = String;
- String.__name__ = ["String"];
- $hxClasses.Array = Array;
- Array.__name__ = ["Array"];
- Date.prototype.__class__ = $hxClasses.Date = Date;
- Date.__name__ = ["Date"];
- var Int = $hxClasses.Int = { __name__ : ["Int"]};
- var Dynamic = $hxClasses.Dynamic = { __name__ : ["Dynamic"]};
- var Float = $hxClasses.Float = Number;
- Float.__name__ = ["Float"];
- var Bool = $hxClasses.Bool = Boolean;
- Bool.__ename__ = ["Bool"];
- var Class = $hxClasses.Class = { __name__ : ["Class"]};
- var Enum = { };
- haxe.Resource.content = [{ name : "__ASSET__:bitmap_co_doubleduck_utils_SplashBG", data : "LzlqLzRRQVlSWGhwWmdBQVNVa3FBQWdBQUFBQUFBQUFBQUFBQVAvc0FCRkVkV05yZVFBQkFBUUFBQUE4QUFELzRRT0JhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMd0E4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QaUE4ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpBeE5DQTNPUzR4TlRZM09UY3NJREl3TVRRdk1EZ3ZNakF0TURrNk5UTTZNRElnSUNBZ0lDQWdJQ0krSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJaUI0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2Wm1JNE5UZzNNalF0TlRNM1ppMDBOMkl5TFRsaU1tRXRPREV5WVRSaU5UbGpOR1ZsSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pCRk5qazNSRGN3TkVKRU1URXhSVFJCTkVReVJUYzFSakZHTkRrNU9Ea3lJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPakJGTmprM1JEWkdORUpFTVRFeFJUUkJORVF5UlRjMVJqRkdORGs1T0RreUlpQjRiWEE2UTNKbFlYUnZjbFJ2YjJ3OUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUwSUNoTllXTnBiblJ2YzJncElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZZalEzTVRJMVlXVXRaamRoWlMwME9HTmhMV0kxT1RndE16UmtaR1kzTURreU1ESXdJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPbVppT0RVNE56STBMVFV6TjJZdE5EZGlNaTA1WWpKaExUZ3hNbUUwWWpVNVl6UmxaU0l2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUHYvdUFBNUJaRzlpWlFCa3dBQUFBQUgvMndDRUFBWUVCQVFGQkFZRkJRWUpCZ1VHQ1FzSUJnWUlDd3dLQ2dzS0Nnd1FEQXdNREF3TUVBd09EeEFQRGd3VEV4UVVFeE1jR3hzYkhCOGZIeDhmSHg4Zkh4OEJCd2NIRFF3TkdCQVFHQm9WRVJVYUh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZILy9BQUJFSUFqZ0JRQU1CRVFBQ0VRRURFUUgveEFEUEFBQUFCd0VCQUFBQUFBQUFBQUFBQUFBQkFnTUVCUVlIQUFnQkFBRUZBUUVCQUFBQUFBQUFBQUFBQUFFQUFnTUVCUVlIQ0JBQUFnRURBd0lFQXdNSENRUUhCQWdIQVFJREFBUUZFUklHSVRGQkloTUhVV0VVY1lFeWthRkNVaU1WQ0xIQlluS0NrcUt5TTlKMEZoZlJ3a05Ud3lSVjRXTWxKdkhpYzRPVG81UTEwelJVUlhVM0dCRUFBZ0VEQWdJSEJRY0NCUUlFQlFVQUFBRUNFUU1FSVJJeEJVRlJZWEVpRXdhQmthR3hNdkRCMGVGQ1VoUmlJL0Z5Z2pNVmtxS3lRelFXMGxOekpBZmlZNE5VSmYvYUFBd0RBUUFDRVFNUkFEOEF1UkZlYW5maEdGSWNJdXRPUTVNYXlyVGtTcGpaeFRpUkNSb2prRU5FY0JSRWRTRWRTRWRRRWRwU0VkU0VDS1FnNjBCb3ZIUVl4anlJVXhrVWh3b3BoR3hRQ2dORGFVcWdxY1JTRUVZVVJ3aElLS0hvYVNpbm9sUTJlbkVpRWpUaHdGSUlGSVIxSVIybElSMUlSMUVRSW9DRHJTQUtvS2F4akhNYTAxa2JZNVJhYXlOc1dVVTBZSEFwQUIwb0FEa1VnQkN0SUltNjBSeVkybFdub2xpeG5JdFBSS2h1MUVlZ2hvamdLUWpxUWpxUWdhUWpxUWpxUUFSUUVHV2tBWGlwckdNZXhWR3lHUTVRVTBqWXFCUUdodEtBQUNLUWdqQ2lGQ0VncHlKRU01YWVpV0kxZW5rcUV6UkNGcEJPcENPb2lPcEJPcENBcENCRklBZFJRQXhlTVVHTVk3aVdtTWliSFNMVFNOc1VBb0RRNEZBQU9sSUFZaWdBQWlpR29teTBncGlFcVU1RWlZeW1Tbm9taXhvNHA1S2hNMFFnVWduVWdIVUJBMGhIVWhIYVVoQWdVQkJsRklBdkVPdE5ZeGo2RVZHeUNRNlFVMWtiRlFLYU1EYVVnVk9JcEJFMkZFS0c4b3B5SkVNNWFlaWFJMWVua2lFaUtJNERTa0U3U2tJRFNpSTdTa0k2a0lDa0lFVVJDaUNnTlk2aVdtTWpreDVFbE1iSVd4d3EwQmpZb0JRR2hnS0FBZEtRZzJsQUFCRkVRUXJTSFZFblNuVkhKak9hT25Ka3NXTVpVMHFSRXlZZ1JSSGdhVWcxQjBOSVIyMmtJSGJRRlU3U2tDcDJsSVZRZEtRcWhsRkFBdEdLYXhqSDBBcU5rTWg0Z05NYklXeFVMVGFqV3cyMmxVYlU0clNxR29tNjBhamt4dEtLY21TUll5bUJxUkUwUnE5UEpVSkdpT0FwQ09vaU9wQk8wcENBMHBDTzBwQ09BcEFGNGxvTmpHeDdDbE1iSVpNZVJwVEd5SnNXVmFBeHNPRnBBcUR0b0NxZHBTRUgyMGhwMjJrS29CU2tHb20wZEVLWTNsaDFIYW5Ja2pJWXpRVklpYU1ocTBKcDVLcEFDSDVVYUMzQStqU29MY0Q2TktndHgzcFVBYmp2UlB3cEMzSGVqUUZ1QTlLa0xjR0Vab0NxS3hwVFdNYkhzQ1ZHeUdUSGlKVWJJV3hVSlFHMURiS0FLZ0ZhUXFpYnIwb2oweHRNT2hweUpJakNZVklpZUkxY1U5RXFDRVVRMUEyMGcxTzIwUlZPMlVoVk8ybWtLb0cyaUtvR2xJTlFWV2dCc2RReDlhYTJSeVpJUXgxRzJRU1k1UktiVWliRlF0Q28yb1lMU3FDb08ya0k3YlNxSVUyMGh0VHR0SVZRZGxFRlR2U29vVzRJMEd0UFNDcERXYTErVlNKRXNaalI3VTY5cWxTSlZNS0xVL0NqUVc4RVdwK0ZLZ3Q0UDB2eXBVQnZPK2wrVkxhTGVjYlUvQ2hRVzhENlkvQ2xRTzhBMnhvVUZ2QStuK1ZDZ3Q0ZElQbFRXZ09RN2hocU5vaWxJZUpFZEtpYUluSVZFVk5hR2JnZlNvVUZ1Q05IUURVU2VPa1BUR2s2R25vbGl5UG1RMUlpZUxHeklhZWlTb1gwelJEVU1JcUl0d1BvbWpRRzRIMFRTb0xjQVlhVkJiZ3BpTktnZHdReDBoMVF5Um5XbXNEWTlnaXFOc2hsSWZSUjlLWTJRdGpoVXBwRzJIQ1VLZ3FHMjBnVk8yMHFpcWR0bzFGVVYyMEtqS2doS0lLaWl4MDVBYkZGaHFSSVk1QnZwOWZDcEVnYndqMm12aFVpUVZjRUhzZmxVcWlQVjBJTEg1VS9hSHpRMzBQeW83UWVhZDlEOHFXMFhtbmZRL0todEY1b0JzVDhLRzBYbWhUWW40VXRvZk1DbXkrVkRhSHpBcHMvbFEyaDh3RVdueXByaUx6QmVLMitWUnVJeVV4MGx2OEFLb25FaWN3LzAveXBqaURlY1lQbFRkb3Q0Um9UUTJqbElRa2hQd29VSHFReW5oUHdweVJOR1F3bGhPdmFwRWllTWhBd2ZLbnBFbTRFVy95cHlRTjRvdHQ4cU5Ccm1IRnI4cU5BYnp2cGZsUm9EZUFiVS9DbFFPOFNhMitWQ2c1VEVqYm5YdFFhSDd4U08zT3ZhbzJCekhzTnY4cWlrUVNrT2tocU5rYmtLQ09tamFodGxLb3FnN2FBcWdiYVFxbmJhSXFpd1draGxSUlk2Y2hyWXNrZFNKRWJrT0k0ZGFtaWlOeUhDVzJ2aFUwWWtUbUxMWkU5aHJVeWdNZHdCN0FLTno2S1BpM1FmbnFhTUtpODRqcnJKY2V0TmZxc25hUWFkdzg4WVA1TjJ0VzdlRGVuOU1KUDJNUG1NaUxyM0E5dnJiWGZtN2R5UENMZkwva1ZoVnlISTh1WEMyL2JvR3N1b2k1ZmQ3MjlSdEZ1YmlUK2tsdStuK0xiVnFQcG5MZlJGZjZoM2lIZVA5emZiMjljUnJreGJ1M1FDNWplSWYzaU52NTZodStuc3VDcnNyM05NRGNrVzJHMWd1SVZudDVFbWdrR3FTeHNIUmg4bVhVR3NtVmx4ZEdxTVo1d0p4M3lwbXdQbkZNelh1UndiRlR0YnlYcHVwME9qcGFJWmdwSGdYNkorZXRmRzlQWlYxVlVkcS9xMC9NbFVteERHZTUvQk1oTXNQMWoya2pIUmZxb3pHcFA5Y2JsSDNtamY5TjVkdFYycVgrVjErSEVPNWx3V3lWbERwb3lNQVZZZFFRZXhCRlljcmJXakI1b29sbHA0Vkc0RFhjRmx0UGxVYnRqZk1EZlMvS21PMkRlRk50OHFZNEIzaVQyL3dBcWE0RGxNYnlXL3dBcWJzSkZNWnpXL3dBcWNvazBaaktTMTY5cWVvazZtSi9TZGUxT1VSM21CMXN6OEtjb2pYY0Zsc3ZsVDFFWTdvcUxINVVkbzN6UWZvVDhLTzBIbWhXc2ZsUTJoVjBRa3N2bFFjU1JYQkEyWFh0VEhFZjVncEhaNmVGUlNRMTNCeWx0cDRWREpFYm1LQ0dvbWdiZ2ZTcGpGdUFNZEFWUXBTZ0dwMjJsVU5UdHRLb3FpNGliNFU1SWpjaFZFcDZHdGppS09wWW9pa3lvKzZITkw3aXRoWW5HeVFDK3U1R0hvem96a3hJdm1kZENCNVdJMTFQalhVK25PVlc4dTVKWEZMYkZkRHBxUnJWME1vdS9lcjNBbW5OdkRlVEdiUUgwN0d5RGtBOXVxeHYvQUMxMWx6bFhMTVowbXRlMXNqbk9FWFIxcjdSQThoOTQ4dDBqdE9SVHEzWWxYdGsvS3hqQXFOOHc1VmE0Umg3ay93QVFLNHVpRXZkK0lRY0Y5M3NrMnMySGRRM2Q3Ni9qMSs5UTBocGt2VmVKRDZJKzVma09Vcm5SRDRqMjI5a3ZjYVlnelhHSXNsL3JUenNQN3FLS3EzUFdzZjB3KzN2SGJiei9BR3Iza3JiL0FNUCtiYzYzbktrakhpdHJaTC9ta2tQOGxVTG5ySzgvcGlsOXU0WGszWHhsOENTVCtIckNrZnQrUlpWMzhTaGdqSDVCR2FweTlXWmI2VUgrTExwbEw3ZXdaWkwrSCs3aWpMNFRra3J5S09rR1NoU1JHUHdNa1d4bC91bXJHUDZ3dnhmalNrZ2VSY1hDWHZLMWllUWM3OXU4NnRuY3h0WXp2cTR0V1l5Mk40aS9pTWJEb1QrUjFycWJPUmljMXQwZjEvOEFjdnQxRGE3bnRtcVMrM0F1dnVUN3dSNWpqVmxaNFozdERmSXo1Z2E2UEVFTzMwTnc4R09yRWp1dW56cUhsUEl2SnZTbGQxMi9UMi8xZmJwRmJ0VWRXTXVCZXdkeHlMRVcrYTVKa3JuR1dsNGdsc2NYWTdJNXZSWWFvODh6cStoZGZOc1VkQjNPdGM1em4xbmNWMXdzZlRGMHFWWlhaemVqcEVmOHAvaHZuc3JDUzg0amw3bTh1WVZML3VySmxKQk9BTlNrYzZxaFJ6K2p1QkJQd3F0eTcxdGVqTks5NG9BamNuRFd0VjJpWHNSemk0R1JqNDFlc3pXVjRyTllMTHJ2Z25RRm1pNjlnMmg4dmd3cnFQVUdEYnUybGsyK09sZTFQcDloYXVlS081RzA1N0w0akE0bWZLNU9UMHJTM0dyRURWbVk5RlJCNHN4N0N1U3hzU2QrNG9RVlpNcnhiYm9qQzgvL0FCSDVXSzcwczRMTEhXeFA3SkxyV1dWbCtMYU1nSDNDdXRoNlp4YmFYbXplN3ZvVHlqQ1AxTVh1ZjRoOHMyQ1BwMk5yQmZrYW5JaHkwQVFqOFN4dCtsOXJFVUkrbExDbnVjMjdYVi8rcnFIZVVsclh3amppZjhRdnFSb21jdFV2SWV4djdFZ1A5cnhFN1Q5eEgyVkJsK2xMZHhic2Vmc2VxOS80ZzJLU3JGbXJZRGxIR09SUmI4UmZ4WEQ2YXRBVHNtWCt0RzJqVnltWnl1L2p1bHlMWGIwZThqYmNlSkpTV255cWg1WTVYQnJMWi9La29Fc2JnMWF4K1ZPVUNWWFFCWWZLbktBdk5Ga3gvd0FxZW9ESGRJSG0zSzhmeEMwdGJpOHRaYm42dDJqaVNJcXVoUlF4SkxmYldyeXpsRTh1VFVXbzdlc0VadVJScm4zOHRrQjlEQ2FmQXpYSUgrVkszNCtrVXZxdWZEOHd0ZGJJUzgvaUp2VjFFZHZqYmY4QXJ5TTUvd0F5L3dBbFRMMHppUitxNC9mRkRIY2d1TWtSWjkrZVNYMDNvV3Q3WnJJUVNGaGdEZEI4MzNpckZua1BMMjZLc24vbS9BTUwwSk9pZFdhTDdSY2x5ZkpJc3JIazUzdWJxMWFKMWNvaVJySElDQW8yZ2VZc3BKckM5UmN1dFk4b2VWSGFtbjE4UjhybEhRdnpZL3Iycm1IQUt1bkN5MDhLaGxBWG1nL1M2ZUZRU2dMZUZOdlVMaUZUQ05GcFViUTVTRTJqcU5vZW1FS1V4anFoQ2xBTlFOdEtvYWxvZkh3bENBSzZTZkw0N2RESVY1MUltU0VSeUZSV0pLTkhRdXhsVkMwU1ZMQVpKbWRlL3dEaXZWNHJqOG1vODJQdlZSejhJN2xTaC94aGE3TDBsZTJaRGorNlB5SW95OFNLcjdOWmlTMk9hczE4eDlKTHVPUFhUVXg2by81bVdyUHJteFR5N3E3WS9ldnZOREhncFRVWDBtZzIvTU1mTG9KbGVGdmlmTXY1UjEvTlhucXZJMVo4cm11RkdTOEY1RGNSQ1dGeEpHM1poMnFSU3FVWjJuRjBhb3c1bUFCSklBSFVrOUJScU4yamNaYkhOS0loZHdtVTlveEltNzhtdXRUUEh1cGJ0a3FkZEdDaUhQcVZCVU8wRDFhVlJiU0U1bHhteDVSZ1o4WGRBTElmMmxsYy9wUVhDLzZjcW41SHY4UnFLdFlXWlBIdXE1QjZvaXZXVk9OT2s4NGxKV2hlSzRUWk91K0s0aStFaUVwSXYzTUNLOXRzWFZldEthNFRqOHlzbnVqcWV4ZVA1S3l5T0RzTDJ5Y1BhelFSbU1yMkdpZ0ZmdFVqUWl2bnZNc1RzWHBXN2lwT0xhZjI3U2x0cG9QMmxTTlRJN0JFUUZuZGpvQW82a2svS3E2YmJvdFdKbzhxNHpNUVFlNVVXWHRFTFd6WmhyaUtOQjFhT2E0SjhvK2F2WHZOckNsSGxxc3krcFdxUHZwOXhhMlVoUW4vQUh4NTJjeG5CaDdBdFBZWXlUMFk0NCtwdWIxenMwWFR2b3gyTDk5VStTNHNjVEhkKzVwS1NyM1I2RjdTS0xWdURuSXZQdC83ZTRuamVFUmIyMXQ3ck9YYStwbGJ1U05aQ1hZZjZLRmdkSW94NVFCMzcrTmNCekhtZHpKdXViYnAwSTVhL2tTdVNjbUlXL3MzN2V3WjU4dis3eklDM3F3NHlSaTFqRktlcGVPMy9EMTc2SFZSNENsTG0yUkswcmU1N1VCNUUzSGJYUXJIdkp4M2dsbkZEZVFZNk8xNUhkU0JvNXJRbURXTlRxN1RJbWlPRCtIcU5mblhRZWxJMzd0NnU1K1ZEajM5Qys4ME9WUW5LZGErR1BIOEN2OEFzN0prRzl5Y2JGajdHSzlsVU8xeTgrNExidzZhUE1DdjZZVTZMcjRtdXA5UVhJL3hwUmJwM2RQVWpieVo2VVBTMmQ1Qng3QjIvd0JSbDc2R3lqUDRSS3czdC9WUWFzMzNDdUF4OE81ZWRMY1hJcVFVbndNMHpYdi9BTVhnWmt4ZVB1Yi9BRS83YVFyYnhuOHU5L3pDdWdzZWxMc3RaeWpINC9rV28yWmRKVjUvNGo3a1NhTGk3R01mcXZjTVQvMWF1TDB0WVhHNi9nTzJ4WDZoOWpmNGlZWFlmVjRWSGo4WHRiamNmN3JyL1BUWitsSXRlQzU3MStERjVWZURMOWd2ZExobVpzNTViUzU5QzZ0NFpKbXNya2VuS1JHaFk3ZXBWKzM2SnJHeWVTWkZtU1VsV0xhVlZxdGZrUlN0eVJoSE92Y1cvd0NZTllOZjI4Rm0xbXNnaldGbTBmMUNwSkljbnR0cnR1WGNydDRlN2JKdmRUalRvTE1JS0hTV3ZnSHRyd08vNHhZWlhJNGFDOHlGMnJ5enp6YjMzRXl0dDhwYlorSFRzS3lzalc1SjlySkxXSGJrdHpWV3k2MmZDK0UyZW4wdUF4OFJIWXJhdzYvbEtrMUZSRTZ4WUxoRmU0cFh2Ukphd1dXSXNyZUdPRVBMTE15eG9xZEkwQ0Q4SUgvZVZwOHNqV2JmVWhsMktUVkNZL2g1dU1UYjQvTUxQZHd4MzkxY3FVdG5kVmtNRUVROCswbjhPNTI2MWkrcDdkeVZ5TFVYc1M0MDBxeWhlVDNWTkJ5UHVCd0hIdVV1ODNhcklPNlJ2NnpEN29nOVlkdmxHVGMxamJsOHZtTVVadm9Jc2U3bnRxemJSbHRQNlJnbUEvTHNxU1hwek0vWjhWK0kvWlBxSmJHOHQ0ZmxXQ1kvTVdrOGpkb3ZVQ09mN0w3Vy9OV2JrOHF5TFNyTzNKTHUvQVhpWEZFcEpiRWVGWlVvRGxNYnlRMVhsRWtVaHU4V2xReVJLcENMSlVUSHBpWldtTWNtRkswQTFMQzJSajJkRDFyZm56Tk9PaG1LeTZrYzcrbzVhc3B5cTZsdEtpSEVJcWVCRkprUDdqNGM1WDIvenRtbzNTL1N2UENQL2VXK2t5L25TdHZsRjd5OGlFdjZ2bm9WNVBVOC9lMm1SVzM1ZFlNVHBGZUs5dS96RXFhci9pVVYzWHEyeDVtREtYN0dwZmMvbWFWcVhpVE5MeFBIMmx1Skh1anBieE95ckdEMWZhZE91bllWNUJ0UjFXVG03WXBSK3ByM0ZwVmxSUWlBS3FqUlZIUUFVNnBpdE42c2plVlB1NHZtRitOamNqLzhscXM0a3Y3MFA4MGZtUlhvK0I5elBPaXNxaVBwMWJzUjhkTmE5NmxJbzFObTlxT1JYbVJ3OTFaM2NqVFNZK1JFamxZNnNZNUYxVlNUMzJsVDkxZVQrcjhPM1l5azRLaW5HclhiK1phc1MzVlhVWG4xYTVXcFoybmVyU3FMYWVmZVZXY1AvR21XdGk3UXd6WDdicFUwTElKdHJNeWc5TlFYSnIxL2tOeVgvR1JrdnFVSlU5bGFHWE5VM0x0Wm9XUDl1dmU3aDBza2ZGczFZWk93WmlURFB1dHl4K0xST3NzUWI0bFdGY0RmOVQ0R2NsL0xzK05mcVhIM3I3MFVYSzUwcFMrREU4emhQNGorU3dISDVDUEgybG5KMGtSYnBFallmMHhDak93K1ZTWVhPZVQ0Y3ZNdFdwT2E0T1ZaTmQxZEVKWEpMaEZlOHllU0srZ0xRQmhKZnh5R0ZHdHR3RFNoOWltSW5SdXJmaHIxQ0dSdXhsY2xwV0c1KzFWTFRuUzNWOVJLV3VBOXhMTzVpdWJmaldTaXVZR0R4U3FJdHl1T3pBbCs5WWQzMUpnWElPRS9GRjlCbXo1cFlrcU5WUmJMcm52dkhCaHBWdWVQWE1IcEtXbHlaamlFaVJxUE1TQSt6VWZIYldCYXM4b2xmVFRrMDM5RmRLL1AyVktFZjRqbW10M2QwRGJodnVMN2dQSlBqY1BqMzVJMGJheVN6dVVqdDJQWFI3bGlGNjk5blUxYzlRNFhMb1NUYjh1ZlZDbXZzNis3MmszTWJlUEY5VXV3WThzNDk3c1hsM0xtY3hoa3U5Vjh5WStkSm1palhzcVE5R0lIOUhVMC9sUHFIQ3NRVnFDY1k5YjZYMXNPSnpLMWJTZ2xSRXg3R2MrNC93QWV5dHhGZVFLc0dYWkk1TXAxRWtEb1NCSElyZmhUY2ZONGc5NjArZGN2ZVhhVnkwNjdkYWRmNW1uY2dya2QwSFVaZThsM0xjZTVPWVdXM0VEd2VsR2hERnhKSDZTbEplbzZiMVBZZEt0K25xTEVpazY4ZjhDWEdmaEpuaDN0RndlL3cxbGxjbzF6bVpycUpaV1M1bVpJVWJzeXJGQ1VIbGJVZFNhc3ZHM2ZXM0w3ZFI1OXpQbStTcjByYmROcmFMaEg3ZGUzVVM3VjQzanRQbmJveC9Ld0pweXhZZFNNaDUxMS9xbDd4bGtmYVgyMXZrME9EZ3RaUDBack12Yk9wK0lNWlVmbEZOZUhEb1ZPN1FrdDh6dndkVkptYmN3OXRzanhjcmQyZDIyU3dUdHNMVGxSZFd6SDhJWmhvSlVidHFCcUttcytaR1cxK0tQeFg0blk4ajU3TEluNVUxNHFjZTRjKzIzRThEbnJqS1RacXdpdm9MWllZSUZtWFVLNzdwSkN2d08zWldkelNWWnBkUytaMXRuSGpkazl5clExM0hXdGxqYkdDd3NZaEJaMnlDT0NGZGRGUWRnTlNUV2FhTUxTaXFMZ09oTlNIYlNrKzRmQkxyazhzRjdCbUd4eldVRWlDTDBFbVY5VHZKSlpsSTdhVk5hdnp0L1M2RlBKeHBTZFl5Mit5cGpVY2ptS0ppZXJoZC96MUdwcnBvdXFUS2llaU5CNFQ3SVpubG1IanpKNUZEamJHWjVFanQ0TFgxNWw5TnlubmFSMFhYcDRDdUU1MzZ1dTR1Ukt6R1AwOVBzcjJsSzdjdWJtazZGbmIrR0ZObms1aGVDVDlaclMzWmY3dW8vbHJDWHJqS3J3WDI5aEh1dS91K1JBNW4rSGZuOWpHWmNWazdET0t1cDlDWkdzcHovVmJXU0xYN1NLMWNUMTRxMHV3cDNmYjdoNnYzRnhvL2dSdkdQY3ZtdkRNcWNSbG9iaGZRME56aE1ocnZFWk9tK0NRN3ZMOEdVbGEzSjRlRHpTM3Z0dEtmV3Z2WFQ4eWFFb1hPR2tqMEhnODNpK1FZaURLNDJUMUxhY2RqMFpISDRrY2VES2E4K3o4SzVqM0hibXZFdmoyb2JxblJpMHNkWmMwU3hrTm5TcThrU3BpTExwVVRIcGhDS0E2b2RTYUtZR0x4MUxGa2NoNUQ0VmJ0a0VoL0RHa3FORklOWTVBVWNmRldHaC9OViswNmFsYVo0OGVHYkE1NlczUFNYRDNyeC8vcHBqcCtWVnIxcVVWbFliWC96TGZ6UmV0UzhLWnBQSXJpUzJ6THoyMGpJdHdxVFJzaEkxM0Q1ZlpYaVVJNmFuZmN2akc1WVZWV21oWk9QdG12UTlYSXpFaGgremhZRGVCOFdiK2FvNU5kQmw1cXM3cVcxN2VnWHo3RjhEazBIVXRhVGdBZFNkWW1xVEhsUzVGLzFMNW1iZWo0SDNIbnV3Z3pHUTlPTEc0YSt1NVdBQ24wSGlqQjAvU2xrQ3FvK2RleVpIcUxFdEtybW1Zc2JqbDlNWlAyVStMTnI5dmVMejhjd2pSM2pySms3MlQ2aSthUHFpdHRDcEVoUGRZMUdtdmlkVFhsZk91YVBOdnU1K25ndTQxY1hIY0krTDZueExSNnRaTlN6dEN5M1VVTVR6U3NFaWpVdkk1N0JWR3BOT2hGeWFqRlZiMFFtcUk4LzVLN2t5bWVsdUVCOVRJWGc5SmZIV1dVS2cvSVJYdDFtd3NQQlVIK2kzcjMwcXpGdXk0dnJQVTVhNEZ6SjZPNCtZanAyNmZHdm1lc3ExUklsSGFxaDhwa1pMRENYOS9NQXB0YmVXYm9mKzdRdC9OVi9FaEs3Y2pEcGxKTDN1aFZ1SkxnZVQ4VExzek9JWitwTjdiRi8vQU1SU2Z6MTlGYzRXM0R1UlhSQi9CRWVkcFprbDFHL05uNDQ3eVdDZGRBamxWa1hyNCtJcnhOTTREK1NsSnBoODNaakxZUzl4b21NQzMwRHdldW84eUNRYUZnRDQ2SHBVdGk5NWMxTmZwZFMzQ2RHbURoY1ZqY0ppNE1YaklSYjJWdXUyT01keWZGMlBkbVk5V1k5NkY3SWxkazV5ZFpNRXB1VHF4NzYzenFQY0NwazN1M3hlMnRieUhrbGxHSXhleUMyeTBhalJXa1lFd3o2RDlJN2RqSHgxRmR4Nk81cEpYZjQ4bjRaTHc5Nk5yazJVMVB5M3daUzg3bjU4alBZRzRqYWZJeDIwZGhBa0N0SlBjTEFXOVBWQnJ1WlZiYnI4QUs3dUZ1M2o3bXYxeXJUdDZhZk0zcjE2M1lpNXlkRVdURTR6M24vZGNkbll4eFlteVFzMFVWeGNxa3ZuTzQ2K2tyc09wN0UwN2ZkZXFnbDN2OERqTXJtL0xwWFhOMjk4bjA4Zmh3RjRiWDN3eEVxM0tpTEpLcDFlQ084OVFNUGhzbkNmbU90Snp2TGpCUHVmNGtjK1o4dHZMYksyb2RxVkd2Y2Fsak1uTGQ0NjJ1cG9IdEpwbzFlVzFsR2p4T1I1a2I1cWVsV1lLcVRwUTVLNVNNbWs2cFBpVTMzY3lKR0hzN01IclBPWkdIeWlYL3BlbmJhSFdlajdXNi9PZjdZMDk3L0lxSEZlYi84QURkamNRTFpDNEUwclhFc2hrS3NUc1ZRUHdub0FsWitSZ0s1SnlyUTlJczMvQUMwOUs5SnJkamZtNnNyZTVLN0RQRWt1elhYYnZVTnByOHRhd1RXaDRvcDlZdUpxUWRwQ1gvTk9PeE5kMk10OHNkMUVIaWRHRER6N2UydW1ualZpR0xjbEdxVlVWcDNZYXF1cGhVa3NkdGF4UE1kb1RZcDBCWTY2YWFBTHFTZGZoWFFUdVJ0d1RrNkpHTktTaEZObWo4Szl4ZmNYam5IL0FOM1lyaDJRdmJQMXBKMXVwYks1UCtwcHFGQUtkTlJyOTllZmM0c2NweThsM2JsNXhrMGxTTGowZDVVbGRnM1drdmNUdUsvaVZ1TGJJeDJuS3NRY2NraEFabWptdHBVQi9TMlRqUjlQZ0dGVWJ2cFBFdlFieGI5WjlVcVVmWlZjQktkdDhIUjl1aHVGdmR3M0VFVnhBNGtnbVJaSXBGT29aSEc1V0h5SU5jQkp1TGFlalFhRlM5MGVDMmZNT055d2hGWE5XU3RQaDd6VHpwTW8xOU1udjZjdW0xMSsvdUswdVQ4Mm5oMzQzSXZ3MThTNjBObEY4VnhSbUg4UG5JNVk4N05oM0pGdGxJRFBIRWYwSjRSdS9LVTFCK3l2VlBWZUxHN2pSdnJqR24vVEw4eXhkMWlwRzdUSlhtZHhESXNaeUoxNlZWa1RwaFJhdTNoVFZhY3VBWGNTQ3ZZeWdhZ1VwWTAxMENWNURaYWdSTXhlTTFORmtiSGtKcXpCa01pUXR6VjYweXROSG1YM254UXgvdVZsZ0JwRmZyRGZKOC9WVFkvK09NMTZuNmJ2NzhWTDl1aFBpdncwSmUwelVVV0N3V1dsdDF1cEk0VGF0dUpHMTRqdDFIZnI1VDNyeS9tbUk3ZVhkdExTazIvWTlmdk8xNU5CM3JMZ3BiZnRRbTdIbStKdW5XTmhKREs1QVZXWGNDVDRBcnIvQUNWbVN4cEltdmNwdXdWVlJvbmZWcXVadTA3MWo4YVF0cDNxMGhiUnJmNWpINCtFelh0d2tDRHR2T2hQMkR1ZnVxMWlZVjdJbHR0UmMzMmZlK0NHVGxHS3EyWnJ6SG4wbVdpYXdzQTBPUFArckkzUjVkUEFqOUZmbFhwdnA3MHNzUnE5ZWFsZDZGMFIvRjl2UVp0L0ozYUxnUkh0b2tPUTl4OEZDNjc3YUs0TXArQmVLTjVFUDNNbFMrc01xVU9YWFhIcVVmOEFxZEg4RE1uT3IwNEhwT0srdUZrSVRWd1NmSjM4YStmMDJhRXJNYWE2RUg3cVpOcmYyOXlyRUdON2xZN1pRZS83YVJWUCtIV3VtOUpZL25jeXNycWx1LzZWVXBUaWs2SG02Rjl1VHRIL0FPNmtqay9KSXRlNzh6anVzWEYvKzNMNUVlV3EyNUwrbG01cmY0eUxLM1ByRGJQNmgwa2Zxdlg0ZkN2RFZGdEk4M2pjZ3B1dkVOeVhPTmpPUDNtUWhJYVdPTWVnZTQzeU1FUS9QcTJ0WE9WNHY4akp0Mm53bEpWN3VrMDhXMnJ0Mk1laHN6M2cvTHN1dkk0YmU5dTVibTN2Mk1ickt4YlNRZ2xHWFh0MUduU3ZRdlZQSnJFY04zTGNJd2xicHdWTk9EVDZ6bytiWWR0V2QwVWs0OVhVYXY2d3J5MnB5dFNsZTZ1UlpNSGIyaW5wZFQ2di9WaUc3L01SWGFlaU1aVHlwWEgvQU9YSFR2bHA4cW0zeUsycFhYTDlxK1pHKzF1SXRiZXl1TTVJZ2EvdkpIaGlsUFV4MjhMYkFpL0RjNFptK1BUNFY2aFl0Vms1dmp3OWlPWTlWWjBybVU3ZGZERDVsNitvK2RXdGh6RzRxdVg5eWNkWVhzbHBEQTkwOExGSm5WZ2lobE9qS05kZGREVVRranFlVytsNzJUYVYxeVVGTGgwdjhpY3d2SUxiTDQ5TDIzREpHek1oUjlBd1pEb3c2RTA2RkpjREM1aGlUeGIwclU2Tng2aXJlNGZGczV5RzVzbng4c0tSV3lPcFNSMlJpN3NEcjBCR21paW9iOW1Vbm9iWElPYzJjU01sUGRXVFhEcVh0TXhlR2UzdHJxR1p0MDBSbGpZZzdocW1xblEvYUtoaTJvT3ZhZWs0OTFYTEttdUVsVmUxRzlXTGlPeXQ0eCtoRWkva1VDdVhPdXQyNlJRNEUzV2tPY0RDOHplK3JmWDE2Zk42czhzZ0h4RFNIVDgxZExqK0N6SHVPWnV6MWI3V1dMMmJ1MG45eWNURTBaVmw5WjlHME9oRURrR3VaOVozdi84QU51S2xQcC84U0s4cDEwb2VvZlVKOGE4TjNqZHBCNWpMY0t2bmZDNW02eDl5eitTU3d1M2lmcWZBbyt1aHJUeDhITlVQT3QyN20zOXlqTDVnZHROY0NUc0xPMHh1UHQ3Q3dpRU5wYVJyRGJRQW5ha2FEUlZCT3AwQXJQdTM1VGs1UFdURkdDV2dWYjZmNmhJeWdRbGdPdlhwVlYzNVZwUW5kbU8xdXA1dTl2THRiWDNOeFVrUCtuSmtuaVFEdHNuZDBINW5yNkh5N2JmS3FTNHExSDRKTWprcVd2WWVucHgzcnltNFFSWWdrZTVxaXQyOTBxRWpsUWZSeElnN2RhM3JPUEdDSzhwTmhpRjA3Vk80cGdLcXByaVRYWXZHMVBpeU5vZHhOVm1ESVpJZndQMnE3YmtWNW94aitKSEdiYi9BWmhSMGxqbnNaVythRVRSL3l2WGYra2IvQU5jUGFIR2RKTkZLd0ROZWNQdjdKZERMWjNLVFI2a0FCWk5OZXA2QWE3cXhmVnRqeTgrTStpNUQ0clQ4RHMvVGQ1UnVVZjJxdnhSYmVONEsxeDBJdUdaYmk4Y2RabE81VkI4RS93Q211UHYzbkowNEkwOC9NbGRlMzZZOVg0a3ZkM1RRMnMwcWFGNDQzZFFleEtxU05hZ2dxdEl6SnFrV3pORzl5K1NUUkk2ZWhEdVVONVl5ZE5ScitrVFhyRnIwVmd4WGkzeS8xZmdqRi9uM0d1Z2o3cm5ISXBRUkprbWpCN2lQYkgvbEFOYU5yMDV5KzFxcmNYL21xL215S1dYTjhaRURkWmRIY3lTU1BjU251ekVzZjd6VnF4bGJ0eDJ3U1M2a3FJcXl2THZJK2E2bnVPbjRZL2dQNTZqbGNsTHVJSlRjaStlMDBLUmM4d3lvT2ltZHlmc3RaVHJYTWV1VW84cW1sKzZIekp0bE5xN1RmN1hLTkhvanFHWDRxTkQvQU8ydkNhR2pjeDY2b28zdnJraC93NWpiUlNSOVZkbVFnalE3WVl6OGY2VWdydjhBL3dESE9Qdnpwei9aYmY4QTNOTDhTaEtOSkpHR2x0SlpuL1VDZ2ZkNXE5aHlZN3JjMS9TMThHUjNWV012OHYzR3o2NHlUTFR0Y1ByS1dCU04raUhVQTkvR3ZDbHUycWg1anRnNXV2RVplNGN3L3dDRTdoQjBCbGdVQWY4QTJxbithdGowd3E4d3RkNytUTnZsWC9xSUdiNGliME14ajV1M3AzVURmL21MWHFYUExlL0N1citoL2lkYnpDTmJFMS9TYmNadENSclhoNXdWVFBQZEtkbXZNWkhyNURGTVIvV0RKL05Yb2ZvU2xMdlg0ZnZPbDlQUDYvWVArQjN5SEFyYmcrZTNra0RENU94Y0gvRlhwbU5IdzA3VGpQVmVOSzNteWsrRTBwTDVNc1gxUHpxeHNPYktOblBieHI3S3ozMWhsbnNJN3R6TGNXL29wTUJJMzRtakxFYmR4NmtmR3MrNWdUM053bnRUNktWOXgwM0wvVTk3SHRLM1RjbHdMTngzRlcrQ3hhV0VFMHM2aG1rZWFZZ3V6dWRXUFFBQWZJVmFzWTNseHBWdnZNVE96WjVOMTNKL1V5VCtyQytZbm9PcCs2cG5BcUdKeXVaNHAzOFpXa1kvMnlXL25yR2V0dDl6UGNjYTN0c1JqMVJTK0J0aVRqWXUwK1hRYWZaWEtWTzdVTkRwSm45Si9ULzFOcDJmMXRPbEdvMlVIVFF3dTJ5TUR5cmFPcnBkcjVab1hqWlNqcVBNckVqVFhvZEs2WEh5N2M2UlQxb2NYQzZtOXIrcnVQUWZzdGpzTFB4aTN5VFdFQnl0cFBQQ3Q5NmErdG9ldjQ5TjM0WDByeDcxN2tYcmVkSzJweThxY0lTMjE4UHU3MVVNbzZta094WkdVTVVMQWdPTzRKR21vK3l1RFRBNG5seTk5dXZjMjJ2cGJGdVBUNUNZT1ZXL2lraStubTY5SlM3c0N1N3VRdzFGZTVZbnJuQThtTGIydEplSHU2Q0pYcHBVY2FzOUhjWHNyL0hjVnhPUHVTcTMxcFp3dzNIWGV2cUpHQXczZVBYeHJ4ZlB2cTdmdVRqd2xPVFh0WkxhalJLb2xtOHJjWS9GWkM5dURvTE8xbW1Yb05OeW9kdWgrMm1ZT1BLL2ZoYi9BSHlpdmV5ZTdHS2hXSmdQdGJadmRlNGZIWWU1UzU5ZHo4b0kya0ovS3RmUkhQNXEzaFRTNnFmY1ZyK2tLSHFXYzk2OGh1RUVST0JodnArSTF1SFRXZzhMVnZFQVF0UURRcHEzc2V2ZXVLMm1zMk9vWjBic2Fja05ZOWllcG9zaWtoOUJKMnEzYlpCSkZKOStNZDliN2RUWEtqV1RGM01GMkQ4RjNlay8rR1d1cTlOWkd6S2l2M0pvaWhwSkdLY0prVnIrOHNIUGt2clYwMC9wSjFINW1OYlByZXgvWnQzVitpZFBmL2dkSHlpN3N2cjdjQkxFUTVkNzMwTEI1STVRZk95c1ZWZE81YlR3cmlyc29LTlpIcG1USzBvYnBwTkdnN1o0c1hKRlBPYmlVUk9IbFlBYWtxZkFlRlpGVTVWU3BxY2hrN1pibkZiVjFHSnpxVGpvUjI4cWY1YTk4dWF3WHNPSWw5QzlneUVJOFRWYllRN1F3alVlR3YyMFZGQm9HcHdTNDhLemRwZ3VTMm1WdTQ1SllMZEpWYU9MVGVmVmlhUHB1SUhUZFdaNm01UmM1aGh1eGJrb3kzUmV2RFR1TE5OVStvMW16OTVlRUFBR0s2dHo4NFEzNTFaalhsdDMvd0RIbk1sdzh1WCtyOFVpV1Z4dmlVWDNYNWJpK1JaREd0aTVqTmEyc01tNHNySVJKSTQxR2pBZm9vSzdiMFB5REl3STNYZmp0bk54cHFub3E5WGF5S210VFBWWU5iM0xmRXYrWWFWMjFOMFpkdFJuR0w5cHJJeG91cHhjek4reWRJeUVYdWZJTzU4SzhJODNhcUk4dmxiVGsyeGx6MXduR2hFbzBYNmlCUVBrRzEvbXJiOUthOHdoL3EvOExObmt2L3FZKzM1R2RsekhwSU84WkRqK3lRMzgxZXM1a045bWNldU12a2R0a1JyYmt2Nlg4amFmWEo2anNlbysrdkEwZWE3aWxlNk9uN3VzTGtBK3ZET3dUNW95RXZyL0FIUlhZK2pMMG81RTRyZzRWOXovQUROM2tOeHE2MHYyL0lxZUd6YzlwTDlUWnYxSTBramJxQ1Bnd3IxU3plcHFqb2VZY3VzNXR2WmNYYytsTXRVUE9yWXIrMnQ1RWZ4MkVNUHo2VmVXWEhwUnhWNzBUZVQ4RnlMWGJWUDd4SzY1MGRwRnJibmQ0UEtlZy9zci93Qk5DV1gxSW54ZlJMclc5YzA2b3I3MytBeXhuTGJxMWU1a3VnMTA5d3lzRHVDaGRxNmFBYUhwVVZxKzR0dDYxTC9NZlNOdTY0K1RKVzR4alNsSzE3YTFIYzNPUFVoa2pGcXlsMVpRMjhIUWthYTlxa2xsSnBxaFFoNklrbW03cS82ZnpLYkFRa3NrQitBWmRmRWFBSCtTczZEbzJqdkk4V2pTT05aeU84c1k0WGJTNmdVSTZudVF2UU1LNTNOeFhhbFZmUytCMXZMc2xYWUtMK3BmYXBOQ2VxVlRRMkZjNTRETGhvbVVhbUs1aWMvSFRSa1A1QTlYZVh0K2RHaGtjNHQvMmsrcVMvQVU5dGZjaVBqQW14OTlBMHVOdUpQVjlTTHJKRTVBVW5hZnhLUXZidldiNnU5Snk1aTFkdFNVYjBZMG8rRWx4NDlEK0J6bERXTGIzTTRQY1JoMXpFQ2FqWGJMdWpZZmFHQXJ5Njk2UzVuYmRIWW0rNmtsOEJVSTNOKzhYRDhmQTV0WjJ5VndBZGtOdXAyay93QktSZ0ZBK3pXdERsM29UbU9SSmI0K1REcmw5MFZyOGhGaXhlVlRMNGl6dTBuU0s0dUlJNVpJbzVBMng1RURNaDhmS1RwWE1abUpPeGRsQ1NsNFpOYXByZytJNjFLbXJSVC9BSFh2cml3NGJjMjhwUHE1Q2FLMlFrNjZvQ1pYMCs2UFN1bDlDNGl2OHlnK2kyblAzYUw0c2t5SlJkRWlyZncvNDM2bm10NWtHR3FZMnhZS2ZoSmN1RUgrQkdyMDMxZmtiYk1ZZnVsOGloa1BWSTN5WjY4MHVNWkZEWDF0cmExQkM1dGRTWGJVZHgzaU1PcDYxdDJNdU1scVF5dHRBdGNSZ2E2MVlkNks2UUtES3hOZ1dDRXFldGNOREwxSjZzaDVaTHV5bDBiWGJXbGJsR2FFcmxDWXgrU1NaUjE2MFhDaEtuVW1JWmZuVXNHTWxFVDVGajF5L0djcmkyR3YxdHBOQ28vcE1oMi80dEsxTUcvNWQyTStxU0s4b25sTEJaQnJLOXRMMWdkWWpySW83blZTckQ4OWVxODN3UDV1TEswbWs1VW8zMW8wc1c5c25HZlVXU0xtdG5haHhaNDhyNmpGM1puQUxNVHIxMEJya1kraHJrdjl5OHZaSDgwYmQ3bnJuU3NhMDdSR2ZubVJrUmtTM2lSV0JCMUxNZEQwK0lxN2E5RFk2K3E1T1h1WDRsU2ZOWnRVU1JUTHgwVkZnVWRGQTYvQURzSzdDNDBsdFJpemRGUW1ZUGJmM0JuME1QSE1nNFlBZy9UdUJvZkhVZ1ZtUzVqanJqY2o3eURmSHJJWEpZeklZeSttc01oYnZhM3R1ZHM5dklOSFFrQTZFZllhdFc3a1p4VW91c1dPVHFMVzNIOC9kUkxOYTR1OHVJWEdxU3hXOHJxdytJWlZJTk1sa1c0dWpsRlB2UUtvVHZvOHpqNXZRdklaYmFjQU1ZYmlJeHZ0UFk3V0NuUTFMSEkzS3NXcEwzanZNZlF4dU1sY2p1cW43aUtkNThnK2RJT01xL2pHUHVOTy9rUHFENS9ZSHNwNGtpS3UyakVrNmRmRVU2MU5KYWh0eVNXby9HYm5BMEYzTUFPM25mOEE2YWkvalkzN0lmOEFTdndHK1hhL2JIM0lUbHpNa2k3SkpwWkU3Nk16TU5SOGlhTUxWbURyR0VVK3RSU0RHTnVMcW9wZXhCUHJMYlRVdnA5b05XUE1pUytZaHdNM1A0WHN2OStTcXY4QUZ4djJRLzZWK0JENVZuOXNmY2drdVRNeWhacmg1VkhVQjJaZ1B5MUxidFdZT3NJeGozSkw3aDhZMjQ4RWw3Q0tNWitwUDArNGFuUkFtdXArd1ZGSkpPcTBSRTFyb1BUQm1vcmN6eVcwNndMcHVtZUZ3ZzE2RFZpQUtLeUZXbTVWOWc1WEgxak43dTlKNlAwK1FBb3U1TURuSUw5VmZmcm44Z29lWk1HK1IzMVY5K3VmelV2TW1MZklBeVhMT3NoYnpyK0U5S0RjbTZnYmxXcElXMlIwWldKTU1vN01DUjErUkZUcTRwS2trV0lYcU92QmtvbkpzbnQycmZOcDg5dXY1U05haC9pV0cvcFJlWE1yMUtiMk1idkxHVnQwODd6dU93SkxmK3dWTkh5NEtrVjdpcmR5WEoxazNJSkZhY2l1TEdYSzJ1T25teGtMK2xMY3h4TzhhUHByb3pLT2gwcXRMT2lwN1cwbjFGVjNuVVpqTUoyWk92ajVxbldSMkR2UDdBeTVlSTkwUDNFR2ovSVhVSHpsMUNzZVR0d2RWTFJ0OFFORCtVVVhlaExSamxlaU9wTXkxeEVzVTE1SkxFaDNKSEk3c29PbW1vREhRVXkzYnNRazVSakdNbjBwSk1kNWtlczNYK0g3SEMzNHBmNVFqejVLOFlJM3hpdGxFYS80eTllZWVyY25ma3FDNFJqOC9zaXZMV1ZUUnBwYTQyYkpJeEdra3RWcE1tVVJ1MXd3N0dtcWJSSnNFM3VuUGpTZDZUSEsyaWVZcUIxckNSU0lqSzIxdlBHMnVtdFhjZTQ0c1pKRkludnpqN29nTjVkYTZLMUhmRVpHYlRMVGg4b0xtSU1EVVU0YldXb3VxSjIzdU5DRDhLZkNReVVUeTV5ZmlmS3JmbHVYeCtMeFYxYzI4VjNLYmQ0YmVSMUtTTVpFMFlEYjJhdldNSG0xditQQnluRlBhdUxSR3JqV2dlejlxdmRpKzA5UEIzRVlQak1Zb2Y4QU95bW5UNTVZWC9tTDJEWGVmV1RWcC9EejdvM09uMUgwbHFEMzlXNjNFZmRFcjFVbjZoc0xway9ZTWQ3dEtKeVhCWGZIODFmWWE3a1NXNnNITVVza2VwUm1DaHRWM0FIVHI4SzE4VytydHVNMXdrU1JkVWU1TEU2Mk5zZmpESC9rRmVYVCtwOTVRTU85M1BhKzU1QjdyNFEycWxMVE9SYVpDZFIvcGl6MDlWL3RNUlVMODY2bmxQTTFaeEoxNHdlbityaDhTZTNjcEY5aHVWbGFXMWpad1dWbWdodGJhTllvSWw2QlVRYlZBKzRWeTA1dWNuS1dyWkJ4UE1YOFNNRHQ3bHdCUjVwN0MyVlQ4U1pKRnJ1UFRrdi9BTFY5a244a1dySDBnKzR2c09lSDhXa3p5Wmczdm9QRkhMYk5BSStzckJOUXdkdXhQd3BjdTU3L0FDTHZsN050YTYxNnZZS0Y3YzZHZjhONDIvSnVUNC9BcGNDMWUvZG94Y011OEp0Um4xMmdycitIVHZXdm1aS3NXcFhLVjJra3BVVlMzKzZQczNKd1RDV21UT1ZHUStwdVBwMlFRK2tGL1pzNGJYZSt2NGRLenVXYzRXVk54MjdhS3ZHb3kzZDNPaHE5ei9EMTdlMytCamZIcE5aWGx4RkRJbDRaNUpWVU50WjIyTzIwNnJycFhQUjlSWkVKMW5SeFZkS0pmRWlWMlZTdzQ3MmM5cW9iSVdjZUd0N3ZZdWp6ek0wa3pIOVpuREE2bjVhQ3FIL1AzN2ttNDNQWXFVQkp6V3JxakR2ZVgydXMrTThueGRyeDlKR3RjNXF0cmFPMjhwT0hWUFRWejFLbmVwR3ZhdXU1UHpOMzdVbmM0dzR2c0pyVnlxMTZDODRiK0Z6RkxheHRtOHpjUGVFQXl4MmF4cEVwOFZEU0IyYlQ0OUt5cjNxZWRmQkJVN1NOMzMwSWxQOEEvbVBnbW1uMTJSMStQcVJmL3dBT29QOEEzTmtkVVBqK0lQUGtRT1c5b2NId1hsUERjcmpiMjZ1RGNadTN0cEk3bjB5RlVobTFCUlZPdXExWnQ4M3VaVm03R1NTcGJiMEhLNDVKcDlSZnZmZTN2YnIyMHlGcmFReVhWelBOYXh4d1JLMGpzVE9wOHFycVQycks1SEtNY3FMYm9sWDVFVm1pa2VhVDdZKzRvWGNlTlpIYjMxK25mL29ydHY4QWs4Yi9BT1pIM2xyekk5WkFYMWhmMkZ3MXRmVzB0cmNyK0tDYU5vMy9BTHJBR3JjTGtacXNXbXV3ZW1iNXdqK0cvRG5Fd1pMbDF6TzF6TEdKbng4RENLT0ZTTjIyU1RRdXpBZmkwMDBya3MvMUpLTW1yU1cxZnFlcFhsZWJkSWpvOFkvaHRML1I3b0JMcnQzQytmZHIyNytyV1ovemZNYWJ0bDNiL3dEVC9JbDhxNTFvcTN1ejdKWWZqM0c1T1VjY3ZKWmJDSW9aN1NjaVRSSldDcThjZ0NrZ01ScUcvTFc1eWJuMHNtYWhOTHhjR3Z2UXlGeDd0c3VKWkxuK0dmamR6aWt1OGJsYjJPZVMzRTBjVGlLVldaazNCUjBqUFU5TzlWSWVwcmlsU1VZMHIyalBQZFNLNDUvQy9rTGl5U2ZrR1hGamNPQVRaMnNZbUthK0R5TVZYWCtxTlBuVm5JOVRSVXFXNDdsMXZUNEJsZjZrVlRtM0dlUiswZkpiT1RDWm1VeDNzUmxndUZIcDd2VGJSNHBvdFdSd05SK1dyK0ZrMnVZV241a0Y0WHcrOU1mQ1NtdFViN3hOK0xjeDQxaitRU1lleWVTOGoxbVdTM2hjcE1oS1NMcXlrOUhVNmZLdVJ5MWR4N3NyZTZXbmErSFFReVRUb1BiL0FJUndlOFhiZVlISHpBRFFhMjBRSUgycW9xQ09kZWh3bkwzc1NxVmpJK3kvdGJjNi93RHdSYmNueHQ1Wm92ekI5S2tYUHNxUDY2OTZSTEZNclYvL0FBOGNEazFOdGMzOXFmRFNWSkFQdWROZnoxTkgxVGtSNHFEOW41a3FnWFhqbUd0T084ZnNzTGFPMGtGa2hSWlhBRE9TeFptWURwcVMxYzduWmtyOTJWeVdqa1RSZ09wSjZ6NU1takVheVRWRXlWUkd6eTB3a1VSTXlVS0RraEs0NVVTQ0ZxQ09JVkZqc2pwczdQSXBBUGVyRUxDUklzVmxSek1relNseWEyc1ZwSWl1WTFDVzR0bWhHUkV4bzVOcXVveUdtaGZyVzYzS0NEVkJPaE00a2xCZE5vQnIwcXhDUlhsQWtMZTU3ZGF0d21WcHdIcVNCaFZoT3BBMVE4Z2U4STA5eWVSLzd6LzRhMTZSeWovMHR2dSs4czIvcFI2cjVCeUtManZGN1RLemoveTBUMlVkeTM2c1V6SkV6ZjJkK3RlZVJzU3V6Y1kvVjRtdTJtdFBhVkxjYXlwM2xnR3h0cmpSdW1xTjM2SDRINTFBblZhRENHd1BKYmJNWlRPV2x0bzBlSHVVczJrSFpwREVKSC91bHRLZkt6S01ZeWZDYXF1NnRQalFrbkhha1lqNysyNlA3cjhXVmgwbml0VmI1ajZ4aC9QWFc4aWsxaVhYMVYvOEpMWitsbXJlOG1CeU9kOXZjdGpzYkExMWZNWXBJTGROTnptS1pXSUdwSFhRR3NIazkrTnJKaktUcEhYNUVGcHBOTm1LKzB2dGJ6L0g4K3crVnlHR21zc2ZaU3RKY1R6bEUwQmlkUm91N2NlckRzSzZibTNNOGVlUEtFWnB5ZlYzb3NYTGtYRnBNMGIrSmExTTN0dUpBT3R2ZjI3YS9KZzZmOWFzYjAzS21WVHJpeUt5L0VTbC9sYmova08yU3RaV2l1QmdJM2ltUTZNcnJBbzFCK09vcW5ISGpMTjh1YVRpN2xHbncrb1MwdWUweTcrRzdNWmk2NXpmUTNON1BjUVBZU1BJazBqeURjc2tlMXZNVDE2bXR6MURoV2JkbU1vUWpGcVZORWxwVHNKc2lUY1Mvd0R2RWlIbVB0dTdBYWZ2Z3FTZmhyRWF6ZVV2K3hrZi9UL0VpdGNIM0Y2NWZsYzdqTU85MWhNVkptTC9BSHFxMmtUSWgyblhWeVhPbWcwckZ0MmZNbHQzcTMvVTFYNERiVzJ2aTRHYlM4Njk5SldJdCtFU1IvRGZLbi8xYTBGeWZIL1ZsKzZDL01zYnJQVjhTa2N0NXY3Z1hYTCtNWWpsbVBqeGt0cmtiUytpaFZ0N0VQTDZZWWtNNi9yVnM4djVWWnRXYnR5M2RuZHJDVWRhVTYrcERxeGE4S1BSSEp1U1lyamVLbnkyVW1FRm5DeXF6OWZ4T2RxZ2FBbnFhNVNGdTVjYWpiaTV6ZlF2ektkcUc1MEt2d2ozZjQxeS9OelluR0NVVHhRdGNLMGlGRlpWWUtkTmV2NlE4S3MzK1daZGlLbmVqR01YMVNxNjlwTmRzcUtxblVpZmY2d3hrMkR3VjNkUkkxeEZtYk9LT2NqekNLVmo2cTYvcWtMMnJSNUhkbEdjMG5vN2NuN2hsbmlYL2sxOVoyV0d2SjcyM2t1ckxZeVhNTUtQSXhpZnl0NVl3emthSHJvS3hZcWJhOHRWbDBhcGZGNkRiVWF0YTBNYlhNZXdzWjJSY1M5VWpvRkZoZFAvQUNvYTJkL09IMmYvQU1zQzE1WDlZajdoKzZmRTVPQTMzRmJURjNXT0YzYStsajRKYmFXM2pBUnd5bFJJRjhvSytGU2NwNWRtL3dBcU4yYWh0VXF5YW1wUFh1NlJLMUd0ZDFXYXp4akpBZTNtTHlXdTcwOFREUHI4VEhiZy93RFZyS3liYjgrVWY2MnZpVlpMeGUwd0xDZnhHOHFqemkzdVdqU2JHbEhEV2NDK2JjdzhoM08zZ2E2Qzk2UmpHMy9hbkozdXViOFBiNFlyM0YxeGkxU2xGMkVKN3NlNkVQT254cGpzbXRCai9WR3JsU1c5WGIrcVQyMlZwY2k1VmV4Ti9teWpMZFNtMU5jSzlZRkNNZUJ0ZnNwak10aGZiMjF0Y3BFYmVlV2FXNGloYjhheFNrTW00Zm9rOVRwWE5jK3lZWE1sdURxa2t2YWlKeHF5NFRYWHpybjVYQ1dNQnBKYy9PcThwa3lnTlpMajUxREtaS29EZVNlb25Ja1VSdEpOVWJaS29pRHkwMGVvaUxTVUI2UVF5VUtEcUZmMkNwYWxyYWdlZ3AwVTJDVFNJekxXMHpSbGdoMHJXeHNlUm01RitKRDR5VXhYcTY5T3RXTDBkQ21wS3BwdU11ZDBDOWZDc1NlakxxV2hLd3owNk1pS1VSL0JjZk9yTUprRW9FamIzUGJyVnFFeXRPQjVPOTAyK285eTgrQjEzM3BqL01xMTZmeXAweGJiL3BGQmFIby8zcmcwOW9zeEdSL3BRVy8rR2FNVnhuSnBmL2VRZmEva3lyYStvZ2VGZTZzVVhzdk5tcnVRUGtjSkdiRjFZOVhtQUMyLzk4TXY1NkdkeXh4elBJaG9yanJIc2pMVi93RFQ0dmdUU3QxblhvR3Y4TVZ4UGM0SGtOeE81a21teUt5U3lIdXp2RUdZL2VUVjcxSGJqQzViakZVakdGRjNKak1qaWl2ZnhLVEd5NXZ4aklBYW1DM0VnSHg5RzUzL0FNOVhQVHNkK1BkaDEvZkdnN0g0TTJIQys1ZkM4ekFrOW5rNFNYR3BqTGdPcFBnVkozRDd4WEczdk1zUGJldHpnLzhBSzJ2WTFvQjRzdWpVUzVKN244T3dObzAxMWZ4dkoyamdSZzBqRTlnRkhXblkwTHVROXRtRXBQcm8xRmQ3ZitJWTQwdjFhRlg5L3N0akxuMnl2WW9MbEpKV250V1JGUFU2U2duODFhZnB6SmhQTWlvdldrdWg5UVlXWnhkV3RERXYrYi9KZitDUnhBUlEvdTRXcHNqS2QvcUdNL2Z0L05YVS93RHQrSDhyK1I1azY3dDIzVGI4cWsxSTlXcEhlMzNQYjdoV1d1TWxaMjZYTXR4Ym0zS08yMEFGMWZYWFJ2MWF0YzM1WTh5Mm9LYnQwbFdxVmZtS2lmRlZKWGx2dkRudVMzK0d2THEzaWhiQ1hQMWRzc2JNZHo2cWRHSkEvVXFuZ2NnV1BDNUYzSlQ4eU8zVkxUanFxQ3BGY0ViYml2NGgrQlhkbWt0M08xbGNFRDFJSkVmVUh4MEtxd1AzR3VTdThuNWhiZTN5dk0vcWpKVWZzZEdpSjR5NkpDcy84UW50MUdQTGR0Si9VamxQL1VvUjVUekI4TEZPK2NmeEYvR1g3dmdZdDdwODh4UEtlZFlyTVlrT0liUkxlSm1kU2hMeHpsK3phZURWMTNKc0s5YXhwd3ZKUms2NkoxMDJqNHdVVlJPcHEvOEFFemtZMTRIYTIwYmh2cThoRUR0SVBsampkL0Q1NlZoK21hVHlhcHA3WXY3a1FXSXRQVXpmK0d2L0FQMlEzLzhBanJuL0FEeDF2ZXBQL1RML0FEcjd4OS82UzhmeFI1Rm9jSmdMSkcyeVMzY2x5UDhBN2lNQlQrV1NzbjB6YTNYWnQ4TnRQZS95RzQvU3lWNDEvRU53MjV4VnEyV25ObmtSR3EzS01yNmVvQm94VXFyQWc5KzlaT1R5WE50VGNZMi9NZ3VFb3lqcXVpcWROZXNrZU9ucW5RbVQ3NyszSUd2NzJYL0gvczFXL3dDUHp2OEErdlAvQUxmeEdmeE8xR0srL1hOdU84c3kySXVjTGNDNVcxdDVZcDNBWWFGbkRLUE1GK2RkZjZheDc5cUUxZGc3ZFdxVmErNGtoYTJkTlRYK0daL0ZIMlhzSTVybEVsR0hraEtFOWRVamVQVDgxY3ZuMzRRejVRYjhYbWRUNldSdXhOeXFsb2VhZUQ4YVhrdkpiREJ0Yy9TQzgzTDlSdDM3ZGtiUCtIVmRkZHZ4cjBQUHl2SXRTdVVydC9FbWJvYnJ4UDJKNC94L01SWlM5dm55NzIvbXQ3ZVNKWTRsbEI2U01Oejd0dmdENDF4ZWY2a3VYYmJoRmJLOFhYV2dOV2FKUGRFNjlhNWFjeVdNQmpMYy9PcTBwazhZRFdTNCtkUXVSS29DRHovT28zSWtVQkY1cWEyUFVSRnBhRlI2aUpOSlFIcENaZWtHZ1V2UkhVSVI1R1VkcWtTQzd5Rk1hR251bFZoNVNhMDhHMm5MVXo4dkowME5DUEc4ZStNMVlEWGJYWTI3TVZFNXFkK1RabGVaeFVWdGtHTWZZR3NIT2FUb1c3RnhzbjhOUCt4VWE5cTUyOXhONnpxaWFpbXBpWTZVUjdEUDg2bGpJaGxFZndYUGJyVmlNeXZPQjVsOTFNZGRZejNEeWpTblUzTTR2cmQvaWtwM2o4amFyOTFlcWNrdnh2WWNLZEMydjJFRFZCM3lQM201cnlERTNXSnY1SVBvcnRRc3lvamh0RllNTkNYUGl2d3FwaGVtckdQZGpkaks0NVI2NWFlNmd0T3BGTVRJWGNkaE5ZTEtWczU1RW1taC9SWjRnd1JqOWdjMXV1eEIzRmNhOGNVMG4yT2xma0twSjREbXZKY0JiVFFZZSthMGhuY1NTaFZSdFdBMmc2c0c4S281L0pzYkxrcFhvYm5GVVdyWHlhQ3BOQ1dkNU5uK1JUMjc1VzVhOW5oVXhXL2xYZG94MTJnSUJyMXFUQjViWXhJdFdZN0l5MWVyKzhEbFVrcjMydDl3clFLMDNIcnRsWlF3ZUtQMVJvdzFIK21XMCt3MFljMXhwY0xrZmZRWXBJYmoyODUxNkQzQTQ5ZmlKQnF6ZlR1T24yYWFuOGxPZk1zZXRQTWo3dzdrZGpPQ2MweWw3QmFRWWk4RWs3aEZsbmhsamlYWDlKM2RRRlVlSm9YYy9IdHhjbk9PblUwS3B1K0wvaDQ0SEJZUXg1SjdxOHZnbytvdUVtTVNNLzZXeEFPaS9EWHJYSlhmVXQ5eWJqUlI2TktrVzZRcmYvdytlM056S3J3ZldXU2dhTkhEUHVWdm4rMVZ5RDlocGx2MUxrUjQ3WmV6OEE3cERUSmZ3MjhObnNIanhkOWVXbCtPc2R4T3l6eC8xV2pDeDlEOFFhczJQVWwzZDQxRng3TkFlWkpGQXUvNGMvY0tHWXBDOWpjeGErV1paeW1vL3F1Z0lyWVhxSEdwVjdsN0J5dW82TCtIUDNCY2pmTGo0aDRrM0RIK1NPbXYxSGpMOTN1L01QbUlZOHQ5aitZY2F3elplU1MzdjRJVHJjcFpsMmVKUCs4SVpWMVVIdnAycVRFNTVZdnoyS3NXK0ZlbnNFcHBzcGw1bjg5bGtpdGJ5L3VMOUViZERCSTdTNk5wcHFxOWV1bFhzZmwrUGp0eXQyNFFiNHRKSWxjbStJcHgva2VhNDFrM3ZjWEw5TGZLandPWFFFaFdJM0tWYng4dERPd0xXWGIyWEt1RmE2TnI0b0NaSTNtWDVyejNMV05qTXo1VElEZEhhUW9pcm9ISUxrN1FBRjZhbGoycXZpNEdMeStFcFFXeUw0MWJmRGh4RktYV1d5Ny9BSWN2Y0tFajBIc2JvRUFuWk9VSUpIVWFPbzdWWGg2aXhueDNMMkVYbW9aLzhnZmN2WFEybHNQbjlWSFQzNmd4T3QrNWg4eER1ei9oNDUxS0pUZFRXVnBzUXRFREtaQzdnZEU4aTZMcitzYWd1ZXBjWlVwdWZzRHVLUk53em1FZHpKYVBocjVwb0dLT2l3U09vWUh3WUFxUjh3YTFZNStQVGR2aFI5cUhHNiswM3RwRHhlMUdYeWlLL0lMbE9pblFpMWpZZmdYK21mMHo5d3JpT2VjNy9rUzh1Mi83Uy83dTN1Nmc3YWwrbXVmblhNeW1TeGdNWnJqNTFXbk1zUmdOSkovblVFcEV5aVYva09mYXlSWW9mTmNTZmhId3JWNVB5dVdaYzJyZ1ozTk9Zd3hMZTU4U3B0ekRQMlUydHlnbGkxNjZWMVdaNk5TajRIcWM1aCtyRkorSkZoeEhMTWRrbEFWOWt2aWpkRFhGNXZMTHVPNlNSMStKbldyNnJGa3FaTmZHczh2MENsNlE2Z1V0UkRRS1dvaG9SV1V6RmhhM1hvdU91dWxUV2NlY28xUnpydk1zMkJzN2U2Z0U4UTY5eFZaNU1yTXhyOFNIZVV2NzYzZ01ZSjI2VjBHUHp1c2FGT1dQcVo3bDdxUm5abTZtbXl1K1k2ajRLZzk0L083TDFyUHlWUm05aThDeHh5VlVUTFRpT1lwcWVtUlNpUFlaNm1qSWdsRWI1bmozSHMvQUljeFl4WFlVYUpJdzBrVCtwSXVqcjl4clJ3K1kzc2QxdHljZmw3aUNWc2liYjJpOXRvOXBPSjlUYWRmMmswemEvYjUrdGFqOVI1ai9BRi9CZmdSTzJUVUhBZmIrTzZqdWt3RmtKb2dBaDlJRlJwNDdENUNmbVJVUC9NNUxWSGNsVHZJM0JqOXVHY0Z1WnpjVGNmeDd6dCtKemJ4OWZ1QTBxUzF6UytsUlRsN3lPVUdoNWplTWNVeFZ3MTFqTVBaMmR5dzBNME1LSy8zTUJxUHVwWHM2N2NqU1VwTmQ0emF4Njk0d1k5YXpaWEtFcXRoRGVuWFhXbWVhTzhzSzE2eDdzYUhtQjhzSWJvL0dtK1lIeXd2MVorTkR6QStXT1lMclU5NnNXcmhIT0F0SmNlWHZVczU2RWFnSmZWZE85UXU0UDJCUHE5UVFlb1BRZzl0S2o4MFBsaU1NV1BobEUwTnJCRk1PZ2xTTkZmOEF2QWExSThxVFZHM1R2QjVaRzVyaW5FTTVNcytXeEZ0ZHpyMm1kQUhQOVpsMmx2dnF6WTVwZnRLa0p0SU93V3dmSHVNNE9TU1RENHkyc0pKVkN5eVFJRlpsSFVBdDMwb1h1WVhyMmx5VGxUckE0RXVidnAzcUYzQUsySVBlYW52VUx1a2l0aUwzWitOTWQwY3JZazEyeDZialRITWtVQkNTZW11WTlRR2swOVF5bVN4aU5KSmFnY2laUkdsemRSd3h0Skl3VlY2a21tcE9Ub2g3b2xWbEJseU1kOWxKN2t0ckhINVl5ZTFlditrdVgrVFkzU1hpWjVWNnN6WGR2Ykk2cENOMWR4VEF4cEdaVDhoWFMzOHUzRmFtYnkza0dYa1B3UmFJQzd4V1RqZjE0RU1PaDFERHVLNS9ObGJ1cHBxcDNXQjZZeXJOSk4wSi9BOHhuZzJXMlQ2anNKdittdUM1bHlOeHJLM3dPcXQzSlEwa1dhYmtHTWlUZjZ3YlVhZ0wxTllWdkN1emRFaXo1aUlTWG1yVFhQMDlqQVdieExkSzJNZjAvY2w5V2cyTXBTZElvYVQ1alBOY2VsTXd0MGI4SkZkSHk3MHRabTZUWnpucUxtR1ZoUnJHUGhMcm51REM3dnhNQjQ2MTUvaTh5VUlVSm5GRnZ3R0xXd3MxaitBckh5cjIrVlJ5VkNNNVRNVWliU3JHR3Fzam1aemQzRWJ5N1QxT3RkQkdMU0dXNDFaTjRtSlVpQkFxaGVsVm0vWWhSRW9yQWRTZEFPNXFFbVpSOGw3cFRSWHM3NHF4K3V3MWcyeTh2d1R0SkIwZjBqK2tGOFNOYTZyRDlOeW5aM3piaS9sM25PNVBQSVF1N0kwWm9saGZRM2RyRGRRTnZoblJaSTIrS3NOUlhPVGk0U2NYeFJzSnFTVFhCaitPYWlwREhFV1dmU25ieGppS3JjL09uYnhqZ0t4WFpWaDE2VTZONmpHeXRqNWJqVWQ2dUs1VWdjQnJjeWtlYXExNlhTU3dpTi9xZm5WZnpDVFlENjlMZURhQVp2blMzaDJoR21OTWN3cUk2dFppU0tzMlprVTRqcVdRN0tzVGxvUlJqcU5ubUlGVnBUSlZFUUZ3ZmpVSG1FbXdINmcvR2o1Z05oMzFKbytZTFlLeFRIVFdwWVRHU2lCTGM2RHZTbmNGR0EzTng4Nmc4d2wyQ2JYQitORGVPVURoSWRLY3BDMmlVa3ROY3h5aU5KSmRUVUxrVEtJaXoweW85SWllUkdJNG00OVhxdTA5S3M0YmZteHAxakw4YXdhS1BpY2JMUEFnZFNrQTYvTTE3Q3N0cTFHSzZqbmVUK2s2M25ldkxUb1E5bG0ra25DeHFxUktPcmVKcWxLZE5XenVVbzJ0SXBKSTU4bTl6QnNqaklrWTZMcU9tbFVMM01yVVl0cDhBVHkxS09uRWF5Y05ubU85NXROM1Zscm5KZW9KVmVobVN4NVNkYWkwWEhaY2NRWUI2NjZkUTNYU3BNUG5xWDFJbXN4OHJncWg3ZUN5dUowazBFZHdoOHlqcFhVMkwwYmtVMFg3V3liVDZSM2xZRmt0R1A2YURWVDh4VnFFM0YxUTNtZUpHL1lsQ1M2RFdKOHhaSjFMRFVWNFhHeEpuS1VJdTk1YkJHcENIdFZtM2hOOFJ5ZzJVamtuTG1uUmxGYkdKaFVHeXRzcW1QbGx1TDBFNjZFMXAzVW94SmJGdlV2MWttMkZmc3JCdVBVMklyUWd1Ui9WNXZLeGNWczVtdDdab1RkNTI2UTZPbG9Eb3NLRWZoZWR1bXZnTmE2ejByeWRYN25teittUER2T1U5VmM1L2kydGtmcmtNYnUxc3Jaell3UUpEWlJvSW83ZFJvaXg3ZE51bGVsM1lKT2k0SG5OaTVKeFVtL0YxajMycXZuL0FITGRZZVZpMHVHdXBMWmRlL3BFNzR2OEpyeWYxSGplVmsxL2Q5eDZyeVhJODJ3dXd2YVBXQ21halFxSHAxUmxDczhrNVpjMjk2dUN3YUxjNTJaZDdsdjlLMWlQVDFwai9sWHhyZDVKeVM1bVRxOUxmek1mbS9OcmVKQ3Irb2k4RG03N0M4aGh3OS9rSHlWbmxOM28za3dBYU84VWJuajZkTmpqcW84SzJQVW5KSVdiYXVXdjA4VEw1RHplZDl1TnppK0JvMXJkZm9rOVJYSFdyM1FkUE8yS3l2dVUxTE4xUkhGVUk4eUVOcDhLejNLakxLUW9zbW9wNmtOYUQ3cU5RVUNNeDBwcllVaGV5ZlVpcHNlUXk0aC9LM2txN042RmVLMUdjejZJYXAzSmFFMFVNL1ZxcHZKOW9QcTB0NE5wd2tKT2xGVEZRZUsyaTFjaTZJaGFHazgycmFmQ3ExeTVxU3hpSkdRMHplUDJuSXhZL0tuUmRSTkNqTm9LbHFOU0dzc3VwMEZReW1TeFFpelV5bzhUWTBxaEtuenZKeTI5ckRiUm9XTTdBRStGYm5JYkNuZXErZ2l1UzFTNnlQZ211cFk0N1dGZ0pkUE1SMkFycytZWjZ4NFY2VFZuZmNZcUs0aisxd3NRUU5kZnRKZGRTYTR6SzVuY3VTYlQwSzIxdjZoNnJXU1NMRXUzZjRBZDZ6M3VhcUtxclFXamp1cnE2U3pzb3pMY3lkbEhoOHpWckN3Wlg1VVhBclplWkd5cXNzTTN0aHl3V1ptOWFQMUNOZlMvbXJvZi9iOGFjZFRFZk81VjRFUGJjUXRUanB6S0RCbHJiVXkvUFNzU2VaZndzaFJmMGt1Tm12ZHZUS1JsTW96cWJkVDVsT2ovQUhWMzltN3ZnbWRCUE0zd1ZDMFRUeXYxTG12TVlwSXAvd0FaRWZjenFpblU2bXA0UmJFNHhpUkJzcGJ5Ym9QTFZ6ekZCRURodVpZTVpnb29RR0k4MVVMMlMyV0xkbEluSTAyZ0NxVFpZUkJjR1Zab3VWNWVUckxkNUdXMkRId2lzMFdKRkh5M0ZqWHMzcHV3cmVMQkxwUEZ2VnVRN21hMCtFU1B6V3EzdXZneUFqN3VsYk9RdkVaK0kvQjdSbHdpNEZyenZLV2hPZ3lWbkRkeGo0dkF4aWY4eEZlZCtzN0drWjl2ei93UFEvU2Q2c1pRTkpqZXVEVWpyMmhweUhPdzRUQjNlVWxHL3dDblRXT01kM2tieXhvUG16RUNydUZqTy9kamJYU3l0azNsYWc1dm9JakhZZHNEZ0ExMFJKbXNnV3ZjdmNucXp6bGRkZ1A2a2V1MVI4cTl0d01XTmkzdGlxVVI0cG01MHNxKzV5ZWxkTzRvM0s1SmpnNTdtRW42bXhLWHNERHVIZ1lQL0pyVlRNc3E1YWxGOVJzWU41MjcwV2pXTVprVXZMRzF2b2pxbHpFa3luNU9vYitldkVMc1hidU9QN1cwZXNSYWxGUHJSTHh6YjAxcXhHZFVRdU5HTnJrRU51SGpWVzh0YWtzR2RCdU5DM1VVaGNLYW1vUmdNcDBwc2tGQnJJK1lqNEdqanZVRjBrbjZwV2pMZ1ZWeEdOMzBqTlVyNzBMRnZpUis0MW4xTEZEdHhvMUZRVWcxYVFmS3BMZXJHeTREdVdUYWhOV3B6b2lLS3F5UExrbldxVzRzVUFCSk9ncExVUTZqajJyVnVFYUlpYnFJenlhZEIzcGx5UStDR3BOUVZKUURScUVaWCtTdGJLTXZNNEI4RjhUVTlqSG5kZElvRGxRcE9ZeUYzbXNoQmJJbnBRQTd0VDNJcnByV0hMQ2g1aitvWktFM0pkQk4yZGhaMks5Q0E1N3NlNXJIdjVGeTg2c3RKS0k3WjQyUStZYlQ0NjFYbzB4OVVSeVFZNkM0OVlNV2xQYnhxWnlrMVRvSzdjSXV0VFFQYUczVTVpN211bzlzeEE5RU4zMi9LdXQ1RHM4dDA0bkw4MHZiNTlocHVZeFVsK0lkazdRK2t3WTdmSFR3cmVNc3lYM0h2eGI4bzlHemZxWTlKOVBFL091YTU5YmhLamZFdDR6WmtlZmhhMnYybWJRSkwyKzJyWEpzbE9HM3FObkR1MDBaY0JaU25wclhINzBiVzFuTGlBemF0Ujg2Z3gyeC9iMk1VUTZDb0ozR3g2Z2tPMUFGUXNjSEZBQlRPUDVCY2ZrdVM0Q1poQ3NWK01qR1hJVU5EZXF1bW12aDZxa2ZhYTltOUtaTWJ1SkhYV0svSThlOVg0Y29abTZta3Z0OGhYazAxbmJ3UXpYTThkdWQ1UmZWZFUzYTlkQnVJMUlyZXlxSkp0ME1IQjNPVFNWU25YZVZqeG5OK0w1TDFCNkVrajJrcmdqUXgzSTJnNmp3RGFHdVQ5UzQvbTR6UzQwcXZacWRuNmN2ZVhmMU5tR29OZVJWUFNTdWM0SW5sNDFZdjFodXN6YWlaVDJJaURTZ0grMGdyclBSOFZMTDE2RWN6NnJtNFlVNkQvTzNQMU1rNFU2cXFNaS9rT3Y1NjlpakdrVHgyMW8xM2xHbmpFOXZMQzNWWlkyUWo1TXBGWjdWVlEzWXlvMHkwZTFkMjExd0RETXgxZUdFMjcvYkN4VCthdkV1ZVc5bVhOZHRmZWV1Y3ZudXNSWmNyZVFxZHA3SHRXZmFuVFFzVFJKUVdZbVhWdTFYN2RqZnF5dEs1dEhNVnZFaDAyL0twNFdvb2lsTnNVbXNsSzdsRk91WTZwVkFqZEdEeEVkS295aVRxUkczMlZzOFJCTGQzWllScVZWSTBVdkpKSTUwU09OQjFaMlBRQ2pnWTF5OWVWdTJxeVkzS3Z3dFczT2JwRkZjeVhMZWRnR2Y2R0RGMmV2bFIxK3FsMFBiMUdWMFJUOGxCKzJ2U2NmMGRCUi91eWRmNlRpYi9xbHVWTFVWVHRHMXQ3a1hMeXRhWGxzdHcwWkhyM0Z0cWdqQjY2TXJGZ1gwNjdWT3Radk1mUmphZmtUcTEwUytWUzVoK3FGVmVkR2xlbGZPaGFZcEk1WWtsaVlQRzRESTY5aUQ0MTV2T0VvU2NaS2tseFIya1pxU1RUcW1IMHBsUnc0dFYwMWFyTmhkSkZOaGJwOVNGSDMwcjArZ01FTjZnSmFqcTB0OTNuUDNWYXNXNjZrTnlZdFBvaTFQY2RFTWpxUnpuVWttcU1uVXNvVFBRYStGSkRxbGR6M0tZN1JYaHRCNnR3QjEwN0N1aTVSNmZ2WmJyU2tUSDVoenExajZOK0prTllvMTRGdTd0L1VsYnFGUFlWMitKeTIzanFpV3Awdkw3TVpRVTN4WVVTUng1Unp0M09BQkgwN0Uxajg4ZzV5akZkSkRuM28yNVZaclBGL2IzQ1Bid1BtSE10N2RMdldMWG9BYXU0dkxiZHVLVk5UamNqUHVUbHhJM2wvdDVZNG5JMnM4TWpESHl2dGtpSjdFMW1jNndZd3RPY0ZxaVRIelovUzJLWkN4NGZoSXZyYnowNGdpNmplZTljRmF1WDdyMnhMa3BVNGlYSDh4YjUrSVpqQXllbEpBeFFmQmdLMU1iTXU4dXVVbHdaWG5iVjFFN2ZjcTVxMEhvUTJ5Q1Job1p2aDg2NkplcTdUancxS3Y4T1ZTazVuanQvYW8rUnZaZldubE9zckh3ckNuelgrVGMxTENzN0VaUHl2TzIxemtyZTNoQmtFVC90ZFBnSzZqbDNMN2l0dVhDbzYxVnlWRFZRQlhISFZod0tBQTRGQmdxRHBUUVZCQXByRVVMM1E0NWF5dFpja2t0VGVRWTQrbm1MSlN3OWV5SjFKSVVqY1lXODRGZEw2YjVoNWMzYWsvRFBoMy9uOHpLNWhqUWNvM1pSM0tISHU2L1lGdytDdTd6TFdyM2txWmJqdHJaeU5oNzU5c2pTaTZLZ0NVSHU4Y2E2Qi9FZlBXdlFidCtWeEpTMTJsYmxIcHkxalpNN3NOYmR5T25ZVURtdkdyMjF5WnhtbWxoQWtzMk1rL1VlUmd3VDdFWWFyOGpWYWNtMG92Z2lqa2NxVnJJbTF3a3ZpYlJ3WGtTY2g0dFk1THRPeWVsZHA0clBGNVpBZnZHdGVWY3l4WFl2eWgwZEhjem9NVzk1bHRTNmVudkkvM1JqdUkrTXBsYmZYMWNMZDIrUUlYdVk0bjBrMC9zTWEwZlRHVXJPWkZ2cDBNL251TjUyTEtJU2JrM0g0N3UydEh2b2hQZTdUYnhBNmtpUWFwdTAxQ2J0ZEYzYWFtdmNKWDdhYVRhckk4WGhpWFhHVTFGN1ljV1FyZnM1ekdTQXdZalR4OHA2MVJhbzZHbW5WVkpyMmRSbDRyZHdudGE1TzhpMCtIN1RkLzFxOGc5Vld0dVczMkhxWEpMdTdIUmUxWHFLNXBJMW15dzJPaHQxL1BXOWp2d0dkZDRoM1hRNjBaSUNZNWlJYU9yRUhWRVV0R01KNHh1TlVMa2RTeEdSVzFoeHR4N2dXaTVYY2NmamJNM0NvdXBKbnVHYU5XNmRmS2taQS9yR3V5OUdZajIzYnNmOXpTSzd1TE9YOVRaTWQxdTNQL0FHOVcvdUlmS1hVMlludU1SaVdNZHNyR1BJNVBvUkNOZjlHSHdlZlR1ZXllUFhwWG9iazVhTDJzNGRKUjhUOWkvSDdha2ZtR3cySHhxWUhIMnk3dE4rM1VzVUpPcGxkenF4ZGozWTBtbEZiVUdPNlQzTWY4S3VETGpaNFNkV3RweXBQeWRGa0grYXZHdld0blpudC92akYvZDl4NmI2WXU3c1JMOXNtaXA4aDkzYmpFNXFXTkxPQ2ZHVzgwbHZLb2tiNnJXRjlrakVkRVRVNjdBZGRSMTZWcGNyOUVmeWNKWDNjMnprcXhWTlBhYkhudlYwOEtOU3NiaUdleWd1WVRyRFBHa3NaSTBKVjFETDArdzF4dTF3ckY4VU8zVjFDT0N6RTFYZXJKVXpvb1M3aGZ5MDYzQnlkQlNsUkVtc2F4cDhOSzAxSGFpcTNWa2RkUzdtK1hoVkM5Y3F5ekNOQnNhZ0pTTnovMVg3cm5OdC9xN1RwcFZ6QjJlYkhmOU5TREszZVc5dkV6YURKd2VoSkc2a1RuVU9XNzYxN3hnWExLc3BXMXBROGR6TE43K1J1dVBwSlBFVzR1RmpuU1lnS05HUVZqM0ZTVFBjK1VPTnl6Q1VYMEU3ZzdVeVphV0VxR2VWZFl5ZmlLNUwxQzNiY2J2UW1VdWRXVzNVMTdCY3J3UXRvaGtnTGU5dFYyRXVQaDhLMU1UUHRYWUpwbkhUdHVMSVhsR2VISjhoYldXT0JhemdjUExQcDBPbndySDU5elMzQzA0SjFiSjhheTI2akhtM0JNZHlmSExiWExNalJqeXNEOEs0VGwvTVpZODl5Tk9kdFNDY0J3RnRnTE5zZGI2c3FucSttZ3FYbXVXOGllOTZCaVdMSlpDM3NMT1M1bWNLc2FrOVRwMnJPc1daWEpLSzZSelpnL0wvZG5LNVAxclMzVVJXNEpVTjRrVjYzeWIwVGJoRlhMajFGNWU1YWxWdzJIbk1iMzh5RnQ1MURHdDY5QlE4TWVDTCtOaHVNZDFEWVJYa0pwQ2kwaHJEcUtBMWh3S0FLaGd0Tm9DcHpScXlsV0FaV0dqS1JxQ0QzQm9jQkdmelJYUEE3MTJDTkx3dTZrTCtRRm14MHJuVnVnNitnemYzYTd6a25PVmVpcmR4LzNGOGZ6NnlwWnZQRmxSLzdML3dDMzhoL3k3Q3BuTVFseFpGWlo0eDZ0czZFRlpFSTdBam9kUjJybzVJME0zSFY2RzZPclhBenppbkpjMXhUSzNmMFZpMlFzcjRicm13M2lKb3JoT25xQXQyM0Rvd3JENXJ5aU9XbHJ0bEhwN0RuTE01MnB2YXR5ZkZkcFo1L2RiTDNFRXR2ZWNUYVMxblJvNVkxdTR5U2pEUmhvUnAyckhqNldsQnFVYm5pWForWmFsazNHcU8zbyswWmUyaHc5M2g3L0FJbmY0NzZadFhraVNWVldXNHRXYnlzWFg4VWtKNmJnZW5RMTJWdXRLUGlUOHFqQ1Z1VmljYWZlZ3R6eE85T1NuVEwzYnptMFVSNHU3aVlwTUEzbU03NmRQVjdJZkE2Zk9wYmw2Y21tM3FqSnMrbkxOaDNJTlZqTGgySXQzc2pMT3MvS01MZHVKcm1DOVc3TXlnSXJyY1JxTmRuZ2RWNjF4M3FXMDUzSXpmVG9IQXRMSHJhWENKcERXcFJ0UHlWeDhyVkdheW5VZTJVdnArVTlxdDQ5emJveUM3R284WjBJMTFxM0tTSUVtSnJkb3JHTUh2VVN5RW5RZTdmU2NldldnM1VSVHVYMmpKbDdHOGVhUzF4MXdoc3NyY3drQ1FSbHc4U3E1LzB0ekZsOVRRN2RmRHVPcTlJNXl0M1oyWExiNWxOditaZmtjNzZreGQ5dU4xUjNiT1BjTFNHSkpseFdCc1VqZUtQV096akJNZHZBby8xSmlPdmdUOFdQM212U0UxQ0tWVGhKSjNKT1NYMiszRWhzampzZGlNRmticWFScFpwaHZ1THVUUXlTT1dHMVFCOCtpb3RPbnRoRnVUNzJDRGxPU1NYY2hYZ3RxWWNHWjVPbHplVFBQY1IrTVRkRVdKdjZTSWlnL092Q3ZVdWYvS3pKVFgwclNQY3VuMm5yUEpjVldNYU1lbmkrOFR5bnRydzdMNVU1SytzUzl4SVEwNnJJNlJ5a2VNaUtRRDI2L0h4cG1INmh6YkZueWJkeWx2NWR6NkMvT3pGKzB1RVVJS3JHaWhWVUJWVURRQURvQUJWQ0tjZ05wRDZQSG9GNmpyVjZHS3Fha01ybzZUR0tpYmdPdFc0NGFpcWtMdjFaRzM4dTNWQjk5WjJUY3BvV3JVYTZrV3hKT3RaemRTMGdwcEJDc0FSb2V4b29KVU9TOElpdkdhNnNmMlZ4M0srQnJwdVQrb2JtTTlyMWlZbk11VFF5RlZhU0tUQisrY05jdkZjUk9pNjZodENWcnRiWE5yT1JyRmszSjNjeFliSkU3ZytVU1I1cXprSkdtOEtmdnFsenl5cjJPMGFXZGsrWkEyZktDeE5rdHpMYkNjc0FkQU5UMXJ5cXpLYWxST2hrU1NvSHdrOXRKYmt4Vy8wd0hkU05LYmtLVmRYVU1Uc2h5WENXSVlYTjBpRmZ4S1NOYWZad2IxejZZdGhja1o1blBldXdzN2lTREhXNGwybnBKNEd1eTVkNkl2MzRxVTN0UWttK0JuSEp2Y0RPNTVuU2FVeDJ6SHBFcHJ2dVQrazhmRXBKcmRNZkczMWtCWTQrNnY1aEZib1c2K1p2Q3QvSnlZd1ZFV3JObVZ4MGlhSzBNZGxndlNrSVZrVFQ3OUt3SHF6b2J0TGRoMTZFWCs0d2x6QmFyY04rRTlxOHd1WWNveDNHVERKVXBVSThWU1pZRHFhQUdLcVJTcU5aRVpibTNFTVBQOVBrOHRiVzF3TzhMT0M0KzFWMUkrK3JkbkF2M1ZXRVcwVmJ1VmJnNlNra3h4RHlyalUySm55OEdTdDVzZGJJWHVMaU53d1FENGdkUWZsVEhoWFZOUWNXcFBnTCtUYmNYSk5VUlVsK281bmlwTS9uY2wvdy93QUI2L1QyNk9GbnZGQjI3cDVBZktyRWFDTmZNYTdubFhJYmRoS2MvRmM2K3J1S1RrN3kzVGRMWFZYajN2N2kyY2Z4UERyUGpFRnh4OE9MQytIcjJRM09SMTBCQ281T3dkT3EvR3QvYWtqV3dIMFFWSUVQbmVOMitTQWtpS3dYSVBXVUtQT0Q0TnBvYWphTGQvRlU5Vm95dlhIRE12RXU2TXh6L0pTVlArTFNoUXB5d1pyaHFRMTF4ek95VHdHMWhsdGNuYnlDU3l1ZHAwUngwOHhIUW93Nk1QaFFvVko0dHh0VVRVMXdmMjZDMzN2MXR6ajdXL3ZMVTJsMlYyWGR2dUQ3WEJJNk1PNms5dmxSWmV2S1VvcWNsUjlKQThjNURIeGozUnRybTVQcDQ3TndwYVR5SDhJZlhhcEovb3R0KzZzcm11TjV0cDA0clU1M0tmbDMxTG9rajBCTkNHSHpyaWJrS29zeGxRYWJTRHBWSnFoTlVFbHRPOUJ0aUVHMVZ3M3dxQjZPbzlhajlIMVVWZWpPcUs3UTB5TVVjc0RSeUtIamNiWFJocUdVOUNDRDRFVlZ5Sk5hcmlpVzMxRVRhWVN5czBaYkY1clRmcVhNY2hKWWtiZFc5VGZyMEduMlZzNC9xelB0L3IzZjVrbVpWNzAvaVQvUnQveXRvSStEeC9yeHp5aHJtZUp0ME1sdzNxQkNQRlU2SXYzQ3FmTWZVV1prNlhKK0hxV2krQlBpOG14cktleUdyNmVMOTRYSTI0Z21rekdOaTBHZy9lK09UOVVkQlBFUGwvN0Q0VlZlM0loL1V2dFFVSlN4NTBmMHNkMjAwTTBTVFFzSGlrQVpISFlnMW1wT0xvK0pxMXFxb21MQ0xxQ2ExY1NCVnV5SmkzdDk3YTZkQlcxWnRWWlNuT2d0ZGxZNGo5bFRYMm94RzI5V1ZDOGZmS2RPMnRjbGtTM1NOaTJxSWFrVkFTVkFOSUlVMFFobGlaL3NxU01Hd09WRHA4ZGFUcHRtaVZ3ZmlOYXQyMjRjR1J5MUt0eUhodUlGbkxjMjhmcFR4amNqTDAwSXJUeHVZWEhKUms2eFpEY3Nwb3JsdDdsOHJ3N1JMY1IvVVdpcm9wMDE3VjBUOUpXTDBheGUyVElibUxPQ1Q2Q0R2dmNya3R6ZFRUUTNKaGpsUFNNZUZkRGgranNXTnRLYTNNalZzcnQzZjNsM0swdHhNMGp0MVlrbXVseCtYV2JVVW94V2hJb0lZVDNBVG9POVNYTHFqb2lPZHltaURXVWR4ZVNCVTZJUHhOVkMvbk5LaUZhM1RaYjdTL1hHV3UySUtwMDZueEpyS2MzSm10L0tWaUZSbmNYOTNldHV1Sk5JL0JOYXYyY2RMV1J3WE4vVU4yKzNHRDhKdGMyWXVwcllRTWZJT3dyeUNlVktVZHJPK2pqeGpLb3lGVkdUaGhUV0Fybk03N01IOTE4ZndVZ2h6Zkk3dExDMHVEMTlGRzZ5emYyRnJZNUpneHYzYXkrbU92NEdaelBLZHEzNGZxa2Fqd0QyKzluc0JrTHZpdU90YlhKY214OE1VMlpudll2cUx0L1g2aVNTU1ZXSG5KMTJxZWxkNmxRNU51cFR2NGdQWXZqWjQxZWN0NHhZeDQvSll0UmQ1Q3h0eDZkdmUyOEozeUxKRW1pNzBBM0tkUERTbndhVWxKcXRCOEo3WFV5V3hneGNHT3RNdEhHMDRsSW50NEhjbUNPU1FhdExIRWZJcnNOTnpBYTExMXV6YnI1aVdyT3N0d2hHS3VKVnI3dThZTmNaaDdackJzblBIaVBWbGxpeDhCOUpWRTdtUjBhUmYyaFhjVDAxRlZYZ1FjM0o4RytCWDhXcTNOUmI0TFQ0OFNhNHZ6bURDNDU4VGxFdXJtUzFiLzRlOE1UVE5KYk4xVldic0dqUGw4eDdhVm1Yc1NVWnVNVTJ1Z3U0bk1GYWpzbW02Y09uVDhpNThjNUZhNTZ3YTdnamtnYU9WNEpyZWJUMUkzVHdiYVNPcWtFVlZsRnhkSG8wYTJMa3E5R3FWS09sQ1JrdVlJbmlqa2tWSG5ZcENyRUF1d0JZaFI0bmFDYUJQS1NUU2I0Z1hVSW50NUlUK21wQSszd3BBdVEzUmFNODVSam9iekMzZHJjcm9WWGNyZnBSeUllaktmQWlvMmpuTXEwcFFjWkdtK3puTmJua3ZGZlN5QkJ6R0prK2l2Mi83ellOWTVmN2FkL25YRDgweGxadTBYMHkxUm4ySnRxajR4MEx2TkhyMUhlc2U1R3VwWml4TGFhaG9QcVZybC9NYlBqNzIxczBEM2Q5ZGhuaXQwSVFDTkNBMGp1MnVnMVlEb0NUV2h5M2sxM05rMUJwS1BGc3M0bVBPL1BaQmE4ZTVGWnUvZGZKUnlMOUxad1JSQWErbGN1ek8ybmZ6SVZDL2tOZExqK2o2US91WFBIMkxUNG15dlQwdHRaVFVaZFhSNzlDMDhWNWxZY3NzcnVlenQ1N2Y2T1JZWjFuQy82aklISVJrWmd3R3RjbnpUbDF6R2xzblNyWFFjL1J3bTR5VkpSSlVSdFdLb3NscWMwYkdnNHNTa0p0REtHV1NKakhOSHFZNUFOZE5laEJCN3EzWWp4bzIyNE9xR1hZS2FveU90d2xoZWx3bm8yTXJnM2R1TlNMZVYvKzBUNHd1ZnllUFd0SndqZXBKZlVVYmR5Vmw3SmNPZ3VrTnFSdDIrUFlpcjl1dzBHVndsb3lzVVhYd3JZZzFDSlVlcks3eVROMjFwWjNGMWNQNmR0Ykkwa3pnRWtLdmdBT3BKN0FEdWF4OHE3SzdOVzRhdHVoY3RSVUZ1bHdSbmVONTVMZFppMHNieXcrakYrNVMzUXVXbVE2RXFKUnB0REhUcUIrSDRtdGptdm91NWlZbm55bW5OVWJqVHI3ZXN4T1crcXJlVmxPekNEMjlFdTdzNmkyUEdSWEVPSjFpWWtWTk1vUFRGb2JVdDFidDhLc1c3TmVJeVZ3WEtLb3ExdFNJNjFHODBxcjl0UlRta1NSaVJ1UzFsdEprOENwNlV5M2M4U1pJMW9VS3h1TWRKQWJXY3FYVml1MDE2emh6M1dvdnNOUEZ2MjVRVVcxVVp6OEh4c3ZxUEdTQy9WZE93clFqa3pYU0tYTExicTBSRjN3a1cxc3p2Y2VmOUVWTytZVEtWM2x1eU5XeUx4L0dEY1hTd0Q5cks1Ni9BQ3NqbVhNL0xpNU5tWC9BQjBuMXMwSzA5dk1SQmJJbWhENmVZZytOY0hQbnQ5eWJUTGNNV0tSMG50N2laQ0N6dVFPdzFweTU5ZlhTQzdoUnVLa3VBdEZ3ZkRSNmFxVzArSm9UNTdreS9VVjdmSnNlUDZTZUZaRE5ZT0tEQUdGTkFWWG1kN0pnTTV4Ym1ucE5OYThkeUFreUtvQ3pMYTNDK2xJNEEvVkJyb3ZUZVFvM1pRZjZscDdERzV6YWNvS1MvU2VtY1ZjWVhJd1I1ckdOQmNSWDhTT2wvQ0ZQcXhhYXA1eDFZRFhwcjJydERtaW4rOW5KWU1ad2EveFVCRTJkNUJHMkx3MlBYckpOUGREMDlRdjZxQml6TjJBRlIzYnNiY1hLVHBGQlNyb1pGbnZZak5Zdmpsdkhnc3ZKa3Jtd2lqMXhOeWtTTEx0VUIxaG5RSVZidnMzNmcrTllPQjYvdVJ1Umhlakh5dXRjVXVnMm9YN3FpbHhpdWdxTm43YmU1bDQya1hISHRoK3ZlM01FQS9JclNOK2F1a3YrdXVYdzRPVXU1RWp5dXFMSy9MSGVXMTVlV0Y3RUlMeXduZTF1WTBjU0lKSTlOZHJqUU1PdGRMeTdQaGwyWTNvSnFNdXNtdFhkNnJTZ25ESmxiU2E0a3htU21zR3VncG1XSlkyVm5qR2l1ZDZ0NGREcDNwWDhLTnlXNnJUSHhjNHR1RW5Hb1hMWm5rZVl1b01wY29MYTl4SVE0NjNSdkkwMFpEU3kvWk50MmdlQzFTdDh2bHNsdStybyszYUs5ZnUzV3B5MGxEZ3UzcGZ0NGR4SjhrNTNmWnlPSC9oNTNoczdiMDdtU1hxclQzQ0VQOEFURFhUeUllam54YnBWZXhpU3V4YldsT0hheXhsY3dsZVM4dlNLbys5OVg0akxsUEw3UElZeThodEZtaXZMMDdQUmxqWkdSR09zaDNmaDhxandOVlhibFdqVkNubVpzWnhrbzEzU0xOL0RWOVUyVDVLN3lGMFZMUlNmaXdENkZ2NlczeHJsUFU4YU9DNmRTbmhON3BWN0RmbzFMRHRYTnhWUzIzUU9MUWs5cWQ1QVBNS1o3bUxpV3RiSEZYTVZxMlV5RHlmdTZlOVpvbzdZUnFESmNOSW1qZ0xxQUZVK1ppQjJyWDVQaVhuZTNXNU9PM2pUNUUyTjVzcmk4cFMzclh3OFV1c3lyS2UxK1VTMk56YWNndDhzd0g3Y3hYRVNzTmZGWXlxNmZjYTdtVjNyM0wySFIzcnNrcXpkK011bHVLK0ZGb2Evd0MzSnhyY2FpczdUSERGUFpIMDdpeUdwRzl2TjZvYzZseEozM0VrNjE1N3piRWxDODNLVy9kcW45dW81cTVGUWxTTDNMci9BQjdTeG0yQThLeDNaQnZBRnJxZE5LQ3NWRDVnYzQ0NmE2VS8rR3h2bkNrZkhvYnVCaElOcmtFSSttdWdQY0VlS254RlhjVEJxbVY4aTRub3lWd3VKa3NiQ09DV1QxVEhxRkovUlhYb29QanRyWXNZKzJPcFVjK2dUeWMvcHJzWDhScWxuWHRxb2l4WWhVcVhJc09NdmlMckhtWnJkcHdwanVGR3JKSkc0a1J0UEhSa0ZaZUprdXhlamRTcTR1cFp5TEt1MjVRZWlrcUZkNC83ZkxZWlpjemxMMXNqa285M29IYVZqalp3UTBtaEpMT1FTQVQyMU5iblBQVTkzUGlyZTNaYjZ1TmZ5TWZrL0lMV0UzSlBkTjlKYVdoTGRBSzVWMjZuUktSeVdxcjFQVTA2TmxJVG5VR1NWRUhlbnltb2lTYkdVMXl6ZEY2RDQxVm5lYjRFMFlVR3g2OTZpSlJPUWFvMnZiUTA1Q01wTUdPZksza0xFcEw2aEtudFh0dnBxTUxtTEZTNG5sM1BzeS9ZeWQwRzBoOTYxOWpsRHRKNnNBOEQzclJ5T1c3VldKczhtOWRUM0tOMWFFUlBtYnJLM24wMFVaM2s2SW8vbE5ZR2JlV1BHc2pyYmZPbzVYMGw3NDN4MlBHd0NTUWJybHhxN2ZDdk9PWTh3bGtUL3BMVnUzVFY4U2FOWnhPRk5PUVFob29JUVU5aERpbWdHZWJ5OXZoOFBlWlM0QmFHemlhVjFIYzdmQWZiVXVQWWQyNG9MakprTis2cmNISjlCUjUvY09mUHl3NFMzalRqU1gwZWwzbE0wRldKSTM2RllWUGtsZGxQVGNRSzZLNzZmdTRhODI3R1U2Y0ZGUDR2b1JtWHN5VWx0MjdLOU12dUx2Zy9hWVlLeGhpNHJ5L05ZbTJLamY4QVRYQ1NRU3NlcGtFWkJqVXQvUnFoSDFQa0p1c1l2N2ltOEMyMTBpazNBckRCWGMzS2YrSWN2TG5vYmVSWHlNOHNOMWNTSnB1S1JyTkZJRTNhYWVRQ3E5M25GN0tleWNZdUxmRFZMNE1raGdRNktqcmczdTN4aGVMNDhjbjVHcHowa1prdnpkeFNRTWp1eFlSbjlraWVSU0Y2VlR6K1UzbmVrN1Z2KzMwVWRmYng2U3ZidWJWNHFsK3cyZHcyYXMvcmNSZXczOXB1S2V2YnNIVGV2ZGRSNGpXc2E5WW5hbHRtbkY5cFBHU2t0REV2ZWZnVVdBbGs1VGlaMm1HV3ZWanVNRzUxa2x1N2s5R3MyR3BMTWVyUm53Nmo0VjZMNk85VFhWVEduSGRDSzBhNk84aWQxMmRlTVgwRTd4SCtGM0s1S3pqdmVhNXVleGxtQWNZYkZGVUVRUFVMSmNNSExzUEhhTlBuWFkzcys3TjhhTHNLTnpNdVNmR2k3Qnp5ZitGYWEwc3BMbmhuSUxwNzJNYmt4MldaWm9KdEIrRDFWVkdqSjhEMW9XczY3QjhhOTRMZVhjaStOZTh4T0Y1NHBMbXl2TFZyREk0K1JvTCt3a0dqUXlxZW8rdzl3Zkd0L0d5STNJVldsT2cyYkYrTTQxUkdaQ2NwYVAxNnY1Ujk5VWJrdENyY2Voci9BUEREamllUDV5L0kvd0Q1bkllbXJmRllJZ1A1V3J6NzFCNDc2WFVodUs2S1Q3VGRiZXkxMDZWbjJzWWZPNFNFZGdOTzFhRU1VcnU2VVBuY011RTV0eDNrc2xyYjNXTlNHNHgxejlXZHNVTHpGWkkzTGtQc0w3U29ZanYwOGEyT1d4VU4wZWxtanl5bHh6dDdwUmxPUGgyOGFwMXAwVnI5eFVjN1p3QzN2SjhoaGNWZld5N2kwbUduQ3p4aCtvMFVIejZhL0N0VGZUaEtTL3pjRHJJNU95S1VidDJEcHd1eDhML0FQN0lXRXJQbUw2MnVKcmpEYlliVzBhWUZmMnlGM21WZGVoMmJsVWtlUDJWemZQcGJuR05QRXExT2E1aGYzWEtOSlNqeHAxbW8raVNlMWM1NVpUM0VkbnpjZWxhWTJ5bWFISlpPNWloZ01YK3FzUWNOUEl2UnRBaURxeEdncm9PUVlFYmwzZGNqdXR3VGI2dUdpOXJNcm1tVEtGdmJCMG5KcEw3eUd6ZVk1Zmk0RWpTL3RiZ3gzY0ZxaGEzRytiMVoxaTBkdzRUWHpkMVVWMU56a3VJNE9TakphVjQ4TkRCdGMyeUhjVUh0ZXRLOVpvNndySDVSMkZjdEMybzZIU09WUXQxT2tjWlA1QlF2M2xHSVlRcXlCbkRTT1didWE1NjZuSjFaZmpvTkpZdEtxVGdUUmtJZWt4UFFkS2kyajZpZ1ZWRlRKSkliVWFYTSttb1g4dFZydDNxSm9SSTJRc3gxSjFxakp0bGhCZGpHaW9ocWNZOUtlb2lxRVlDa09LSHkzSHcyV1JYSWVsckU0MGNnZGpYb2Zvem1zYmJkdWJPTDlWOHRsY2lwd1dwQU8yUXpNd2dzNG05UHNYSTZDdXI1dDZoczJZOGFzNXZsWElMbHg2b3VuSHVMV3VMakRzQTl5MzRuTmVVOHo1cmN5cDFmQTlNd09Yd3g0MFhFbXpXV2FJUTA0SVUwNElRMDVCQ0NuTWNHRk5ZMHFYdTJ6THdISTZkbWFGWC9BS3BtWFd0ZmtLVHpJVktITXY4QVpmZXZtUTExZTJDUktrN0s4VGpRSVFIQkduaU90ZTlPU1JlbmNnbHJ3SUtISjVERlhyVDhidjdqRUlkUDJNTGEyN0h4TFc3N28rdnlBcm51WThndzh1dStDcjFyUm1WZHR4M1ZoNGZsN2l3Mkh1MUxDd0hLNHRtdlJjcGFobmpKL3dEZVJIVjQvdEdvcmd1YWVqN3RqeFdYdmg4U1dHYjVhcGNWRjFyNzBYcXd5VnBrYk9LOHRaUmNXc3czUnVPb0krK3VSdVduQ1RpMVJvMG9UVTFWYW9SNGJ5K1BpTVV1SHl1SXZObVF5OHpXMlR0aEZKYnViK2NlaUdBZFhRalVLZkw0VS9Ndy93Q1MxT0U0K0cycXhkYStGYTloZ1g3VTdjNU5yd3VYSHZMTExBbVU5L2VOWSs3RysxdzJKdThyYnhOK0UzVHlyYmlUVDRvdmI0VnRlanJTOHU1UHBja3ZnWm1hL0VqWDhwbE1kaXNkY1pMSlhDV2xoYUlaYm01bE8xRVJlcFpqWFpGSTdGWlhHNWZHMitUeGx3bDNZWGFDVzJ1WWp1UjBic1FhUWp5NS9FNWk3WEhlNk5oa0xjQkpNMWltRjZvL1NlMWsybzUrZXh0djNWZjVmTnFUWFdpNWhUYWsxMW94ck56YklGUGNEVnRQc0ZXcjdvaXhlZEVla3Y0WjdPSmZheXltVWhudWJtNWxsMDhHTWhYUS9jQlhDNTYzWDIyTXN5OEJzZHRHTlJUck1FTm15UlJBRnJTakhRck5sTDkyK1RmOE84Umx1UDNhbVJXN2tGb3l6cVh0WWc0SjlXNUEvUUczUWZGdE9vNzArM1pVNUpWMjlwYndiU3Uzb3djbGJxL3FmUitmVWVaSmNQZU5MSGV3VDNVSm0xZUF4cklxdnFmK3gyZ0VycjAwV3RwdTIxUnlUcDFzOUl1Unhia0tTdmJveDQxbFUydjJhd1B1SGhiRnJEa0NvTUMwQ3pZdUo1QTl6YnlNMnJRdU5vSVVxZDJqRTdUNDF5bWU3TTVWaHhQUDhpVnAzSDVTYWgyL2QrWnBVZHR1SnJPaFlxUXVaRDVqajE5RmR6WnZDM1QyMmE5RDBRamFQRE1pYXNzUkRkWTl4L1NRajRuV3Q3bC9NUElTdFhFbmEzVjdWMjl2Y3pNek1Qelc1d2JWeWhUdjNWbU9iV0YzRkZicmo4YVdDeFhsNnNxenRLQiswS1JEYi9wdjAzRWpVOXEzOHJtMWl3OXYxdjhBcHBUMjk1aFl2S3J0enhQdzk1cHRxSllMS0NHNG1OeFBGRWlTM0REYVpIVlFHY2dkdHg2MXlGMjZtMjFvanFvUmFTUXp1aTBqYW5zTzFaTjl1VExjTkJzUlZZa0tqeVRsZDRNa09QY1h0QmxlU1NEYzhXdjdDMVRUVXZjTnF1aDA3SnIrU3J1SnkxM3RYcEg1bVhuODFqWThFRnZ1dm9NOHpYS1JuUlpTM3BGcGs3RlpZTDIxU1JsVGR1Vmt1SWREcnRjYWo0cVJwV3BoWVN0VGxGcXNYcW45eHlQUGViVHYyTGQyMUp4a3BOU1M2eTA4YjVsSmNQYTQ2L0c2U1FDS0c3QjFMdHA1ZlVIeGJUdVBHc25tZktIQk81QitIcTZ1NDJmVDNxcFpNNDJMc2FYS2ZWKzVycjZtV3VTM2R1L1FWemtyVFoyNm1odkpGRkVwWnlGVWZwTVFCK2VteHNOdlJWSCtaMWtUTHlYamFTbUk1UzBFbzdwNnlFajdnYXR4NVpreVZWYmw3aU41VnRjWklYaHZMUzVUZmJUSk1oNmhvMkREODFWTDFpNWErdUxqM29udDNJeTRPb0ROVmVwTWh2Y1c4TnhHWTVrRG9mQTArRTNGMVRFNHBxakU0TE8xdDEyd3hxZytRMHAwN2twY1hVVUlLUEJCelFSSUZORkJDR25JSVUwNElRMDRJbUtld2h4VFdBaStXNFE1empPUnhTblNTNmhaWWlmQ1FlWlA4UXF4aFpIazNvejZtVjhxMTVsdHg2ekZMVElwOUwvNXI5aGRRSDBidUJ1akpLblJnUjM4TmE5MHhjdUYyMHBwbVhhdkp4cTlIMDk0V2JPMktLZGpHUi9BQUgrV2pQTGd1RHFDV1RCRUZlMzl4ZE9DNExFa0xIRWcxSlp1Z1ZRTzVOWmVSazFXNlRwRkZHN2RjamRQYnJqbHh4L2k4RnBkYWk4bmRybTRpMTFXSnBOUDJhK0EyZ2RkUEd2S2ViWml5TDduSDZlQ09qd01kMnJTVDR2WHVIUExyNkxHMjJNekZ3QTluaWNsYlh0MUJ1VlhsamlKOHNXN28wZ0xCZ3Y2V21sUVljSE55Z3ZxbkNVVjJWNit6dEkrWnArVlhxYVpidWR6MzJJeW5IZmMzRVc4bDNIaFZkTXRacXBXV1hGWGlneU1FYlE3NFRvKzAvelUvd0JMNTZzWHBXWnVpbi80bCtKejJWYjNKU1JyRm5lOFU1dnhjeVc4a0dZd0dWaEtTTCtLT1NOeDVrY2QxSThRZW9yMFF6aFVEalBFT09CZGJmRDRERlE5TlNJNFlZazYrUDhBOUpOSVI0eDl6L2N1dzUzenU4ejBMTW1NdElWeCtIaVpHOVJvRmJmSk82Z0hiNmpIVWErRmFPR294aTVTZXZRVzhhZHVDYmxKSjhFVVBMM3RvOGdCbVJvaXUwRldCL0Y5bFB2WEl2cDBKYnMxMW0yL3duY3FsVzR5L0VuM3pXNmdYOW5NaWxvMFA0SkZkeDBYZDVkTmU1cm11WldVbXBJaXRPamFQUzhMYUdxTnVRK1NIOFVnSXJSaE1na2pwZ0dRcVJxQ05DRDJJcFhOVUJFZElwVmdQQWZoK1gyVmxYRTB5ekdnVUFtbUpEcWppMWo4eDFGV2NlT3BGTm5YYWRRQlJ5WWl0c2FrSFdxZENVSzJwK3ltU0NoSmsxNlZIS0k5TXpEbkh1Rko2MDJGNDNNb3VFMVMreXcwWklDQjFqZzhIbCtmWmZ0cTNpY3UzUGRQaDFkWnpmUFBVVU1aYkxldHo1RlZ1T1MyV0g0MCtFd2xzOW4rOGpzeWVSa2N5WGQwN2pWd1hBRzFXNjYveTF1TjBWRWNSL3lVNXBxQzhUMWxKOFgyZGtlejNtZTVlU3psVVF4TVV1clE2Um5Ud0kwSTE4UjhhYkVkaXhrblYvVExpWHZIWWEyeG1Dc3VVU2NqdGJMR282U200dVkzRThjc1IwYU5ZOXpxN2E2cm9POVo5N0lsTnl0T0ZYMzZkNTFQTCtSd1U0WlZxNVNLL3A5NkxUYThqNW55NjRDNEcxWGp1RWNIWmw4cEdYdVpSNEdDMDFYYUQ0R1EvZFdGT0ZpejlUOHlmVXZwWGUrbjJIYi9BTnlTcWx0ajhmY1ROdDdUOFhkbG16c2wxeU83QjNHYkpUTTBldjhBUnQ0L1RnVWZMYlVjdVlYZUVLUVhWRlUvUDRrWGxKOGRlOGVaUGlQQWNmaTdxNXVNUGpiWEgyOEx2Y3NiYUZGQ0twMU83YURyNGZHaGF6TDFhSnliYjYyS1Z1Smx1TDRqaEpNUFkzRWx1OWhmTkNqbWUya2UyblVzTlFHWkN1cFVIUTdoOXRlcXZsOEpXMHB4VDBWU3dzT0tpbTFyMXJRY3BmY3J3NnRKYjNBNUhqbzlSSkRKdFM5akEvVmRCc2wwK0JBTmN0ekwwaFp1TGRhOEV1ejhCOGJsMjN3ZStQVjBsbHd1Y3gyYXgwZC9qNWZVaGZVTXZaMGNkR1IxN3F5bnVEWG5XVmlYTWU0NFRXcStKb1diMGJrZDBSNmFya3dRMDRJVTA0SVEwNUJDR2lnaFRUa09FaFQyRU9LYXdCeFRXTktoekwydnduSkpXdlVkc2RseXVndllkTkgwN2VxblovNWExK1hjN3ZZdWkxaDFmZ1VNbkJqY2U1ZUdYWCtKakdTNHpkNE8ra3gvSUxsN080RGFXOHlSSzl2T3A3RkpTUnA5aEZkblo1cks3QlR0VWt2aXU5R0hPMDdjdHMzUjkyajlwWStMeTRQQ1hDM2tTU3kzb0g3TzduQ1M3TmU1alVlVmZ0QTFyTHpwM2NoYlpQdzlTMExtTzRXM1ZmVjFzdkVIdUZDVjg4a0xINHNHUS9rckVseXpxcWFVZVlkeEYzUE9vY2R5R1BrYzBOcmtvWUlWaWloZnp5V2JCaVRQYXBJZlRaMzFBYlh6ZkExWmh5N2ZhOHBPVVczN0pka3FhMFh1NnpPenJybkpUclZMbys5Rmx6bnVINnFHUnJoN3VYVGRvNTJSSnFOZk4ySFR4MHFsajh1VWRFcUlweXVHU3hacktEUFNYM0dMNjV3cXlzUzBtTmtlM2pubUo2c3Nhblp0WDQ2ZGE3cmx1SlBaNDIrenJNYkx5bEY2ZTB0cHcrVjVGUEUrZnl1UXppeEVOLzhBRUxoNUlGSStFWTBRbjdxNkhINWRGdnJPZnl1YnpTNkYzY1MwMzl2R01aTEZFZ1JVUUJRQUIwVHNPbjJWczNZTFkwam5iRTM1aWI2eksrVFd0dXQxS3lRb3JOQ1NDRlVIWFEvQVZnWDRxdkRvT3F4WnVpMTZUMG4vQUE1V0dMdC9hZkQzVnBhUjI5eGZLNzMwcUR6VFNSeU5HSGNucVRvdjJWeCtYTHh0TTZ1MHZDYVoxMTZWVUpCekFYOGF0V215T1ZCNnFnaXJxVlNGaWN0dXJWRmNzcGpvem9KcGJBR29vMktEbk1YVkZXcDR4U0dOaFpJdzFDY0V4SjBFVGExWGVPU2J3aldwcGtzY0ttVUQzRDVUanJNWFBHcFpMbTB1cit6SkdSdDEzQzM5VXNpTVFHRWg2b2RkZzEwb1c4YVZkM0duUVp2TU9hMmJMVnU1SnhjMXg2akNyVzZhM3RybTJDQ2U3c3RJWHRJR0JRZ2RCSkdkTmRyZzY2L3oxcTEwcWVjWm1MdHUwY2x0bHJ2NDFFOHJmU1JUUlA2Z1dCVTBOdHBxelBwOGZsVFhxUjQ5bE5OVTE2eUVzRXVzeGwzZ3g5azJSdnRRWllZejZjU0R3OWVidEd2K0krQXA4YlVwYUk3RGszSko1Rk5Ic1h4KzMrQm9uR1Bicm5FdCttUnlVT0l5VjliZExGYmg3ajZTeVR3V0NGVTJCdmk1MVkxWHllV080dHFtNHhmR2kxZmV6dnJlQi9IU3J0MDRMOEVhQ0xqa1dLWDE4MWdoZFFyMWVmR1hLejZmUDBKMXQ1Ry9zbGo4cXhMdnB1NHZva3BkbkQ4aVozcHkwUzl4STR6bkhIc3RISWNYY2ZVeVFuYlBBVmFLV0p2aEpGSUZrVDcxckV2MkxsbDBuRnhZMjNhM2RKbXZ1Rnk5czV5Qk1UYjZmdXpDbmZkalhWSkw5dENpSHdiNmRQTjhtYjRpdTQ5SDhyclhJbXV5UDRqb1cxdjYxSDUva1Y1NUdmWGVTMjd2cWRhNzVxcFlhcUoyOTlkV0V4YUI5dTRkUWVvSStZK1ZVcHgyc3F0T0xJOU0xZTRETXR5RzIzUzI4eEF6bG1vNlN4anA2NnFQKzFqNy93QklWenZQdVR4eTdUL2V1RCszeElWY2R1VzlmNmwxL21hNWJYVnZkMjBWMWJTQ1czblFTUXlyMURLdzFCRmVSenR5aEp4a3FORzNDU2trMXdZWTBFUENHbklJVTA0SVEwNUJDR25JSW1EVDJPRGltc2FIQnByQUdGTkFVejNjdGZyZU1XdU9BVXlYK1JzN2VQY0FkQzhuWDh3NjF2OEFwbTI1NWlYWVl2UDd5dDRzcGRSbW1WNGpKakwyV0MzbGtzWkFUK3dJM3drajRJM1VEK3FhOUp2OHN0WE9qYXpnTVBuVnhSVHJ1aU1UYjUyUG9ZcmU0SDZ5U0dNL2tjSCtXczJmSkpmcFpzUTU5Qi9WRm9UYTF6YzA4REcxaFNPRi9VS1NUYmd6TCtEWFlPeW5yUWh5YTVSMWExQmQ1MWFhMFRIa21OdTd3ZzVPNjlhTUhYNldKZGtPdjlMdXpmZlY3RjVSYnRhOFdadC9tczU2UlZFYUR4ckNXdHRqMGtsdDFFMGc2SzRCMnA0QUE5cTZYSHNKUjFSeXVYa3lsUFI2RTROb0FVQUtvN0FkQUt0SkZGc3JPUjUzaGJlYTVzTGtTdzNNVWtrRTI1TlVqR25ra2tjZEZTVUh5VlJ1NTBJMWk5SHcrM2YwR25ZNWJjbHRsR2pUbysvclM3VjBsZjhBM2JQbjdTR2EyaE1jemc3VmtPbjdJa2dGajRhanpDcUN0TzZsUkdwSzlHdzJwUFQ3eWE0Slljc3cwVjNpc1B5YTl4ZDNpcFZXU0FGYml6bFNWZlVqbFdDVWVUZHFRd0I3aXNYTDVmR00zR1hGSG9YcC9IdGN4eGxjZzNDUzBmU1hUQSs0dnV5K2N1c1hObXNITFo0eXliSTViTFhkcEtpVzhDUDZmbVdCL05JVCtqMHJOdTRkdURWS3RzYm40c3NlYWh1VW1hN3dubWMrU3ZwTUxsVGF0azF0SWNsWTN0bDZpMnQ5WTNHb0U4S1MrZEdSaHRrVGMyM1ZldldoR0tTTTl0OUpjNklEdFRTcUlKUEtJWUpabUJaWWtaeXE5eUZCT2crZlNraEdJdHpEbWoyVnZ5RVpzUGMzMENYMGVPaDIvU1cwVG5jdHMwWlh6c0UvRXpFa240VnkyYnptN0Mrb3hjZG5WeGZWNHUzdUtFOGlXN1Ewckc4OHhzM0JMYmx0NnJRMjhzUU1rTVNtUnpNWlBRRVVTanE1ZVh5b1BIVVYwcXVMWnZsb3FWZllYb3VxSkRqdko4ZG5ZSlh0bGtndUxjZ1hObmNBTE5FVzEyN2dwWWRkcDdId3FMRnk3ZCtPNjI2eEpKUmNYUmt2VmthVVQzWTRzbVR3aHlWdGErcmtySFR6SUNaR3R5VDZpYUQ4V211N1Q3ZEtVZEdZZlA4QUI4K3czRlZ1UjFYWDJubnl3NG5kNXZrME5salpGdDdpYUs0YUJ3U1ZZd3hsL1NrUDZPNXZ5ZDZkZHVxRWFzNXprK0s4bHUxTFNTVmRWMGtud2pnTmhObjhsYzg2ZVhHWXZFRzBodm81bUtOSlBlc1ZnakxxU0VRRHpNd1BZanNEclNpOTY4R3B2NEhKMm4vY1hEb0xKeG5qSFBPUFlwTU5iY2JqbGdoU1FwbUlicTJheWJZeFBxeW1MOXQvcEFOMVF1eDZWYVdSRkk3akc1bkMxYVVkdXFSWmVKOHp2TDdpZGxkUEZDazl3cGVLV0ViVWFFbjluSVVMU2JYWmRDeTdtMFBqVTZWZFdYOGJHbGRTbmM2U0o1QnpYQ1llUlV5VjJ6WGN2bWp0SXcwMDdEOVlScHF3SHpQU3BJeGJkRWk3Y3ZXN1duVDFJenprR2F1T1JaZUc5dG9wc1BiMllLeFhTYVEzOXh1R2pLN29TVWhIZ3ZjbnIwcTVEbFVieS92UnJIcVpuWHBlYkt0TnFYdmY1Q050RkJiUXJEQXV5TmRUcHFTU1dPcEpKMUpKUFVrMXMyN2NZUlVZcWlRWXhTVkVLK3BUd2ljNTNJZmlPb3FLN0dzU083R3FHdnFhZ2p1RDBJTlV5b1RYdEhuZERmOEFHNUE0aXRIYTR4VE9OTjF1emxaRVg0aUtYVVY1aDZxd1l3dWViRGc5SDNrL0xydEsyK2ppdnZOR05jbWpWQ0duSWNFTk9RUTdXczRqOVFxZG54cVh5cFVxTlUxV2czYWdpUVNGUFlSM2EyTjFjZytpaGJUdnBUNFdaVDRJaW5kakhpRWVONDNLT05HSGNWREtMVG94eWRRUlRHSXpuM2x1cmdyeDNIMlVwUytseUN6eDdHMnlJSWxQN1FkeU51dmV1dDlIWThwNUxhN0VaSE5MS3ZiYlRWVk42cnNLaHlLMEZ2ZDJlWGxhNXlWMUJNRGNQUEs4c3NzSjhzaUxxUUY4cmFnQUN2VnNyRWpCS1VVNVNUOXJYU1ovTXVRV0xlSzdlUEZSbDBkNE5ya0xTNXpsckJOWnRZWXk3Y3dSdTBva21XVnY5SXlkTmloaU51ZzE2MUJ0OFMzTGJGNmNkYTlGZWc0N001TGtZMk03c21wU1hGZGhiancvSGc2R1dVRWR3U3YvQUVWYy9pUjYyY3gvUG4xSWQyUEg4Ylp5YjFVeVRMMUJrSUpIekMvejFKREhqRjlwRmN5cHpYVWlUR3BQVHFhbUt4eDFIZWtJZ2N0eUhpc2Q3SmljamRwQmNFSTByTXBWQVRyc0RTNmJkd0hnM2hWUzlldFZjSk9uMjZ6Ung4UEpjUE5oRnVQRDdJbUxPTzFTM1UyaFZvRDFFa1pEaHZudUd1dFdMY1lwZUhnVXJzcE9YaTRsYTVObFRoT1EyTjdicVhseU51OW5jeEs2eGhnSkVXQ1RlL2xVbzgybTQrRlluT1VvdU11blg0SGVlaGVZenNPNnVOdWxmYndBOXdaSitGZTN0cHcxNDdTMTVSbVpXbDVTTFYxZWMydHE1K2lTNWVJK21aWFZ0WkRwNXU1NzF6MkpEZk56MW91QnVyV1RmejQrMDFQMmd2VmZOY0d1STRWa2h2OEFpTXRvakhYZEJKajd0ZlZLL282U21SUVFPdmxHdFFYRlNjMS9VUlQ0bTVWR0E2a0k2a0lwRjU3UGNadkhhSkxpNnM3QjNMdFl3T3FvTngxS0l4VXVpYW5zRDA4TktvLzhUanp2ZWJKZUw0RUVyRWExTEpkOFd3YjRHREF4UWZUNDIxV0VXa2NKMm1FMjdLOExJVHI1a1pBZXV1dmpyVjdKdFF1UmNHcXhrcVB1Sm9OclVMaE9OWTdFVDN0MUFYbHZjaXlQZVhNcEJaL1NYYkdvQ2hWVlZCT2dBN2ttcXVIaDI4YTJyZHRVaWg4NU9UcXlWME5XcURUaUtUUWlzUzhVdzBmSjVlUnJHZjNuTENMY25YeUJSMExCQittd0FCYjRDcysvSjAyOUE2M2p3OHp6S2VPbFBZWXR6aDVzeHhIbm9udHJxeGh4R2Urcmd5RW1ndGI5bEsyUDA4Wjdsb1JGK1d0YmxyMnVLNjErWkpibDR6SXVQOG56WEg4bGI1SEUzVDI5eGJPSkVVRW1OajJJZE5kckFqb2EzTGx1TTFSbG1TVDRtaFpiTEFZaTI1M3c2T0RIdzM4eHh2SXNPN3pTVzlsa0ozTWtkMURDQ0UyeTl0Qm9OU1BFbXMremFhdXEyM3g0TWRpWkU3TTlxZWo0VjRMMkZkdFlGZ2FTVjNhZThuYmZkM2tuV1dWejNMSDRmQmV3SGF1b3MyWTIxUkdsR05POThXTCtwVXc4WlhHZXhsdEpMSFBOc2toS3EwZTFpNTNqVmRpZ2F2ci9BRWFpbGVoSFJ2Z1JTdXhYRmltTXZaN215UzRuajlKcFN6SkdRUVJIdU96Y0QySlhRbWphazVScXgxdVRhcXhKczNISFBkSlBETEZiV3JwSEpmYlMwQWFSQTREc3Y0T2gvUzZmT29aWmNJemNKYWZJYTdxVGRWb3Vub0Myc2VUdjdxNGp4eXdTeFd5eGwya2tLYmpKcVFFWUJsL0NOYXpiK1JzbnRTcVZWQ1VwTlJwb09MUkwvQUhHNXU3aCtuZXd5THBjS0hWd2JPK0lWL012Z3NoRFZnYzF4MWtXWng2OVYzaFVKVzBwdFUyeStETmpKSGgyOEs4dE5zSWFjZ2hkZENEVDBFbDVNNUUyTkZyNlkzRDlLdE41aWR2YlFxTEdlL2RVZ21PcE5VQzhoSUduc0paT081eTJzb1hTVmVwN0d0UEN5NDIwMHpPeXNkemRVUm1UdWt1YnQ1VkdnWTlxejhtNHB6YlJac3cyeG9OeFZZbFppR1RqeVdFNW5tWk12YlhPUmxaR3VvY3FTanNsZ2hDazdOUnRWV2JRaGE5WjlLOHh4NFdGU05IMDA2RElzejhtN1Blbko4ZDM5STV5c3l6NCtHZEF3VmlHVU9wVmdDRDNVOVJYY1hIV0thTkhJbHVnbWlEbWlpbmlhS1ZkMGJkMTdkanFPbytGVkp3VWxSOENoT0NrcVBWTVhoeVBJYmVNUlcyYXU0NGxHaUk1amwyajVOSXJOK2VvMWFrdUU1SmV4L013cnZwbkNuS3V5ZzN0L3JiTzlHU3NicVFaTUh6M0U3dEw2eW51a3dKNnFmbDI4S1ovSDJ2ZEIrUHJldGU4bXl1UlkxMno1U2p0WFJUb0hXUXkzSU1vaGp5RitWdHozdGJOVEFoK1RPQ1pHSDMwNlZ1Yy9ybHAxTFJmaVZNTDB2aTJIdWEzeTdUclBLOGl4NmlPeHlqckFQd3czS0xjaGZrclA1OVBsclJWdWNmb20wdXA2L21PeXZTK0plbHVwdGZZTklZbVJIOVp6UE5PN1MzTXJqckpJNTFaaVA1QlRyVnZiR25Hdkh0WnRZdU5DemJWdVAwbzZDQnJTUXk0K2ViSHludTFzNVJUOXNmVkQrU21meDRwMWpXTDdQdzRGZks1VmozL0FLNEpseTl0cDViN2wxNW1zODhPVm40cmg3bkk0dkhOYkp2dVpFT3BmcXdqRHdNRmJVRDdLNS9uYnVPVVl5ZFUrbmdZOXJsTnZEazFiclNlcGxHV3krUXkyUXVzdGtaamMzOTY3VDNNN2QyZHVwUFRzUEFENFU2TVZGVVhBdW5xL3dCc01ESmI4cTR0akliaFlZK0o4YlNlNFJ3eGx1bXpiRjNBWFVLaVF2Q09wRzRrMWl5bHVjcGRiK1JCSjFadGxOQWRTRUtDSTZhbXBGYkJ1Q01ORFRHcUJRRkFSd3BDRlYwMHFhSTFna0NpMEJERzdqSGVzN0pnV0xiUE9IdWI2V040dnpyYjZvdHNweVMzdDdXMm1sTXFKTkZDTHE2bWpUdEY2cnlhNmVJclI1YW01UjdJaHRyeG1HK3BXN1VzMU5HOW10dVl1Yzd3NjhnYWJFWnV3a211WFJtVm9KYklHYUNkV1hzUStnL0o5bFVNN1JLYWRKUlpEZTRWSzd4M09ESldFVGFPenh4b3M4N0x0VnBkUE1GMTc2SHZYUll0L3dBeUtmWjhUVng3MitLSlgxYXNrNGs4VnM5eEZjdkdyWEVBWVF5a2VaUS9SZ0Q4NmE0SnRPbXFBNHB1dlNnZDJRdUw2MHNNZENrOTVkbVFxa3JtTlFrU0YzWXNBM3lIYnhxREt5ZktTZEsxRjRuSlJpcXRscTREak0zWlpMTkRLNDgyc04ybHZzRE9rc2NoUU9qZ0ZTUVJwcDNGWXVUZVZ5ZTVLbWhmd2JNMU9XK05FNkNyNHJGNHE5dTRzZmJKYXhUU0NWNDR4b3U0cUJxRjdEN0JWUmtjN0ViYzJvcWxTTzVJTGViajJSaXVEcEM5dTRkaDEyOU9qZjJUb2FESytRbDVjcThLRnQ0Tmx6bCtJWXErWnQwcndLa3g3L3RJL0kzNTFyekRtVmp5c2ljZWl2ejFINGR6ZmFpK3dtalZORm9JYWNnaFRUa0VJVFRod2lEVWpDS0EwMWdEZzAxZ0RnMDFqVE0rWDI5N2s4OXl4Ykcza3VwclhFMlZrc01LNzNKdUxrU3lCUVA2Q2ExNkI2WHQweDY5Y3Z2WDRHZGNpNXp1VVZhUml2ZXlMdnJQa0dRaU1GbGhid09HQmVXOGorbGlRZjBuazZuK3lEWGY1UE5iZTN3cHQrNHR6MzNmRENFcTl1aUlyTzhlejJEdDdXNXU3bTBtUzR1RXQyaWlTUU1wY0U5R1k2SFRiOEtvV2VZVG5OUmFXckljckN1MkVwU2NYVjAwcU5OYTF5QTdXa0k3V2tJN1drSTdXa0k0dG9DVDREWDhsQmlMTStTeFhCK0FZbk1XZHJMZThyNXJpN3FOOG5OTVRCWjJza3Bqa2pnZzJyNXltMEVueEhjMXgwcHp5THJjbjRZUFJHRzV1YnF6SmVvWFJlNEhTcnc0OW1lMnZKcmFmbHFYbTVCWTgzeE5uZlkrYlRxYi9IeGZUM2xxRzAvN05GVndoL3BFVmhxTzJzZW1MSUphTTF1Z0FPblNueEF4VU4wcVpNYUl1ZFdxQ2VySElDbWhBcENEcFVrUU1PUnJUMmhvaE91cW5XcTE2T2hKRm1NZTQvSHJLTEozMEdiSC93QW9jd3VMS0NlOGprMnk0M0xvcGhndXRyYUlZcGdxSkoxN2o0R284Vys0dlQ2by9GRDNXTHFlWmVRNGUrd09kdnNMZnJ0dTdDWm9KZmdkcDZNUGt5Nk1QdHJwYmR4U2lwTHBMQ2RTMGUwdVd4c2VZeWVBeVU3V3RweXJIeTRZWGlLek5ETmNFQ0Z0RjBPM2YwTlZzMkRsQ3EvUzZqTGlxaHFjZEh4aVRKWVc0a1FuQlhVOXBjM0NCZ3JtQnRESUZPNXZPTkRwVzF5KzlGNDZsd1hTYUdKTmVWWGhRbHJIamZMOGhiaTVodGJleWhjYXhMZlNPc3JMNEZvNDFiWnI4enJVVStaNitHT25hYVZ2RXZ6VlVrbDI4ZmdSV1NPWnRaVXhseFp5V1dXdTNTQ3oxSHFSTzhqQmQ4Y284ckJRZDJoMFB5cDh1WXhkdDAwbVZycW5GN0duR2IwWFY3R2FOZ09GWXZEWC93QmVsemRYZDRJbWhXUzVrVmdxdVFXMnFxcUJydEZaVnk3S2YxT3B1NC9MbzJwYnF1VXFkSll2VXFNdmJTdDU2UkJsbzRWYmRjVHhHVklocVdLeEVCMit3YmhUV1plWEgrNVRwYStSR21VRUVIUXFSb1Flb0lOTkt0QnZ4YktMeEs5VEd6dC84dFpLWS9Sekh0WjNUblV3T2Y4QXU1TzZIN3E1cm4zS3ZOWG13K3RjVjFyOFVWSUwrTzZmK1ZKLzlMNnU1OUJwVFZ4U1JvQ1pOT1FRaHB5Q0VKcHlIQ1FOU01JY0dtc0FjVTFnRkY2bW1zQlMvYm5KL1djbjVkS2x2SzZ5WCsxcjd5aUVMYm9JMGlCMTNGdnhIb09uMzE2anlPM3N4NHhwMElxOHVudWxjZFAxY2U0dW1XYi9BTWsycDdzdW41YTA3LzBtN2pMeGxGNVp4dVRQMjFwQWwyYlA2YWNYQmtDQ1FuUkdVQUFrRDlLcXNKdUxUWEZEdVlZTHlGRktXMmpyMWtOTjdZd2ZUTjlQbHJ3WDJua2xrTWJSRTZkQTBRVURUWDc2c0xNdTFydVpRbHlKYmRKeTMreW51S1phU3pTd0F5cHNuUXRIT242c3NaS3V2NVJXOWozZk1ncEdGQnRyWGowOTZFNWNwam9YWkpibU5IWDhTbHVvL0pRbGtXNHVqa2t4c3IwRTZOb1VZNUdON1dTNHRHdDdLK1dRMmNzdlI1REhvU1NuZFFWYlZkZXBxQ3ptcTVjMnBhVTRqMnBxamxHa1pWcFhwcDJDdXRYUWhYa1ZFWjNZS2lqVXNlZ0ErSm9OcEtvbTZJbGVlckpMN1YrMmwyd0pDV3VRdEhkd1E0YU82M0t2bTBPMElSdDhOSzQ3RmY4QWN1ZDVoUU03VU03QkVVdTdFS2lEcVNUMEFBK2RYaDU3QjlwY0ExbnlmRTRpU05YazRaeDJPMnZuN2lISlpXWVhFa2FudHZXRkJxUjEwYXNhdTl5bCs1a0VucWJSdDBwVUFCcjFvVkVIQU9sU0pBTzIwdG9xaFhHbFJ6VkFvSlRRaGtiUTZVNkxBeFVHcGhvU1RUYWFaUGdHSm5Ydkp4SzY1THdMSlkrelhmZHhHSzh0NGRkUFVlMGtFM3BhOWRONFFycldmRHczS2s3MWpROHorOTRqdk9VMnZMYlJpMk01YlpRWkswM0R6UnNFV0tXRnY2VWJKMXJld1orRGIweEhXNWFGRnhtVW14MlRzOGhCb1pyS2VLNGpCN0ZvbkRnSCs3VnVTcW11c2VhUDdrWTIweVVONXpmamR3bDd4N2s5L0hIYzI0MVc2c01qY0JXbGdsalA0bGZSbVZsL2swTlZzWEtkdTNLeE5hMDBIV0xqUzh2OXowTkgzNmRQaDBwTTlHVVFHS05wdUFiYWR5NmpYUWp4SHpwQ2NFd2ZVb0IyaU43ZFhNTnJKTGEyL3dCWE9nMVMzM2lQZjE2amUzUWRQalJJN3U1UmJpcXZxS2paWXJtUnZNVm1NamVRdWJaNXBydTJsWGJMREZPcER3UnlSNm82cU5wRzd4SGVocVpNTWJJM1J1VGEwcTJ1bEo5R25FSElYOE1qeVRvaTI2YUU5VHFvUHhJNlV4a1Y2YWJiU29VMnl5ZkllVDV0ZUpvTGFHSzlqUDF0eWtiUzZRRHFYMlNIUlNDQVI4RFZQT3pGWXRPYi93QVRGbGszYmt2SzhOSkxYcDA5cHMvSE1QZTRmRlI0KzV5RDVJUURiQmNTcUZrQ0RzckVFN3RQQTE1OWwzNDNaNzFIWlhpYWVQYWNJN1c5eEl0VlluUWsxT0hCQ2FjaHdpRFVqQ0hCcGpBS0EwMWdLMzdoWFBLTGJqZHhOeC8weE1pazNUbi9BRlZoL1RhSFh5N2dOZTlYK1dRc3l2SlhlSFIxVjdTbG15dUsyM0QyOWRPd2E4QzVaeFZjQmpNWmpMUzhqbGNEMWJYMFpKWkkyZHVzOXpLcWhOSkNkMi94cjFDMU9LaWtpeGhYN2V5TVlKOTFQbitKTmNrejBGdmtzZGg5alNYRjhaVzFUUWhGaFRjV2ZycnAxMG9aRXVnMWJOMVF1UmkxOWRmZ0k2MVZOVTdXa0lyMlE0RnhhL3ZKYnllMVlYRTdiNW1qbGxqRHNlNVpWWURyNDA1VGE0Tm1aZTVSajNKT1RXcjQ2c2xiUEU0cXl0a3RyU3poaGdUOE1hSXVuMjl1cCtkQXVXOFcxQ08yTVVrUW51RGlycklZV0tXemhhNHZiRzRqbmlpVHE3S2ZKSW8rMUdxU3pjMlRVdXBsRG5HTks1YVRpcXlqSlA3bVYzRWNGeTJTbUJ6VVJzTVlCcTlzc2ltNG0xL1JaazFFYS9IUTZtcm1UbnVhMngwajhXWmVOeWk1ZGY4QWRXeUhWWFYrN2dpQWx3K1doeWo0RzF0NUxySjQrWkh0VzJLMFppUWg0Slp2VUJpMmFhQmcydXZiU2xMSmhPeHNsWGR3MCtabDNzT2JrN0NUbEpQNGREYkxSN3g1Zko4bDRud2psV1JPMjl1SUx6SDVDM2pMQzNqdWJLY0lka1I2UnN5alZnbzA3VmtZS1VaVGlZNlRUYWZGRmY4QVpqanY3Kzl5Y0pieUk3V2RyTUw2OWtRZEVpdFI2dXJrOUZVdXFycWZqVStYYzIyMnhNOWRleXFOUHcrYmtFalJOTHllL3U4eXdoSlpZMXVaTkVpTG5xNWpWQXV2M1ZSU29rdW9ybDdadkNteVlhQW9PdXRLQ0V4UVZLaG9ORUFuSjJxTzRPUW5VUTQ2a0lPci9HbnhrQm9UbGxIYW83bHdkR0lDb3VtcDYwRkZVRTJlWFBkSGhTMi9Fc25nY2dWR1Q0TkNjcmk3NjNZK2pjNC9LM3JsNHBvV0dzY3FQMjBKQjA2ZDlLdFk5eHh1ZGsvdUhXMzBIbi9kV3RVbHFiQkRpK1I1NzJnNHlPQ1JpNWJCM2QxUHlTd2hDZlVyZTZNME40UTVVT0ZoTzFQbVIwT25USnV6MlhtNWRQQUVMamhOU1hGRmg0dXRySGhiVnJTNGx1NGJpTVQvQUZjN21TU1JwQnFTeFA4QUo0VmJSNk5oUWlyUzJ0eVRWYXQxclVsSHVJNDEzU09FVWR5eEFINTZKYmRGeEVyZkpXZHd6TEJPa3JMK0lLd0pGQ295RnlNdURxQmQ1WEgyYlJMZDNVVUR6c0k0VmtkVkxzeDBBVUU5ZFRSRzNMMElOS1RTcVZXMjl5Y0ZkNUs5dzkvclloWnBMYTN1M1A3R1hheFQ4ZjZEYWo5THA4NkxUcFhvTW1ITjdVNXl0ejhPclNmUS93QURPT1ZaNjV5RjlOWTJzeEZoYnlGQkpIME1ycWROZFI0QTBvV3QzSGdjeG5aRG5Od2kvQW43enVBWlNmSDgreEY5Y3NBODg1dFp6Mkd5WlBUWDgraHJNNXpqYnNXYTZWcjdpdGpUYXZSaytsMFBTek1hODNSMDRtelU1QkV5YWNFSXhweUhDSU5TTUlvRFRXQU9EVFdBcC91MWYzMXB3cTVGb3dYNnFSTFdkdW12cHphcVF1dng3VnFja3N4dVpLVDcxM21kek9VbFplM3AwSWZoL01iMkRIRGoxN0tHa3NvaDlLN2FBelcwUTZBRWZweDZiVDh1dGVrMzR5dCtCOE9ndGN0ek5yVUphdVBEdFg0b2ZKSHgvbDlsRmtRSkJORVhSSjBkb2JxM2NIUjEzSWRRZW5ic2FxY1RhakN4bVFVMVZOZXlVZmNOeHhyazhGMHR6YmNqbGxjSzBPeTdpV1JCRWRDcENJWXdaQVIrTTk2UkYvQXlJeTNSdXQ5SGlWZFBaVFh0Sm5ENGxNYmJ5SVo1THE1bmN6WFYxTWZQSklRQnJvUEtvQUFBVWRCU0wrTGlxMUZxcmxKdXJiNldQOWFSWk8xcENPMXBDRXJtNmh0b1dtbWJaR25WbU5BYk9haXF2Z1Y3SmMweDBQcFJXWmpGOWVONmNVbDAzMDhDN1FXM3pTa0hSVkhnTlNld29TblJWTWJQNXpic1EzUlZaUGgrWkIrODBMWW5CY040OWJUcGY0Mk8wbnlKek1KVm9iMjl2SmkxeThaQlBTTmh0NjlhandYdWNwUGpVNE55Y201UFZ2VVg5cUxLNWo5ditUWE1VUDFFMmV5R0x3TmhiS1NobWxhY1R5d3lPTk5rVWtXcXVhR1k2eml1cXJHVDRIc3kxZ2d0cmFPQ0NKSUlZMUN4d1JBS2lBZm9xRkFHZ3F1NURLQ2c2bW1oRkFkT2xQUTBIV25WQlFIV2xVVkNzY3Q5eE9KY1draHQ4dmRzTDI0WDFJYkcyaGx1cmxrQjAzK2xDcnNFMS9TYlFWRmR1UmlxeWFpdTNRYkthanhZNDR4eS9qM0o3U1M2d3QxOVFzTENPNGhkSGhtaWNqVUxMREtFa1RVZHRSMThLYkdTa3FwMVhZUGpKTlZSTTBRaFhPaWswMlRvZ29aTktkMVVYUFVuVVJlTzZYYm9hc1F2cW1wRzRHVmU2dHRqTFBrRnZuc200aTR4bHJDNHdmSzVHUjVWRVpScExDWmxRTXcyVGtxR0E2YnFNYis1MFgxTFZBY0d0VHkzelgyNnovRTF0N3E0ZUhJWVM5T21PemRtNGx0cHh0M0RxRHFqYmV1MXEyN09URzV3MGZVUFRKNzJFTFE4M3VjcEh2bHVNTmk3N0kydGxHektibWFDTFJJaUYvRXZuMUlxTFBmOXVuVzBnUzRIWWpPM0xZdFJaem1PR2VTV2VRUkw2U2VwTTVlUVJvUHdSaGlRcWpzS1VkRlE2dkJ1dU5pTVlTZTM3VjlnMXlHYnNyWHpYbHlONTdJU1hjL1lvMU5FWmV5WVErcVF4eG51QkRhNUpIanRwMTA3Tm9yRmtQUnZMclQ0d2szU2hWczg0VUoxVVdOK1QzV0t6dkxMdTl0Vm1GcGNSd2lOcDBNY2lPc2VqS05lMmpEdUswTWJIVW0xSk9qSzJYY2pmdnVldEhRUS9ka1p0STRTMjZSUm84akRYZVNTU1cxK0pOYUt4VW9LUFVOOGxiYWRKeVdNTnRCNWRDeTlpQm9BUGdLYkt3b3cwNkJydEtNU0l5Y2trVTNyeG5TU0lwTkdmNlVaQkg4bFpPVkJTVFQ2VVVydldlb3NUa1k4bGlyUElSblZMdUdPWUVmMDFCUDU2OGl2V25DYmkraDBPb3RUM1JVdXREZ21tb2tDRTA1RGhNbW5JSWlEVXJRNFVVMDFqUTROTVlDZys2dDE2dHh4L0RnOUxpNk4zTVAvQUhkc3VvL3hHdXU5R1l2bVplNzl2K1AzR2ZsK0s1YmgyMTl4UStSb2dQbzlWZG05U0tSZWpKODFQNXE5RzVqYVZYRjlPcFR6STBkUGFpSndQTEw3aitUTnpwdUQ2SmV3anBIY0l2WmgrcEtvN0hzZTFjN09EZ3htRnpLZVBjM2Y5UzZKZmd6UzczM0l3RUVOaFBiaVMraXZWYVJoQUFaSW8wMERGMFBYVU1kTnZlakMyNWZTcW5XM2VlV1lxTGpXU2wxZEM3UTF6N2s4WFNGV3RKcEwrZHhxdHRieHNYSHlmZHRWUDdSb3d0U2s2Sk5zTnpudU9sV0xjMzFKZlBxSmpBWnUyeldNaXY3ZFNnZlZaSVc2dEhJaDBkRzA4UWFZMDA2TXZZZVhHL2JVNC80UHFIMGNzVXE3bzNWMTFJM0tRdzFCMEkxSHdOQXN4a3BLcWRTcTVEbGQ4dDNQQmIrbkdJV0trRWJuR2gwNjllbXYyVUttUGU1aFBjNHhwb1JsOW1NaGVqYmNTYXg5RDZhalJkUjQ2VWlwZHlKM1BxZWhEWktPT1g2V09lVDBMT1M0alM4dVZqV1Y0b25PMHlJamRDUVNLWk50TFF5K1lTbEcxV0pJZThDU2psTmg3ZVlQR1NKYWNWVnNmaTdkR2E0bnVYdVNKM2xPZzExa0xhN1IybzRhU2h2YityVm5QUlZFYlY3YzhVRm5uTU54OWdHc2VDMmF6NUhhUDJjbklNZ3ZxTVQrdTF2YnZvRDRicXljaklxM0w5ei9BTzFDakhjemI3ZWJldE90VHFnU2pRY0NyS0l6dGFRZ2QxS29EdGFWUkhudmtXYmt3WHVMblh5RUhyVHlYbjFBTTYrcEhKRDZZVzJYWjA4aXhkQi9TMStkY3B6aU54NUNsbzFHbEUrQmxaS2x2cVdIMno1WGZjaTl3cHJsNDFBVEhNbHc2b3FheHJJdm9oZ3ZUUU1XMjYvT3JmS1pYWlRsS2IwcDBLaUpzUnljbTJiRFc2YUlqTzRDMURkbFJEb29qbmJyV2RKNmxoQ2J5YUNtU2tPU0drekJnUXczQTlDRDFCcXRPUklrWWh6bmdOc3VKejNHUFV0OExZNXZKVytWNDllbEJIamx1SVlCQTlqT3lqUzNra0lMSzU2UHI4ZWxiR0RsNnB2VnBVZlgzOXBXdVEydXZRVW5HY1N6WHRwd1Brbkk4OWpaYmJOWHovOEFEMWs3a3RCRGEzc1JhYTdVeGErcHJ0MnBvM2V0QzlmamVuR01YNGVQNUROT2wwUkQ0bjI3NTdsc0FaclNOY1BaeFcydGlrNDF1cm5hbmtHd2RJOS94TlptVHoreGFtb0x4YTBiWEJHeHV2VHQwaDRJcGFkYi9BeldLR1FiZzBiQ1pHS1RCZ2Q0ZFRvd2JYcnFEWFRXYU9LY1RIaWpwUTNRcjVaVU81RDh4LzAwOTE2T0tFL2lYVERSMk4valV1VUI5VjFLa01kZGpqdlhUNGNMZDIwcHJpL2d6Y3gxRzVEY3VJMlppckZUMElPaEZSUFFqWWc5NWJ0NjhXOGI0VjFrWHhBMDExcUdkeUxVbFhWY1NPVTA2cnFJYVl0ZXlRUjJnRXNzb09pNjZlVWRUcjhLd3NySmpHS2srQm5YSnAwb2JkN0w1V1M2NGFMQ2ZVWE9KbWUya1J2eEJDZDhmNWpwOTFlZGM3c3FOL2N2cG1xbTN5dTV1dFUvYTZGN0pySlJwblJ3eVRQdFFhbXBJUWI0QWNraFdmR1hVYWJpdW84ZEttZGlTUTJONkxJMEdnMFRoMU5NYUdpZ05OWURKZVpaQzV1dWU1R1MwdFpyNzl4WTN6UlFxU0VCL2F6U1NPZktpcXZjbjdCcWE3NzB0bDJNSzE1dDEwbE4waXYzTjZHTmZ5b3d2eWs5ZHNhSkZleVRQZHNydUFrdXhDUU9vQktna2ZucnZNbUx1Y2RIb0crblBqeEs3a1lkRzM2ZjBYRll0NkZHWmwySko4SHQ3YzM5NmZUWHBGSDRlSlp2NXEwT1RRVytXblFpNXl5SzNTMDZFU055cXBjeXFnMFhjZWdxOWNWSk5Jc3pWSk1iS3QwZ25paXZKNExTNkllNXRZbTJMSTRHM2N6RHpkUjBJQjYxUXVZVUp6M1AzREU1S3FVbW95NHBkSTRzYzFuc1BpNThkalpvb0xLUjJramZZVE5EdjAzTEhxZHZmdHFPbFZML0FDK2pjazZSNmlTMW1YckZwd3R0S0w5NjdpdnhYZHZqc3ZGY3M4ak02U0dmcVdlUW50dStKMTYxUXlMY1kwU00yMWRWcTZwT3ZUWHRMaHh2SGMxNVBheTMrQ3dnbng4Y2hoV2FhZElpWFVhdG9EMzAxOEt5Y25tTm16TGJONmw2UE1KenE0dzA3eVF2dmJuM1V1ck9hM0dBaVF5cVZEcmVSRXFUMllkUjJOVi8rYXhuK3I0TUY3SXV6ZzQ3T0s2elZZTVFMdm03Y3d4Mkp5ZzVkTlpSMllpeUVTMnVQc3BmcHhiUzNNbHlyTzF3MjNVcUlkU2ZsM0VEejRlWHMzSng3T0wvQUE5cGxLelBoUTBiaHZHTERqT0R0OFZaa3pTS0E5N2V2L3EzTnd3QWt1SlNTU1hjanhOVUozbmNsWDdJblVOcW9XdTJrMmdWY3RTb1F6UTlXNEduV3JpdWtMaVZYaytlNU5KbUZ3dkhwYlN3TU5zTHpJWmEvamFkVVYyZFlvWVlWZUxjN2VreFptYlJScDNKNlovTWViVzhWS3ROMGxKcE4wWGg3YVBWOEVoMExMayt3ZDhFNUprTTFqcmtaSVF0ZldNNWdrdUxVTWtNNjZia2xSSExNbW82RmR4NmpvZEtuNWZueHliU21sdGZTdXBqYmx0eGRDeTYxZUdGZjVYd1BpL0trakdadERKTkNDc04xREk4RTZLZXBVU3hGVzIvSTlLWk8zR1dra21ObEJTNG9VNHB3empYRkxPUzB3ZG1MWkptRDNFcnU4czByQWFBeVN5Rm5iUWR0VG9QQ25SU1NvdEVHTVV1Qk1TU0JSVEp6U0hwR081ZjNyK2o5eTVNUmNTV3FjVHRsZUNlOVZYa21OMHNKa0pWbEpHZ2tIcGJBcDYrTmFpOVAzN3VHc2lLYmxLZEZHbkZmdSszZVhvWWs5aW11bDBwOTVONEQzWTRobmJ3V2xzOXpieVBMNkVEM2NEd3hTeWxkd2pTWHpKdktqVUl4REg0Vms1M0pjckdWYmthZTFQMjZkQXBXcFJkSktqTFJKSURXSEtRa2h4RGF4UENYSjYxWnQySXlqVVpLYlRvUVdUK21saWx0cG8wbWdrQlNXS1JRNk1wN2hsYlVFZmJXVmV1N1hvVzRRcXRTbFNjSDRyRElra1dPVGJFd2VLM1o1WHQwWUhVTWx1N3RDcEhob2xWTCtkZmNhYjNUN2RQRW50NDl0T3RFTzNZbGpyM3JIYUx5TUE5NU9OUjRubGNlVmhIcDJPYkI5WFRvcTNjWTgzL0FPSXZYN2E5RzlJNTNtUWRtVDFqdzd1ajhQY1pHWGFVYmxlaVh6TTh2akRKWnJkVzUzTHBvZmlEOERYWFpDanMzeDRGUzZsdDNJbU9KNDNQbk93OGR0VTF1czFKSEZaVEFheHJLeEFhUTYvcUpxekQ1Vm5XZlVFY1hIdTNIMFJyL3EvTU9Oa1N0MWorN2gzbHY1aDdUKzRmSGNsZDNFMXArOU1URWtYL0FKMnlWbU1vWmlna0VBMWRYSFQxRStlbzFGWi9MZlhHTmt6aTdqMlNrcU5Qb2E2ZmFUTzVjM1ZrdE96NWw3NEw3SzRqTWUzOGNmS2NkSlpaaTV2cGJ3UzZlbGR4eEZsUkluL29QR25WRDhkZWhyaWVkK3FMa2MrZHpIblczdDIvMHY4QXdIUXh0NmJsbzJ5bzhtdzlqWmk1a3Q3V09DNEZ3UmNPaWdNMmhLZFQ5MVg4Uy9LZEt0dFUwSzl5Q1F5OXVzdCs3T2ROYVNIYmJaMkRhdXZiNmlEcXY1VjFGV09ZV3ZNeDZyamJmd1pZNWJkMjNkdlJMNW14RTF6YVIwUkpZWmtETUQrTHdxOWkwSzk5RXE1RzA2OXRLdkZWRktCck5hTllVQnBqUUF4bFdOR2tjNklnTE1ma0JxYUcydWcxdWhFY2V3R2R5UHNYbnJ6RldUM21aNW5lU1hBaVVvakcxZWRZbDFaeW9DaUNOajFQalUxN0t0VytaMjFkZExWaEt2ZWxWL0U1WnR6ckw5eiszd01peTlqbXNka0VqeWR2SEF0MDBpd21LVVRlZVBRbEdaUnQvRDIwK0Zlcjh1NS9hemJqakJOZE9wWmprT1U2TlVxUVdVdUZhSXlMRzV0eWZTRjF0L1pOSXBHcWh2bDhhT1htV25jZHRQeEpGZkl1eGJvaVE0S1AvTVpGL2xDditZMXBja1hpbSs0dWNyNHk5Zzh2RC81dWIrc2F0M2ZxWk5jK3BpT3RSakJ2ZlNoSURyOXY1T3RWOG1WSWtONlZJbGVFVjFlWEVkdGJydnZMdVJZSUZIY3ZJZG9yQ3YzVkNMa3pOazIrOW5zSGltQXRlTzhkc01MYkFiTE9KVVpoK2xKM2tmOEF0TVNhOHh5Ynp1M0hOOUp0VzdhaEZSNmlYQnF2UWVQYlFFT05lNXF4WlZHUlRMQmJwb28rSjcxdFdvVVJSa3gwcmFWWVdoRXdyM0JIVFdtU3VVQ29rRnlqanh6a0drRi9KamJzTDZadUkwV1ZYajFKQ1N4c1YzQUVralJnUlZiSXg3VitubUt1M2gxb0txdUE3NGRnWU9ONHMyYVhNbDdQTklacnE3bUNxMGprQlJvaUFLaXFvQVZSK2MxY3gzQzFIYkJVaVJTaTNxeWZGNVZqK1FOOHM0M2xKNUF2TENHN0pQZW1lZXgyd0pMT3dVc28zc0JxcTY2YWtkaHFlMnRObEtva2p4cnl6aWZQT0pHSE01dXlGdGJYTTA4ZHJDczR1V2prTEIwRXJwNVJ1VTZLZGRUb2UxZWljazlTcTVLTnJpNFc2TCtwNkxoM0doajVjMVJQb1ZDRXZ1UzViNkE0K0xJVHNaTGo5NHpvcnNFTjhScEcrbmJlUGpXN214dFN0dUNWYmpqUnVuWHdqM0U5N1p0b3ZxcHgrU04zOXJ1VTh6em1TeXQ5bHI0WFdOOU9KSW8xVkVqanVOZDJrS3I1dHZwL2lMRTZuU3ZMUFdIS3NibHJ0V3JUbEs0NDdwTjlQVjk0MmVPb1NwV3VuMm9hRWNsY0twVU1RRFhHZnlwcFVxRHlrTVpabTEzRTlhcXltK0pQR0lpWlE5TTNWSFVvTnBvUTNVZDZaSzNVa2pJb1h1N2hSa3VFWHhNU3l6NC9iZlFvdzFCTUIzT3YyTW00VmU1UGRkdklTNEtYaDkvNWtHZGIzMm4yYWc0LzJKOXQ4M2o4Vm1MQnJxMXNMcTBqbkZwREtESElaUDJxR1JtVXNmVDNiT25jQWFtb1orcXM3SGR5ekpwK0tqMDZ0UGp4S1Z2RWpLS2Flak1veS83eTR6bnpPcW1QSTRDOVc1akhVYW0zZmNSOWp4Nmo3RFhTMkhESXRVL1JkalQzL2d5ak5PTDdqMTRsNWIzK010OGhhdHV0N21PTzRnYjR4eXFHWDh6VjVaT0RoTnhseFRvL1lhdGwxS3BrUGNUaUdPNU5GeHU5eUNXK1VsUlhBZnBFclNmNmNVa3Y0VWtjZFZWdTQrNnRHMXlySXVXSGZqRnUydmYzMDZrUGxmaXBVWmpIdXZsSU1YenErd3R4dGl0cnFFM1gxRGRBa2t2bmpWaWVnRGJHcnNPU1daWGNXTjFhdUwyKzR6OGlWSk5kQmtSdTVZcnBzdGFTTVpyUzYrb3R6dU8waEdCNkN1d2paVHQ3WkxpcU1oaER3NzE5U2RUMHppY3BiNVhGV21TdHpyRGR4TEt1bmh1R3BIM0hwWEFYYlR0emNYeFRPcXRYRk9La3VrZHBNOGJibE9ocFJkQjdqVVZseWx3NmJTM1NwL09rME5WbElqUWFEUk1IVTAxb0JYZmNYSnlXUEVyeFlkeHVyN2JaV3l4Z2x5OXdkbmxBNms3ZGF1OHNzZVpmaXVyWDNGTFBtNDJtbHhsb3ZhWDNqUHVMZ2JYL0FJZjRmYVlqSldjVXNhMkZsZFhjRWR2RVRid0ZqNWQ3UDVoR2YwYXgrYStuY3UxQ2VSZTJyV3ZHcjFabHh0VHQwM1JhWEFROXlmYTIwNVZiV3NWc2lXNGpsRHkrbWZTUFE2N2d3SGlDVlB5TlZPVWM2bml5Y3F1dE5CWHJHN2dabDcyY2J4ZkdlTjIyS3MxRFRQREdvVkYwQVgxaHFzYUR3NmZhYTZQMDdsenYzbk9YQ3YzZEpUeVlLQ29qUCtESXdodlhZRldhYlJsUFFqYU5OQ0s5aTVFMDRTa3VsbWh5djZaUHRCekY1RmF2Y1R5YWtLeDBVZDJQd0ZQeTcwYmU2VDRCeUxpaFZzQldCVU1PeEFJKytpbUlqY3hKb3UzWHFRQi9QV2RteTFLbVN5eGV5K0NHVjU1RGRTTHJiWWVNM1QvRDFXOHNRL0wxKzZ1TzlSWlhsMmRxNHkwL0VaaVc5OXpzanFlbTQ1TlJYRHBtdTBQSUkvMGpVMElFVW1TRnJIcDV6OTFXclVLYWtFMzBFbERPVkhXcjBKMEs4b2gzdkFCVHBYcUlhcll4RjYwa2hQaDJGVVBQY21UK1hSRGhaejhhblV5TnhGbG5xUlhCcmlHZTZqaWpNa3JySEdPN3VRcWo3ejBxUlRHN1FzRi9hM0NscmVhT2RSM2FKMWNEKzZUU2M2Y1JiUVd1UUtZN29kZ3I5UnF0Uytab04ya1RsNGJTN2drdGIyQ081dFpodGxnbVVPakQ1cTJvcWxjdk9FdHlkR1R3alZHZjh6OXArTzViamN1UHdOblo0YS85YU81Z3UwaEdtK01ueXZ0OCsxbFlqcFdqaDgreUxWNk4yVXBUMjlEWVpRZlJ4Ukk4VDRwaitMWWtZMnplU1ptYjFMaTRsSUx5U0VBRStVS0FCcDBBRlpQTmVhWHMyNzVsMTFsU2k3RjFGbUs2M1VzRVZzV0dwcXJDelVEblFUdWJUeW5iUXVXTkIwSmtQS3p4dldkS3NXVzQ2b1dpbURpcDRTcU1hb0pYMWxGZVcwdHZJTlVtUm8yK3h3VlA4dFM3YU5OZEFLNlVNbTRyN2wzZU45dTdQaW1HZjFlVldrbHpZeVRzcE1WamJ4enVGbmtKNk0rMDZScDhlcDZWcFhQVHJ5YzZWMmFwWWUyWCtaMFduNGxUbHRpN2tmMmJhMXJxK2lLNjM5eU16NVV1VHhsN0pIOVRMa281RUtocnA5OHdabDcrb2Z4RFZ1eHJxLzRWdjlLMjkzQWs1enlyK05jcEJ1UzdlSmRQYkRsWHVGamVPUGNZMjdpdTQ3K0w2Smt2Q1NsajlHQkZCUEVnL0dSR3BVcDRuYVRWTFA4QVRHUGxiWnZ3N1pOdW5UWFZyMnYzRW5MK1QzcjF1TTRTK3B0T3ZSVFN2MjdCM0RpTFFXazhGM3JmUGVPMHQvUGNhTzl4Sy9WbmtKOGZoOFBDdFMzQ051S2pGVWl1Q083eGVVMmJWbnlxYmsvcXIrcDliKzJoV2M3Z1lyRmhQNjB0Mms1VlAvTXNaakdzU2dSUnF6YW5hbzEyNjlxTnVFWXFrVWt1dzUzTzVOYnhkWWF4aytuV25Vdm1VK2Rka3JvZW9CSTArVlNIT3pqUnRHbit5R1h1SmNWa01OSUMwT01sRFc4M1hUWk5xVEhyOFZJMSsrdVY1N1lVYmltdjFmY1Q4cm0wcFE2SXY1bWtFMWhwR3NFWTA5SUlnRFVyUTRPRFRXZ0ZZdW5qelB1Rmo3RGNEYWNmaU4vYzllaHVaUnNnVDdWR3JWMWZwdkZwVzQrbmg3Q3RiaDV1U2wwVzFWOTc0RDNrdjcwbnlHT3Y4UkxESGZZcThqdWJlUzRETkg1RlpXMVZkQ2RkL2JXdGJtVm1HVENWdVgweVZEWTVoeTZWK3pHTVdsTGRYVWI0SDNGNWR4L21rTDhzeTV5R0h5WlczdXl5ckZEYWwyMGhuaVJRQWlLM2xrK1IxUGF1UjV2NlpzL3huNUVhVGhyMnk2MStCek9iZ3p4V201YmwwL2lOZmVmT1djL0xuWkxpSjRMTzJqQ3VycXlueW1RNkVIVHhxanlISGxISFdqcktUL0F5Y2lhY2lad0hzakZrZmJUQzViR01NZnkyVzFGMU04bW9ndXhPelRDSzVYcm9RcmdMSXZVZk1WUGkrc3IyQm56bzkxamRUYjNhYUVtUHV0cFNqeDZlMEQyMTlvY2diWEtabmsxcUxYS1hjRnpZNHpIeWtQOEFUck1yUnlUdnAwM3Zyb3Z3WHI0MHZWUHExWlYyTWJML0FMVVdwUHRmR240a3V4M1c1UzA2a1o5eW4yeDVQeE8yRHpYQzMwY0txM29KRm83d3I1V1pHVmpxeTk5Tks2WGxYck5YNUtNbFNQQ3BFNVhMZEs2b29PUWp5VWwwcXZhU0taVjNReHFOemFhNmViVG9wcll1Y3p0M0c1Vm9rVnJsM2RMZ2JIN0E0ejZmamw3bEhVQ1hJWFRLcDhSSEFOZ0g5NG11RjlTWkcrK285RVY4elU1WkR3T1hXelhyTFVrRTl2Q3NhMGk1Y0p5MGlNbjJDdEcxQ3BUbktnKzlNanI0Q3JPd2hxTWJ5WnJpNWd4MXZQNlVzamd6T3JiZlRRQWtibS9SMWJTc3ptR1M0cFFoSlJuSnBhdWxPOHA1TnlyVUl2WHBweFMvTWpPUVoyOHdjTEpkZWxkc0cyUnZFMmpTZmNCdDhlOVZiZk1KeWs3VFNjbHhrbldQc0dMSXVRVldsTDRQM1VKTzJZaFJ1R2gwNmo0R3J0dEdySWMrcjFxYmNNb1Z2bi9PMDRwaFJjUlEvVlpPNkppeDlxZGRwY0RWcEpDT29qakIxWS9ZUEdyT1BiM3QxK2xjU1hHeFpYcmtiY1Bxa3lrZTNHZDQza2hsczM3aHlSWmU2Z2xoOUZyNVZhMmhSZzVaWW9YSWdqWG9QRFg1MXY4QUxhTlBTaUxYcWZsME1MeTdkdHR5YWx1Zlc5UGNSUEdlUSszdklPY0pqYlBDUTRnM1Y2MEZsbWNEY1MyZHloYVFoSElEeVJPcDZhcnQwL2twbSt0elpPT2pmMjRtaGV3TFU4SjNiZHlzNFFxMDFIcTFvNHBPdmZYdE5WdE1obWNWbTM0eHlDVmJpL1dJM09MeWlLSTB2N1FIYXpsQjBTZUlrQ1ZCMDZoaDBQVEo1bmh1eTkwZm9md09ic1hGTkZpdDdqY2c2MVV0WEtvZEtPb2plSGNoMDdpbzcrcUgyK0l6aGwxR2xWYmNxa3NrRmtYUnczNWFNbzYxQ21PdzRDRFNyYTRFVkJKaVQyR3RNYkhKRUZrdEJLZmpXWGtMVXUydUF5V1FvZFJVTVhRbGFxUFlMaFhBTlhJU3FReWpRd085ay80UjVKbTdUTlFTV1Z2ZjM4dDVZWHBRdGJ5Unk5UVBVVUhxUGdhN3ZCdnh1V28wZXFXcG9jaDVwWnhOOXU5NGQwcXAwMDk1VmVhWmpFM04xSExiWGtNeTZEVW80YncwOEt1b1p6L01zWEpwd25HWGN5MWUyMG9IRDJZTnFyWE0rMzdDMVdsS2xwbXY2WVZjZFA4QXFsOHlkM1ZTT3BvTmNwWmk5c3BJUDB6MWpQd1lkcUtaVXpjWHpyVGowOUhlWmhMamN4a2N2TmpzVGF0ZDM2aldSSTlDc2VnNmxtMTJqOHRNdlg0V2xXYm9qekRMVS9OY0lLcy9rYkQ3WDhTdmVOY2VlRy8wRi9lU21lZEZPN1owQ3FwSTduNDF5WE5NdU4rNVdQMHBVTHZMc2FWcUhpK3B1cGJpYXowalFFeWFja0VRQnFab2NIQnBqUURQT1UyMlY0cmw3alA0L2ROaHNpNnZsWTlON1F5am9KUDF2VEk3L0N1bDVUbkp4VnFXalhEdEtTdjNNTzQ1eC8yNS9WMlByN2laeEhKOGRrWTBJZFVkeHF2VUZHL3F0VzRkUmk4d3QzVXRTTDVkYzI4MXdsdHRWakVwOVZqMS9GK2lhUlM1bk9NcGJlcmlabmYyTmxKdVNDM2pScmlSWW90cWpVYjIwNmZkUU9NdTJvTjBpbDRuVDNucUhpSE51UDhBRWZhWGpReUY0MTlrcnV5RWxyWVFOOVJlWER5TVcycW9KMEM3dHBaaUZYVDdxOHN5dVdYc3pQdVJ0Um9sS2xlQ1F5dzI2UmluS1hRaDV4LzNaNC9md1pGOHloNDVOaTFpa3VvcitXTGFZNXQyeG9uUW4xT3FFYUFhNjFEekgwN2tZMDR3WDl6ZncycC9FdVhaU3RTY2JxMnlRTTNJK0djejRuZjVheHVHbXRzWVpRWk5ERExISWk2alZYRzRLNElJMUhVVkNzVEl4TDhiYzFTVTZkcXArUkU1eG5GOWg1MHlkMGJmSDNWd05Sc2pkbDErSkhUODVydnJVS3lTTXlUME5wOXU4S3VNNGhpTExidEtXNlBMODVKQnZZL2xhdWN6cCtiZm5MdCtSME9QSFphaXV3dWNBMDBBcHNVQ1JOMlV5Q1BhcDYrTmFOcVNwUXAzSTZqd3pBSjFxZHkwSTZGZWt5RVdFWm5kMStrbVp3R0kxa0R1Q2RwNzc5M1hROTY1UG1HREtNM2N0dXJlbXV2SHZLTXJMc3VuR01uN2E4ZGVzZ3M5a0xQSzRtTzhzVWtsdWJTWlpJb2hHekVsSEc1UEtDRDJxcnkvSHUycnVxOExJN2x5cThLYmFmVStndGlTZ29IMEkzQUhROUNOZXZXdWtXaHM4VGtsQjYwMVNFMFpUN3JPMCtVeUc3cjlMWjJNVnN2d0Z4Y1NOSVIvV01TQS9aVzVoeFg4V2I2ZHhvOGhsVG1OdnVsOG1WMzJsNGxqY255VE50bjdmNmg4UTBJdHNYY2dtTlpKUTJzMGtUZEdaZHUwYmgwcUhNeUoyclVWSFRkV3ZzNkNibjhuY3pKVjFpa3R2YzlhbHo1NXdPeTIyL0tPT1krS0RQNFdSYm9RMnlpRVhVTVozUEVWUUFiOUJxamFhNjlLaDVkekJ4bW96ZFl2cjZHWTF5TFVYdDBxcVB0UkRlNWZQN2pONC9pT1d4TndCZDJheTNscE9RT3JFb3VqZU9qTHFraWZiVzV6S1MwVCtsMXFhbnBqbGtjcXhmZzlMaWNkdmZyOEh3WnBQQytVMmZJc0hiNVMxOGdsQldlQW56UXpMMGtpYjVxMzVSMXJtSGJkcWJpLzhWMW1mZGcwMm1xTmFQdkoyUjlWb3kxSWtpUDNlbkw4cXAvVElucFZDc2tnSzFOSjZEVWhzdVFFWktQNGRxaWpmcG95UjJxbGZ5amNleUhJeEJ5YUdXOXhDMnlteHNGa2RJR25abTlXZVpVS21VeGdJRlU2aGRTZE5UVWs4K1ZxRGNJMXFwZE5HbituWHE0dnRLV1JhZFVtNklhWXVYR0Q2dTN4VHUyTXQ1dlR0bGtrYVgwL0tDOGF1NVp0b1k5RkpPM3Q4cXpkMTJVWXU3OWJXdlJYdCszRXY0bjB1bkNvOEpvVUxZQ3lzamFqNzZmRjBFMVVjdWJhN2dNTnhHazBUZmlpa1VPcCswTnFLdTI3blNpR1VPc2lKZUdjUUpaMXd0a3NqQS90QmJ4YWdueEhscXovQUNydjdwZThpVmlIN1Y3alAyOXBNOWlZakR4L2tPMjBERjF0THlCWEFMRWsrZE92ajhLMkxmUG1sU1VmY3lmRXZaT05IYmF1ZUhxYVRHdi9BQWg3bTY3VGU0b0Q5ZlpOcitUU3BmOEFuclA3WmZBdi93RE1jdzY3ZnVZdEY3WjVtOVAvQU1lNUJKSkFmeFdsZ2dnVWo0TTU4eEZWN3ZQbS9valR2SzE2N2xYOUx0MTdlcVBoTGZoc0ZpTUpaaXp4VnFsckFPckJSNW1QeGRqNW1QMjFpM3I4N3N0MDNWaXMyWVcxU0tvaDZUVEVpWVRZMDVJSVJqVDBnaUFOU3REZzROTmFBR0lWMUtPb1pHR2pLdzFCQjdnZzAzZ05hcVVUTSsyTFJ6UGQ4WXVWc25jN3BNZE1DMXN6ZjBkT3NmM1ZzNHZPWlEwdUxjdXZwTTZXSEtEclpkUDZYdy9JcStSaDVOWkpKSGs4TGRSa2dyOVJiRDZpTS9QVmV1bGJkclBzejRTUXllWE5KcWNKTHRXbzM0TmJMa2VWMjRhTjFUR28xMUtrcUZDSDAyUmRHK2JhMWJnMDlVTzVOYlY3SmoxUThYdDRJMWhzYmhiTzRta3h0bkRieVhEZXBjeXhxQVhZOWUvdytRNmExWXZ5aldrVHNNVERoYWJrb3BTa1YzbFhIbzc2YUhJSmJwTGNXeUZkekRWZ3V1N3k2L0RyVUJXNWxnSzVKWEVrNVJSVkpNdm1jUkJrUmk1MGhoelVDMnVSU1JTKzRSdHZqa1FhanpyMVhVK0Jxamw0RnUvS0VwOGJicWprcy9HcTk4WFN1akt5YmE2dWJtMHRHdXBwVGZYTU1FaU1RVllQSVAwZE9tbnlwOXkxQ0VYSkw2VXpMdVk2U1dyMWFQVjF2R2tTTEdvMFZBRlVmSURRVndTUnVzYytzRVhYeDhLZTNRWlNvZTN2SFE2NjBJWEdnU2hVY3RrSFlhYTFKSzgyUnEyaGhra3RieTJNRjJnbGlKRGJDU09xblVIVWFHcTg3bEJUeDQzRnRrcW9WeDRTS0pValVSeHFORVJSb0FQZ0FLYmFiNGozQlJWRm9rT0o3bmFuZW5YSjBRSXgxRTRycy9HbzQzQnpnVUQzanNMeHNUKytySmQ0aFJJTWlvN2lGWlJMSEwvOTIrb1B5Ylh3clo1Yms2U3RQOVhEdkpjR1N0Wk1Mai9UOTRsaDd1NnkyQS81aTR5R1NYUDhlV08wNVZiSjErdnhlM3BQcDR6d3F1dXZqdCtkYkVyQ3liTGkvclhUOG4rSkx6NjJzZS9CeC8ycHB1Sy9icnJIdVQxWGZRMG5IWHR0ZTJrTjVhU2lhMnVFV1dDWlQwWkhHcXNLNWJZNHRwOFVVR1lWN3ZjYm40M21Jc25hNnJ4Kytsa2tXSWZndHJ1WFJwVUduWkp0dTVSK3RyVzdpM25mdDdIOVVmaXZ5TkhrMmJIRXV0dlNNdW50WFI3Zm1YcjJrdGJ5eHgxL2xMcTBmSFdWM0hBOGNFbzBra01FYmVwY21QdXZxS1ZBQjZuYnJWVE51UmNvUWpyS0tvL2VRY3d2eHZYN2wyUDB5ZFY3a1BuOTFqYVkzRzV6TFk2TzI0OWxwSklyZTdndWx1TGlEMDIwM1hWc0ZVb3ZpZGpOdDhhMk1qMDNmaEZ0UGRLS3ExK0hXWjhsS0xhYStuVjlsZnRxWFJWUzRWWlVZTkd3REs2blVGVDFCQkhnYTVoMjZrcWxRR1ZkcWQ2TW8wUWt5S3ZWSkc0ZHhWSzdEcExOdGtSa0xDd3lFSDA5L2J4M1VHdXZweXFHR3Z4R3Zhb3JkeVVIV0xveVNVSXlWR3FnMjF0YTJsdWx0YXdwQmJ4RFNPR05RaUtQa0IwcFNrNU9yZFdHTVVsUkJ5MUpJY0ZKcHlRUUZrS25VVStPZ21od2s0WVZZaktwRzRuT3dOUG9GRFNaTmVvNzB4eEpJc2FzU085Q2hJRUpweVFSTmpUa2doQ2Fla0VJVFRrZ2pjTlV6UTRVRFV4b0FjTlRXZ0IxYW10QUZGYjUweG9Cbk9Mdmx4M01jMUZtMU5wa3NwT0hzWlpDUFJsdDR4dGpXT1R0dUhpdGRweTJVSFppb1BnTGsyUkMxZW5HNTRiazNwWGcwdUZHVzdXcngxcEc1TE8yZGtwVU1KWi8wWWxPdlgra2ZDa1ZNak1oYlhYSXpuTzNYclRkZEE1WXU2cU5BTjN5cEhIWjkzZEx0NGhlSDJuMW5PK1BXM2NMY200Y2ZLRlMydjVxbzh4bnRzU2ZZWmpWYmtGMjFQU2l1QjFOY1NhclFtWml6Zkx3cUp1bzdiUU9zbEFEUW9KS1RZMmdsSTVkZ2c4YWlscTZEa3FENkx5cUtuaXFJaGtON3lYcUZxQzh5U0NFRmxJcUZEMmhVdkhMRThNeWlTS1JTa2tiRFZXVmhvVkkrQkZTUW0wNm9ZNDFJajJoRVBCK1RaZkN6bmRpc2lZcDdGbjZuMGZNaksydmYweTRSdmx0UGpYYzhueVZlZzMrcnArM2Fabk9MMHBSdHhsK2l2M0RMQlR5OE41MWtlRVhoVVltOWxsdnVMVHIvcCtqS3hkcmREOEIxMmo0aGhXYnpUSDFjMXhYSHU2SDl6THp0Slc0VGo5RWw3cEw2b3YvQU1TN0dXNjlNRXVpVFJwS2dJY0s2aGdHVTZxMmgxNmc5UWF3SlhHbm9LTUtpYlhJWWtONWxiVU1ENGc5Q0RVTytqSDdERWMxN1E4cHQ4cExGaC9UdXNUS3hOdkkwcXh2R2pIOEVxdnBydDdibDExcjBYbC9xNjE1U1Y3Y3BMcVZhZ3QzTGtWdGVxKzNFMm5qTWJZZkFZL0Z5eWVzMWxiUlFOSitzWTFDNmpYdzZkSzRxOWxLVnlVa3FLVGJvUksxUlVRNWx5Tzk5bzdWV2xlcXlWV3FCSFlNdEo2aFJIVERhNUhoNFZWbEdqSjB4SXRTb09DbHFja0lLV3B5UVFoYWlrRUFTRlRxS2VoVUZsbURDcG9zYTRoSlprVWFzZEtrVVd3VlNJdTZ5bHFtdWgxSStGWGJQTGJ0emdpcGQ1bGF0OFdNcmJOUXp6R0lkNldUeStkbGVJZmk4d3QzdnBIeGFxU1JvaEMxUFNDSVRUcEdOV09sUFVSTnBDWWFwR2g0b3BKT2c3MDJnR1NFR0x1WkUzQWFDbnF5MlFTdkpDVTBFc0xiWEdsUXlnMFBqSk1LR3FOb0l6ekdGeFdhc21zc25icmNXN2RnMzRsUDZ5TU9xbjVpbjJyMDdjdDBYUmtONnpHNHFTVlVVVys5dXVUNDlqKzRzaXQ5Wmo4TnBlc1ZrVWZxckt2US9mVzlZNTNIaGNWTzRxSzNrV3RJUzNSNnBmaVJMWWZuU01VYmpzclArdEhORXluN3lhdnJtbU8vMUMvbFhseHR2M29hWXJnUFBNMWRUSTlvdUpSRCswdWJ6VWtrbnNnWDhYOGxNdjhBTmJNRlZQZFhxTTlRdjNHOU52YXpWZUcrM09CNHkvMWNXKzd5ckpzbHY1anEzWHVFWHNncm5jdm1GeTlvOUk5UmRzWWNiYnJ4bDFscmttL1JGWnNtVzBqbGVtQ2FGQTlJYlFNWk9sTllxQTI1M09XTkNDMUJMZ1B5U2cwWWFINFZPMVFoNGxRNVh6Sk1SY21LTzBlOW1TSVhFeUxJa0lXSXY2WTBNbjQzWnRkRkhnQ2VsVzhEazl6TDNTaTBveDYrc250MjdrdElSY3FjZWhMMjlwSzJGOURmV052ZVE2K2pjUnJLZ1lhTUF3MTBJK0lySnZXWlc1dUV1TVhRUGVPUTlSMEVNOHJhU1hjTWJ3RUxmV3Irclp5TjIzNmFNamYwSkY4cmZsOEt1OHZ6Slk5MVRYRHA3aXZrNDZ1d2NXVVRIWkMzNWZIYmNSdjVKc2ZtN0xNN3NGZWxkWnJlT2VWakpHeEgvY3k3WEg5b2VOZGFweG0wdUtiMC93QXN1S05oMmE0czU2T1BrK0wvQUQyMTRaTHQ0eGZaUXZtS3l0N2RXOHR2a29oYjV2R3ltMHkxc095em9BZDZmR09WU0hRL0ExeXZNc1IyTG0zbzZPNHhzZTRweHFoMlhOWjVZb0xwSjBxYUl4bzVub2lTRzdzUTJ0UnRFaUhNYzI1UlZpTEkyaEs0RzRhK05DVVIwUm1XcUtoSUZMVTZnUXBhblVDRkxVVWdoQzFPU0NNcnpKeDJ3NytiNFZleE1PZDJWSW9xWmVaQ3pHc21STXQzZFhaSlp0cWZDdlFPV2VuSXhWWm5ubk5mVTBwTnh0a2RmM2tWdEVRQnVldWk4cTNham9qbTQzTHQ2V3JGZU1RTkt6WE1nMDE3VjU1ejNLM3pvZW5lbjhQeTdkU3d2MHJuYUhVSVJtbENJV05QU0MzUVp3V3JYZTZXVC9USFlWRmR2YmRFUktPN1VPR3E0MFdDUXhNSW11bERkaDFwMXVOV1EzcFVSYkYwQUFIWVZjb1p6R09ZaFY3WXZwNWw4YXIzbzFSTlpsUmxlQjYxUWFMb2NOVFdnQncxTmFBTFIwS0RXT0ZhalFZd1dsMEZOWWtnZ2VvcUJGRmVoUURRY1BRQlE0eVUxaW9PN2Z5cUtrakVqa0t5U25hU1RUcE1Za1Zma25GckhQQ016VHpXczBmVDFvQ29aazExMnNIVng0OURwMHFmQTVwZXhhcUZLUzZIOHl6RzVPS2FoSnhyOXVrbGJLMmdzN1NHMGdCV0MzUlk0d1RxZHFqUWFrOXpWQzdPVTVPVXVNblZqS0MrNDFIUVIyNmxRUlZjMWdaTFRsMkg1WllLRmt0N3VEOTRMNGFCZ0VsUCtWdnVyZTVOa2VOVzVkZW40RGJ0OXdzWEk5RW92MzArOG1QZFRrZGpqK1JZRGt0c20yTyt0NUxYT0l2NGpIQzY3R1llTFFGeVFmRlNSV3Z6bXdycVVmMWRIZjFlMHA4anc1WExGMjVIWHkycXIrbHAxOTNIdXFTS3lxNks2TUdSZ0dWbDZnZ2pVRUg1MXhlMHZDaVNkS2NoclFZdlRoVUVwR29ORGtERElSME5PZ0NTRkdiVVZMUWFrTkplalZHNGtpRXkxS2c0S1dwMUFoR2NBYWswNUlSRzVIS3h3b1FwMWZ3cS9pNE03ajRGYTdsUWpvM3FRMFZsZDNjaG1kdWg3Q3U0NWZaampyaHFVNzNJcFplcmVnOVhFemFkWHJUL0FKMHdROUZXS2FqTEljZWxtUWtOMXFPNWxTa2gwZlI5cUhBaUlNN2NZZVQ2YVZmS1BHc08vd0FtZDZza1dJd2Rqd2xoc00vYVhpalJnRytGYy9rNEU3VDFSYnQza3h5MW5kWHpiYmRTVUg0aUt6N2w2TnRha1Y2K2s2RHVVcGJXTFI5bVVhR3FFYXluVXNLYTJhRWFHcmJhTEEreGwySUxoV1BieG93ZEdSWFkxUmFvcnVHUkF3WVZhcWpQY0dpUHpHUWo5TDBrT3BQZW9MMHRLRTFtMjYxSVFOVk5vdGhnMU1hQUtvYUZCckZsYWhRYUtlcDBvTUZBcGZVMUd3MEJEVTJnZzZ2UW9DZ1lQVFdnQnJkbW51emJRSTl4Y0t2cVBEQWp5dXFmck1xQmlvK1pxUzFqenVPa1ZVaXUzWVFYaWRCM2JYRVVzS1N4T0pJbkFaSFU2cVFmRUdpNHRPakJWUFZIVHkrWFNvNWhpaHNaRlZTekVCVkJMRTlBQU9wTlEwSGxBekh1RGY1V1JySGlvMlFhbFpjektQTDgvcDBidi9YYnA4SzFMZUZDMTRyM0g5djQvZ1ZKMzNMU0h2STlieXk0bmRZM0s0K1c5dVk1b3luS2hkUDZnZDJmWDE0ZE92azc5ZTlXNXUza3cySlVsMGNPUFYzTWhodXR5cStCcUVVOFUwU1RST0pJcEZEeHlMMURLdzFCQitZcm4zRnAwWm9JY1FySEtyeFNLSGpkU3JvZXhVOUNEVWxxcWRVTW10RE0vYzZXYXp2c1piVEZualZKUXNyZG5Rc3UxaWYxaDJiOHZqWFRUeVA1RnVML0FGcmo5dTAxUFNyL0FJMXk0djBTY2Z2K1JhK0tXZDdqdVA0aGJoakpaWkNCNWNaTWYwZlRkbGt0aWZqSHB1VDRxZjZKckw1amh0UmplWENYSHY4QXpLV1pLRU11N2Fqb295MDdtay92SnhYcktTR0FsNmNDaEZjaHlSdExTQlEvcEc3dVliVXphNmJGbGJ6TnI0SGFEcDg2a3R3clYvdGkyTms2TkxyYVF4eUY5amJmbVdIaHhOdkZhTGQyMDBHUWd0aVRITDlQSHZTNWJYL3RDM1RkM0liclUxdTY3dHFUa3FiTnRPL2cvZng5ZzJkcFc1eFNkZDI2dmR4WHVMSUpOUlVTSDBFNURxS1RRNURjdFFvUEUza0NnazA1UnFKNkVOZTVDU1Z6SEQySGMxMWZKdVJPODkwdUJ5Zk8rZnhzTGJIaU1ramlkdHJhcy94TmVnNDNMN1Z0VVNQTzcvTmIwNWJteHhaWFAwOHBpZjhBRDRWbTV1UHNlaDZsNlU1OHJrTnMzcVM2U0t3NkdzODc2TnhTNEJqcFNIbFg1WmlJNW9EY0tQTXRXc2U2NHN5OC9IVWxVcEZ2TkxCS0NyRWFIcldsazRVTDBOVnFjODAwYjM3WTN1UHZjWHNDZ3pBYU1mR3ZFL1VlSE94ZTE0RUZYWFVxM3VDeHNyOTQ0eG9yMUx5dU8rTldTUXV2Z01RMWJMUjBBb3JVeG9Bc2x6S28wREVDZ01jVUQ2ak1kU2RhWTBLZ0lhbXRDRkZQV20wQXl3WTNGUlNXNGtrN3QyRldJV1UxVmxPNWVhZEVNNyszRnZNVkIxSGhVRjJHMWtsdVc1RFF5VkEwUzBCRFUxb1FZTlRXZ0VOZmMwd2RoZm16dUhsQlJnazF3c1R0QkV6YWFDU1VEYXZmcjhQR3J0dmxsK2R2ekl4OEpIS1RTYnBMYXVNcVBhdTlrM0xLNlF5T2k3M1JHWlYrSkFKQSsrcUNWV09laUluQTh5dCtLOFdTOEUwc1dXblZwc3JkSXhMenlUQUVSYlNPNGJ5b0I4Z0tkS1Y2ZDV4dFZpOVk4ZjA5M3hiSVZHMUcwbmM4UzQwcCtyN2FKRC9oOXRlV2ZITE9LOVQwcnB4SlBORC9BTjIwOGpTK24vWTM3YW15R25OMDFTb3UraXBVanN4YWlxOGVQdjFKS1dUVTZWVmtUeFFsSXNjc2J4U0x1amtVbzZueFZob1IrU21MUjFRV2pJdnBKZUo4Z2t3bHdTY2JjZnRjWmNONHg2NmJTZjFrL0MzM0d0cThsa1cvTVgxTDZsOXVzekV2S250ZjB2Z0RtYy9hcVJZVzBadmJ5NDhrZHZHTjVZbndBSGYrU29zYkVrL0UvREZkSWJ0NWNGcXkrZTMyTHpHSjR6RFo1VWhaMWtkNFlBd2YwWVdPcVJGaDMyOWZzN1ZWejdrTGwzZERoMTliNnkzalFsR0ZKY1MxMnorYXFzRVN5Ukc4ejQvRG44TEphblFYTWY3UzBsUDZNZ0hZL3dCRnV4cTNadmVYS3ZSMGh4N3J0elVrT3VOMzZ5ZXpVdU12azlQSTRtMm11YkJuR2pKTkJLN0QrMHAxQitLa2l1cmNZeXhYWFdPMHpKcnp1YUtLZjF6aXE5NlF6dytYaHltT2l2SWh0M2pTV1BYVXBJUHhMOTNoOHE0dTVhMlNvYk42ekszTndsOVNIdSttVUlxRFRKV050a0xSN1c1WFdOaXJBam95c2hES3luNGdpbndrNHVxQktDYW94amplUDJOaGR0ZUF0TmRGUFNTUjlCc2pKQlpWQTdiaUJxZmxUM2NianQ2QUsycTE2U1hTVHdwcUhOQXM5UG9LZ2k1NjBLRGtSZVd1aWtleFQxYnBXcnluRTg2NmtaZk44enliVFloYXdoWTlUMUo3MTYvaVk4YlVFa2VLNXVWSzdjYlljeFJxZFFQTWFubFJLcFdoV1RvYUh3bjI1dE1qYkM5dlI1VDFBcm1NM0tjcFVPNDVWaStWRlM2U1E1WDdlV2xyWXRkV1BUWU5TS3psSTdEQjVwT0VrbTlETXJscm5UYWc2am9ha080aGRjNHBvQnJWNXJSbzVlcFlVNkxveVJ3M1Jvek9zNWpqWTNURFh5azlLM2NUSTNLaHplVloyU0xIN1pjcUdNeVloYy9zM09sY2Q2dzVjcnNOeTRtWmNra3krZTRObEJrcmVPOWcwSkhVNlY1N3l5NDdVdHJIMnFPUlV3MWRNMGRFSERVMW9RY05UR2dCdzFOYUFIRFUxb0FkV3B0QnBLMmVibWdoRVdnS2pzYWxqZGFWQ0NkaE4xRzl6ZXZQSVhZOVRVTTIyUGpDZ2tHcUpvY0dEVTFvUVlOUW9BcTl6eGJKeTVlWmx1SVRpYnB6Sk5HNFl5cnY2dWlqVGFkVHJvZFJYUVkzUFhhc2VYdDhTVkYxRm0xblhyY0hiU2k0T3ZIdDdDMklRQUZIUURvQjhoWE9VS2xBaTRqRkc2UzdOcEcxekdkMGNoWFhhMzZ5ZzlBZm1La1U1SlVxUk8zRnV0Qi82blNtVURRUlo5V05SdEQwanQxQ2dpSTVSeG13NUZZSmEzVE5ESkM0bHRycVBUMUkzSFE2YTlDR0hRaXA4YklsYWxWYTE0b2h2V1ZjVkdKOFo0aGh1UFJrMnFHVzlrR2s5L05vMHovTFg5RmY2SzBjbktuZDQ2UjZsd0JaeDQyK0hIckozZlZXaE1Ld1A1NmRGRFpJY1NQcWhxUm9ZaXZjam5OdmdjbXcvQTl2SWZzZlQrUnUzMjFyY3R5L0JLekxxZTM4Q0pZOU1xMWVqeFU0MUt2N2NYb2t1YnRFbUFReHE3VzU3bHQyM2NQbW9QWDVWWHliSGdjbitrNnZuOXkxUFpPUDF2UjkxS2w3M1ZtVU9mQzdxTkJBRnFOQWdCK3RGSVFiZlQ2QW9KU3lhS1RUbEdyRTNSRXhnZmIrZk54QzdtYlpIK2pYVzhxdGVUNGprK2J6Vjd3a056VENYUEdnek41azAxVTEyZUxuN2xxY0RuY3JVSG9admgrWjNOL2x6QVVJalZxVWN4M0pPSStYTFBLZ3BucHYyOTVWakpzUWxwTklJNUZHbWhPbFl1VmFjWkhRWVYrTW9JZGMxNVppYkxFU1FKTXJ5T05BQWRhclVOWEdnNXpTUmowRG1UZElSK0k2MUtqMHZEaHR0cE1iNU83TnZBV1h2UlkrL2Myb3pIa2w5Y1RYT3I5cXVZazZIS1p0K1VucUljYmNqSm8vZ0QxTlovTzdsYmJSbXRObW5TY2hCaVczRGFvUjFyeng0dXRTZkcrclVqdzFialIwd2NOVEdoQnc5TmFBSERVMW9BWVBUV2dCMWVtdEFEaDZiUUZBd2MwS0FEaDZiUVFjUFRHZ0JnOUJvQWNOVGFBRG8zV2hRREZsZWpRYlFGbjZVMW9WQlBkVEtCQjNVS0NvRHVwVUVEdW9VRWR1cFVBS1F0NXFkRkFZNFovTFQ2REJqS3NjaVBISW9lTndWZEdHb0lQY0VHbzFveVJESEhZVEQ0MTNrc2JWSUpKQm83cnFUcDMwMVluUWZaVWs3c3BjV1BsT1V1THFQdDFSMEdnRnFOQkFGcU5BZ0ZxTkJIYjZja0tnbktkVk5QaG94c28xUmUrRzgreG1QeC8wdDk1ZG5ZMTFPSGtSbEZJNWJOeHBSazMwRlg5d3VVVzNJN2tRMncxZ1hwclhVOHZ4bldyT041dG1SU291Sm5WcHg2R3p2eklpZmlPdFg0NGlqT3BTbnpSenNiQ3lCSjAwYUNReHQ4alZxN2l4bnhNcXhtenQ4QnBJdDA5MmpYTXpTRFhzVFdUbVlhZ3FvN3YwbHpEekwxSkV4SmNSUVJBazZkS3lUMkJ6VVVWM0o1RTNERlIrR210bVhrWDl4VU9RUmhpcXFOWE5TVzdtM1V4Y3RWSHZITUxKRXZxeWpRdDJyRTVobCtZOUNiRXhkTlNSa3NaNDVTeUhVR3N4eFRIeXc2T3FKQVBValJxQnc5TmFBSEQwMW9BY1BUV2hCZzlOb0NnY1BUYUFEQjZGQUJnOU5hRUhEMDFvQWNQVFdnQnc5TmFBSERVMW9Rb3JVS0RXS0I2VkFVT1orbE5hRWtBR3B0QWc3alFvQ2dPK2xRUjI2aFFSMjZsUVFwRy9tb3BEV2hjdjBwOUJ0QnE3ZVkweWc5QWI2VkFnYjZWQkFGcU5BZ0ZxTkJCUzFHZ3FBYjZLUWdDMU9vRWJ6MmozZjdHR05wSlg2SWlBc3hQeUE2MVl4NXVNbFFyNU5xTW9Pb2F3d0dmaUpqZkUzZzA3TjlQTi9zMTZkeXJQaEtDVXRIMm5qL08rV1hJWEc0cmN1elVmL3dERHViSjEvZGwzci91OHYreld2NTl2OTBmZWpCL2pYdjJTOXpCT0N6b0gvd0MyWGY4QStubC8yYVg4aTMrNlB2UVA0bDM5a3ZjeU11Y1J5RDZrRVltK0lYeEZ0Ti9zMWo4eHlZdlJPcDMzby9HOHFlK2ZoNzlCamU0WGxjNy9BUDdUZmJQaDlOTi9zMWlObm9sM01qTDlTOTZHNTQxeWZUcGg3NG4vQUhhYi9acU9WeElnZVJEOXk5Nkk4OFE1VEplbzh1RnZ0Z1AvQVBTemY3TlViMTl5VkVtVjFlZzU2dGU4azVJWmJWekJORThFcWZpaWtVbzQrMVdBTlpiaTY2bXpCeGFxdFVKbDZTUThSRDFLME9EaDZhMEFNSHByUWc0ZW10QURCNkZBQmc5TmFBSEQwMW9RWVBUYUFEaDZhMEFPSHB0QlVGQTlOb0Nnb3JVR2dCdzlOb05EaDZGQlVPTDBHaFVHOTg4djB4U0tiNmQ1R1NQNmdnSDB4STRRdjE2ZVVIcHJUVzlxYnBXaWJvUVpFbkcyMnVKUDMzdHh4KzA0cTJjdzE3Y3dacXg5TjUxbG5tblM3WGNCTEZPa2pNb1lnK1ZsQUlPbmgwckp3T2JTdVhKUnZTV3JTaEhaMTlLa3VGTzJ0VEl0dWNaeGNhdXZIVWlTNDFyV29iMUFkOUNnS0hiNlZCVURvL1dra0JvWDM5S2RRYlFRZHZOVFdoeVFUZFNvRTdkUm9JRGZTb0VMdUpvcENEckRJZXVocCt4Z3FnamhsN2lsdENtSmxxTkFtcyt5VmhhbXh5T1FLQTNYckNCWkNOU3FCQTJnK0dwYnJXM3lxMnFPWFRVNTduZHg3b3g2S1ZOT3JYTUk2a0k2a0k2a0k2a0k2a0k2a0l5MzMveHRvL0dyUEorbUJlMjkya0tUQWViMDVWYmNwUGlOVkJxbm1SVGpVMnVTWEplYTQ5RFJoUmVzNUk2d1FEMUswT0RoNmEwQVZRTzNZVTNhTmJCM0VkNmEwSUVQVGFDREI2RkJCZzlOYUFIRDAxb0FkWHByUWhRUFRXZ0NpdlRXZ0RNNXVGY210ajZNcFV1SW11dEI2U3pOR1pWaUoxMTNGQnIyMHAza3ZidU02WE03S3lsalYvdXVPNm5ZTHBuY00xeUxaYjZBM0JPZ2k5UmR4UHdIWHFhYTdNcVZvNkZsWkZ0eTJxVWQzVlVmYnFpb1MwTzMwS0NDeUNPV040cEZEeHVDcm93MUJCNkVFVWtxQ2FUVkdON094anRmS2x4Y3l4RC9BRTRaN2lXV05BTzIxWFk5dkRXbXVFYTFVWXA5YVNSWHRZa0lPcVE3MzBhRmlnTytoUVZBZDlLZ0JFVDVDNHk5cGg4WGJ4ejVHOFdTU1AxNWZRaFZJaW9Zcytqc2VyalJWWFdvNzEyM1p0dTVjYjJycVZYcVU4dks4cWlTcTJXREsrM3ZNY2Z4bkk4Z216TnBKYzRxSTNjbUd0clp2VGtnaTgwdzllVnQ1WVJoaXVpanJUT1Y4d3NabTVROExqKzUrS25XdjA4ZWpVeXJuTUwwWkp1bTBoektraXJJaDNJNERJM3hCR29OVHVORG9GcUJ1b1VDQVhvMENCdW8wRVA4YmErczQxN1ZMYmhVaHVUb1R5VzBLTHQyaXJhZ2lvNXNZWk94ajlNdW9xT2RzbHRYTlN1eUhSaUtyN1M2alkvWTQ2NERJZjc1L3dDRWxiZksxNEgzbk5jOC93QnlQK1g3MmFMY1R4Vzl2TGNTdHRpaFJwSkcrQ3FOU2Z5VnFKVk1PY2xGTnZnZ3RwZDI5M2F3M1ZzNGt0NTBXU0tSZXpLdzFCcE5VMEJidUtjVktPcVpYZWFYRjVFTFpJNUdTQjkyN2FkTldHbmZTdUc5WlpGNjJyYWpKeGc2MXAwdlEyK1ZRZzl6YXF4YmlGL2QzRnZKRE13a1NFK1YyYldUcjRFZkQ1MVk5STU5NjlibENiM0tIQjE4V3YzZHZzSStaMll3a210Sys0bHNybHNmaXJHUyt5RTYyOXJFTlhrYjU5Z0FPcEo4QUs3S01XM1JHTGZ2d3RRYzV1a1VSZkh1ZGNaejVrWEgzWTlXTHEwTW9NYjZmckFOM0gyVXk4MWFwdmFqWGhVaHdzKzFsVjh0MWE0cnBKMkthS1ZkMFRoMUJJM0tkUnFPL2FtV3IwTGlyRnFTN0M5S0xqbzFRenIzN09uQjQvOEFmb2Y4cjFGbC9SN1RYNUgvQUwvK2wvY2VlQzlaeVIxd2dIcVpvSWRYNjAyZ0NleFV0bUlUNnVtdWxQaWtWcmlkZENPdlpJL1dPenRVVWtTdzRDQWVtVUhoZzlCeEVIRDAxb0FjUFRXZ0IxZW10Q0ZGZW10QUZVYnFLWTBBcjBISU1iUGMyK0x1bGozM0YxTTEydXU1bWUyMTBJMC9SOGlqN0JwOGF1ZVUwcXJxK1o0ZDZodDVTenI5L2M5ME5JdGRFWG9sWHVOQncrUXdnRnZGZjRtenl1Tmo5VGZieVJycXdrVUtQTm9kTm1tcTlPbE10WHRqcTBjdGc1OHNhN0dialZ4cjJOMTdlem9LSlpYV2YraWl1RmxqK25odldzNG9TREpKY1JMY05GdUxuOE95TWFnOWRkdXBOQzViaFY5cXIzYUhxM0xmVjEyL2xXY2FNS3VVVTV2L0FFMStIU1dRdlZHaDZFQnZwVUZRN2ZTb0toMitsUVFPK2hRRkFSSlNvS2d5dnJ3NDdJNGZOcWRQM2RlSUptLzl4Yy9zWk5ma0N5dDkxUjVGanpiTTdmN282ZDYxTTNtbHYrMnBmdGZ3ZWh2NEZ2ZldoVjFFbHZjeGxaRjdncEl1akQ4aDByeXJXRXRPTVdabkZHQ1lxR2F4dDVjVE9TYmpEenpZNlFudVJidVZqYisxRnNhdldGZFYyTWJxNFRpcGUvajhhbXh5K2U2MHV1T251L0llYnFWQzZCdXBVRWR1bzBGUW1NTGNLcjZFMVl0RmE5RW5DNFBYV3JLUlZvTXNsY29zQkJQVTB5ZkFrdHgxS3JOSnE1TlZxR2drYkw3RkhYaitSLzN6L3dBSksyT1dyd1B2T2E1NS91Ui95L2V5ODhpV09UQlg4THlMRjlSQThDTzVDcUhtVXhvQ1Q4V1lDdE9IRkhONWlUdFNUZEtwcjM2R0tjRDl5NzNqR3VMeU1UM0dNVmlQVEgrckEydm0yYTl4cjNVMWZ1MkZQVmNUaU9WODZsamYyNXFzUGl2dDFGeXlQSU9PNXE0K3NzTXZibFpBTmJhNGs5QjBPZ0IwV1hhUER3cnpuMUY2WXk3OTUzTFhpaStpdkR1NkQwZmxucVhDOHVqbW92dDBEV0hMdUxjY1dlNXU4bEZjM0xydFMwc3o2N2Q5ZXJMNUFmdE5YdlRIcHUvaXVVN3VrcEtsUHhLM04vVTJKdFNqTGRUcTErM3RNLzVQeXJQODd5OE5uYVd6K2lySDZMSHhuY2RmRjNQUUZ0UEhzQlhkVzdjYmFxenp2T3pyMmZjVVlyVG9pdm0vdG9XamdQdFZuYlhMQyt6YXJhMjBhTUJBanE3eUZ1bWgyYWhWSDI2MWxjMng3V1phOHFYMDFUOTMyOXh2K251VzVHSmY4Nlhob21xY2VKcmx2YndXMEt3d0lJNGtHaXFQQ284ZkhoWmdvUVcySzZEcXB6YzNWdXJNNjkvenB3V1AvZm9QOHIwM0orazF1Ui83L3dEcGYzSG5RdlZLaDF3M0QxTFFJY1BRb0lVV1poMk5Ob0NoM3FFMEdoQWg2YlFBY1BUV2hCdzlOYUVSV2N5OTViU3dXdGx0RnhNQzdTTU53VkFkT3hJSDVhME9YNE1iemJtNlJYdjFLOXlVdHlqSGl5VXRremxxWXJiT1duMHQ1TmJ4M3RzeTZiTGkwbjE5S2RBQ2ROU3BCVTlxcjV1SjVNM0ZPcUk4YkozeWxCdE9VSDBkSTdWNm90Rm9WVjZhMEFZeWNkdzd3U3hSVzZXcnl1SmpQQUFrZ2xVNnE0YlR1Q2ZzcHl1eXJXdFNsa2N2czNiY3Jjb3JiUGlIaXhkMTZiSkpkalVnZ1N4cHNicU8rbXJMclNkM3NPUHQrZ2NkWEt5bktVUDIwWHpHZkcyenB0SUxDK2dGdEJqaXFNN2ZpbWtRRWJvdE9ucG5YZHJycnIwcDk5eDRyV28za2ZwTjQrZExLbS9wY3RxNjY5SllDOVZLSGVoZDlMYUk3ZlNvSTcxS1ZCQTc2RzBWQWJLSE9aUzd1clhCWXFmTHkyRVF1TWd0dVVIcEkzNFZHOHJ2a2JRbFl4MUlweWlxcFBpK0dqZkRpOU9DWFdVTXJtRUxNdHIxZlQyRFJtc2N6akxpM0Rsb0oxZUNZYUZaSTI3RldWdk1qcWZBam9hS1RoSk1uckMvYmRIV01rTy9yT1pYRnRIYVhuSXA0N1dKUWdpc0VXMkxBRFRWNUNaSDFQanRJcWhEbGVKR1RrcmFjbis3WDRhR2ZEbGY3cE45MmgxcFoyMWxBWW9BMmpNWkpIZG1rZDNiOFR1N0Vzekg0azFjZXBwV2JNYmNkc1ZvSzdxYlFsQTNVYUNBTFVxQ0ZJcmhvMjFCcHlBNDFId3pjcXJwclV5bXlKMlVNcm5JeVRIcWFhM1VramJvTlMrdENoSlEyejJHT3ZIc2wvdm4vaEpXdHk5ZUY5NXpIUGY5eVA4QWwrOWw2NUppRnpHQnZzWVNGTjFDeUl4N0IrNkg3bUFyUmhMYTB6bTh6SDg2MUtIN2wvZ2VYN3UxdWJTNm10cnBESGN3dVVtamJ1R1U2RUd0ZE9xUExMbHVVSk9NdEdoR2lNT3BDTnQ5aytOcGE0ZVhPVEovNW0rWXgyN0h1c0NIUTZmMW5CL0lLejhxZFhRN24wMWhLRnQzWDlVdUhkL2lhWFZVNlk2a0l6VCtJSTZjRWovMzZEL0s5UVpIMG16eUwvZi9BTkwrNDg0bDZxVU91R3dlcHFCREI2RkJBaDZiUUFZUFFvSU1IcHRBQnc5Q2dnd2VtdENJck8yRjFOTEJlV3ErbzhRTWNzUFR6S1NHVnV2Zll3MTIrTlhNSElWcWV1aVpXdlFsdVU0OXorM1lPY1lNalBlL1czMGt6R0szVzBnRTdFa0lITDZJcC9BZzhGcVRtZVJHNXRVYWFkWDQ5UGVHRnRPZStsTktkK3ZFbUZhc2xvbkZVYW1OQUZsYW1OQURocUZCQTc2RkFCV2VsUVFUZlIyaE85U2x0QWQ2bnpvVUVDSkJyU29JbWZiVG5xY05ta3hlVFgwTGE5dVpKa3k2bnl5eVROMEV6ZjhBWnlCZEVHN3lrQWFhR3NIblBMOGljLzVHUEtTbkdOS0xScGRuV3Vuck9heXNlVnVUYzFXTW54L0VkZTZOeHhlZmtXT2t3dzA1SE1STmw1b2RVamF5Q2tENnBlelNNK25wSDhYUTlkS3ErbUk1V3lYbVArd3VGZjNmMDluN3VqMmo4SlM4NWJQOVhWVDdjQ0dWK25ldWxvZEJRNHRTb0VMdXBVRWR1cFVFQnVvMENBV28wRUZacUtRcUNlK2pRSjIralFSdUhzRWRlTzVML2ZmL0FBVXJVd1Y0WDNuTWM5LzNJLzVmdlpwMGpyR2pPMnUxUVNkQVdPZzY5QU5TYXVtRTNSVk1OOXplUWNGek40SHRJYmo5NXBxazE3R25wcWR2UUs4Y20xbkkrNGo0MW9XSVRpdGVCd3ZPc3ZFdlNyRlMzOWZEM3A4ZmdaMmROZW5id3EwYzJUZkVlSjVMa3VVU3p0Vkt3S1FidTYwOGtTZUpKL1dQNklxTzVjVVZVdmN2d0o1TnhSanc2WDFIcFd3c2Jhd3NvTEsyWFpiMjBheFJMOEZVYUNzcHVycWVtMnJVYmNWR1BCS2d2UUpEcVFqTXY0aFQvd0RJVWY4QXY4SCtWNml2Y0RaNUYvdi9BT2wvY2ViaTFWcUhYalFQVTlCQWg2YlFBWVBRb0lNSHB0QkJnOUJvQWNQVGFDRGg2YTBJT3IwMW9Rb3IwMW9RcXJFMDFvQXNoTk1hRUxCcWEwQU1IcHRCSEY2VkJCR2twVUVFMzBhQ08zMHRvanQ5RGFJSGZTb0FDUVJ5eHRISW9lTndWZEdBS2tIdUNEU1NvQnhUVkh3RTdDeHNyRldTMWlFUWNndm9TU1NCb05TeEo2RG9QaFNsVmtkcXhDMnFRVkIrcjB5aElEdW9VRUJ1cFVFZHVwVUNCdW8wRUFXbzBFQVdvMEVKTTFPU0NjSG8wRWJwL0QrZGVPWlAvZmYvQUFVclJ3L3BmZWN2ejcvY2ovbCs5bWg1WE40dkV4eHlaQ2NRSk0vcHhhaG1MTm9XMEFVTWV3SnE3R0xmQTV5L2syN1NUbTZWSTNJY1o0ZHlhQ085dUxXQzdXZE4wVjNHZHJzdng5UkNySDc2ZEdjbzZGYTloWTJTbEtTVXE5UDVvZ0pQYlQyM3NyMjBpbmdrZVc4Y3BiUk5MS3lzeW9aRHJ0UFFiVjhUVXZuM0dqUGZKc0tFb3ByV1QwMWZlV3pDTmdvRnVNZGlZNDRJN0NVUXp4UnBzVlpDZ2ZUc054MnNOVFVNcThXYTJONVVhd3RwTGE2UHZPVGsrQmZLTmkxdkUrdlZqR1lUdUhuQzdpb1lqYVcyOWRBYVd4MHIwQ1diYWR6eTkzajZpUzNwK3NQeS9IdFRDelViWTNLV1dTdEZ1N09UMUlITEJXMEs2N0dLTjBPaC9FcG95aTA2TWpzMzQzWTdvdXEreU03L0FJaURwd0dQL2Y0UDhzbFJYZUJ2Y2kvMy93RFMvdVBOUmFvVWpyeGtIcWVnQVE5Tm9BTUhvVUVHRFVHaEJnOU5vSU9IcHRCQnc5Qm9Rb3IwMW9Rb3JVMW9SV0k0MnpPVnV4Y1N5a1JTdkZhSkc1alZWVHVmTHAxUHpxbmw1RXJWS2Uwd2I5MlU3alZlSEFmakE1S0gvUXZyMkw0QVM3eCtSZ2Fwcm1UNmRvbEs0dURZdGEydkpmVjJmdm4wVkNzM3FYY0FaUEtwSVhWQnJxMm1ncVdHZEdYRkwzanY1TjVkTmZZTzhMbDhrOTlOak1tcW02U05aNHBvMTJxMGJhRHpMcWREclZtTFVvN2tYY1RKYzI0eTRreVg2VXFGNFNhU25iUUJkOUtnaEc1dmJlMmo5U2VRUnFUb05lNVB3QUhVbjVDanRHenVSaXF0MEcwbWN0WVVFbHhIYzI4SjdUelc4MGNmMmwyWFFmZlVjWlFrNlJsRnZzYUlYa3hXclVrdXR4YVh5SDlvWkwrK3NMR3lsaEV1UmtDUlhFekgwRVFBczhyc2dZN0ZVZUhqcFJuS01GV2IyeERldXlVZkF0OG53UTZ5ZHBKamN0ZDR1YVdHYTRzbVZaSmJkL1VpWU9vZFdSOUJxcFZ2aDM2VWZDOVl0U1hXaFk5NTNJMWNYR1hTbUpLOU5vVGl5UFRXZ0I5OUtnanQxS2dRTjFLZ2dOMUdnZ045S2dnQzlHZ2hObXB5UVF1K2pRUnZIOFBaMTQzay93RGZ2L0JqcTlpcndzNWZuMys1SC9MOTdMbnlYRlp1NnltSnZjWUxkamoybmRrdUhkRjN5eCttamVSWDEyNms2VmZoSkpOUHBPUnpiRjJkeUVyZTN3YnVQYXFMM0ZXYjJ4ek1hTGJ3WDBSU0tKUkJkc1hFaXNJWlZraVZBTnF4eVN6YjJPdmJ3cVh6MTFHVStTWFVxS1MwV2oxcndkVlRxYmRXSlRlMnZJYmh0Wm10Q0NoaUNlcEtWUUMwanRvM0hrQllwdFp0T21wbytmRmZidEdTNUxlbHgyOVhGNmVGUlQ0ZEdySEZ2N2I1cGNsRExjWFVkeFpMY3ROTEUwanEzbGVQMDVOUXAxY3BFQWVvKzNUV2c3Nm9TUTVOZFUwM0pPTzZ2RjlhbytIR2kvTVd2ZUM4aXY0ciszbG10NElaTDI3eUZ2SXJPenZOUEcwVUt2NVFFVkZQbTAxb0s3RlU3cUQ3bks3MXhTaTNGSnpsTmNhMWFvdWpTbnRDV3ZBcytsOUhkM1AwZHhHSkFUWk5KTDZTK25CRkZESURzOHp4K20zUWp4cE85R2xBVytWWGxKU2x0ZXZDcnBwRkpQaHhWQ1k0UHhUSVlGcHZyWGpuYVNDQ09PWldZc2hRRXl4QUVBYlBVWXNEM092V21YYmlsd0xuTE1DZVBYZFI2TFg1cnVycVZ2OEFpS09uQUkvOS9nL3l5Vldud093NUYvdi9BT2wvY2VhQzFScEhYa2VIcXhRYUdEMDJnQVE5Q2dnNGVtMEVHRDBLQ0RoNmJRSWNOUW9JT3IwMmdoVkgwNi9DbXRDSVRoZzlTVjVqK20wc212OEFXYzFoODBscWM1YmRadGx2ckdMUW5PMjJDUS9CVC9KVG9yVkFmQWdNRm8zSU1oSi8zVUVNUS90RXVhNlRGWDlwZDdKdVhyeFNmWWl3TzlUSkdvSXMvV25VQUoyR056ZHhpb2N2RTYzVWM1Y3kyQ3FGa2lWWEtqMDIvVFpRdm1Wdkh0OEt5NTgxdHd2eXRUVzFMaEw4U0sxQzdLQ3VmVW4rbnBYZDE5cUxWdzdqcGx0bnpaaldTNVZQVlZwTkFZb05mS3FLM2kybXJlUGhXQnpybVc2NTVkZkJXbmUrdjhDellVSTBsUDZwNlI3Rjl4ZGNmeXBvYjZlZSt4OXRrSXJtSVFTMjBpQUx0WHR0Nk5wVlBsdDZPTFZiVk9ML0FIZmlHL3l4U3RxTUp5aHRkYTErWm50NWcwNHR6TlBTc3ZwclRNUnltQ3ozYUpiUzdoSS9wYTZnTEluY2ZGZm5WNythOHpIZXYrM0wzcC8vQUEvZVZzZFc3VjFPMjkwSnBydWt1UGR1NCt3THlXeUVWd3VTUmdVdU5rTXEvQWdIWXluNEhYUTFkNUpsY2JMWFcxOTVieXJkSmIvM2FmZ1JhdlhSTkVBdWoweG9RY05Rb0lIZFNvSURkUm9JN2RTb0lEZFJvSURkU29FSXpVNUlRbVg2MDZnalRmWnYzSHcvR3hlWXpNc1lMTzdrRTBWMkZMQkpBb1JsY0tDMmhBR2hBcXhabW82TXhlYmN2bmVwS0dyV2xEVmYrYi90di82NUYvY20vd0JpckhtUjZ6RC9BT0t5UDJQNEFmOEFPRDIyL3dEWEl2N2szK3hTOHlJditLeVAyUDRIZjg0UGJiLzF5TCs1Ti9zVXZNUXYrS3lmMlA0SGY4My9BRzIvOWNpL3VUZjdGTHpFTC9pc245aitCMy9PRDIyLzljaC91VGY3RkxlaGY4Vmsvc2Z3QS81eGUydi9BSzdEL2NtLzJLTzlDLzRySi9ZL2dBZmVUMnpIL3dEZllmN2szK3hTM0lYL0FCV1QreC9BeXYzdTkwOER5TEhXK0N3VG02dDBtVzV1YndxeUlTaWtJaWJnQ2Z4YWs2VUpPcHRjbzVkTzFKem5vNlVvWTJXb0pHK1J1K3JGQ0lNSG9VRUNHb1VFR0RVMmdnNGVnMEVPSHB0QkIxZWhRUW9yMDFvUUZ4TUk3V2FUOVNOMi9JcE5OYUd6ZEl0OWd3NFl5UXhSaDNDQXdBK1lnYWtrSHhybk9ZcHR1bldjN2p2VXRxc3JmaElQMkhXc3FoY0ViNDZXc256R241VFRyZjFJYlBnUWZHK3QxbHB2MXJoWXdmbEhHQi9QWFVZOGFXNDl4YjVjdEpQdEpsM3FaSTBCQnBLZFFCS1lPOFFZeTdzNGtZekdjdkx0N0FPRkk2RDlZRDh1dGN0emUwLzVDaytHMVVIMkowaktLNDFKZkE4cHMzaHRjTmMyNlF0alQ2TjFNaDBsZU5qckc1MTE2TXVuMzYxa1pXRkpOM0l1dS9WZFZlbEZleGZ1UTNwZUtTNFI2dXIza3JrODlFakRIWXJTV0NabGNHUXF4V1R0cHZBSFNxdG5GYjhkelJyNUVsbkxrMTVrNDdaTDVkeFR1YVQ1eGNqQTVtUzd2N1UrcXlTTVdWbFpDdnBoaitBN1Qwcm91VDRjTHR1VkZ0ZzlQYVZIZGR5S2xiWDB0dWowcjJkaEczZkxEbVo3T3hqamUzaHQwYWU1aGFOa1lUSVFxSTVJMjZBTVdHMDlhdjhBTHVWT3hPVTVmVndYZDBrcnpQT2xHTkdsRlZhcDA5WDI0aTZ5VnJORTR1ajAxb1FvSG9VQ0R2b1VFQnZvMEVkdnBVRUJ2bzBDQnZvMEVBV28wRUpNMU9TRUYzMGFDQ3MxRklRUXZUcUNBMzBhQkIzMHFCT0xVYUJDTTFPU0VKTWFja0lUWTA2Z0JNbW5VRVJZYXJOQ0FFTlFvSU1HcHRBaGcxQ2dnd2FoUUljTlRhQ0RxMU5vRVVWcURRZzVDU0l5T0F5T0NyS2V4QjZFVTFvVFZWUmtTdkhiMkliTFcrQWhHdnB4eXg3dG84QnVCMTZWVm5qUWs2bVhMbFhWSUVZcmtjZjRIdHBQc1o0ei9QVU1zS0RJbnl5NHVEUU92S29ob2JReUQ0TE9yTCtSdEtoZkxvdnArQkc4Tyt1aXZ0SmpCMlU5bFpNdHl5bTRua2VlYlorRU0vNkkxK0ZYVkJKSkxvTmZFc08zQ2o0anQzcHlSWVlpejA2ZzBhM2N0NUNodXJBdXQ3SHQyZWsyd3VvWUZrYnFGWUVhOUdxRy9qUXV4MnlTWkJmVXFib2ZXdUg0RGFLemxtbm15Rnd6VytSdUpESXNrTDZORW1nVkl0M1pnRlVhZ2pRbW0yOFdFYlN0dGJrdm4xa01NYXRaeTBtM1hUbzZsOXRCL0hjWlVEYkpmdTYvRVJ4bzM5NEQrU3E2NVhZcldueEo0d24weWI5aURoL2lTU2VwSk9wSitaTlhZd1VWUktpSlVxY0EzcUdqUUlkWG9VRU9JM3ByUVJVUFRhQkIzVXFDQTNVcUNBM1VhQ0EzVXFDQUxVYUJBTFVhQ0UzYW5KQ0V5OUdnZ0M5R2dnaGFuSkNDN3FOQkE3cU5BZzdxVkFnRnFOQWhHTk9TRUpNYWNrQVRKcDFCRVR1cXpRckE3cUZCVkRCcUZBaGcxTm9JTUdvVUVIRFVLQkRocWJRSW9yVTFvSXNqVTFvS0YwYW1ORGtMSzFOYUNIRFVLQk9MVUtBRVpIb3BEV0lNOU9vTkM3NlZBSGI2VkJBNzZWQkFoNkZCQWg2VkJCMWVoUUk1amVtTkRrS2g2RkFodDlDZ2dOMUdnVHQxS2dBTjFHZ1FOMUtnZ0MxR2dnakduSkNFaTFHZ0FDOUdnZ2hhblVFRjNVYUNPMzBhQkIzMHFEamkxR2dRcGFuVUVKc2FLUWhOalRrZ0VSdXF4UXAxQkRVS0NxR0RVS0JCRFVLQnFHRFVLQ0RocUZBaDFhbXRCRkZhZzBGQ3lOVFdoeUYwYW1ORGtMSzlOYUhCdzFOb0lCbnBVQXhDUjZja01ZaXowYURRdStsUUIyK2xRUU8rbFFRTytoUVFJZWxRSWRYb05CSE1iMHhvY2hZUFFvT0IzMEtDTzMwYUNBMzBxQ08zMGFCQTMwcUNBMzBhQ0NNMUdnaEptcHlRQW0rblVFQVhvMEVGTFVhQUEzMGFCQjMwcURrZHVvMENBV28wQ0ZKbzBFRUpwMUFFTUdxeFFvQWcwS0JxR0RVS0NxR0RVS0JCRFVLQnFIRFVLQkRxMU5vRVVWcUZCeUYwYW10RDBMSzFOYUhJVlZxYTBPRDc2RkJCV2VoUURFSGVuVUkySXM5R2d3THVwVUFkdXBVRUR2cFVFRHVvVUNDR3BVRUhWcUZBam1ONmEwUFFzR3B0QjRiZFFvSTdkUm9JRGRTb0VEZlJvSTdmU29JQXZSb0lJV28wRUpzMU9TQUpscWRRQUJhbFFRVXRSb0lEZFJvSUhkUm9PUU82bFFJRzZqUUlCYWpRSVV0Um9BaFExV0tHY0RyU29JRU5UYUJEQTBxQkRCcUZBaGdhQVE2dFRhQlFxclVHaDZGa2FtdEQwTEsxTmFISVVWcWJRY0czVUtCQ3MxR2cxaUR0Um9STVJMVWFER0J1cFVCVTdkU29JN2NhVkJBaHFGQWdocVZCQjFlaFFjaHpHOU5hSkVMaDZiUWVnZDFLZ2p0MUtnVHQxS2dnTjFHZ2dOMUtnZ04xR2dnQzFHZ2hOalRrZ01UTFVhRFFOMUdnZ3BhalFRRzZqUVIyNmxRSU82alFjZHVwVUhIRnFOQkJDYUlpRkJxeFF5d1FhRkFoZ2FGQkE2MEtCREEwS0JEaHFGQndkV29VQ2hWVFRhRDBLcTFDaEloWldwdEI2RkExQ2c0TnVvVUVKczFLZ3hpTHRSb1JzUkxVYUViQTNVcUFPM1VxQ0IzVXFDT0RVS0NEQnFWQWhsYnJRb0ZEbU5xYTBTeEZ3MUNoSWcyNmhRSjI2alFRRzZsUVZEdDFLZ2dOMUdnUU4xR2dncGFsUUFSbTZVNmdHSnMxR2dBdTZqUUFCYWpRUUc2alFSMjZsUUoyNmpRY2R1bzBIQTdxVkJCUzFHZ1QvOWs9"},{ name : "__ASSET__:file___ASSET__data_gameplay_js", data : "ewoJImxldmVsc0RhdGEiOiBbCgkJewoJCQkiaWQiOiAxLAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDEsCgkJCSJwaW5hdGFzIjogWzNdLAoJCQkicGluYXRhSFAiOiAiMTAtMTAiLAoJCQkiY2FuZHlSZXdhcmQiOiAiMS0xIgoJCX0sCgkJewoJCQkiaWQiOiAyLAoJCQkiY291bnRUb1VubG9jayI6IDYsCgkJCSJ0eXBlIjogIm5vcm1hbCIsCgkJCSJiYWNrIjogMSwKCQkJInBpbmF0YXMiOiBbMyw5XSwKCQkJInBpbmF0YUhQIjogIjI2LTI4IiwKCQkJImNhbmR5UmV3YXJkIjogIjItMyIKCQl9LAoJCXsKCQkJImlkIjogMywKCQkJImNvdW50VG9VbmxvY2siOiAxMCwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAxLAoJCQkicGluYXRhcyI6IFszLDksMTFdLAoJCQkicGluYXRhSFAiOiAiNDMtNDYiLAoJCQkiY2FuZHlSZXdhcmQiOiAiNC01IgoJCX0sCgkJewoJCQkiaWQiOiA0LAoJCQkiY291bnRUb1VubG9jayI6IDEwLAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDEsCgkJCSJwaW5hdGFzIjogWzMsOSwxMSwxM10sCgkJCSJwaW5hdGFIUCI6ICI2Ny03MiIsCgkJCSJjYW5keVJld2FyZCI6ICI2LTciCgkJfSwKCQl7CgkJCSJpZCI6IDUsCgkJCSJjb3VudFRvVW5sb2NrIjogNSwKCQkJInR5cGUiOiAiZ2lmdCIsCgkJCSJiYWNrIjogMSwKCQkJInBpbmF0YXMiOiBbMyw5LDExLDEzXSwKCQkJInBpbmF0YUhQIjogIjE0NS0xNjUiLAoJCQkiY2FuZHlSZXdhcmQiOiAiMTAtMTMiLAoJCQkiZ2lmdERhdGEiOiB7CgkJCQkiZHVyYXRpb24iOiAxNSwKCQkJCSJyZXdhcmRSYW5nZSI6ICIxLTcwMCIsCgkJCQkiaGl0c1JhbmdlIjogIjEtMTUwMCIKCQkJfQoJCX0sCgkJewoJCQkiaWQiOiA2LAoJCQkiY291bnRUb1VubG9jayI6IDEsCgkJCSJ0eXBlIjogIm5vcm1hbCIsCgkJCSJiYWNrIjogMSwKCQkJInBpbmF0YXMiOiBbMywyLDksMTEsMTNdLAoJCQkicGluYXRhSFAiOiAiMjEwLTIzMCIsCgkJCSJjYW5keVJld2FyZCI6ICIxNC0xOCIKCQl9LAoJCXsKCQkJImlkIjogNywKCQkJImNvdW50VG9VbmxvY2siOiAxMCwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAxLAoJCQkicGluYXRhcyI6IFszLDIsOSwxMSwxM10sCgkJCSJwaW5hdGFIUCI6ICIzMDAtMzI1IiwKCQkJImNhbmR5UmV3YXJkIjogIjIwLTI1IgoJCX0sCgkJewoJCQkiaWQiOiA4LAoJCQkiY291bnRUb1VubG9jayI6IDEwLAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDIsCgkJCSJwaW5hdGFzIjogWzIsMyw3LDksMTEsMTNdLAoJCQkicGluYXRhSFAiOiAiNDgwLTUyMCIsCgkJCSJjYW5keVJld2FyZCI6ICIzMS0zNyIKCQl9LAoJCXsKCQkJImlkIjogOSwKCQkJImNvdW50VG9VbmxvY2siOiAxMiwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAyLAoJCQkicGluYXRhcyI6IFsyLDMsNyw5LDExLDEzXSwKCQkJInBpbmF0YUhQIjogIjExNTAtMTI5MCIsCgkJCSJjYW5keVJld2FyZCI6ICI3Ni04MyIKCQl9LAoJCXsKCQkJImlkIjogMTAsCgkJCSJjb3VudFRvVW5sb2NrIjogMTIsCgkJCSJ0eXBlIjogImdpZnQiLAoJCQkiYmFjayI6IDIsCgkJCSJwaW5hdGFzIjogWzIsMyw3LDksMTAsMTEsMTNdLAoJCQkicGluYXRhSFAiOiAiMTc1MC0xOTAwIiwKCQkJImNhbmR5UmV3YXJkIjogIjExNS0xMzMiLAoJCQkiZ2lmdERhdGEiOiB7CgkJCQkiZHVyYXRpb24iOiAxNSwKCQkJCSJyZXdhcmRSYW5nZSI6ICIxLTI1MDAiLAoJCQkJImhpdHNSYW5nZSI6ICIxLTEwSyIKCQkJfQoJCX0sCgkJewoJCQkiaWQiOiAxMSwKCQkJImNvdW50VG9VbmxvY2siOiAxLAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDIsCgkJCSJwaW5hdGFzIjogWzIsMyw1LDcsOSwxMCwxMSwxM10sCgkJCSJwaW5hdGFIUCI6ICIyMzAwLTI3MDAiLAoJCQkiY2FuZHlSZXdhcmQiOiAiMTgwLTIxMCIKCQl9LAoJCXsKCQkJImlkIjogMTIsCgkJCSJjb3VudFRvVW5sb2NrIjogMTQsCgkJCSJ0eXBlIjogIm5vcm1hbCIsCgkJCSJiYWNrIjogMiwKCQkJInBpbmF0YXMiOiBbMiwzLDUsNyw5LDEwLDExLDEzXSwKCQkJInBpbmF0YUhQIjogIjQxNTAtNDQ1MCIsCgkJCSJjYW5keVJld2FyZCI6ICIyOTAtMzE1IgoJCX0sCgkJewoJCQkiaWQiOiAxMywKCQkJImNvdW50VG9VbmxvY2siOiAxNCwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAyLAoJCQkicGluYXRhcyI6IFsxLDIsMyw1LDcsOSwxMCwxMSwxM10sCgkJCSJwaW5hdGFIUCI6ICI5ODAwLTEwMjAwIiwKCQkJImNhbmR5UmV3YXJkIjogIjc3MC04MjAiCgkJfSwKCQl7CgkJCSJpZCI6IDE0LAoJCQkiY291bnRUb1VubG9jayI6IDE3LAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDIsCgkJCSJwaW5hdGFzIjogWzEsMiwzLDUsNyw4LDksMTAsMTEsMTNdLAoJCQkicGluYXRhSFAiOiAiMTc1MDAtMTg1MDAiLAoJCQkiY2FuZHlSZXdhcmQiOiAiMTE1MC0xMjUwIgoJCX0sCgkJewoJCQkiaWQiOiAxNSwKCQkJImNvdW50VG9VbmxvY2siOiAxNywKCQkJInR5cGUiOiAiZ2lmdCIsCgkJCSJiYWNrIjogMiwKCQkJInBpbmF0YXMiOiBbMSwyLDMsNSw3LDgsOSwxMCwxMSwxM10sCgkJCSJwaW5hdGFIUCI6ICIyOTAwMC0zMTAwMCIsCgkJCSJjYW5keVJld2FyZCI6ICIxOTAwLTIxMDAiLAoJCQkiZ2lmdERhdGEiOiB7CgkJCQkiZHVyYXRpb24iOiAxNSwKCQkJCSJyZXdhcmRSYW5nZSI6ICIxLTlLIiwKCQkJCSJoaXRzUmFuZ2UiOiAiMS03MEsiCgkJCX0KCQl9LAoJCXsKCQkJImlkIjogMTYsCgkJCSJjb3VudFRvVW5sb2NrIjogMSwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAyLAoJCQkicGluYXRhcyI6IFsxLDIsMyw1LDcsOCw5LDEwLDExLDEyLDEzXSwKCQkJInBpbmF0YUhQIjogIjYwMDAwLTYyNTAwIiwKCQkJImNhbmR5UmV3YXJkIjogIjM3MDAtNDEwMCIKCQl9LAoJCXsKCQkJImlkIjogMTcsCgkJCSJjb3VudFRvVW5sb2NrIjogMTgsCgkJCSJ0eXBlIjogIm5vcm1hbCIsCgkJCSJiYWNrIjogMiwKCQkJInBpbmF0YXMiOiBbMSwyLDMsNSw3LDgsOSwxMCwxMSwxMiwxM10sCgkJCSJwaW5hdGFIUCI6ICIxMTAwMDAtMTEzMDAwIiwKCQkJImNhbmR5UmV3YXJkIjogIjc5MDAtODI1MCIKCQl9LAoJCXsKCQkJImlkIjogMTgsCgkJCSJjb3VudFRvVW5sb2NrIjogMTksCgkJCSJ0eXBlIjogIm5vcm1hbCIsCgkJCSJiYWNrIjogMywKCQkJInBpbmF0YXMiOiBbMSwyLDMsNCw1LDcsOCw5LDEwLDExLDEyLDEzXSwKCQkJInBpbmF0YUhQIjogIjIyMDAwMC0yMzAwMDAiLAoJCQkiY2FuZHlSZXdhcmQiOiAiMTUwMDAtMTYyMDAiCgkJfSwKCQl7CgkJCSJpZCI6IDE5LAoJCQkiY291bnRUb1VubG9jayI6IDE5LAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDMsCgkJCSJwaW5hdGFzIjogWzEsMiwzLDQsNSw3LDgsOSwxMCwxMSwxMiwxM10sCgkJCSJwaW5hdGFIUCI6ICI0MzAwMDAtNDQ1MDAwIiwKCQkJImNhbmR5UmV3YXJkIjogIjMyMDAwLTM1MDAwIgoJCX0sCgkJewoJCQkiaWQiOiAyMCwKCQkJImNvdW50VG9VbmxvY2siOiAyMCwKCQkJInR5cGUiOiAiZ2lmdCIsCgkJCSJiYWNrIjogMywKCQkJInBpbmF0YXMiOiBbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTNdLAoJCQkicGluYXRhSFAiOiAiOTAwMDAwLTkyMDAwMCIsCgkJCSJjYW5keVJld2FyZCI6ICI2MDAwMC02NDAwMCIsCgkJCSJnaWZ0RGF0YSI6IHsKCQkJCSJkdXJhdGlvbiI6IDE4LAoJCQkJInJld2FyZFJhbmdlIjogIjEtNjAwSyIsCgkJCQkiaGl0c1JhbmdlIjogIjEtMk0iCgkJCX0KCQl9LAoJCXsKCQkJImlkIjogMjEsCgkJCSJjb3VudFRvVW5sb2NrIjogMSwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAzLAoJCQkicGluYXRhcyI6IFsxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxM10sCgkJCSJwaW5hdGFIUCI6ICIxNTAwMDAwLTE1NTAwMDAiLAoJCQkiY2FuZHlSZXdhcmQiOiAiOTUwMDAtMTEwMDAwIgoJCX0sCgkJewoJCQkiaWQiOiAyMiwKCQkJImNvdW50VG9VbmxvY2siOiAyMCwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAzLAoJCQkicGluYXRhcyI6IFsxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxM10sCgkJCSJwaW5hdGFIUCI6ICIyNjUwSy0yNzUwSyIsCgkJCSJjYW5keVJld2FyZCI6ICIxNjVLLTE3M0siCgkJfSwKCQl7CgkJCSJpZCI6IDIzLAoJCQkiY291bnRUb1VubG9jayI6IDIwLAoJCQkidHlwZSI6ICJub3JtYWwiLAoJCQkiYmFjayI6IDMsCgkJCSJwaW5hdGFzIjogWzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzXSwKCQkJInBpbmF0YUhQIjogIjQwMDBLLTQxNDBLIiwKCQkJImNhbmR5UmV3YXJkIjogIjIxMEstMjE4SyIKCQl9LAoJCXsKCQkJImlkIjogMjQsCgkJCSJjb3VudFRvVW5sb2NrIjogMjAsCgkJCSJ0eXBlIjogIm5vcm1hbCIsCgkJCSJiYWNrIjogMywKCQkJInBpbmF0YXMiOiBbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTNdLAoJCQkicGluYXRhSFAiOiAiNjgwMEstNzAzMEsiLAoJCQkiY2FuZHlSZXdhcmQiOiAiMjkwSy0zMDRLIgoJCX0sCgkJewoJCQkiaWQiOiAyNSwKCQkJImNvdW50VG9VbmxvY2siOiAyMCwKCQkJInR5cGUiOiAiZ2lmdCIsCgkJCSJiYWNrIjogMywKCQkJInBpbmF0YXMiOiBbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTNdLAoJCQkicGluYXRhSFAiOiAiMTIwMDBLLTEyODAwSyIsCgkJCSJjYW5keVJld2FyZCI6ICI0NzBLLTUzMEsiLAoJCQkiZ2lmdERhdGEiOiB7CgkJCQkiZHVyYXRpb24iOiAxOCwKCQkJCSJyZXdhcmRSYW5nZSI6ICIxLTVNIiwKCQkJCSJoaXRzUmFuZ2UiOiAiMS0yOE0iCgkJCX0KCQl9LAoJCXsKCQkJImlkIjogMjYsCgkJCSJjb3VudFRvVW5sb2NrIjogMSwKCQkJInR5cGUiOiAibm9ybWFsIiwKCQkJImJhY2siOiAzLAoJCQkicGluYXRhcyI6IFsxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxM10sCgkJCSJwaW5hdGFIUCI6ICI4ODAwSy05MDMwSyIsCgkJCSJjYW5keVJld2FyZCI6ICIzMjBLLTM4MEsiCgkJfQoJXSwKCSJtaXNzaW9uc0RhdGEiOiB7CgkJInR5cGVzIjogWwoJCQl7ImlkIjogImhvbGRfY2FuZGllcyIsICJkZXNjIjogIkhPTEQgIyBDQU5ESUVTIn0sCgkJCXsiaWQiOiAiYmVhdF9waW5hdGFzIiwgImRlc2MiOiAiQlJFQUsgT1BFTiAjIFBJbkFUQVMifSwKCQkJeyJpZCI6ICJnZXRfdG9vbCIsICJkZXNjIjogIkdFVCBUSEUgIyJ9LAoJCQl7ImlkIjogInJlYWNoX2hwcyIsICJkZXNjIjogIlJFQUNIICMgSFBTIn0sCgkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAiZGVzYyI6ICJVTkxPQ0sgTEVWRUwgIyJ9CgkJXSwKCQkiZGF0YSI6IFsKCQkJewoJCQkJInBhY2tJZCI6IDEsCgkJCQkicGluYXRhSWQiOiAzLAoJCQkJInJld2FyZCI6ICI1MDAiLAoJCQkJIm1pc3Npb25zIjogWwoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiMiJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiMyJ9LAoJCQkJCXsiaWQiOiAiZ2V0X3Rvb2wiLCAidmFsdWUiOiAicGluYXRhLXNtYXNoZXIifSwKCQkJCQl7ImlkIjogImJlYXRfcGluYXRhcyIsICJ2YWx1ZSI6ICIxMCJ9LAoJCQkJCXsiaWQiOiAiZ2V0X3Rvb2wiLCAidmFsdWUiOiAicHVuY2gtaW50ZW5kZWQifSwKCQkJCQl7ImlkIjogInJlYWNoX2xldmVsIiwgInZhbHVlIjogIjcifSwKCQkJCQl7ImlkIjogImJlYXRfcGluYXRhcyIsICJ2YWx1ZSI6ICIyMCJ9LAoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjQwMCJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiOSJ9CgkJCQldCgkJCX0sCgkJCXsKCQkJCSJwYWNrSWQiOiAyLAoJCQkJInBpbmF0YUlkIjogNCwKCQkJCSJyZXdhcmQiOiAiNUsiLAoJCQkJIm1pc3Npb25zIjogWwoJCQkJCXsiaWQiOiAiZ2V0X3Rvb2wiLCAidmFsdWUiOiAiaGFtbWVyIn0sCgkJCQkJeyJpZCI6ICJyZWFjaF9sZXZlbCIsICJ2YWx1ZSI6ICIxMiJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfaHBzIiwgInZhbHVlIjogIjQyMCJ9LAoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjI1MDAifSwKCQkJCQl7ImlkIjogInJlYWNoX2xldmVsIiwgInZhbHVlIjogIjE0In0sCgkJCQkJeyJpZCI6ICJiZWF0X3BpbmF0YXMiLCAidmFsdWUiOiAiMTUifSwKCQkJCQl7ImlkIjogInJlYWNoX2hwcyIsICJ2YWx1ZSI6ICIyNTAwIn0sCgkJCQkJeyJpZCI6ICJob2xkX2NhbmRpZXMiLCAidmFsdWUiOiAiNjAwMCJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiMTUifQoJCQkJXQoJCQl9LAoJCQl7CgkJCQkicGFja0lkIjogMywKCQkJCSJwaW5hdGFJZCI6IDYsCgkJCQkicmV3YXJkIjogIjgwSyIsCgkJCQkibWlzc2lvbnMiOiBbCgkJCQkJeyJpZCI6ICJnZXRfdG9vbCIsICJ2YWx1ZSI6ICJiYXR0bGUtYXhlIn0sCgkJCQkJeyJpZCI6ICJyZWFjaF9ocHMiLCAidmFsdWUiOiAiNDAwMCJ9LAoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjE1SyJ9LAoJCQkJCXsiaWQiOiAiYmVhdF9waW5hdGFzIiwgInZhbHVlIjogIjI1In0sCgkJCQkJeyJpZCI6ICJyZWFjaF9sZXZlbCIsICJ2YWx1ZSI6ICIxNyJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfaHBzIiwgInZhbHVlIjogIjE0SyJ9LAoJCQkJCXsiaWQiOiAiZ2V0X3Rvb2wiLCAidmFsdWUiOiAiYmF0LWNhbm5vbiJ9LAoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjgwSyJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiMTkifQoJCQkJXQoJCQl9LAoJCQl7CgkJCQkicGFja0lkIjogNCwKCQkJCSJwaW5hdGFJZCI6IDMsCgkJCQkicmV3YXJkIjogIjUwMEsiLAoJCQkJIm1pc3Npb25zIjogWwoJCQkJCXsiaWQiOiAicmVhY2hfaHBzIiwgInZhbHVlIjogIjIySyJ9LAoJCQkJCXsiaWQiOiAiYmVhdF9waW5hdGFzIiwgInZhbHVlIjogIjI1In0sCgkJCQkJeyJpZCI6ICJnZXRfdG9vbCIsICJ2YWx1ZSI6ICJiYXQtYmF0In0sCgkJCQkJeyJpZCI6ICJob2xkX2NhbmRpZXMiLCAidmFsdWUiOiAiNTAwSyJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiMjIifSwKCQkJCQl7ImlkIjogInJlYWNoX2hwcyIsICJ2YWx1ZSI6ICIyMDBLIn0sCgkJCQkJeyJpZCI6ICJyZWFjaF9sZXZlbCIsICJ2YWx1ZSI6ICIyNCJ9LAoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjJNIn0sCgkJCQkJeyJpZCI6ICJnZXRfdG9vbCIsICJ2YWx1ZSI6ICJtdXR0b24tY2hvcCJ9CgkJCQldCgkJCX0sCgkJCXsKCQkJCSJwYWNrSWQiOiA1LAoJCQkJInBpbmF0YUlkIjogNiwKCQkJCSJyZXdhcmQiOiAiMU0iLAoJCQkJIm1pc3Npb25zIjogWwoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjNNIn0sCgkJCQkJeyJpZCI6ICJnZXRfdG9vbCIsICJ2YWx1ZSI6ICJ3cmVja2luZy1iYWxsIn0sCgkJCQkJeyJpZCI6ICJyZWFjaF9ocHMiLCAidmFsdWUiOiAiNjAwSyJ9LAoJCQkJCXsiaWQiOiAicmVhY2hfbGV2ZWwiLCAidmFsdWUiOiAiMjgifSwKCQkJCQl7ImlkIjogInJlYWNoX2xldmVsIiwgInZhbHVlIjogIjIwIn0sCgkJCQkJeyJpZCI6ICJnZXRfdG9vbCIsICJ2YWx1ZSI6ICJiYXQtYmF0In0sCgkJCQkJeyJpZCI6ICJyZWFjaF9sZXZlbCIsICJ2YWx1ZSI6ICIyMiJ9LAoJCQkJCXsiaWQiOiAiaG9sZF9jYW5kaWVzIiwgInZhbHVlIjogIjE1MEsifSwKCQkJCQl7ImlkIjogInJlYWNoX2hwcyIsICJ2YWx1ZSI6ICI5MDAwIn0KCQkJCV0KCQkJfQoJCV0KCX0sCgkidG9vbHNEYXRhIjogWwoJCXsKCQkJImlkIjogImdvb2Qtb2wtYmF0IiwKCQkJImFuaW1UeXBlIjogInNtYWNrIiwKCQkJImhwc0RhdGEiOiAiMToxLTM6Miw0OjMtMTE6MTAsMTI6MTEtMjcwOjQwLDMwMDo0MS0zSzoxMDAsMzUwMDoxMDEtN0s6MTUwLDhLOjE1MS0yNUs6MjAwLDI3SzoyMDEtMTAwS0s6MzAwLDhLIiwKCQkJInByaWNlRGF0YSI6ICIzOjItMjA6MTAsMjU6MTEtNDAwOjQwLDQ1MDo0MS02SzoxMDAsNjI1MDoxMDEtMjFLOjE1MCwyMUs6MTUxLTk0SzoyMDAsMTAwSzoyMDEtMU06MzAwLDI3SyIKCQl9LAoJCXsKCQkJImlkIjogInBpbmF0YS1zbWFzaGVyIiwKCQkJImFuaW1UeXBlIjogInNtYWNrIiwKCQkJImhwc0RhdGEiOiAiNToxLTEwMDoyMCwxMDc6MjEtMzgwOjEwMCw0NTA6MTAxLTZLOjIwMCw4MCIsCgkJCSJwcmljZURhdGEiOiAiMzU6MS0xMTA6MjAsMTE3OjIxLTkyMDoxMDAsMUs6MTAxLTIwSzoyMDAsNjAwIiwKCQkJInNob3dXaGVuUHJldiI6IDIKCQl9LAoJCXsKCQkJImlkIjogInB1bmNoLWludGVuZGVkIiwKCQkJImFuaW1UeXBlIjogInJhbSIsCgkJCSJocHNEYXRhIjogIjIyOjEtNDQwOjIwLDQ2MDoyMS0yMDQwOjEwMCwyMjAwOjEwMS05SzoyMDAsMTAwIiwKCQkJInByaWNlRGF0YSI6ICIyNTA6MS01OTA6MjAsNjE1OjIxLTMwMTU6MTAwLDMwNTU6MTAxLTMwSzoyMDAsODAwIiwKCQkJInNob3dXaGVuUHJldiI6IDEKCQl9LAoJCXsKCQkJImlkIjogImhhbW1lciIsCgkJCSJhbmltVHlwZSI6ICJzbWFjayIsCgkJCSJocHNEYXRhIjogIjc0OjEtMTUwMDoyMCwxNjAwOjIxLTk2MDA6MTAwLDk3MjA6MTAxLTIxNzIwOjIwMCwxNDAiLAoJCQkicHJpY2VEYXRhIjogIjEwMDA6MS0yNDUwOjIwLDI1NDA6MjEtOTc0MDoxMDAsMTBLOjEwMS02MEs6MjAwLDEyMDAiLAoJCQkic2hvd1doZW5QcmV2IjogMQoJCX0sCgkJewoJCQkiaWQiOiAiYmF0dGxlLWF4ZSIsCgkJCSJhbmltVHlwZSI6ICJzbWFjayIsCgkJCSJocHNEYXRhIjogIjI2MDoxLTUwMDA6MjAsNTI2MDoyMS0yNjA2MDoxMDAsMjYzNDA6MTAxLTU0NDAwOjIwMCwyOTAiLAoJCQkicHJpY2VEYXRhIjogIjQwMDA6MS0xMDAwMDoyMCwxMDM1MDoyMS0zODQwMDoxMDAsMzg5MDA6MTAxLTkwMDAwOjIwMCw3NTAiLAoJCQkic2hvd1doZW5QcmV2IjogMQoJCX0sCgkJewoJCQkiaWQiOiAiYmF0LWNhbm5vbiIsCgkJCSJhbmltVHlwZSI6ICJyYW0iLAoJCQkiaHBzRGF0YSI6ICI4MzA6MS0xNzkwMDoyMCwxODkwMDoyMS05OTAwMDoxMDAsMTAwMTUwOjEwMS0yMTUyMDA6MjAwLDEyMDAiLAoJCQkicHJpY2VEYXRhIjogIjE1MDAwOjEtMzUwMDA6MjAsMzYzMDA6MjEtMTQwNTAwOjEwMCwxNDI1MDA6MTAxLTQwMEs6MjAwLDVLIiwKCQkJInNob3dXaGVuUHJldiI6IDEKCQl9LAoJCXsKCQkJImlkIjogImJhdC1iYXQiLAoJCQkiYW5pbVR5cGUiOiAic21hY2siLAoJCQkiaHBzRGF0YSI6ICIyODAwOjEtNTUwMDA6MjAsNTgwMDA6MjEtMzAwMDAwOjEwMCwzMDMyMDA6MTAxLTYxMEs6MjAwLDMzMDAiLAoJCQkicHJpY2VEYXRhIjogIjUzMDAwOjEtMTkzMDAwOjIwLDIwMTUwMDoyMS04ODIwMDA6MTAwLDg5MjAwMDoxMDEtMjIwMDAwMDoyMDAsMTlLIiwKCQkJInNob3dXaGVuUHJldiI6IDEKCQl9LAoJCXsKCQkJImlkIjogIm11dHRvbi1jaG9wIiwKCQkJImFuaW1UeXBlIjogInNtYWNrIiwKCQkJImhwc0RhdGEiOiAiMTAwMDA6MS0xODAwMDA6MjAsMTg5MDAwOjIxLTkxMDAwMDoxMDAsOTIxMDAwOjEwMS0yMDIxMDA6MjAwLDEyMDAwIiwKCQkJInByaWNlRGF0YSI6ICIyMDAwMDA6MS03MDAwMDA6MjAsNzMwMDAwOjIxLTMxMzAwMDA6MTAwLDMyMDBLOjEwMS04NTAwSzoyMDAsNjVLIiwKCQkJInNob3dXaGVuUHJldiI6IDEKCQl9LAoJCXsKCQkJImlkIjogIndyZWNraW5nLWJhbGwiLAoJCQkiYW5pbVR5cGUiOiAicmFtIiwKCQkJImhwc0RhdGEiOiAiMzYwMDA6MS02OTYwMDA6MjAsNzMxMDAwOjIxLTM1MzEwMDA6MTAwLDM1NjgwMDA6MTAxLThNOjIwMCw0OUsiLAoJCQkicHJpY2VEYXRhIjogIjczMDAwMDoxLTIzMzAwMDA6MjAsMjQzMDAwMDoyMS0xMDQzMDAwMDoxMDAsMTA1NjAwMDA6MTAxLTgwTToyMDAsMU0iLAoJCQkic2hvd1doZW5QcmV2IjogMQoJCX0KCV0KfQ"},{ name : "__ASSET__:bitmap_co_doubleduck_utils_ProgFill", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQW9DQVlBQUFCdHVXOTVBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBNEtXbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXdNVFFnTnprdU1UVTJOemszTENBeU1ERTBMekE0THpJd0xUQTVPalV6T2pBeUlDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TkNBb1RXRmphVzUwYjNOb0tUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOQzB4TUMweE5GUXhOem8xTXpveU9Tc3dNem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMExURXdMVEUwVkRFM09qVXpPalV4S3pBek9qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TkMweE1DMHhORlF4TnpvMU16bzFNU3N3TXpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwa1pEa3pPR1poTnkwMFpqUmpMVFEzTWprdE9HVmlNUzB5WWprNU1XTmlZalEzTnprOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNlpHUTVNemhtWVRjdE5HWTBZeTAwTnpJNUxUaGxZakV0TW1JNU9URmpZbUkwTnpjNVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNlpHUTVNemhtWVRjdE5HWTBZeTAwTnpJNUxUaGxZakV0TW1JNU9URmpZbUkwTnpjNVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21Sa09UTTRabUUzTFRSbU5HTXRORGN5T1MwNFpXSXhMVEppT1RreFkySmlORGMzT1R3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TkMweE1DMHhORlF4TnpvMU16b3lPU3N3TXpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFFnS0UxaFkybHVkRzl6YUNrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K056SXdNREF3THpFd01EQXdQQzkwYVdabU9saFNaWE52YkhWMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V1ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xKbGMyOXNkWFJwYjI1VmJtbDBQakk4TDNScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2tOdmJHOXlVM0JoWTJVK05qVTFNelU4TDJWNGFXWTZRMjlzYjNKVGNHRmpaVDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WVJHbHRaVzV6YVc5dVBqSXhOVHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajQwTUR3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K1NZcVUwQUFBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFnMUVsRVFWUjQydXlkZVhoVjFkWC9QL3NNZDg2OXVSbkpRRUJFVVZFUkVCeEJVVkhBdVE2dGRXalZpdm9xaXRVNnREaFVyZFdxdGI2MldxMW82MnVydHM0VFZMQ0RzeUtDSW9JeWszbTZ5YzJkejdSL2Y1d0xCQTBRSUJpZjU1ZVY1enhKVG03TzJXZnQ5VjN6M2tkSUtSbWdBUnFndmlkbGdBVURORUFENEJxZ0FSb0Exd0FOMEFDQjl2VVRRb2p0K2YreHdJbEFHWEEwRUFWTVlHdUJuQUNrRHhKWmNQSy85enVGZEkrVE5JMEE0QWZzYi9uMmVuNHU1Rlo0WnVZUDhWMFJIclVnaXAzcUFzZmVJRXY2TnVhK0ozSUFZNWNJdHlLd2tDb09hU0FOcUwyWWh6YmdmU0FHUEFjczY4Mjllc3BkaUsrZjdDVzRaZ0FYQzY5L3BILy9JL0FPT3dDdHJBWTFGRVZLQjdhVUpCRUNOVkpDNjF2UEVKbnpPQStPdTREQ1lESFN6UFdUZUVnUWdzSGhjaTU5NHprK0tWN0lVdzlYNGJQQU5yNGJpWjVBdWM0OTE2N2pwZllmTXZUV1c4aCt1UmhwWmtIMG45T2grSUxZWFcyMFBYWXpkRFd3KzRRQVE4WjZLQnFpWVp0eSsrSFZ4K1E0VUZTbDg5WFNCRy9mbWVMbVlTZHl6RzRIa001MmJWbmpDeEFvdEJoSjFxVGErS2hqTFc4Mkx5VmxHeDhDaithUDdRS1h0cDNqUGg2NFc2OGVzWGRrNms4SUhIUUNldVZ3MUtDR3RFQ2FlVU1rdGl6TFNrREFxQ05wV1BvT3Uxc0tZMFpNaFZSYnYyR0xVQWx2Zi9vMlg1WXU1YXYzcWhrMHRLZ1h4dmZiSkMrZkh0WE1TM2N2bzZrdXdlQ1R6a0QxZ05VR1dEWW8zejdJaENaQWcvVGFOU1JmdUlQUng1c2NjMjBsVFNzTVZ5bjFaN0Fod1I5V1NIV1p6TDR6eFpWbFIzUExFWmVDYllCamJsc2VWQTBVRGN3MHNVUVRmNjliZU5CREsrY2Y5RmxYdy84QVB3UGU3RFdmdHNOeTNRMWNVM1QyTEFwUHV3YXRKSUxWbVVhbUUwamI3TDNXOC9wSm1GbmFyejJhendZZHc4ZzlKa0EyM2o4VG9RZG95Y1lwZitseUdBcnpIeTlpOUxBQVJUVUY3dDliTE1qSmJUc1R1eFJiZ3B3cGVPU1BxN25uWG92MTNpUHdYdlFMcW8rZURJbE9yRlFjb1h6TEE1UU9RdmZocVM2ajVXOFAwL0dIU3pqK1dvM0RaMVRSV1dkaHBHVy9HVllob0hDd3h2MVhyR2ZrYTZQNHo0OXVkZVhMU0cyZnRWZFUwUHpnajBBNnhxKy9lSm1mTDNrVzRFYmc5dDVZcnQ3ZTdSRWxFTDZtOGxkektMbnNObEFValBYcmNSTHQyd1VzQU9FTmtHMWNqVjc3SmNQRGc4QVg3cVkydm1XeURZTEEzQ05tOGxON0doZE04ckhQK0RwTy9PRXlubjhpVHJMVGdXQS9oemhwQjY4UFp0d3lnaFdmVi9QYnMvOUx5WVBIVWovclpLeGtKMm9nM0M4U0xNMHNabk1IbFRNdXB2eTNTM2p0TnlVOE82TUoyd0RkMzM4OFV6UkJvdE9nWXgxY3Z0c0UxeEp0TDdEQWpTT05KSFRXQVlJYnhsM0lPMGYvZ21MZGYxdmUwUFJKdHZCK0pWUjRVZVdkOHdnZE9RVmpiVDFPc2pNLzJPMW5valJ6UkV1cWNVWWN5RkZ2M3NxaVZXOUR1QktFdW1zQUptVmVDM256MTVmdXVVQXhxRHBCUmVXNHdZZHo3OUdYOE5XSnQvUDNJYmRoUGpXSjAzN1V3TnE2REVUVS9nV1hLaURsUUgwT1QybVFxKzdmbCtYL0RsTzA4R1VhUDEySzRpLzQxcTBXUWtXdnJBRVVHdjg4bDViWFh3QjBscjJabzNXMWlTZlFmK0RTZE9pS1dkaHJZVWlrYU9kbFNnZ3dVOUJaeTJGRER1UGRZMjZpeEJPOEJyaDFaOEYxQmtKY1VYSHppd1JHajhkWXN6N1AzQjFubnBQcVFnK1hVSDN2Mjd6M3ZlbU0rZSt2ZVhqQkUrQU41UUhXMTZwTUlXMmtjY3dzZUNNdXNQeUZQTDlpUG04M2ZnYWVFS1Rib0tzUnJ3OG1IbmdrRnd3YlIva0lHSG1RSHpwdCtwMUUvbWkzSVdrUUdsTkkrZTVnR0lLKzdMQ1J0b1VTaktDVlZydDg2bjV0NFE1Q2VQd2dvUG5leTJtNFpnTGEzNmV5WCtZbWZ2QzdEdjduOVVySzl0Ukp4NXgrWTVWbFFyVElTOFZvbGVtTG44THFhSU5RaVN1M096VUJFanJXTTJMUS92em5pR3RSaExnUm1MYWo0QW9DVHhiLytGZUVEajBDWTMzOVJnYnZyTERiaVJqQ3lMSFhEYitIaSs1ZzF0Si9RRG9PcXI0TFlwWUNGbmJWTVhqT2RhenFXQVBsKzdDdVl4Mm5mZmhIbXJOeDBQMmJtQ2NFZExZd2ZmWFRYSEtPaGdqNklQc2RTV3c0UUZpQmtNNUxEOVR4eFpjUXJZeHVTSVAzalpFTUY1RmUrQWJ4MXg5QmpaYTdmSEVjbEZBVXZid0tvZWxJMjBRSlJyQ1NLYktybDNESTZURGpuZUhzTTYwSVJSWDlubVcxREFtMjRDZC9HTVRpMFN2WS80VWJzZElaQ0JUdEpNRHlDaVpleDhqQjQzbGsxRmtBZndNOE93S3VYM21Iai9GRXo3b0JzeW1XSDVqWXF2c2x2SDZFcW0wNUZkOHRXSFRTWFpoTldRb09PWVdFTCtTQ1N3LzJ2V3RvcEJsZnZoK1R5MGN5Zk83UFdkbXluRXNXUGNHNDZCQk8zMnNhWkRvMmFhZHdHYmUrK1N6eGd2VmNONzBHRXVaM282cGtBMFVxUkJUdW1yR1VVNjV3MEM5L25OTDlSMkVuWW4xbjVQMEYySjJ0dFA3dVluSnJscUNWVjZNUHJzR3FYMEhqTGFlVFcvTVppaStFazA1U2ZmdmpSQzkra0ZkK0E2L2R2QnJkTDNEcy9OVDNJOCtFZ0V5WEExSmgxaE9Wckp0WXk1alhyMmRkWnhONGduMlRqa3cwYytHK3AzRncwVzZSZklKanU4RGxCYVpIejd3T29ZT1RTVzdiRlJRQ21jc2dQTDdlQlk5QzRHUlRGRWJLeWZtOS9PR0wxM0FVMGZldW9XM2lkU3orZk5Rc3J0bnpPUFo0L21MbU5pM2xsY091ektkbmJWZHhCRXRZc3V3emJtNStpamwvSzhKZjVvTzR3M2VDZ2dMRGtKdzdlVG5YLzc2SzZPM3ZVM1hXanpHNk9zR3grazdyeDVvb1BPVVNQRVAzby9WL0wwRU5RK2N6OTdQK3NqRVk2NzVBaXc1eTVjREtZZFkzVTNidXBSVE1lSW9YYjQweTd6ZHRxS3BFMC90Zkd5a3FkRFZiUklxOEhIOVpBVXN5RGJURW12SnhkeC80NkZZR1ZJMjdScDRLY1BtVzFNbVdVSENtWHJHN1AzRGdjVmp0c1cyQ1JlaGVGSCtRaGw5TUpmN2F3M2lxcTl4S25uUlFmQ0UzNkhhK0thalN5T0R6aHlpNy9JOWMzdlF1VTE3K21Yc3YxZE8zcXN6S1FiS1p1dys5bkF1R0hzYlZlMHltdkhpNGE3V0VBRytJOWJFNjluOTNGdjl6SFV3NW9RYmFUTDR6VktUeC9FTnJlWEwrTUVwbkw2RDAwSU14R3RyUmlpcGNmdlZWM0dXYlNNT2svUG9ueWExWXlLcHBWYlROdm9HUzZiK2xadllYNk9WRFhVc3BGS1NWSTdldWp1ckxmNEE2OFJMKzlVQ0tYTkpCOC9VL3VEU1BJRmlva2s0Wi9PT1hDV1pHam1YY0hnZEJwbzlLUGtLQlRBY1RLMFl4b3FDOEVQamU5b0RydU1ENHFhakZFV1F1M1l0QTJFUUpSZkR0ZFJEdHM2L0hiR3BDalphakQ2ckJUbmFRVzd2RXRXZzltRml6bzVYaWswK0hjY2ZnaVRlQkwrSmFFaVZmek50VzVrclZ3Vi9vZnQrU1Q5ME5ZTE1QdVl4N3hwd0x5YWJOdEZIR3lyQmZZUVZ2em9kL3ZMd09TalFvVnNIcTU1Z3JMNnNmdm1mQStITW9HVk9CMmRLSzNkRk0vTldIa0xhRjBQUStFeG9yMW94dnhQNFVudlpUdEpMQjFEeXloT2haTTdGakxkakpXTGVhbWtDTkZOTXhieW4yVzMvaCtHdThGRmJyNUpMOWErMmxCTnVDU0pYS0gyK3JKL3BGSWZkTlBnZU14TTdIWEp1WitSd0Vpaml0Y2l6QWxONkNTd2VPOCsxeElOS2tkMXJSdHJFN1k1VC83RkhVY0FuTnYva3hlcldYcm44OXcvcnBJNG0vY0Q5cXBLUUhzQWlFMTAvYnlnWThhNy9peVlrL2hjTEJtOENpNm00Z3FxamZISWVVRUN3Qm9mRFB0ZSs1N3FRL3VuV0FPUmFZYWJETnZDWE5TMjR1d1lpaWFqNmJlamNYeFM3Z3ZKTnpISG5pTXF5c0RWVzZtMHpZVlJuQWJaRXV3TEw0NERNZ213QUhQTHVWMGpYL0Nkb2V2aG9sRUhKck9YMG9uV1pqUFVVL3ZKR3ErOTVCS3hxRVdiY2VhZVUyOTJBMEhWUVBEZmZld01nRDZ6ajh5bktTYmM1bUliUHVFejFPWGJma1k5OWFMSzlBRVREMzlrNGV2YkNSeHY5VGVIZkN0UkFNUWk2NVUxbnVIbU12eCtUUW9tRUFSL1k0bmg3TytVQUU5TXJka1psYzd3WWtoR3ZoSEtqNDVVdlVYWFVZcTAvZUc2TjJCWVduWEVIaHlUT3c0MjA5WnJiVWFCSHhwKzRpMkxpR0Y1eC9VZGUwbUsvTVR0WjAxcEd3TGE3Wjgxak8zZWNrOTMvVDdYbXJwa040RUd2YVYzRFNmMy9ENTEyTkhGdzBqTDhkT29QZC9GRTNsdW94TVNJMmphSDdjd25GRlZ6ZHg5Vkhuc2IzUnh6Q25xL2V5Z2tYcm1UTzAzc2hQS0x2TEpqTVovNnFOUGZuQmhNVUFiYUVDczJ0YXpWYTd0LzgrVmF5bk9DNlcwczU1OGYzc2V3eUQ4UHZ1NVBNd2ptRURqOE5yYmdFczdFZTRmR2pCTU5JMDhEcGFuTVYwbzY2MFk2RE5MSklJNE8wekI3REFrWDNZTVRpMFA0cG82OEFJd08yMmEwelE0S1JrWGo4QXNlVzNid2M4QVFGZ2FoQ3N0M0J6RWo2cXNIRU5pV1JLbzIwa21YTlhQam9zT3ZaZTQvOW9LTitGL1JpQ3JDeTdGVlFqbkFiMTN2bkZpbyt2NjFFU3BIMmRqUXJLd3BtU3gyQjBZZFNlTnBWQ0UrSW1nY1hVamJ6dHlnRlVhU1IvYWJBQ3dXWnl4Skt4c251ZXpnWDdEZVVtMnJuOE02YUJaeXl4MlJPcUJyTlJRdWZZTXdyTS9ta2RUbUVxeUJZQ2dYbFBMYjBlWWE5Y2hXRGc2VjhkdUo5dE9hU3pQejRNZkQ0ZDR5UlFnSExnTTVhcWl2S3FaOTJQZjk4b1lCeFI2d0Vyd0JmSDAyT0JoUXAzSFpkQzNPZWlzTmdud3VncU1wYnJ5UjU1K1VrVkhuYzdLQURNaU1oN25ES2o4cjUrUDFCakZwOUZ5dFBuNENkaUJIOS9nM2dCM1ZRRlk1dGtuam5CWXoxWDZBV1YyMVNJdEpCOFJlZytFTTl4cjFiVkphMmliU3RieXJYZlAxTEcxUkVwdG10RHhaVUJzaDFPUnZEUDA5QTRJOEtucnFzbFU5ZlRSSWRyT1U5ZlVsaGpjdkhWMi9wb0hHcGdUK3lZM3lWamp0bG9WS1Z3aXFONkdDTjRxRTZCYVVxaDE4VnhPc1ZqQW9PZ1V6WHJzdGUyalpsdmpCQnJXZmg2Tm1mVURTVVFIajdheWhTWWpRMFVIVE96UWh2RUd3TFkzM3RSdkQxeENHcnJabklTWmRSZU42dHBQMGFUZWN0NE5YU294ZzU5anpJeHJsOGoyTTU5Nk9IR2Z2UFdjemM4eml1MlBzRUx2N2dZZVkxZjg3c2NSZHd3Y2hUd2JGWk9lMU82cEl0a092YU9kOWFDSWczRWgwMGxISHNSZEhnQlJEeHVQbndaZ25tMXhwVFJUZUwxT3ZzbjBKRG04MjBjeHQ1MWFkdy9PbUZBTXgrcW9zbm5rMXczbGtGL09uQlNtYmQzRVlrclBDTE8wcWhMc3RlQnhleGVFMlFTY1BlNFQvQlUvRU0yNXZVYzArUS9lUU5jbDk5VEs1aEZUSllTUFdmbHFJVlYrQWtPdEhLeXNpdC9oSTczb3FuZWsra3VST3JPL0xkTHQ2YVN1THZMS0R0cGd2WWU0Sk42Y2d5c2wwT1Vyb0pPVE1qU1Rab2VEVS83ejZZNWNBelF3U0tCWTZoMHJqWTRibnJXMGgzMll3OU05UXJ4MmhqYUIxUnNISVNJeU5SVklFdkxQamluMmxxRitjd1VwSmttNDJtcUlpSVJjNnh1T25MRjdqemlJdmQ5aWU1YTdwL3ZJcUd0Z1ZsM3VOWmFXVElmZmtSd2hmWXFsa1V1aGVocWw5ektXeGtMb3ZUMVlZZGI4MzM4bStaZzBKVmtFSkJEMm0wdmZVOHBiVXJHVmw5QUxTdmdNNWFLa0tseko5NkYvT1B2SjVYNmhZeTdLVVpOS1RiV0gzaWZWd3c4bnVRYUlhdUJrQlFIYTRBdXcrS3F0NEMxcXhleGtyZjU5dzB2WWdQMzRyejV0T2RFTUsxWWpKZmV3b3FVS0c3NSt4ZVRwNEZ0Tmc4OUhnVmQ5MWN3Z2xuMVBPM1A3VURLc21VNU5TcElkYXN0aWdmc29LN0grcGcrRkRkZFJzVklHMUNRRU9wVVNDMmpvNFpZMGs5ZURsaXhZY1VqanlZbXN2dUk2UUpXbjU2S0VyQWd4b3BKdmJrWGRSZU9vYkVHMzlHalJTek16NlkwRHh1alB6WVBiVFBPcGhEcDMzTzFGc3FpTmNwMktaYlJwSVM2aGNvckh0UGN0RDNvMWlkWHQ1NU1Jc21QQ3g0MU9hUk0rTTRDVC9uUFZKQitkNGFtVjZVT3pTdklCTjNXRFl2UTd6UnBxQk1aY2lCWHQ1OU5NR3pWN2ZUdE15a284N0NWNkN3ZkhtS3RwZkN2RDUySnFjT0h3M3BHTHVNRklXNG1TR3pCUSt2Sjh1VmxaWnBHWTFyS0FoN3dDNEd6WVBkMmVMMmxxZ2FTakNDR2d4aWQzVWkvRVdvUVJXckk0VWRiMFdvMnFabTNsNEZrQUloVkV3VHJDZHY1cUxDdlNGYUNjbVdmRVV3RHRrRVJ3OGV6OHJpM1puVDlCbFRxdzRFVHdEaWRlNW5GTldOcyt3dDNGUHp1c21NbnR5Y25peVg1dVAzYStmU1lXUTRmN3BFV2hsVzFHYjR5LzNsbkhkRk1UUVpicUtqemVLS0N4dTQ4SXd3b3liNm9kUHB6ZU9DSWFIZDVOcGJ5cWtvMXpoN2VoUHIxNW8wdGxqY2ZsMFJSNTFSd3U5LzFjaGZuMDh3WlZJQXVtendRNnhSOFBLTEdlcmFBaFFrUDBHck9vZkl0RXRSQ29yeVNrVlNOdjF1V2g2OGt0b0x4K0JJQnljVnAvajgyd2xOUEIyN28zV25yTHJRZENTUzlzZHVZdXdraHdrejkyRGx2M0lZYVllQ0NrSFZRWktPbFlKRUkzaUNFbDlFc3Y4cGZoWS9sYUZqZFpLbDh6THNjNlNQVVNjR2lhK1JlRUlXdW4vYnBUcmRKN0FNeWJ4N096SFNrdExkZFlwcU5CYS9tT0w0RzZNY1BqMU1OdUZRWEtQejRYOWJlT1BrSEZOTFIwTlJvYXQ0ZDBXTHZoQ2dCMWlYYWlmbldEMHVTT3hweVVtaFdsRFVXUFBnUXArSWxKSCsvQjJjUkl6ZytPUFJDZ3FRQWpKZkxpWXhkemJaSlcraCtFTm9aVFdFSnB4QllPelJPT25rOXBsZ3g4RmJVOE9hWng4ZytNQVZOSno4QjN5QktKZ1pOd01vSFpmNzBnYk41NExLU0xtcDBGNHlMZXVZK0x4aHNMSnUzS0ZvbXdEWlBlWkNjYzhyR2grMGZNWEZIenhOZEVJdHQxODZoTWVmN3VLeFoySjhNS2VDZzZZRVdiWW95ZVFwdGFpSzRJMjVneG14cHc0ZDJ5RzRUajR2Vys1bDNvdHhqajIxRG9BVjd3NWgrS0YrOXpOZERyTExRUlJBc2cyZWZkSEI0MWY0YWtremQ3OVlTY21QYjBISHhNa21YVDVKaVJvcHhXNVlTZE9yZjhKNzFOa1VuZkV6MUdnaFZtc3JNcGZaeWZWZkVxMjBtdWJuL296NjVBVk12cm9NUEY2c3JNUXkzRjVvS3dlTzRVNmRvb0V2cEREdm5qak45U1lUendzejdDQXZ5VFliTXdzMWh6bjRvcHRQdzlZS3cwWkcwclRjWk1WL01xejdKTWUrVXdKTXVTRktSNzJGWTBtRWdHQ1p3aS9QcU9PdXhyTzQ5cVN6b2FOdUI3T0VHOVlsNXRPYUc5S2JHeHJXSFJNWktPVCtKYzl5MWVLbjM1UlNIdE1ieS9VRFJmZjUwbis2bWx6REtuSnREWmlkclhERkgxR0c3RUhpbVh1eGxyeU5FbzRTUE9iSDJKa2syU1gvSWJmdWMwS0huNHlUU3JnVHFIbmNnVGpPcGk2SUhsWXBLNkZDT2xaOGp2SEhuL0xlQWVmaks5OGIybGZUYVNicHNyT0VWUitGbmpCSUFYWU9Na2JlV21sZkMzaTZNV0REZVVVRlZlT0l1VGR3UXNVb2Jqem9Zb2pYdXBiWVNLRUtCWlFONHpUSTJsbFNSZzRUeWNHRDltSm9jQkIyZEIxZXIrU2lzd3RZc2p6SHFlZDFjTjFWQmpmY1hNK0pKNFo0NXJrcTkxNHROZ1R5b0pGZnl3ektiajkzZDhndG9DSEg1Rk1pZlBpNllQbzF6Zmg5QXBJT2REbmdGWWg4TS8vSGl5U21oT3BpeWVNZnBjaFZqc1BqMWJBN1k5MkVRV0IzTkNIQ3hWVGU4MTlFelJEc2xqYk0rdlh1TS9iQndrcXJvNDNTMDg2bjl0L1BzdVFmcnpQNndzRTROdWdxWkR0ZGxvdjhoZ1cyQ1ZaT011cGsxMThzMzBzbjBXcGpwaUZRS3ZFV3V1SWdGUGZ6WCsrY2ttemluV083TWRlSUkzMk1PaWxBdHN2QnNTRzIzblF0bndCSGdzZWpzdDgwbFVmdmVvdHJVeWU2Y3ZpTlpWRmJBbzV3SjBhUWI0Snc1ZGJHSm1kYnBHMkRqRFJKMlNZdFpnSTdBYysyTGdiNGQyL2R3cWdaYTVnWGUrdjV5ZVZILzREUzAyYVNXZlJ2MnYvM0V1eGdoT0NnR2twT3ZoVFBzUDBSWlVOZ2ozRTRIaTkyUnl0V0lnN2VBRmdtSXRZSVJoYnBDNEkvNUQ2a0orQnkwclkyQWs0dERKT2ErMDlVMDJKRnNwV3hIYlhVVzNIbXhaWmhJMUVRakFsV015bzhKSy9xOC9VcWFXRkxCd2VKSmxRY0tjazRKam5wQnJNQWZzVkR1S0NjYzRZY3doV0xuK2JVcXJIc08ySUs5NzkxTDgvVkwrS3RZMjhsbm1sblhiYVZSaU5CcDVYQmxBNENxRFNhK0NyV1RtV25Tam9qNlVyWS9QS2FLT2RmMWNyTW43ZHh4dzJEdU9HT0tIYXJUYXJOeGthUXlVZzhIb0hYNHdxTjF3dWFsdTlIOXVhSGIrZEI1WFNUb09ZYzQ2Y0dXVHkyQmpQclFNNXgyMEVkQ1g1WXRrQ3lmSldrdEZpUVREclVOa2lVM1FNb3Fvb3Q1ZWFhMlhHUXVnOFpDQ05qWGZuMG5UK3YyUEpKQ2RGTndDUTlKNXlFMkx6N0l4ODdTMFZENjJvbFZGWkY1MUp3REFlaENEZnA0Tms4dVNNRTVGS1NvaUVxUWtDeTNkbW9XQ0kxcnJkdVpmT1gxamFCckRzR05nOFJKV1pPWXJUa001UHU2aGQwajRzRklTQ2JzamoydEdMdWZheWUxei85Z0drSFQzWkRESlJOSUpLYkE4ZXdMZEtPU2RaeGdaT1ZKbG5ISW1PYlpLUkIyckV3SFJ0TDJwalN4cEEyUlhxUURqUEZ3clkxQU0vMkZseDNBcisyWUxIMCtrY3BKWVB4akpwSWNTaU1YbHlGVnIwblRpNk5sVTdBc3ZkaDFTSkVwQlRoT01oSUtRemFIYkh1YzJoY0NVSWdWQjA4UGhkZy9yRDczVmVBOUlmQTQ4ZUt4UmcwZFRxSklmdHgxcVBYY1BmOFdSd3plSDlHRjlZZ2dJeGo4VUZpTGFWNmtLRG1aMVc2aFlTZEkrWGt5RG9XTmc1K1JjZVNqdnU3ZExEek02UWhDSFN0WkZMMVNDYTA3czJwSHozSU0zcUE2NWM4ejZWN1RHSjVZaTBmeDllUWNneDBvYUhuM2N4S2Z5RnoxNnhraFc4RmwwOGFSRmZTSVpHVVJDT0NHMllVa3NsS0RqM1F6MHVQR1dReWJ2YlFjU1NtQlpvcVVmT0ZVMVVGank0SUJpQVVoSUlnaE1NUURRdjgvcTlsR2RkWmFDRUZYUmVZU1lsbGd6Y00yV1pZdUZUaTk0SmxTU0pGR3NjZkcrSzNmNTlMN3NBeHFGNS92c3pScmJpYmpzT3FUeEJGbGZuTEM5Qzk3b0FVMVFXdGs2K2xiUUNabVhYanRqeUloR1c2cFFtUkYwckxjSVd5cUJKcjFTSnluLytYNGVNOTZFRVZjeXRMVElRQ1JscHVCSnVVcm5jZlh5OUlOQWlFSWwxZTZhNHpJcnRaL2ExMXdsazVOaTdOVXowUUdpUnhURUZMR3hTV0I2bWFxSFBWOHk4eGZwOTlDRW1IbUprazQxaGtISE96SSsyWUdJNk5KWjJONExHbFJCRUNSUWhVRkJRaGNHMmF3Q00wdklwR3BTL0NpdzJMeU9aeTd3TmY5amJtMnZEajBUNmZmMzdsK2JjaFNnZURhU0F0bzF1OUttOUdiY3MxdXhMWEdubjlidUpEVVYxdEtQTTIzYkUzSlJSMHI4dE5yOTlkeHhVdVJoc3lFa05SV1hmTGNRejdZakYvbURTVHBKM0RkaVNtdFBFSUJVZEtPdXdzSGtYZDdLR2QvRE9vZVhDSXZITWhrZGpTSWFCNktmRUd1ZkxUWjFqU3ZKWkpGZnR3eHdIZlkxbWlDVjJvbTZWU3ZZcE8yakM1K3BNWE9PSGNERCthV2s1dG80WGkxbGFKRkNnb0tzUTZIV3lybThMZjRGVjBXd2ExWVVtVTdiamJYVGcyZUQzZzg3a1dyYWRNdDY0SnBBVERsUGo4YmhZeWtkcjBlVTBUYm5yKzV5dFlGRDZEb1NlZmdkM1oya01QVUw3NHE2aWJrajZxNnZKZVNqQ3llU3NtTnRac1hGUFFyZGp1Zk8xMzZhQ0VpMG12VzRjeC94NG1YT2pIRS9GaDViWS96ZTJZM1NvOXdyWGtzZ2UvY0l0N0hTbWJmMDd6YlRCSUFsOVlZZTR6OWV5MmJqZHVQV0FLaHBTa25CeW00MkRob09BQ1IwR2dDc0dHTHdXQkVHS3JaVEZIU3NwOEJkUm1PN2xzd2YrUnlXWVBBOTdiM2cxcTNzeG1NNi9GMy9qejhjVm4zNGpsMkc0WFJ2Y1Z5QnRXK1hhMzNiYVZqN2ZFSnNadFp0dWxPMm0yQmFrNGRMVkQweXJzMnFWSVh4Q3RNOGJad3llaENoVXJYL1RVaFlvaDNaa28wdnpmTENtSkxRZWxtbEF3ODJiOTBtRkg4SUJqODRQZERxTGRTT0lUMmpmMkRBbnJQdWJYZlVXejJjVDRmUWFqS21Lajk2UW9rRWk1WTFKM3NML1ljY0N5d0RCN1RpUm04cE1rRk1obTNTRGQwKzArcGlueGFJSmpqd3J3eVF0TE1GUEhvNnFhVy9EdDd0SnQ2TFcwVFpSUWthc1lVMTNkNWtYNVdzZ3FOZ3I1eG1zbzNWYUg1L3NYaGFwaGRuUVFpcGg0d3dYWU85aTVvdWp1MFdjbEo5dDFFVVBGQ3UvT2FjUC9XVEd6Smg2SExRUnBPNGVLaXE2cWlKMm9LRHRTRXRaOUtFTGhnUlZ2a3NsbW53YmUyK0l6YnVONlo4WldmUjdybWpzYk5WQ0E4QVczbmNwVnRXMWtaOFRHUkFPYXg0M1JnaEdVU0JtMWIvNkZ5WjBaenRycmFBQThpcGFmYjRrbUZEU2g3TkJxTDBVSTJuSkpLcndSN3RqdlZJbzlRYnFNYkkrYjhYU2FhWTZxSHM3VTBuSDg3RmVOdkw4NFJiaEE2Yk1pdjZLNFZzaWpmL1BRZFJkSUhnL29taHV6ZVhvQWNEeGhjK0M0WWlxMVdoTHJWdmZjRkowSGh3Z1drbHUxQ0tOdU9TSVVkUzJYN3MzM0J1WVBUZCswNjVHYVB6WjRIaHVWcDF2WFZLUGxaRnZhRVhZTzFkdlBXeUJzVmk4RjNTdm9hRGRvZU4vbXlyMG5VZUlMa2JZTWRLRnV0RkE3QTZ5UTVpV3MrN2wvNVh3V05hMnVCWDYwMWJuZXhqWFRFbzVvL3VpTlRPTDFSOUdDWVpSUXRNK3IzVUx6WUNjNjhOYXZabjA2eHIwTC9zWW5UY3NRMGlhbysvcGtLYnNpQkRuSHhIWWNMTWZlNGk1WE9kdENGWUpmanAzS1JPY1FydmwxQXkweGk0Qy8vemNuM2hESGxaYm9mTEVzU1dkTEN0Vk1iWEgxZ0ZCMWtKTEV2TDlnMWE5MFc2QjJTTEpzbEdBWUpSQ20rYVcva2wzMENoVmpDaEdLMHBjTG9YZWFONW9YNHNrY2xWb1J3Nk9seEhJcGxENW8xcFZJaXIwaENyMUJmcmRpUGkrdlh0Z0dITUUyTmpQdFRUdjE1eElPYS81d3pyK3NaS3l3OE5qejBVcXFzQk94emVPdm5SbThaWURqVUhYS1RPcnF2MlQycW8veE5YMUV4Ym9QK09IdWh6S3haRTlpUnFvUG1BVG1OcVJCRVlLc2JXRTVOb2JqTUh5NFRuRkV3VFRsZHdKWUZlVTZyNy9ld2wwUGRSQ2NQSjNJM3FPdzB6MnZVeEkrUDdubEN4Q2FoOEFoSjdtTFhqZkVXVUoweTNWdlEvbjVRMWp0RFhTODhRLzAyRUtPdkNCTTJiNVJNbDNXZHdaWUhwOGdFTlpZdFN4T2dSSENwMnZrcExsVHNpSUF2NnBUNGltZ1B0ZkpIY3RlNDYzNlpmWEFKR0ROTmp0TGVubXZSUkxHdEMzOWNIYTJmdFdrd2duZnd6ZGlIS0pvRUk2UlF4b1pOcTN4M2xIVG9rS2dnTExLM1NrOWNBcEdMc09hMXg3Z3ZmV0xtRnErTHlrMXR6RnhzYXVwMkJQa3hWVmY4TEgvWTJaZlcwRTRxTkxhWnFOci9iY1FVRlhCN3hQODVhOHR6SDVXRWozakZzcEdqOFdNTllOUUVJcjRobHVvK0FvdzZwWmpkalJqckZxTVo3ZDlFYm9INFEyNlZpZVRRRHJPTm5kWlZzTWxkUHpyTlFLdEM1azBxeEp2b1lkVXUrVW1jL3A1YmFSMDNFSzE0OENjSnhwSmZPRGowbjNHNGROMWNvYUZ2cDN0WGlLZjVBaW9YbnlxVHB1WjRMbkdUL2pycXZkb1NjWG5BT2NEemIyNTF2WXNCRm9ESEpYc2JQdEorcFZIWmdVL2ZHMUljTVE0dkRWN29SVlhnY2VQMExwdmR5N1k3djB3cElOTWRvQ2lFQ2daakcvWUFTajFUVmkyaVZmVnNaMWR2eEJQVTFRa01MOTFPWUZDeWJJdkhJWVBrNFNDR3BZdCt4VmNIbDBoblpab0FTOUJqNFdUU2FKb3V2dkhubUxiWEpyUStHa0lvWkI0N1JGS3Jud0lMVkpDWnVsN0dLc1dFeGczQmEydzNOMGVlMnNDWjVuNGh4K0FFcHVIVUJ6TU5LaXEyciticGVaSjl3dmlMU1lmUFJXbnJMR2F1OFpOWnMvaVVoclRYWGcyOEVYUVk3d2wyWHpyYlNIQWRCeVN0c0d5WkJPZmRkYnhidXNLMW5lMkxzZmRDUFN2MndYVUhkd3JYZ1BPQlNicmNJSWVLUXBxNFdKRjhia2J6TGdwYUxsei9xNnFZYVE2OE1kYUdSWXFkUXVZMzRMbEV2bjd4TzAwdFIwSnNvN0JrR292bGVVYVpqK3VTcFlTTkJWQ0lZMGxTK0swZDFxRWR0dkhUV2IwMkt3c2tZNkRFblMza3pPYlZoT2FlQ2E1THhlUVhmbytEdUFkTWdMRkYzSXp0MXRuaXV0UzE2K2lzTnhHRDJqZm1WaEw4MEtzM2lUUjVuRG9vS0dFUEY1YXM0bE5CUmtCMHBFNFBTVGlsQTBXWDI0S0NaSldqcFpzd216THhsUFlQQWU4QWZ4OTIvUFRkeTlpNkU0RmZQTXRKMzFGQ3BEQmZVTkZmMlVVSk80MmN4NTIzYmJBR3pvTmQrUXRJU2I1bHVXdGpMOFFSYmtKeDFrSlBBR2t0ak5ZM2pBbUQ2Njk2Z3MrR1BUOVcyNVMrZXZ1aUt5SVBQOWJjZDl5MHBtL1hpK1ZuK3o1WlBkak85WDhqZ0p5Z0w1OXVndjNsVThEMUF2dkJkaXUxUDNYY1NTbC9LYmxHcUFCR3FDK2M3c0dhSUFHYUFCY0F6UkFBK0Fhb0FINi81Nyszd0FLUUhCRll6NnFKZ0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:file___ASSET__images_fonts_yellow_small_kern_txt", data : "ewoJImFueSI6IHsKCQkiYW55IjogLTIsCgkJIn4iOiAxCgl9LAoJIioiOiB7CgkJImFueSI6IDMKCX0sCgkiJCI6IHsKCQkiYW55IjogMQoJfQp9"},{ name : "__ASSET__:file___ASSET__images_fonts_yellow_big_kern_txt", data : "ewoJImFueSI6IHsKCQkiYW55IjogLTEKCX0sCgkiJCI6IHsKCQkiYW55IjogMgoJfQp9"},{ name : "__ASSET__:file___ASSET__images_atlas_1_json", data : "eyJkYXRhIjpbeyJwYXRoIjoiaW1hZ2VzL3R1dG9yaWFsL2F3YXkucG5nIiwid2lkdGgiOjI1MSwicm90YXRlZCI6ZmFsc2UsIngiOjQsInkiOjQsImhlaWdodCI6MjM1fSx7InBhdGgiOiJpbWFnZXMvdWkvbW9kYWxfYXdheS9iZy5wbmciLCJ3aWR0aCI6MjUwLCJyb3RhdGVkIjpmYWxzZSwieCI6MjU5LCJ5Ijo0LCJoZWlnaHQiOjIzNX0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDEucG5nIiwid2lkdGgiOjE2Niwicm90YXRlZCI6ZmFsc2UsIngiOjUxMywieSI6NCwiaGVpZ2h0IjoxODB9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3A3LWwucG5nIiwid2lkdGgiOjEwMSwicm90YXRlZCI6ZmFsc2UsIngiOjY4MywieSI6NCwiaGVpZ2h0IjoxNzV9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3A3LXIucG5nIiwid2lkdGgiOjc1LCJyb3RhdGVkIjpmYWxzZSwieCI6Nzg4LCJ5Ijo0LCJoZWlnaHQiOjE3NX0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDYucG5nIiwid2lkdGgiOjE2OSwicm90YXRlZCI6ZmFsc2UsIngiOjY4MywieSI6MTgzLCJoZWlnaHQiOjEyOX0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDEyLnBuZyIsIndpZHRoIjoxNTIsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4NjcsInkiOjQsImhlaWdodCI6MTY4fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wOC5wbmciLCJ3aWR0aCI6MTUyLCJyb3RhdGVkIjpmYWxzZSwieCI6ODY3LCJ5IjoxNzYsImhlaWdodCI6MTY4fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMTItbC5wbmciLCJ3aWR0aCI6MTA2LCJyb3RhdGVkIjpmYWxzZSwieCI6NTEzLCJ5IjoxODgsImhlaWdodCI6MTY4fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wOC1sLnBuZyIsIndpZHRoIjoxMDYsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0LCJ5IjoyNDMsImhlaWdodCI6MTY4fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMTItci5wbmciLCJ3aWR0aCI6MTAyLCJyb3RhdGVkIjpmYWxzZSwieCI6MTE0LCJ5IjoyNDMsImhlaWdodCI6MTY4fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wOC1yLnBuZyIsIndpZHRoIjoxMDIsInJvdGF0ZWQiOmZhbHNlLCJ4IjoyMjAsInkiOjI0MywiaGVpZ2h0IjoxNjh9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3A1LnBuZyIsIndpZHRoIjoxNjEsInJvdGF0ZWQiOmZhbHNlLCJ4IjozMjYsInkiOjI0MywiaGVpZ2h0IjoxNjJ9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3A1LXIucG5nIiwid2lkdGgiOjExMSwicm90YXRlZCI6ZmFsc2UsIngiOjYyMywieSI6MzE2LCJoZWlnaHQiOjE2Mn0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDUtbC5wbmciLCJ3aWR0aCI6OTQsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3MzgsInkiOjMxNiwiaGVpZ2h0IjoxNjJ9LHsicGF0aCI6ImltYWdlcy90b29sc19tZW51L3Rvb2xzL3dyZWNraW5nLWJhbGwvYW5pbS5wbmciLCJ3aWR0aCI6NDYsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4MzYsInkiOjM0OCwiaGVpZ2h0IjoxNTl9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AxMS5wbmciLCJ3aWR0aCI6MTU2LCJyb3RhdGVkIjpmYWxzZSwieCI6MzI2LCJ5Ijo0MDksImhlaWdodCI6MTU1fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMTMucG5nIiwid2lkdGgiOjE1Niwicm90YXRlZCI6ZmFsc2UsIngiOjQsInkiOjQxNSwiaGVpZ2h0IjoxNTV9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AzLnBuZyIsIndpZHRoIjoxNTYsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxNjQsInkiOjQxNSwiaGVpZ2h0IjoxNTV9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AxMS1yLnBuZyIsIndpZHRoIjoxMDEsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4ODYsInkiOjM0OCwiaGVpZ2h0IjoxNTV9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AxMy1yLnBuZyIsIndpZHRoIjoxMDEsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0OTEsInkiOjM2MCwiaGVpZ2h0IjoxNTV9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AzLXIucG5nIiwid2lkdGgiOjEwMSwicm90YXRlZCI6ZmFsc2UsIngiOjU5NiwieSI6NDgyLCJoZWlnaHQiOjE1NX0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDExLWwucG5nIiwid2lkdGgiOjkzLCJyb3RhdGVkIjpmYWxzZSwieCI6NzAxLCJ5Ijo0ODIsImhlaWdodCI6MTU1fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMTMtbC5wbmciLCJ3aWR0aCI6OTMsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4ODYsInkiOjUwNywiaGVpZ2h0IjoxNTV9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AzLWwucG5nIiwid2lkdGgiOjkzLCJyb3RhdGVkIjpmYWxzZSwieCI6NDg2LCJ5Ijo1MTksImhlaWdodCI6MTU1fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wNC5wbmciLCJ3aWR0aCI6MTUxLCJyb3RhdGVkIjpmYWxzZSwieCI6MzI0LCJ5Ijo1NjgsImhlaWdodCI6MTUyfSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9ib251cy5wbmciLCJ3aWR0aCI6MTUyLCJyb3RhdGVkIjpmYWxzZSwieCI6NCwieSI6NTc0LCJoZWlnaHQiOjE0MH0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDQtbC5wbmciLCJ3aWR0aCI6MTM1LCJyb3RhdGVkIjpmYWxzZSwieCI6MTYwLCJ5Ijo1NzQsImhlaWdodCI6MTUyfSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wNC1yLnBuZyIsIndpZHRoIjo5MSwicm90YXRlZCI6ZmFsc2UsIngiOjU4MywieSI6NjQxLCJoZWlnaHQiOjE1Mn0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvYm9udXMtbC5wbmciLCJ3aWR0aCI6OTUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2NzgsInkiOjY0MSwiaGVpZ2h0IjoxNDB9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL2JvbnVzLXIucG5nIiwid2lkdGgiOjkzLCJyb3RhdGVkIjpmYWxzZSwieCI6Nzc3LCJ5Ijo2NDEsImhlaWdodCI6MTQwfSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMTAucG5nIiwid2lkdGgiOjEwOSwicm90YXRlZCI6ZmFsc2UsIngiOjg3NCwieSI6NjY2LCJoZWlnaHQiOjEzNn0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDIucG5nIiwid2lkdGgiOjEwOSwicm90YXRlZCI6ZmFsc2UsIngiOjQsInkiOjcxOCwiaGVpZ2h0IjoxMzZ9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3A5LnBuZyIsIndpZHRoIjoxMDksInJvdGF0ZWQiOmZhbHNlLCJ4IjoyOTksInkiOjcyNCwiaGVpZ2h0IjoxMzZ9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AxMC1sLnBuZyIsIndpZHRoIjo2Nywicm90YXRlZCI6ZmFsc2UsIngiOjQ3OSwieSI6Njc4LCJoZWlnaHQiOjEzNn0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDItbC5wbmciLCJ3aWR0aCI6NjcsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxMTcsInkiOjczMCwiaGVpZ2h0IjoxMzZ9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3A5LWwucG5nIiwid2lkdGgiOjY3LCJyb3RhdGVkIjpmYWxzZSwieCI6MTg4LCJ5Ijo3MzAsImhlaWdodCI6MTM2fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMTAtci5wbmciLCJ3aWR0aCI6NjIsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0MTIsInkiOjcyNCwiaGVpZ2h0IjoxMzZ9LHsicGF0aCI6ImltYWdlcy9waW5hdGFzL3AyLXIucG5nIiwid2lkdGgiOjYyLCJyb3RhdGVkIjpmYWxzZSwieCI6Njc4LCJ5Ijo3ODUsImhlaWdodCI6MTM2fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wOS1yLnBuZyIsIndpZHRoIjo2Miwicm90YXRlZCI6ZmFsc2UsIngiOjc0NCwieSI6Nzg1LCJoZWlnaHQiOjEzNn0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvYnRuX2JhY2sucG5nIiwid2lkdGgiOjEzMSwicm90YXRlZCI6ZmFsc2UsIngiOjgxMCwieSI6ODA2LCJoZWlnaHQiOjQ2fSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wNi1yLnBuZyIsIndpZHRoIjo5Niwicm90YXRlZCI6ZmFsc2UsIngiOjU1MCwieSI6Nzk3LCJoZWlnaHQiOjEyOX0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDYtbC5wbmciLCJ3aWR0aCI6OTQsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4MTAsInkiOjg1NiwiaGVpZ2h0IjoxMjl9LHsicGF0aCI6ImltYWdlcy9jYW5kaWVzMS5wbmciLCJ3aWR0aCI6MTIwLCJyb3RhdGVkIjpmYWxzZSwieCI6MjU5LCJ5Ijo4NjQsImhlaWdodCI6MTIwfSx7InBhdGgiOiJpbWFnZXMvY2FuZGllczIucG5nIiwid2lkdGgiOjEyMCwicm90YXRlZCI6ZmFsc2UsIngiOjM4MywieSI6ODY0LCJoZWlnaHQiOjEyMH0seyJwYXRoIjoiaW1hZ2VzL2NhbmRpZXMzLnBuZyIsIndpZHRoIjoxMjAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0LCJ5Ijo4NzAsImhlaWdodCI6MTIwfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS9idG5fYnV5LnBuZyIsIndpZHRoIjoxMTAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5MDgsInkiOjg1NiwiaGVpZ2h0Ijo1MX0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvYnRuX3VwZ3JhZGUucG5nIiwid2lkdGgiOjExMCwicm90YXRlZCI6ZmFsc2UsIngiOjEyOCwieSI6ODcwLCJoZWlnaHQiOjUwfSx7InBhdGgiOiJpbWFnZXMvdHV0b3JpYWwvaGFuZC5wbmciLCJ3aWR0aCI6NjYsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3OTgsInkiOjUxMSwiaGVpZ2h0IjoxMDF9LHsicGF0aCI6ImltYWdlcy91aS9tb2RhbF9hd2F5L2J0bl9vay5wbmciLCJ3aWR0aCI6MTAwLCJyb3RhdGVkIjpmYWxzZSwieCI6OTA4LCJ5Ijo5MTEsImhlaWdodCI6NTB9LHsicGF0aCI6ImltYWdlcy90dXRvcmlhbC9idWJibGUucG5nIiwid2lkdGgiOjg1LCJyb3RhdGVkIjpmYWxzZSwieCI6MTI4LCJ5Ijo5MjQsImhlaWdodCI6ODV9LHsicGF0aCI6ImltYWdlcy91aS9idG5fbWlzc2lvbi5wbmciLCJ3aWR0aCI6NDYsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2MjMsInkiOjE4OCwiaGVpZ2h0Ijo4NH0seyJwYXRoIjoiaW1hZ2VzL3VpL2J0bl90b29scy5wbmciLCJ3aWR0aCI6NDYsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2NTAsInkiOjkyNSwiaGVpZ2h0Ijo4NH0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvaGFtbWVyL3BpYy5wbmciLCJ3aWR0aCI6NzAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3MDAsInkiOjkyNSwiaGVpZ2h0Ijo3MX0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvbXV0dG9uLWNob3AvcGljLnBuZyIsIndpZHRoIjo3MCwicm90YXRlZCI6ZmFsc2UsIngiOjUwNywieSI6OTMwLCJoZWlnaHQiOjcxfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9iYXR0bGUtYXhlL2FuaW0ucG5nIiwid2lkdGgiOjQ3LCJyb3RhdGVkIjpmYWxzZSwieCI6NTgxLCJ5Ijo5MzAsImhlaWdodCI6Njl9LHsicGF0aCI6ImltYWdlcy91aS9zY3JvbGxfaXRlbS5wbmciLCJ3aWR0aCI6NjUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5MDgsInkiOjk2NSwiaGVpZ2h0Ijo1NX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzEwMC5wbmciLCJ3aWR0aCI6MjIsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2MjMsInkiOjI3NiwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzUxLnBuZyIsIndpZHRoIjoyMiwicm90YXRlZCI6ZmFsc2UsIngiOjY0OSwieSI6Mjc2LCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNTMucG5nIiwid2lkdGgiOjIyLCJyb3RhdGVkIjpmYWxzZSwieCI6OTkxLCJ5IjozNDgsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M1Ni5wbmciLCJ3aWR0aCI6MjIsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo1OTYsInkiOjM2MCwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzgzLnBuZyIsIndpZHRoIjoyMiwicm90YXRlZCI6ZmFsc2UsIngiOjk5MSwieSI6Mzg4LCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNTAucG5nIiwid2lkdGgiOjIxLCJyb3RhdGVkIjpmYWxzZSwieCI6NTk2LCJ5Ijo0MDAsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M1NS5wbmciLCJ3aWR0aCI6MjAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5OTEsInkiOjQyOCwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzExNS5wbmciLCJ3aWR0aCI6MTksInJvdGF0ZWQiOmZhbHNlLCJ4Ijo1OTYsInkiOjQ0MCwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzQzLnBuZyIsIndpZHRoIjoxOSwicm90YXRlZCI6ZmFsc2UsIngiOjk5MSwieSI6NDY4LCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNDkucG5nIiwid2lkdGgiOjE5LCJyb3RhdGVkIjpmYWxzZSwieCI6OTgzLCJ5Ijo1MDgsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzQ5LnBuZyIsIndpZHRoIjoxMSwicm90YXRlZCI6ZmFsc2UsIngiOjQ5MSwieSI6MjQzLCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M0Mi5wbmciLCJ3aWR0aCI6MTQsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0OTEsInkiOjI2OCwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODcucG5nIiwid2lkdGgiOjEyLCJyb3RhdGVkIjpmYWxzZSwieCI6NDkxLCJ5IjoyOTEsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzc3LnBuZyIsIndpZHRoIjoxMCwicm90YXRlZCI6ZmFsc2UsIngiOjQ5MSwieSI6MzE0LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M4MS5wbmciLCJ3aWR0aCI6MTAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4MzYsInkiOjMxNiwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jNzkucG5nIiwid2lkdGgiOjksInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4NTAsInkiOjMxNiwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODkucG5nIiwid2lkdGgiOjksInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0OTEsInkiOjMzNywiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jMTAwLnBuZyIsIndpZHRoIjo4LCJyb3RhdGVkIjpmYWxzZSwieCI6Nzk4LCJ5Ijo0ODIsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzExMC5wbmciLCJ3aWR0aCI6OCwicm90YXRlZCI6ZmFsc2UsIngiOjgxMCwieSI6NDgyLCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2MxMTMucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4MjIsInkiOjQ4MiwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jNDgucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxMDA2LCJ5Ijo1MDgsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzU2LnBuZyIsIndpZHRoIjo4LCJyb3RhdGVkIjpmYWxzZSwieCI6ODY4LCJ5Ijo1MTEsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzY2LnBuZyIsIndpZHRoIjo4LCJyb3RhdGVkIjpmYWxzZSwieCI6NTgzLCJ5Ijo1MTksImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzY3LnBuZyIsIndpZHRoIjo4LCJyb3RhdGVkIjpmYWxzZSwieCI6MTAwNiwieSI6NTMxLCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M2OC5wbmciLCJ3aWR0aCI6OCwicm90YXRlZCI6ZmFsc2UsIngiOjg2OCwieSI6NTM0LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M3MS5wbmciLCJ3aWR0aCI6OCwicm90YXRlZCI6ZmFsc2UsIngiOjU4MywieSI6NTQyLCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M3Mi5wbmciLCJ3aWR0aCI6OCwicm90YXRlZCI6ZmFsc2UsIngiOjk4MywieSI6NTQ4LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M3NS5wbmciLCJ3aWR0aCI6OCwicm90YXRlZCI6ZmFsc2UsIngiOjk5NSwieSI6NTU0LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M3OC5wbmciLCJ3aWR0aCI6OCwicm90YXRlZCI6ZmFsc2UsIngiOjEwMDcsInkiOjU1NCwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODAucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4NjgsInkiOjU1NywiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODIucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo1ODMsInkiOjU2NSwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODMucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5ODMsInkiOjU3MSwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODQucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4IjoyOTksInkiOjU3NCwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODUucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4IjozMTEsInkiOjU3NCwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODYucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5OTUsInkiOjU3NywiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jODgucG5nIiwid2lkdGgiOjgsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxMDA3LCJ5Ijo1NzcsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzkwLnBuZyIsIndpZHRoIjo4LCJyb3RhdGVkIjpmYWxzZSwieCI6ODY4LCJ5Ijo1ODAsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzUxLnBuZyIsIndpZHRoIjo3LCJyb3RhdGVkIjpmYWxzZSwieCI6ODU2LCJ5IjoxODMsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzUyLnBuZyIsIndpZHRoIjo3LCJyb3RhdGVkIjpmYWxzZSwieCI6ODU2LCJ5IjoyMDYsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzUzLnBuZyIsIndpZHRoIjo3LCJyb3RhdGVkIjpmYWxzZSwieCI6ODU2LCJ5IjoyMjksImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzU0LnBuZyIsIndpZHRoIjo3LCJyb3RhdGVkIjpmYWxzZSwieCI6ODU2LCJ5IjoyNTIsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzU3LnBuZyIsIndpZHRoIjo3LCJyb3RhdGVkIjpmYWxzZSwieCI6ODU2LCJ5IjoyNzUsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzc2LnBuZyIsIndpZHRoIjo3LCJyb3RhdGVkIjpmYWxzZSwieCI6NTgzLCJ5Ijo1ODgsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzY5LnBuZyIsIndpZHRoIjo2LCJyb3RhdGVkIjpmYWxzZSwieCI6NjczLCJ5IjoxODgsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzcwLnBuZyIsIndpZHRoIjo2LCJyb3RhdGVkIjpmYWxzZSwieCI6NjczLCJ5IjoyMTEsImhlaWdodCI6MTl9XX0"},{ name : "__ASSET__:file___ASSET__images_atlas_2_json", data : "eyJkYXRhIjpbeyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvd3JlY2tpbmctYmFsbC9waWMucG5nIiwid2lkdGgiOjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6NCwieSI6NCwiaGVpZ2h0Ijo3MX0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvYmF0LWJhdC9waWMucG5nIiwid2lkdGgiOjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6NzgsInkiOjQsImhlaWdodCI6NzB9LHsicGF0aCI6ImltYWdlcy90b29sc19tZW51L3Rvb2xzL2JhdC1jYW5ub24vcGljLnBuZyIsIndpZHRoIjo3MCwicm90YXRlZCI6ZmFsc2UsIngiOjE1MiwieSI6NCwiaGVpZ2h0Ijo3MH0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvYmF0dGxlLWF4ZS9waWMucG5nIiwid2lkdGgiOjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6MjI2LCJ5Ijo0LCJoZWlnaHQiOjcwfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9nb29kLW9sLWJhdC9waWMucG5nIiwid2lkdGgiOjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6MzAwLCJ5Ijo0LCJoZWlnaHQiOjcwfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9waW5hdGEtc21hc2hlci9waWMucG5nIiwid2lkdGgiOjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6Mzc0LCJ5Ijo0LCJoZWlnaHQiOjcwfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9wdW5jaC1pbnRlbmRlZC9waWMucG5nIiwid2lkdGgiOjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6NDQ4LCJ5Ijo0LCJoZWlnaHQiOjcwfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9iYXQtYmF0L2FuaW0ucG5nIiwid2lkdGgiOjY5LCJyb3RhdGVkIjpmYWxzZSwieCI6NTIyLCJ5Ijo0LCJoZWlnaHQiOjcwfSx7InBhdGgiOiJpbWFnZXMvdWkvc2Nyb2xsX2l0ZW1fYWN0aXZlLnBuZyIsIndpZHRoIjo2NSwicm90YXRlZCI6ZmFsc2UsIngiOjU5NSwieSI6NCwiaGVpZ2h0Ijo1NX0seyJwYXRoIjoiaW1hZ2VzL3VpL3Njcm9sbF9pdGVtX2FsZXJ0LnBuZyIsIndpZHRoIjo2NSwicm90YXRlZCI6ZmFsc2UsIngiOjY2NCwieSI6NCwiaGVpZ2h0Ijo1NX0seyJwYXRoIjoiaW1hZ2VzL3VpL3Njcm9sbF9pdGVtX2JvbnVzLnBuZyIsIndpZHRoIjo2NSwicm90YXRlZCI6ZmFsc2UsIngiOjczMywieSI6NCwiaGVpZ2h0Ijo1NX0seyJwYXRoIjoiaW1hZ2VzL3VpL3Njcm9sbF9pdGVtX2JvbnVzX29mZi5wbmciLCJ3aWR0aCI6NjUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4MDIsInkiOjQsImhlaWdodCI6NTV9XX0"},{ name : "__ASSET__:file___ASSET__images_atlas_0_json", data : "eyJkYXRhIjpbeyJwYXRoIjoiaW1hZ2VzL2V4cGxvc2lvbi5wbmciLCJ3aWR0aCI6NzA4LCJyb3RhdGVkIjpmYWxzZSwieCI6NCwieSI6NCwiaGVpZ2h0IjoxMTh9LHsicGF0aCI6ImltYWdlcy9zdHJpa2UucG5nIiwid2lkdGgiOjY0MCwicm90YXRlZCI6ZmFsc2UsIngiOjQsInkiOjEyNiwiaGVpZ2h0IjozMn0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvYmcucG5nIiwid2lkdGgiOjMzMCwicm90YXRlZCI6ZmFsc2UsIngiOjY0OCwieSI6MTI2LCJoZWlnaHQiOjU2OH0seyJwYXRoIjoiaW1hZ2VzL211bmNoZXIucG5nIiwid2lkdGgiOjUyMCwicm90YXRlZCI6ZmFsc2UsIngiOjQsInkiOjE2MiwiaGVpZ2h0IjozODd9LHsicGF0aCI6ImltYWdlcy9taXNzaW9ucy9iZy5wbmciLCJ3aWR0aCI6MzIwLCJyb3RhdGVkIjpmYWxzZSwieCI6NCwieSI6NTUzLCJoZWlnaHQiOjM3Nn0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvaGVhZGVyLnBuZyIsIndpZHRoIjozMjEsInJvdGF0ZWQiOmZhbHNlLCJ4IjozMjgsInkiOjY5OCwiaGVpZ2h0Ijo2MH0seyJwYXRoIjoiaW1hZ2VzL3VpL3Njcm9sbF9mcm9udC5wbmciLCJ3aWR0aCI6MzIwLCJyb3RhdGVkIjpmYWxzZSwieCI6NjUzLCJ5Ijo2OTgsImhlaWdodCI6NzJ9LHsicGF0aCI6ImltYWdlcy90b29sc19tZW51L2l0ZW1fYmcucG5nIiwid2lkdGgiOjMwNSwicm90YXRlZCI6ZmFsc2UsIngiOjMyOCwieSI6NTUzLCJoZWlnaHQiOjgwfSx7InBhdGgiOiJpbWFnZXMvbWlzc2lvbnMvbWlzc2lvbl9iZy5wbmciLCJ3aWR0aCI6MzAwLCJyb3RhdGVkIjpmYWxzZSwieCI6NzE2LCJ5Ijo0LCJoZWlnaHQiOjYxfSx7InBhdGgiOiJpbWFnZXMvdWkvc2Nyb2xsX2JhY2sucG5nIiwid2lkdGgiOjI4MCwicm90YXRlZCI6ZmFsc2UsIngiOjMyOCwieSI6NzYyLCJoZWlnaHQiOjcyfSx7InBhdGgiOiJpbWFnZXMvdHV0b3JpYWwvbmV4dF9sZXZlbC5wbmciLCJ3aWR0aCI6Mjc2LCJyb3RhdGVkIjpmYWxzZSwieCI6NjEyLCJ5Ijo3NzQsImhlaWdodCI6NjZ9LHsicGF0aCI6ImltYWdlcy90dXRvcmlhbC9hdXRvX2hpdC5wbmciLCJ3aWR0aCI6MjcwLCJyb3RhdGVkIjpmYWxzZSwieCI6MzI4LCJ5Ijo4MzgsImhlaWdodCI6NjV9LHsicGF0aCI6ImltYWdlcy90dXRvcmlhbC9pbmNyZWFzZV9oaXRzLnBuZyIsIndpZHRoIjoyNzAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2MDIsInkiOjg0NCwiaGVpZ2h0Ijo2NX0seyJwYXRoIjoiaW1hZ2VzL3VpL3RhcGZhc3QucG5nIiwid2lkdGgiOjI1Niwicm90YXRlZCI6ZmFsc2UsIngiOjMyOCwieSI6OTA3LCJoZWlnaHQiOjcxfSx7InBhdGgiOiJpbWFnZXMvcm9wZS5wbmciLCJ3aWR0aCI6MTAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5ODIsInkiOjY5LCJoZWlnaHQiOjI1MH0seyJwYXRoIjoiaW1hZ2VzL21pc3Npb25zL2Jhcl9iZy5wbmciLCJ3aWR0aCI6MjM1LCJyb3RhdGVkIjpmYWxzZSwieCI6NzE2LCJ5Ijo2OSwiaGVpZ2h0IjoyNX0seyJwYXRoIjoiaW1hZ2VzL21pc3Npb25zL2Jhcl9maWxsLnBuZyIsIndpZHRoIjoyMzUsInJvdGF0ZWQiOmZhbHNlLCJ4IjozMjgsInkiOjYzNywiaGVpZ2h0IjoyNX0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDEtbC5wbmciLCJ3aWR0aCI6MTEyLCJyb3RhdGVkIjpmYWxzZSwieCI6NTI4LCJ5IjoxNjIsImhlaWdodCI6MTgwfSx7InBhdGgiOiJpbWFnZXMvcGluYXRhcy9wMS1yLnBuZyIsIndpZHRoIjo4MCwicm90YXRlZCI6ZmFsc2UsIngiOjUyOCwieSI6MzQ2LCJoZWlnaHQiOjE4MH0seyJwYXRoIjoiaW1hZ2VzL3BpbmF0YXMvcDcucG5nIiwid2lkdGgiOjE0MCwicm90YXRlZCI6ZmFsc2UsIngiOjg3NiwieSI6ODQ0LCJoZWlnaHQiOjE3NX0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvcHVuY2gtaW50ZW5kZWQvYW5pbS5wbmciLCJ3aWR0aCI6MzUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5ODIsInkiOjMyMywiaGVpZ2h0IjoxNjR9LHsicGF0aCI6ImltYWdlcy9taXNzaW9ucy9jaGVja21hcmsucG5nIiwid2lkdGgiOjE2MCwicm90YXRlZCI6ZmFsc2UsIngiOjU4OCwieSI6OTEzLCJoZWlnaHQiOjQwfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9waW5hdGEtc21hc2hlci9uYW1lLnBuZyIsIndpZHRoIjoxNTksInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3MTYsInkiOjk4LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9wdW5jaC1pbnRlbmRlZC9uYW1lLnBuZyIsIndpZHRoIjoxNTgsInJvdGF0ZWQiOmZhbHNlLCJ4IjozMjgsInkiOjY2NiwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL3VpL3RpbWVfYmFyX2JnLnBuZyIsIndpZHRoIjoxNDUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0LCJ5Ijo5MzMsImhlaWdodCI6MzB9LHsicGF0aCI6ImltYWdlcy91aS90aW1lX2Jhcl9maWxsLnBuZyIsIndpZHRoIjoxNDUsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxNTMsInkiOjkzMywiaGVpZ2h0IjozMH0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvd3JlY2tpbmctYmFsbC9uYW1lLnBuZyIsIndpZHRoIjoxNDUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0OTAsInkiOjY2NiwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL3VpL2hwX2JnLnBuZyIsIndpZHRoIjoxNDAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo1ODgsInkiOjk1NywiaGVpZ2h0IjoyNn0seyJwYXRoIjoiaW1hZ2VzL3VpL2hwX2ZpbGwucG5nIiwid2lkdGgiOjE0MCwicm90YXRlZCI6ZmFsc2UsIngiOjczMiwieSI6OTU3LCJoZWlnaHQiOjI2fSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9tdXR0b24tY2hvcC9uYW1lLnBuZyIsIndpZHRoIjoxMzUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0LCJ5Ijo5NjcsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9taXNzaW9ucy9idG5fYmFjay5wbmciLCJ3aWR0aCI6MTMxLCJyb3RhdGVkIjpmYWxzZSwieCI6MTQzLCJ5Ijo5NjcsImhlaWdodCI6NDZ9LHsicGF0aCI6ImltYWdlcy90b29sc19tZW51L3Rvb2xzL2dvb2Qtb2wtYmF0L25hbWUucG5nIiwid2lkdGgiOjEyMCwicm90YXRlZCI6ZmFsc2UsIngiOjg5MiwieSI6Nzc0LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9iYXQtY2Fubm9uL25hbWUucG5nIiwid2lkdGgiOjExOCwicm90YXRlZCI6ZmFsc2UsIngiOjg5MiwieSI6Nzk3LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9iYXR0bGUtYXhlL25hbWUucG5nIiwid2lkdGgiOjExMCwicm90YXRlZCI6ZmFsc2UsIngiOjUyOCwieSI6NTMwLCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9oYW1tZXIvbmFtZS5wbmciLCJ3aWR0aCI6ODcsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4NzksInkiOjk4LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9iYXQtYmF0L25hbWUucG5nIiwid2lkdGgiOjc3LCJyb3RhdGVkIjpmYWxzZSwieCI6NTY3LCJ5Ijo2MzcsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy91aS9zY3JvbGxfYXJyb3cucG5nIiwid2lkdGgiOjM1LCJyb3RhdGVkIjpmYWxzZSwieCI6OTgyLCJ5Ijo0OTEsImhlaWdodCI6NzJ9LHsicGF0aCI6ImltYWdlcy90b29sc19tZW51L3Rvb2xzL3BpbmF0YS1zbWFzaGVyL2FuaW0ucG5nIiwid2lkdGgiOjI0LCJyb3RhdGVkIjpmYWxzZSwieCI6OTk2LCJ5Ijo2OSwiaGVpZ2h0Ijo3Mn0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvYmF0LWNhbm5vbi9hbmltLnBuZyIsIndpZHRoIjoyMiwicm90YXRlZCI6ZmFsc2UsIngiOjk5NiwieSI6MTQ1LCJoZWlnaHQiOjcyfSx7InBhdGgiOiJpbWFnZXMvdG9vbHNfbWVudS90b29scy9oYW1tZXIvYW5pbS5wbmciLCJ3aWR0aCI6MzksInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5NzcsInkiOjY5OCwiaGVpZ2h0Ijo2NH0seyJwYXRoIjoiaW1hZ2VzL3Rvb2xzX21lbnUvdG9vbHMvbXV0dG9uLWNob3AvYW5pbS5wbmciLCJ3aWR0aCI6MzgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5ODIsInkiOjU2NywiaGVpZ2h0Ijo2MX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzEyNi5wbmciLCJ3aWR0aCI6NTEsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3NTIsInkiOjkxMywiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL3VpL2xldmVsX2Jhcl9iZy5wbmciLCJ3aWR0aCI6NTAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4OTIsInkiOjgyMCwiaGVpZ2h0IjoxMX0seyJwYXRoIjoiaW1hZ2VzL3VpL2xldmVsX2Jhcl9maWxsLnBuZyIsIndpZHRoIjo1MCwicm90YXRlZCI6ZmFsc2UsIngiOjk0NiwieSI6ODIwLCJoZWlnaHQiOjEwfSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2MzNS5wbmciLCJ3aWR0aCI6NDUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4MDcsInkiOjkxMywiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL3VpL2F0dGVudGlvbl90YWcucG5nIiwid2lkdGgiOjQwLCJyb3RhdGVkIjpmYWxzZSwieCI6Mjc4LCJ5Ijo5NjcsImhlaWdodCI6NDB9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M3Ny5wbmciLCJ3aWR0aCI6MzQsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5ODIsInkiOjYzMiwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzM2LnBuZyIsIndpZHRoIjozMSwicm90YXRlZCI6ZmFsc2UsIngiOjYxMiwieSI6MzQ2LCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNDIucG5nIiwid2lkdGgiOjMwLCJyb3RhdGVkIjpmYWxzZSwieCI6NjEyLCJ5IjozODYsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M3NS5wbmciLCJ3aWR0aCI6MjgsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2MTIsInkiOjQyNiwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzc4LnBuZyIsIndpZHRoIjoyOCwicm90YXRlZCI6ZmFsc2UsIngiOjYxMiwieSI6NDY2LCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNzkucG5nIiwid2lkdGgiOjI3LCJyb3RhdGVkIjpmYWxzZSwieCI6MzIyLCJ5Ijo5ODIsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M4MS5wbmciLCJ3aWR0aCI6MjcsInJvdGF0ZWQiOmZhbHNlLCJ4IjozNTMsInkiOjk4MiwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzY4LnBuZyIsIndpZHRoIjoyNiwicm90YXRlZCI6ZmFsc2UsIngiOjM4NCwieSI6OTgyLCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jODUucG5nIiwid2lkdGgiOjI2LCJyb3RhdGVkIjpmYWxzZSwieCI6NDE0LCJ5Ijo5ODIsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M2Ni5wbmciLCJ3aWR0aCI6MjUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0NDQsInkiOjk4MiwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzg0LnBuZyIsIndpZHRoIjoyNSwicm90YXRlZCI6ZmFsc2UsIngiOjQ3MywieSI6OTgyLCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNDgucG5nIiwid2lkdGgiOjI0LCJyb3RhdGVkIjpmYWxzZSwieCI6OTk2LCJ5IjoyMjEsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2MxMTMucG5nIiwid2lkdGgiOjIzLCJyb3RhdGVkIjpmYWxzZSwieCI6OTk2LCJ5IjoyNjEsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M1Mi5wbmciLCJ3aWR0aCI6MjMsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo1MDIsInkiOjk4MiwiaGVpZ2h0IjozNn0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19iaWcvYzU0LnBuZyIsIndpZHRoIjoyMywicm90YXRlZCI6ZmFsc2UsIngiOjUyOSwieSI6OTgyLCJoZWlnaHQiOjM2fSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X2JpZy9jNTcucG5nIiwid2lkdGgiOjIzLCJyb3RhdGVkIjpmYWxzZSwieCI6NTU2LCJ5Ijo5ODIsImhlaWdodCI6MzZ9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfYmlnL2M0NC5wbmciLCJ3aWR0aCI6MTMsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4NTYsInkiOjkxMywiaGVpZ2h0IjozNX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jMTI2LnBuZyIsIndpZHRoIjoyOSwicm90YXRlZCI6ZmFsc2UsIngiOjk4MiwieSI6NjcyLCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M3Ny5wbmciLCJ3aWR0aCI6MjAsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo5NTUsInkiOjY5LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2MzNi5wbmciLCJ3aWR0aCI6MTgsInJvdGF0ZWQiOmZhbHNlLCJ4IjozMDIsInkiOjkzMywiaGVpZ2h0IjoyMX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jNDIucG5nIiwid2lkdGgiOjE3LCJyb3RhdGVkIjpmYWxzZSwieCI6NTgzLCJ5Ijo5ODcsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzc1LnBuZyIsIndpZHRoIjoxNywicm90YXRlZCI6ZmFsc2UsIngiOjYwNCwieSI6OTg3LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M3OC5wbmciLCJ3aWR0aCI6MTcsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2MjUsInkiOjk4NywiaGVpZ2h0IjoyMX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jNzkucG5nIiwid2lkdGgiOjE2LCJyb3RhdGVkIjpmYWxzZSwieCI6NjQ2LCJ5Ijo5ODcsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzgxLnBuZyIsIndpZHRoIjoxNiwicm90YXRlZCI6ZmFsc2UsIngiOjY2NiwieSI6OTg3LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M2Ni5wbmciLCJ3aWR0aCI6MTUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2ODYsInkiOjk4NywiaGVpZ2h0IjoyMX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jNjgucG5nIiwid2lkdGgiOjE1LCJyb3RhdGVkIjpmYWxzZSwieCI6NzA1LCJ5Ijo5ODcsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzg0LnBuZyIsIndpZHRoIjoxNSwicm90YXRlZCI6ZmFsc2UsIngiOjcyNCwieSI6OTg3LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M4NS5wbmciLCJ3aWR0aCI6MTUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3NDMsInkiOjk4NywiaGVpZ2h0IjoyMX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jMTEzLnBuZyIsIndpZHRoIjoxNCwicm90YXRlZCI6ZmFsc2UsIngiOjc2MiwieSI6OTg3LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M0OC5wbmciLCJ3aWR0aCI6MTQsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3ODAsInkiOjk4NywiaGVpZ2h0IjoyMX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jNTQucG5nIiwid2lkdGgiOjE0LCJyb3RhdGVkIjpmYWxzZSwieCI6Nzk4LCJ5Ijo5ODcsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzU3LnBuZyIsIndpZHRoIjoxNCwicm90YXRlZCI6ZmFsc2UsIngiOjgxNiwieSI6OTg3LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2MxMDAucG5nIiwid2lkdGgiOjEzLCJyb3RhdGVkIjpmYWxzZSwieCI6ODM0LCJ5Ijo5ODcsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzUxLnBuZyIsIndpZHRoIjoxMywicm90YXRlZCI6ZmFsc2UsIngiOjg1MSwieSI6OTg3LCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M1Mi5wbmciLCJ3aWR0aCI6MTMsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo0LCJ5Ijo5OTAsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzUzLnBuZyIsIndpZHRoIjoxMywicm90YXRlZCI6ZmFsc2UsIngiOjIxLCJ5Ijo5OTAsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzU2LnBuZyIsIndpZHRoIjoxMywicm90YXRlZCI6ZmFsc2UsIngiOjM4LCJ5Ijo5OTAsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzgzLnBuZyIsIndpZHRoIjoxMywicm90YXRlZCI6ZmFsc2UsIngiOjU1LCJ5Ijo5OTAsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzExNS5wbmciLCJ3aWR0aCI6MTIsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo3MiwieSI6OTkwLCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M1MC5wbmciLCJ3aWR0aCI6MTIsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo4OCwieSI6OTkwLCJoZWlnaHQiOjIxfSx7InBhdGgiOiJpbWFnZXMvZm9udHMveWVsbG93X3NtYWxsL2M1NS5wbmciLCJ3aWR0aCI6MTIsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxMDQsInkiOjk5MCwiaGVpZ2h0IjoyMX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3llbGxvd19zbWFsbC9jNDMucG5nIiwid2lkdGgiOjExLCJyb3RhdGVkIjpmYWxzZSwieCI6MTIwLCJ5Ijo5OTAsImhlaWdodCI6MjF9LHsicGF0aCI6ImltYWdlcy9mb250cy95ZWxsb3dfc21hbGwvYzQ0LnBuZyIsIndpZHRoIjo4LCJyb3RhdGVkIjpmYWxzZSwieCI6OTcwLCJ5Ijo5NCwiaGVpZ2h0IjoyMH0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jMTI2LnBuZyIsIndpZHRoIjoxOSwicm90YXRlZCI6ZmFsc2UsIngiOjYxMiwieSI6NTA2LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2MzNi5wbmciLCJ3aWR0aCI6MTUsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxMDAwLCJ5Ijo4MjAsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzY1LnBuZyIsIndpZHRoIjo5LCJyb3RhdGVkIjpmYWxzZSwieCI6NjM1LCJ5Ijo1MDYsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzExNS5wbmciLCJ3aWR0aCI6Nywicm90YXRlZCI6ZmFsc2UsIngiOjYzNywieSI6NTUzLCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M0My5wbmciLCJ3aWR0aCI6Nywicm90YXRlZCI6ZmFsc2UsIngiOjYzNywieSI6NTc2LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M1MC5wbmciLCJ3aWR0aCI6Nywicm90YXRlZCI6ZmFsc2UsIngiOjYzNywieSI6NTk5LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M1NS5wbmciLCJ3aWR0aCI6Niwicm90YXRlZCI6ZmFsc2UsIngiOjEwMTQsInkiOjc5NywiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jMzIucG5nIiwid2lkdGgiOjUsInJvdGF0ZWQiOmZhbHNlLCJ4Ijo2MzksInkiOjY2MCwiaGVpZ2h0IjoxOX0seyJwYXRoIjoiaW1hZ2VzL2ZvbnRzL3B1cnBsZS9jNDkucG5nIiwid2lkdGgiOjUsInJvdGF0ZWQiOmZhbHNlLCJ4IjoxMDE1LCJ5Ijo2NzIsImhlaWdodCI6MTl9LHsicGF0aCI6ImltYWdlcy9mb250cy9wdXJwbGUvYzc0LnBuZyIsIndpZHRoIjo0LCJyb3RhdGVkIjpmYWxzZSwieCI6MTAxNiwieSI6NzY2LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M0NC5wbmciLCJ3aWR0aCI6Mywicm90YXRlZCI6ZmFsc2UsIngiOjg2OCwieSI6OTg3LCJoZWlnaHQiOjE5fSx7InBhdGgiOiJpbWFnZXMvZm9udHMvcHVycGxlL2M3My5wbmciLCJ3aWR0aCI6Mywicm90YXRlZCI6ZmFsc2UsIngiOjEzNSwieSI6OTkwLCJoZWlnaHQiOjE5fV19"},{ name : "__ASSET__:file___ASSET__images_fonts_purple_kern_txt", data : "ewoJImFueSI6IHsKCQkiYW55IjogMCwKCQkiLCI6IDEsCgkJIn4iOiA1LAoJCSIjIjogNQoJfQp9"},{ name : "__ASSET__:bitmap_co_doubleduck_utils_ProgBG", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQW9DQVlBQUFCdHVXOTVBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBNEtXbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXdNVFFnTnprdU1UVTJOemszTENBeU1ERTBMekE0THpJd0xUQTVPalV6T2pBeUlDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TkNBb1RXRmphVzUwYjNOb0tUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOQzB4TUMweE5GUXhOem8xTXpveU9Tc3dNem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMExURXdMVEUwVkRFM09qVXpPalV3S3pBek9qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TkMweE1DMHhORlF4TnpvMU16bzFNQ3N3TXpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRveU1UazRNVEkzWVMwMFpURXdMVFEyTldZdFlXWTRaUzFrTnpabE5UTTFaakZrTmpVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk1qRTVPREV5TjJFdE5HVXhNQzAwTmpWbUxXRm1PR1V0WkRjMlpUVXpOV1l4WkRZMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk1qRTVPREV5TjJFdE5HVXhNQzAwTmpWbUxXRm1PR1V0WkRjMlpUVXpOV1l4WkRZMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pJeE9UZ3hNamRoTFRSbE1UQXRORFkxWmkxaFpqaGxMV1EzTm1VMU16Vm1NV1EyTlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TkMweE1DMHhORlF4TnpvMU16b3lPU3N3TXpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFFnS0UxaFkybHVkRzl6YUNrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K056SXdNREF3THpFd01EQXdQQzkwYVdabU9saFNaWE52YkhWMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V1ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xKbGMyOXNkWFJwYjI1VmJtbDBQakk4TDNScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2tOdmJHOXlVM0JoWTJVK05qVTFNelU4TDJWNGFXWTZRMjlzYjNKVGNHRmpaVDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WVJHbHRaVzV6YVc5dVBqSXhOVHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajQwTUR3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K1BLQ1R6Z0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFHUVVsRVFWUjQydXlkUzJ4VVZSaUF2M1B2blprN0xkQVh0RWlySGJDaXBLU2lBWVZJMkJnTkVXR25MRmpRR0xFSk8waGNzcElRRWhOWXNZTFVrTGhCZHlqR2FIVFJDQlNWaUkwb2lrQ3JvZERhSjIzbmRSL0h4Ync3TTMzcGh1bi9KU2M1OTl4SEp1Zk1sLytjTStlZVVWcHJCRUg0LzdFeUdhWFVVdTVmQTdRRHp3QlBBanFkQk9GeFJLWFQzOEJ0NENid3oySWZrZ2xZMWhJL3hGUEFXOENyd0hhZ1R0cEZxRERHZ1Y3Z0crQlQ0QytXWXRraXVvWWR3SG5BeVl0U2tpUlZlbkxTMy91T1JUbTFDTGxPU2lWTGtzVEpoY3FsTW1MTk1lYUtBQmVBbDBwM1VoVzJVWVZ0VktVZUxOMEo0VEVlY0FIRS9TaHhQNG91LzIzK0h0Z1A5TTgxNXBwUHJtZUJIcUJ4OW9sNnE1RjZheTExNWhwQ1JoV21NcVYxaElyQTB4NEpQOHE0OXc5ajdrUEczT0ZTbHcwRHU0RGZseUpYQlBnUmFNZ3ZyTE1haVlTZW84NXN4RlFXams3ZzR5RlQra0xGUkRDbE1EQUpxQkNlZGhuM2h1bFAzR0s4V0xKUllPdnNDRGFmWEFIZ2o3UmdXZHJzRGxwRHo2R0F1QjlENDB0TENCWGVWVFN3alRBYUdFamM0czk0Myt4TCtvR042VW1QQXJtTU1zODhOMXVzanFwWGVOcmVUTktQRS9XblJTeGhXYUR4aWZyVEpQMDRUOXViNmFoNnBWUVA3MXhKTVV0RXJwZEp6ZThYaUxVMjJNcU1OeW0xTFN4cnFzMGFIaVlINkl0ZW5uMXFPM0J0dnNoMU92OWdvNzJGSjRJUkVVc1FnQmx2a2llQ0VUYmFXK2IwcHBSY0x3TTdNZ2VyclhWRTdFM01lSStrVmdVaEs5Z2pJdlltVmx2cjhvdDNwUDBwS1pjQ0R1VVA1RGJZN2JpK2c0OG5OU29JYVh3OFhOOWhnOTJPS294UGg4cko5U0t3TjNQUUZHaWh4bXdnb1dNb2xOU29JR1FEanlLaFk5U1lEVFFGV3ZKUDdRWE1Vbkx0Sk8vSDRqWEJGb2xZZ2pCUEJGc1RMSkNyRVhpK1NDN1R6QzFLREtrd05VWTlqazVJRFFwQ0dSeWRvTWFvSjZUQzJUTExZa3VSWEZyVG1zbXZ0T29JR0NGOExiOWxDVUxaeUtWOUFrYUlsVmJ1alN1dGVhcElMdC9QRGF6Q1JqVVdnYmtXTGdyQ3NrZWpzUWdRTnFxelpaNlhlMGZTS09oQ1pnc05xVGxCV0NCbWJnNkRZREFYa1l5Q2EvS01GQVJoOFJ3L25zdG41UXFGaUdieUtydVZnQ0FJYzZGUStIbkI2TXFWbkVkWnVWcGFHTW9zTDNSMEFvMG5nZ25DUEdyNWVManBXWFdsb0xlWGgwVnl2ZmNlTnpOeVRYdVBjTFNESVhJSlFsa01GSTUybUU0dkQxUUtQdnFJWDR2a09uaVFLMjF0M0FlWThpYUkrVk9ZeXBJYUZJUXltTW9pNWs4eDVVMEEwTmJHL2QyN3VWRWtWMU1UMS9mdjV5dEl2Y015NWc0UlVEYXlLNFlnbEVJVFVEWmo3bEQyM2NhMFA0a2l1UUNucTR1UE13Y1BuQUZjbmNCQW9wY2dGSGNKTFZ5ZDRJRXprQzNMOTJlMlhEUTM4MjFYRnoyUVdsWS82UFFUTmxiSTFMd2dGTVFzVGRoWXdhRFRuMzBkcTZ1TG51Wm12aTJZN3NodExKT2F2SmlZNEkybUppNGxreEJRUVY1YThSb2hGU2F1bzdJNlhoQ3gwTmlxaW9TTzhmMzAxemc2U1RBSVEwUHNxYTNsaTh4VlJaRUxvTGFXTDdxNzZRWndkSkpmb3RjQUNDcGJJcGl3N01VS0todUFYNkxYY0hRU2dPNXV1bk5pbGVrV1pqaHdnQk9IRDZmMjBaajBSdmc1ZWhrRGs1QVJGc0dFWlN0V3lBaGpZUEp6OURLVDNnZ0Fody9UZStBQUowcVB5MHB6NTh3WmpuVjJjaDFnMUgzQWpXZ1BubmFwTmxhbHU0Y2ltYkE4dEZJb3FvMVZlTnJsUnJTSFVmY0JBSjJkWEQ5emhtUEFuVkozRm8yNVpvbjM1cUZEdkgvdUhEc2h0VnIrR2ZzRkdnT3B2UU9TT29HblBSRk5xRUFVcGpJSnFoQUF3ODRndCtNL0VmTm5BSGozWGI0N2U1WVBnYzloOWo2RGVsNjVBSUxBYTZkUGMvRG9VZllDTnFRMnJsa1hqTERLYk1BMndpZ01QTzFLZXdnVmdha3NORDV4UDhZamI1VEJaRDhqN21EbWRQelVLVDQ3Y29UendOZEFzbFMwVzRoY3BJWGEydGZIN21QSGVQM2lSYlpsVGxoVTB4aHNwTXBZU2NnSVM2c0lGVUhDanhIMXB4aE9EdU15a3kzZnQ0OGZQdmlBcnpvNitKTFVWdS94Y2wzSmhjcVZZUlBRM3RQRGp1NXV0bDM0aEk1NGpCcHBDcUdTc2NOTTduK2J2bmZlNFlkZHU3aEs2dDhtZjV0dm5MWll1UUJxZ2ZWQTY5Z1k3WmN1c2Y3dVhkWmQ3V1YxL3dDMXBvazJsQXpBaE1jVFg2TThEeFZwWldMSGRrWTJiR0J3eng3dTFkZHpFeGdBN2dFVEM1a0VXWXBjR2FxQlptQjFPdDhBckNoNHNpQThqck1ZS2FaSi9ZUEpEREFDM0UvbkY4aC9reXQvUEZhWEZpd2diU05VQ0U1YXB2SHk0NnBGeVNVSXd2L0p2d01BR0JuTC9DRFJiWUFBQUFBQVNVVk9SSzVDWUlJPQ"}];
- var this1;
- this1 = new Array(256);
- lime.graphics.utils.ImageDataUtil.__alpha16 = this1;
- var _g = 0;
- while(_g < 256) {
- var i = _g++;
- lime.graphics.utils.ImageDataUtil.__alpha16[i] = i * 65536 / 255 | 0;
- }
- var this2;
- this2 = new Array(510);
- lime.graphics.utils.ImageDataUtil.__clamp = this2;
- var _g1 = 0;
- while(_g1 < 255) {
- var i1 = _g1++;
- lime.graphics.utils.ImageDataUtil.__clamp[i1] = i1;
- }
- var _g11 = 255;
- var _g2 = 511;
- while(_g11 < _g2) {
- var i2 = _g11++;
- lime.graphics.utils.ImageDataUtil.__clamp[i2] = 255;
- }
- if(window.createjs != null) createjs.Sound.alternateExtensions = ["ogg","mp3","wav"];
- lime.system.System.__moduleNames = null;
- lime.system.System.__startTime = haxe.Timer.stamp();
- lime.utils.ByteArray.lime_byte_array_overwrite_file = lime.system.System.load("lime","lime_byte_array_overwrite_file",2);
- lime.utils.ByteArray.lime_byte_array_read_file = lime.system.System.load("lime","lime_byte_array_read_file",1);
- lime.utils.ByteArray.lime_lzma_decode = lime.system.System.load("lime","lime_lzma_decode",1);
- lime.utils.ByteArray.lime_lzma_encode = lime.system.System.load("lime","lime_lzma_encode",1);
- __ASSET__data_gameplay_js.resourceName = "__ASSET__:file___ASSET__data_gameplay_js";
- __ASSET__images_atlas_0_json.resourceName = "__ASSET__:file___ASSET__images_atlas_0_json";
- __ASSET__images_atlas_1_json.resourceName = "__ASSET__:file___ASSET__images_atlas_1_json";
- __ASSET__images_atlas_2_json.resourceName = "__ASSET__:file___ASSET__images_atlas_2_json";
- __ASSET__images_fonts_purple_kern_txt.resourceName = "__ASSET__:file___ASSET__images_fonts_purple_kern_txt";
- __ASSET__images_fonts_yellow_big_kern_txt.resourceName = "__ASSET__:file___ASSET__images_fonts_yellow_big_kern_txt";
- __ASSET__images_fonts_yellow_small_kern_txt.resourceName = "__ASSET__:file___ASSET__images_fonts_yellow_small_kern_txt";
- ApplicationMain.embeddedFiles = [];
- openfl.display.DisplayObject.__instanceCount = 0;
- openfl.display.DisplayObject.__worldRenderDirty = 0;
- openfl.display.DisplayObject.__worldTransformDirty = 0;
- GlobalVars.gameVersion = "1.1.0";
- co.doubleduck.d2p2.P2Log.DATA_VER = "1.0.0";
- co.doubleduck.d2p2.P2Log.DATA_KEY = "Data";
- co.doubleduck.pinata.Game.GAME_DOMAIN = "pinata_muncher";
- co.doubleduck.pinata.Game.KIZI = true;
- co.doubleduck.pinata.core.LevelsBar.LEVEL_SELECTED_EVENT = "LevelSelectedEvent";
- co.doubleduck.pinata.core.LevelBarItem.SELECTED_EVENT = "SelectedEvent";
- co.doubleduck.pinata.core.LevelBarItem.NUM_FONT = "images/fonts/yellow_big";
- co.doubleduck.pinata.core.MuncherAnim.SIZE_W = 130;
- co.doubleduck.pinata.core.MuncherAnim.SIZE_H = 129;
- co.doubleduck.pinata.core.MuncherAnim.SHEET_ROWS = 3;
- co.doubleduck.pinata.core.MuncherAnim.SHEET_COLS = 4;
- co.doubleduck.pinata.core.Session.BIG_FONT = "images/fonts/yellow_big";
- co.doubleduck.pinata.core.Session.SMALL_FONT = "images/fonts/yellow_small";
- co.doubleduck.pinata.core.missions.MissionItem.READY_DONE_EVENT = "ReadyDoneEvent";
- co.doubleduck.pinata.core.missions.MissionItem.DONE_EVENT = "DoneEvent";
- co.doubleduck.pinata.core.missions.MissionItem.ONGOING_EVENT = "OngoingEvent";
- co.doubleduck.pinata.core.missions.MissionItem.DESC_FONT = "images/fonts/purple/";
- co.doubleduck.pinata.core.missions.MissionScr.WON_PINATA_EVENT = "WonPinataEvent";
- co.doubleduck.pinata.core.pinatas.Pinata.HIT_DMG_FONT = "images/fonts/yellow_big/";
- co.doubleduck.pinata.core.pinatas.Pinata.OPENED_EVENT = "OpenedEvent";
- co.doubleduck.pinata.core.pinatas.Pinata.CLEARING_EVENT = "ClearingEvent";
- co.doubleduck.pinata.core.pinatas.Pinata.CLEARED_EVENT = "ClearedEvent";
- co.doubleduck.pinata.core.pinatas.GiftPinata.REWARD_FONT = "images/fonts/yellow_big/";
- co.doubleduck.pinata.core.pinatas.GiftPinata.HPS_RECALC_ITERVAL = 250;
- co.doubleduck.pinata.core.pinatas.SlashAnim.SIZE_W = 160;
- co.doubleduck.pinata.core.pinatas.SlashAnim.SIZE_H = 32;
- co.doubleduck.pinata.core.pinatas.SlashAnim.SHEET_ROWS = 1;
- co.doubleduck.pinata.core.pinatas.SlashAnim.SHEET_COLS = 4;
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.SIZE_W = 118;
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.SIZE_H = 118;
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.SHEET_ROWS = 1;
- co.doubleduck.pinata.core.pinatas.ExplodeAnim.SHEET_COLS = 6;
- co.doubleduck.pinata.core.tools.ToolAnims.TOOL_ANIM_TO_SHOW = 3;
- co.doubleduck.pinata.core.tools.ToolItem.UPGRADED_EVENT = "UpgradedEvent";
- co.doubleduck.pinata.core.tools.ToolItem.RETEST_NOTIF_EVENT = "RetestNotifEvent";
- co.doubleduck.pinata.core.tools.ToolItem.YELLOW_FONT = "images/fonts/yellow_small/";
- co.doubleduck.pinata.core.tools.ToolItem.THIN_FONT = "images/fonts/purple/";
- co.doubleduck.pinata.core.tools.ToolsScr.NOTIF_TOOLS_COUNT = 2;
- co.doubleduck.pinata.meta.AwayModal.YELLOW_FONT = "images/fonts/yellow_big/";
- co.doubleduck.pinata.meta.BigInt.SUFFIX = "KMBTqQsSONdUD";
- co.doubleduck.pinata.meta.FlowEvents.BACK_TO_MENU = "FlowBackToMenu";
- co.doubleduck.pinata.meta.FlowEvents.START_SESSION = "FlowStartSession";
- co.doubleduck.pinata.meta.FlowEvents.NEXT_SESSION = "FlowNextSession";
- co.doubleduck.pinata.meta.FlowEvents.RESTART_SESSION = "FlowRestartSession";
- co.doubleduck.pinata.meta.ScrolledList.BAND_FACTOR = 0.3;
- co.doubleduck.pinata.meta.ScrolledList.BAND_RETURN = 190;
- co.doubleduck.pinata.meta.ScrolledList.DRAG_THRESHOLD = 5;
- co.doubleduck.pinata.meta.ScrolledList.SNAP_LIMIT = 4;
- co.doubleduck.pinata.meta.Stats.UPDATE_CANDIES_EVENT = "UpdateCandiesEvent";
- co.doubleduck.pinata.meta.Stats.UPDATE_HPS_EVENT = "UpdateHPSEvent";
- co.doubleduck.pinata.meta.Stats.UPDATE_TOOL_EVENT = "UpdateToolEvent";
- co.doubleduck.pinata.meta.Stats.UPDATE_LEVEL_EVENT = "UpdateToolEvent";
- co.doubleduck.pinata.meta.Stats.BEAT_PINATA_EVENT = "UpdateToolEvent";
- co.doubleduck.pinata.meta.Stats.BASIC_BAT_ID = "good-ol-bat";
- co.doubleduck.pinata.meta.Stats.FIRST_AUTO_TOOL = "pinata-smasher";
- co.doubleduck.utils.Button.BUTTON_ACT_EVENT = "BUTTON_ACT_EVENT";
- co.doubleduck.utils.Button.DOWN_EVENT = null;
- co.doubleduck.utils.Button.OUT_EVENT = null;
- co.doubleduck.utils.Button.UP_EVENT = null;
- co.doubleduck.utils.Button.SCALE_FACTOR = 0.93;
- co.doubleduck.utils.Button.JIGGLE_FACTOR = 0.3;
- co.doubleduck.utils.Button.defaultClickSound = null;
- co.doubleduck.utils.DDAssets.scale = 1.0;
- co.doubleduck.utils.DDAssets.globalSmoothing = false;
- co.doubleduck.utils.DDAssets.prefix = "";
- co.doubleduck.utils.DDAssets._cache = new haxe.ds.StringMap();
- co.doubleduck.utils.DDAssets._spritesheetCache = new haxe.ds.StringMap();
- co.doubleduck.utils.DDAssets.localisedPaths = new haxe.ds.StringMap();
- openfl.events.Event.ACTIVATE = "activate";
- openfl.events.Event.ADDED = "added";
- openfl.events.Event.ADDED_TO_STAGE = "addedToStage";
- openfl.events.Event.CANCEL = "cancel";
- openfl.events.Event.CHANGE = "change";
- openfl.events.Event.CLOSE = "close";
- openfl.events.Event.COMPLETE = "complete";
- openfl.events.Event.CONNECT = "connect";
- openfl.events.Event.CONTEXT3D_CREATE = "context3DCreate";
- openfl.events.Event.DEACTIVATE = "deactivate";
- openfl.events.Event.ENTER_FRAME = "enterFrame";
- openfl.events.Event.ID3 = "id3";
- openfl.events.Event.INIT = "init";
- openfl.events.Event.MOUSE_LEAVE = "mouseLeave";
- openfl.events.Event.OPEN = "open";
- openfl.events.Event.REMOVED = "removed";
- openfl.events.Event.REMOVED_FROM_STAGE = "removedFromStage";
- openfl.events.Event.RENDER = "render";
- openfl.events.Event.RESIZE = "resize";
- openfl.events.Event.SCROLL = "scroll";
- openfl.events.Event.SELECT = "select";
- openfl.events.Event.SOUND_COMPLETE = "soundComplete";
- openfl.events.Event.TAB_CHILDREN_CHANGE = "tabChildrenChange";
- openfl.events.Event.TAB_ENABLED_CHANGE = "tabEnabledChange";
- openfl.events.Event.TAB_INDEX_CHANGE = "tabIndexChange";
- openfl.events.Event.UNLOAD = "unload";
- co.doubleduck.utils.Fonter.CHARSET_OFFSET = 32;
- co.doubleduck.utils.Fonter.CHARSET_VALUES = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
- co.doubleduck.utils.Fonter._defaultFont = null;
- co.doubleduck.utils.Fonter._fontCache = null;
- co.doubleduck.utils.SplashBG.resourceType = "image/jpg";
- co.doubleduck.utils.SplashBG.resourceName = "__ASSET__:bitmap_co_doubleduck_utils_SplashBG";
- co.doubleduck.utils.ProgBG.resourceType = "image/png";
- co.doubleduck.utils.ProgBG.resourceName = "__ASSET__:bitmap_co_doubleduck_utils_ProgBG";
- co.doubleduck.utils.ProgFill.resourceType = "image/png";
- co.doubleduck.utils.ProgFill.resourceName = "__ASSET__:bitmap_co_doubleduck_utils_ProgFill";
- co.doubleduck.utils.SoundMgr.audios = new haxe.ds.StringMap();
- co.doubleduck.utils.SoundMgr.isChrome = /Chrome/.test(navigator.userAgent);
- co.doubleduck.utils.SoundMgr.isAndroidBrowser = /Android/.test(navigator.userAgent);
- co.doubleduck.utils.SoundMgr.available = true;
- co.doubleduck.utils.SoundMgr._idCounter = 0;
- co.doubleduck.utils.SoundMgr._fileType = null;
- co.doubleduck.utils.SoundMgr._forceHandle = "";
- co.doubleduck.utils.TweenChain.allowNew = false;
- co.doubleduck.utils.TweenChain.activeChains = [];
- co.doubleduck.utils.TweenChain.count = 0;
- co.doubleduck.utils.TweenChain.autoVisible = true;
- com.funtomic.GameOps.apiURLPrefix = "http://tools.funtomic.com/";
- com.funtomic.GameOps.gameOpsVersion = "0.6.3";
- com.funtomic.GameOps.apiEventsLocation = "v2/events/";
- com.funtomic.GameOps.apiTokensLocation = "v1/game_data/";
- com.funtomic.GameOps.apiConfigLocation = "v1/config/";
- com.funtomic.GameOps.apiSetUserEmailLocation = "v1/user_email_set/";
- com.funtomic.GameOps.status = com.funtomic.GameOpsStatus.UNINITIALIZED;
- com.funtomic.GameOps.MAX_SAVED_UNSENT_EVENTS = 1000;
- com.funtomic.GameOps.localStorage = { };
- com.funtomic.GameOps.gameStateGameOpsData = { };
- com.funtomic.GameOps.gameOpsNEListeners = { };
- com.funtomic.GameOps.flags = { };
- com.funtomic.GameOps.productsInfoCache = { };
- com.funtomic.GameOps.appsflyerConversionData = { };
- com.funtomic.GameOps.firstSession = false;
- com.funtomic.GameOps.isDebugMode = false;
- com.funtomic.GameOps.levelsNumbers = new Array();
- com.funtomic.GameOps.deferredReportEvents = new Array();
- com.funtomic.GameOps.movesDuration = new Array();
- com.funtomic.GameOps.timers = { };
- com.funtomic.GameOpsLogger.logLevel = 0;
- flambe.System.storage = new flambe.Storage();
- flambe.System.external = new flambe.External();
- haxe.Serializer.USE_CACHE = false;
- haxe.Serializer.USE_ENUM_INDEX = false;
- haxe.Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
- haxe.Unserializer.DEFAULT_RESOLVER = Type;
- haxe.Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
- haxe.Unserializer.CODES = null;
- haxe.crypto.Base64.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- haxe.crypto.Base64.BYTES = haxe.io.Bytes.ofString(haxe.crypto.Base64.CHARS);
- haxe.ds.ObjectMap.count = 0;
- js.Boot.__toStr = {}.toString;
- lime.Assets.cache = new lime.AssetCache();
- lime.Assets.libraries = new haxe.ds.StringMap();
- lime.Assets.initialized = false;
- lime._Assets.AssetType_Impl_.BINARY = "BINARY";
- lime._Assets.AssetType_Impl_.FONT = "FONT";
- lime._Assets.AssetType_Impl_.IMAGE = "IMAGE";
- lime._Assets.AssetType_Impl_.MUSIC = "MUSIC";
- lime._Assets.AssetType_Impl_.SOUND = "SOUND";
- lime._Assets.AssetType_Impl_.TEMPLATE = "TEMPLATE";
- lime._Assets.AssetType_Impl_.TEXT = "TEXT";
- lime.app.Preloader.images = new haxe.ds.StringMap();
- lime.app.Preloader.loaders = new haxe.ds.StringMap();
- lime.audio.openal.AL.NONE = 0;
- lime.audio.openal.AL.FALSE = 0;
- lime.audio.openal.AL.TRUE = 1;
- lime.audio.openal.AL.SOURCE_RELATIVE = 514;
- lime.audio.openal.AL.CONE_INNER_ANGLE = 4097;
- lime.audio.openal.AL.CONE_OUTER_ANGLE = 4098;
- lime.audio.openal.AL.PITCH = 4099;
- lime.audio.openal.AL.POSITION = 4100;
- lime.audio.openal.AL.DIRECTION = 4101;
- lime.audio.openal.AL.VELOCITY = 4102;
- lime.audio.openal.AL.LOOPING = 4103;
- lime.audio.openal.AL.BUFFER = 4105;
- lime.audio.openal.AL.GAIN = 4106;
- lime.audio.openal.AL.MIN_GAIN = 4109;
- lime.audio.openal.AL.MAX_GAIN = 4110;
- lime.audio.openal.AL.ORIENTATION = 4111;
- lime.audio.openal.AL.SOURCE_STATE = 4112;
- lime.audio.openal.AL.INITIAL = 4113;
- lime.audio.openal.AL.PLAYING = 4114;
- lime.audio.openal.AL.PAUSED = 4115;
- lime.audio.openal.AL.STOPPED = 4116;
- lime.audio.openal.AL.BUFFERS_QUEUED = 4117;
- lime.audio.openal.AL.BUFFERS_PROCESSED = 4118;
- lime.audio.openal.AL.REFERENCE_DISTANCE = 4128;
- lime.audio.openal.AL.ROLLOFF_FACTOR = 4129;
- lime.audio.openal.AL.CONE_OUTER_GAIN = 4130;
- lime.audio.openal.AL.MAX_DISTANCE = 4131;
- lime.audio.openal.AL.SEC_OFFSET = 4132;
- lime.audio.openal.AL.SAMPLE_OFFSET = 4133;
- lime.audio.openal.AL.BYTE_OFFSET = 4134;
- lime.audio.openal.AL.SOURCE_TYPE = 4135;
- lime.audio.openal.AL.STATIC = 4136;
- lime.audio.openal.AL.STREAMING = 4137;
- lime.audio.openal.AL.UNDETERMINED = 4144;
- lime.audio.openal.AL.FORMAT_MONO8 = 4352;
- lime.audio.openal.AL.FORMAT_MONO16 = 4353;
- lime.audio.openal.AL.FORMAT_STEREO8 = 4354;
- lime.audio.openal.AL.FORMAT_STEREO16 = 4355;
- lime.audio.openal.AL.FREQUENCY = 8193;
- lime.audio.openal.AL.BITS = 8194;
- lime.audio.openal.AL.CHANNELS = 8195;
- lime.audio.openal.AL.SIZE = 8196;
- lime.audio.openal.AL.NO_ERROR = 0;
- lime.audio.openal.AL.INVALID_NAME = 40961;
- lime.audio.openal.AL.INVALID_ENUM = 40962;
- lime.audio.openal.AL.INVALID_VALUE = 40963;
- lime.audio.openal.AL.INVALID_OPERATION = 40964;
- lime.audio.openal.AL.OUT_OF_MEMORY = 40965;
- lime.audio.openal.AL.VENDOR = 45057;
- lime.audio.openal.AL.VERSION = 45058;
- lime.audio.openal.AL.RENDERER = 45059;
- lime.audio.openal.AL.EXTENSIONS = 45060;
- lime.audio.openal.AL.DOPPLER_FACTOR = 49152;
- lime.audio.openal.AL.SPEED_OF_SOUND = 49155;
- lime.audio.openal.AL.DOPPLER_VELOCITY = 49153;
- lime.audio.openal.AL.DISTANCE_MODEL = 53248;
- lime.audio.openal.AL.INVERSE_DISTANCE = 53249;
- lime.audio.openal.AL.INVERSE_DISTANCE_CLAMPED = 53250;
- lime.audio.openal.AL.LINEAR_DISTANCE = 53251;
- lime.audio.openal.AL.LINEAR_DISTANCE_CLAMPED = 53252;
- lime.audio.openal.AL.EXPONENT_DISTANCE = 53253;
- lime.audio.openal.AL.EXPONENT_DISTANCE_CLAMPED = 53254;
- lime.audio.openal.ALC.FALSE = 0;
- lime.audio.openal.ALC.TRUE = 1;
- lime.audio.openal.ALC.FREQUENCY = 4103;
- lime.audio.openal.ALC.REFRESH = 4104;
- lime.audio.openal.ALC.SYNC = 4105;
- lime.audio.openal.ALC.MONO_SOURCES = 4112;
- lime.audio.openal.ALC.STEREO_SOURCES = 4113;
- lime.audio.openal.ALC.NO_ERROR = 0;
- lime.audio.openal.ALC.INVALID_DEVICE = 40961;
- lime.audio.openal.ALC.INVALID_CONTEXT = 40962;
- lime.audio.openal.ALC.INVALID_ENUM = 40963;
- lime.audio.openal.ALC.INVALID_VALUE = 40964;
- lime.audio.openal.ALC.OUT_OF_MEMORY = 40965;
- lime.audio.openal.ALC.ATTRIBUTES_SIZE = 4098;
- lime.audio.openal.ALC.ALL_ATTRIBUTES = 4099;
- lime.audio.openal.ALC.DEFAULT_DEVICE_SPECIFIER = 4100;
- lime.audio.openal.ALC.DEVICE_SPECIFIER = 4101;
- lime.audio.openal.ALC.EXTENSIONS = 4102;
- lime.audio.openal.ALC.ENUMERATE_ALL_EXT = 1;
- lime.audio.openal.ALC.DEFAULT_ALL_DEVICES_SPECIFIER = 4114;
- lime.audio.openal.ALC.ALL_DEVICES_SPECIFIER = 4115;
- lime.graphics.Image.__base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- lime.graphics.opengl.GL.DEPTH_BUFFER_BIT = 256;
- lime.graphics.opengl.GL.STENCIL_BUFFER_BIT = 1024;
- lime.graphics.opengl.GL.COLOR_BUFFER_BIT = 16384;
- lime.graphics.opengl.GL.POINTS = 0;
- lime.graphics.opengl.GL.LINES = 1;
- lime.graphics.opengl.GL.LINE_LOOP = 2;
- lime.graphics.opengl.GL.LINE_STRIP = 3;
- lime.graphics.opengl.GL.TRIANGLES = 4;
- lime.graphics.opengl.GL.TRIANGLE_STRIP = 5;
- lime.graphics.opengl.GL.TRIANGLE_FAN = 6;
- lime.graphics.opengl.GL.ZERO = 0;
- lime.graphics.opengl.GL.ONE = 1;
- lime.graphics.opengl.GL.SRC_COLOR = 768;
- lime.graphics.opengl.GL.ONE_MINUS_SRC_COLOR = 769;
- lime.graphics.opengl.GL.SRC_ALPHA = 770;
- lime.graphics.opengl.GL.ONE_MINUS_SRC_ALPHA = 771;
- lime.graphics.opengl.GL.DST_ALPHA = 772;
- lime.graphics.opengl.GL.ONE_MINUS_DST_ALPHA = 773;
- lime.graphics.opengl.GL.DST_COLOR = 774;
- lime.graphics.opengl.GL.ONE_MINUS_DST_COLOR = 775;
- lime.graphics.opengl.GL.SRC_ALPHA_SATURATE = 776;
- lime.graphics.opengl.GL.FUNC_ADD = 32774;
- lime.graphics.opengl.GL.BLEND_EQUATION = 32777;
- lime.graphics.opengl.GL.BLEND_EQUATION_RGB = 32777;
- lime.graphics.opengl.GL.BLEND_EQUATION_ALPHA = 34877;
- lime.graphics.opengl.GL.FUNC_SUBTRACT = 32778;
- lime.graphics.opengl.GL.FUNC_REVERSE_SUBTRACT = 32779;
- lime.graphics.opengl.GL.BLEND_DST_RGB = 32968;
- lime.graphics.opengl.GL.BLEND_SRC_RGB = 32969;
- lime.graphics.opengl.GL.BLEND_DST_ALPHA = 32970;
- lime.graphics.opengl.GL.BLEND_SRC_ALPHA = 32971;
- lime.graphics.opengl.GL.CONSTANT_COLOR = 32769;
- lime.graphics.opengl.GL.ONE_MINUS_CONSTANT_COLOR = 32770;
- lime.graphics.opengl.GL.CONSTANT_ALPHA = 32771;
- lime.graphics.opengl.GL.ONE_MINUS_CONSTANT_ALPHA = 32772;
- lime.graphics.opengl.GL.BLEND_COLOR = 32773;
- lime.graphics.opengl.GL.ARRAY_BUFFER = 34962;
- lime.graphics.opengl.GL.ELEMENT_ARRAY_BUFFER = 34963;
- lime.graphics.opengl.GL.ARRAY_BUFFER_BINDING = 34964;
- lime.graphics.opengl.GL.ELEMENT_ARRAY_BUFFER_BINDING = 34965;
- lime.graphics.opengl.GL.STREAM_DRAW = 35040;
- lime.graphics.opengl.GL.STATIC_DRAW = 35044;
- lime.graphics.opengl.GL.DYNAMIC_DRAW = 35048;
- lime.graphics.opengl.GL.BUFFER_SIZE = 34660;
- lime.graphics.opengl.GL.BUFFER_USAGE = 34661;
- lime.graphics.opengl.GL.CURRENT_VERTEX_ATTRIB = 34342;
- lime.graphics.opengl.GL.FRONT = 1028;
- lime.graphics.opengl.GL.BACK = 1029;
- lime.graphics.opengl.GL.FRONT_AND_BACK = 1032;
- lime.graphics.opengl.GL.CULL_FACE = 2884;
- lime.graphics.opengl.GL.BLEND = 3042;
- lime.graphics.opengl.GL.DITHER = 3024;
- lime.graphics.opengl.GL.STENCIL_TEST = 2960;
- lime.graphics.opengl.GL.DEPTH_TEST = 2929;
- lime.graphics.opengl.GL.SCISSOR_TEST = 3089;
- lime.graphics.opengl.GL.POLYGON_OFFSET_FILL = 32823;
- lime.graphics.opengl.GL.SAMPLE_ALPHA_TO_COVERAGE = 32926;
- lime.graphics.opengl.GL.SAMPLE_COVERAGE = 32928;
- lime.graphics.opengl.GL.NO_ERROR = 0;
- lime.graphics.opengl.GL.INVALID_ENUM = 1280;
- lime.graphics.opengl.GL.INVALID_VALUE = 1281;
- lime.graphics.opengl.GL.INVALID_OPERATION = 1282;
- lime.graphics.opengl.GL.OUT_OF_MEMORY = 1285;
- lime.graphics.opengl.GL.CW = 2304;
- lime.graphics.opengl.GL.CCW = 2305;
- lime.graphics.opengl.GL.LINE_WIDTH = 2849;
- lime.graphics.opengl.GL.ALIASED_POINT_SIZE_RANGE = 33901;
- lime.graphics.opengl.GL.ALIASED_LINE_WIDTH_RANGE = 33902;
- lime.graphics.opengl.GL.CULL_FACE_MODE = 2885;
- lime.graphics.opengl.GL.FRONT_FACE = 2886;
- lime.graphics.opengl.GL.DEPTH_RANGE = 2928;
- lime.graphics.opengl.GL.DEPTH_WRITEMASK = 2930;
- lime.graphics.opengl.GL.DEPTH_CLEAR_VALUE = 2931;
- lime.graphics.opengl.GL.DEPTH_FUNC = 2932;
- lime.graphics.opengl.GL.STENCIL_CLEAR_VALUE = 2961;
- lime.graphics.opengl.GL.STENCIL_FUNC = 2962;
- lime.graphics.opengl.GL.STENCIL_FAIL = 2964;
- lime.graphics.opengl.GL.STENCIL_PASS_DEPTH_FAIL = 2965;
- lime.graphics.opengl.GL.STENCIL_PASS_DEPTH_PASS = 2966;
- lime.graphics.opengl.GL.STENCIL_REF = 2967;
- lime.graphics.opengl.GL.STENCIL_VALUE_MASK = 2963;
- lime.graphics.opengl.GL.STENCIL_WRITEMASK = 2968;
- lime.graphics.opengl.GL.STENCIL_BACK_FUNC = 34816;
- lime.graphics.opengl.GL.STENCIL_BACK_FAIL = 34817;
- lime.graphics.opengl.GL.STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
- lime.graphics.opengl.GL.STENCIL_BACK_PASS_DEPTH_PASS = 34819;
- lime.graphics.opengl.GL.STENCIL_BACK_REF = 36003;
- lime.graphics.opengl.GL.STENCIL_BACK_VALUE_MASK = 36004;
- lime.graphics.opengl.GL.STENCIL_BACK_WRITEMASK = 36005;
- lime.graphics.opengl.GL.VIEWPORT = 2978;
- lime.graphics.opengl.GL.SCISSOR_BOX = 3088;
- lime.graphics.opengl.GL.COLOR_CLEAR_VALUE = 3106;
- lime.graphics.opengl.GL.COLOR_WRITEMASK = 3107;
- lime.graphics.opengl.GL.UNPACK_ALIGNMENT = 3317;
- lime.graphics.opengl.GL.PACK_ALIGNMENT = 3333;
- lime.graphics.opengl.GL.MAX_TEXTURE_SIZE = 3379;
- lime.graphics.opengl.GL.MAX_VIEWPORT_DIMS = 3386;
- lime.graphics.opengl.GL.SUBPIXEL_BITS = 3408;
- lime.graphics.opengl.GL.RED_BITS = 3410;
- lime.graphics.opengl.GL.GREEN_BITS = 3411;
- lime.graphics.opengl.GL.BLUE_BITS = 3412;
- lime.graphics.opengl.GL.ALPHA_BITS = 3413;
- lime.graphics.opengl.GL.DEPTH_BITS = 3414;
- lime.graphics.opengl.GL.STENCIL_BITS = 3415;
- lime.graphics.opengl.GL.POLYGON_OFFSET_UNITS = 10752;
- lime.graphics.opengl.GL.POLYGON_OFFSET_FACTOR = 32824;
- lime.graphics.opengl.GL.TEXTURE_BINDING_2D = 32873;
- lime.graphics.opengl.GL.SAMPLE_BUFFERS = 32936;
- lime.graphics.opengl.GL.SAMPLES = 32937;
- lime.graphics.opengl.GL.SAMPLE_COVERAGE_VALUE = 32938;
- lime.graphics.opengl.GL.SAMPLE_COVERAGE_INVERT = 32939;
- lime.graphics.opengl.GL.COMPRESSED_TEXTURE_FORMATS = 34467;
- lime.graphics.opengl.GL.DONT_CARE = 4352;
- lime.graphics.opengl.GL.FASTEST = 4353;
- lime.graphics.opengl.GL.NICEST = 4354;
- lime.graphics.opengl.GL.GENERATE_MIPMAP_HINT = 33170;
- lime.graphics.opengl.GL.BYTE = 5120;
- lime.graphics.opengl.GL.UNSIGNED_BYTE = 5121;
- lime.graphics.opengl.GL.SHORT = 5122;
- lime.graphics.opengl.GL.UNSIGNED_SHORT = 5123;
- lime.graphics.opengl.GL.INT = 5124;
- lime.graphics.opengl.GL.UNSIGNED_INT = 5125;
- lime.graphics.opengl.GL.FLOAT = 5126;
- lime.graphics.opengl.GL.DEPTH_COMPONENT = 6402;
- lime.graphics.opengl.GL.ALPHA = 6406;
- lime.graphics.opengl.GL.RGB = 6407;
- lime.graphics.opengl.GL.RGBA = 6408;
- lime.graphics.opengl.GL.LUMINANCE = 6409;
- lime.graphics.opengl.GL.LUMINANCE_ALPHA = 6410;
- lime.graphics.opengl.GL.UNSIGNED_SHORT_4_4_4_4 = 32819;
- lime.graphics.opengl.GL.UNSIGNED_SHORT_5_5_5_1 = 32820;
- lime.graphics.opengl.GL.UNSIGNED_SHORT_5_6_5 = 33635;
- lime.graphics.opengl.GL.FRAGMENT_SHADER = 35632;
- lime.graphics.opengl.GL.VERTEX_SHADER = 35633;
- lime.graphics.opengl.GL.MAX_VERTEX_ATTRIBS = 34921;
- lime.graphics.opengl.GL.MAX_VERTEX_UNIFORM_VECTORS = 36347;
- lime.graphics.opengl.GL.MAX_VARYING_VECTORS = 36348;
- lime.graphics.opengl.GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
- lime.graphics.opengl.GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
- lime.graphics.opengl.GL.MAX_TEXTURE_IMAGE_UNITS = 34930;
- lime.graphics.opengl.GL.MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
- lime.graphics.opengl.GL.SHADER_TYPE = 35663;
- lime.graphics.opengl.GL.DELETE_STATUS = 35712;
- lime.graphics.opengl.GL.LINK_STATUS = 35714;
- lime.graphics.opengl.GL.VALIDATE_STATUS = 35715;
- lime.graphics.opengl.GL.ATTACHED_SHADERS = 35717;
- lime.graphics.opengl.GL.ACTIVE_UNIFORMS = 35718;
- lime.graphics.opengl.GL.ACTIVE_ATTRIBUTES = 35721;
- lime.graphics.opengl.GL.SHADING_LANGUAGE_VERSION = 35724;
- lime.graphics.opengl.GL.CURRENT_PROGRAM = 35725;
- lime.graphics.opengl.GL.NEVER = 512;
- lime.graphics.opengl.GL.LESS = 513;
- lime.graphics.opengl.GL.EQUAL = 514;
- lime.graphics.opengl.GL.LEQUAL = 515;
- lime.graphics.opengl.GL.GREATER = 516;
- lime.graphics.opengl.GL.NOTEQUAL = 517;
- lime.graphics.opengl.GL.GEQUAL = 518;
- lime.graphics.opengl.GL.ALWAYS = 519;
- lime.graphics.opengl.GL.KEEP = 7680;
- lime.graphics.opengl.GL.REPLACE = 7681;
- lime.graphics.opengl.GL.INCR = 7682;
- lime.graphics.opengl.GL.DECR = 7683;
- lime.graphics.opengl.GL.INVERT = 5386;
- lime.graphics.opengl.GL.INCR_WRAP = 34055;
- lime.graphics.opengl.GL.DECR_WRAP = 34056;
- lime.graphics.opengl.GL.VENDOR = 7936;
- lime.graphics.opengl.GL.RENDERER = 7937;
- lime.graphics.opengl.GL.VERSION = 7938;
- lime.graphics.opengl.GL.NEAREST = 9728;
- lime.graphics.opengl.GL.LINEAR = 9729;
- lime.graphics.opengl.GL.NEAREST_MIPMAP_NEAREST = 9984;
- lime.graphics.opengl.GL.LINEAR_MIPMAP_NEAREST = 9985;
- lime.graphics.opengl.GL.NEAREST_MIPMAP_LINEAR = 9986;
- lime.graphics.opengl.GL.LINEAR_MIPMAP_LINEAR = 9987;
- lime.graphics.opengl.GL.TEXTURE_MAG_FILTER = 10240;
- lime.graphics.opengl.GL.TEXTURE_MIN_FILTER = 10241;
- lime.graphics.opengl.GL.TEXTURE_WRAP_S = 10242;
- lime.graphics.opengl.GL.TEXTURE_WRAP_T = 10243;
- lime.graphics.opengl.GL.TEXTURE_2D = 3553;
- lime.graphics.opengl.GL.TEXTURE = 5890;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP = 34067;
- lime.graphics.opengl.GL.TEXTURE_BINDING_CUBE_MAP = 34068;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
- lime.graphics.opengl.GL.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
- lime.graphics.opengl.GL.MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
- lime.graphics.opengl.GL.TEXTURE0 = 33984;
- lime.graphics.opengl.GL.TEXTURE1 = 33985;
- lime.graphics.opengl.GL.TEXTURE2 = 33986;
- lime.graphics.opengl.GL.TEXTURE3 = 33987;
- lime.graphics.opengl.GL.TEXTURE4 = 33988;
- lime.graphics.opengl.GL.TEXTURE5 = 33989;
- lime.graphics.opengl.GL.TEXTURE6 = 33990;
- lime.graphics.opengl.GL.TEXTURE7 = 33991;
- lime.graphics.opengl.GL.TEXTURE8 = 33992;
- lime.graphics.opengl.GL.TEXTURE9 = 33993;
- lime.graphics.opengl.GL.TEXTURE10 = 33994;
- lime.graphics.opengl.GL.TEXTURE11 = 33995;
- lime.graphics.opengl.GL.TEXTURE12 = 33996;
- lime.graphics.opengl.GL.TEXTURE13 = 33997;
- lime.graphics.opengl.GL.TEXTURE14 = 33998;
- lime.graphics.opengl.GL.TEXTURE15 = 33999;
- lime.graphics.opengl.GL.TEXTURE16 = 34000;
- lime.graphics.opengl.GL.TEXTURE17 = 34001;
- lime.graphics.opengl.GL.TEXTURE18 = 34002;
- lime.graphics.opengl.GL.TEXTURE19 = 34003;
- lime.graphics.opengl.GL.TEXTURE20 = 34004;
- lime.graphics.opengl.GL.TEXTURE21 = 34005;
- lime.graphics.opengl.GL.TEXTURE22 = 34006;
- lime.graphics.opengl.GL.TEXTURE23 = 34007;
- lime.graphics.opengl.GL.TEXTURE24 = 34008;
- lime.graphics.opengl.GL.TEXTURE25 = 34009;
- lime.graphics.opengl.GL.TEXTURE26 = 34010;
- lime.graphics.opengl.GL.TEXTURE27 = 34011;
- lime.graphics.opengl.GL.TEXTURE28 = 34012;
- lime.graphics.opengl.GL.TEXTURE29 = 34013;
- lime.graphics.opengl.GL.TEXTURE30 = 34014;
- lime.graphics.opengl.GL.TEXTURE31 = 34015;
- lime.graphics.opengl.GL.ACTIVE_TEXTURE = 34016;
- lime.graphics.opengl.GL.REPEAT = 10497;
- lime.graphics.opengl.GL.CLAMP_TO_EDGE = 33071;
- lime.graphics.opengl.GL.MIRRORED_REPEAT = 33648;
- lime.graphics.opengl.GL.FLOAT_VEC2 = 35664;
- lime.graphics.opengl.GL.FLOAT_VEC3 = 35665;
- lime.graphics.opengl.GL.FLOAT_VEC4 = 35666;
- lime.graphics.opengl.GL.INT_VEC2 = 35667;
- lime.graphics.opengl.GL.INT_VEC3 = 35668;
- lime.graphics.opengl.GL.INT_VEC4 = 35669;
- lime.graphics.opengl.GL.BOOL = 35670;
- lime.graphics.opengl.GL.BOOL_VEC2 = 35671;
- lime.graphics.opengl.GL.BOOL_VEC3 = 35672;
- lime.graphics.opengl.GL.BOOL_VEC4 = 35673;
- lime.graphics.opengl.GL.FLOAT_MAT2 = 35674;
- lime.graphics.opengl.GL.FLOAT_MAT3 = 35675;
- lime.graphics.opengl.GL.FLOAT_MAT4 = 35676;
- lime.graphics.opengl.GL.SAMPLER_2D = 35678;
- lime.graphics.opengl.GL.SAMPLER_CUBE = 35680;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_SIZE = 34339;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_TYPE = 34341;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_POINTER = 34373;
- lime.graphics.opengl.GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
- lime.graphics.opengl.GL.VERTEX_PROGRAM_POINT_SIZE = 34370;
- lime.graphics.opengl.GL.POINT_SPRITE = 34913;
- lime.graphics.opengl.GL.COMPILE_STATUS = 35713;
- lime.graphics.opengl.GL.LOW_FLOAT = 36336;
- lime.graphics.opengl.GL.MEDIUM_FLOAT = 36337;
- lime.graphics.opengl.GL.HIGH_FLOAT = 36338;
- lime.graphics.opengl.GL.LOW_INT = 36339;
- lime.graphics.opengl.GL.MEDIUM_INT = 36340;
- lime.graphics.opengl.GL.HIGH_INT = 36341;
- lime.graphics.opengl.GL.FRAMEBUFFER = 36160;
- lime.graphics.opengl.GL.RENDERBUFFER = 36161;
- lime.graphics.opengl.GL.RGBA4 = 32854;
- lime.graphics.opengl.GL.RGB5_A1 = 32855;
- lime.graphics.opengl.GL.RGB565 = 36194;
- lime.graphics.opengl.GL.DEPTH_COMPONENT16 = 33189;
- lime.graphics.opengl.GL.STENCIL_INDEX = 6401;
- lime.graphics.opengl.GL.STENCIL_INDEX8 = 36168;
- lime.graphics.opengl.GL.DEPTH_STENCIL = 34041;
- lime.graphics.opengl.GL.RENDERBUFFER_WIDTH = 36162;
- lime.graphics.opengl.GL.RENDERBUFFER_HEIGHT = 36163;
- lime.graphics.opengl.GL.RENDERBUFFER_INTERNAL_FORMAT = 36164;
- lime.graphics.opengl.GL.RENDERBUFFER_RED_SIZE = 36176;
- lime.graphics.opengl.GL.RENDERBUFFER_GREEN_SIZE = 36177;
- lime.graphics.opengl.GL.RENDERBUFFER_BLUE_SIZE = 36178;
- lime.graphics.opengl.GL.RENDERBUFFER_ALPHA_SIZE = 36179;
- lime.graphics.opengl.GL.RENDERBUFFER_DEPTH_SIZE = 36180;
- lime.graphics.opengl.GL.RENDERBUFFER_STENCIL_SIZE = 36181;
- lime.graphics.opengl.GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
- lime.graphics.opengl.GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
- lime.graphics.opengl.GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
- lime.graphics.opengl.GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
- lime.graphics.opengl.GL.COLOR_ATTACHMENT0 = 36064;
- lime.graphics.opengl.GL.DEPTH_ATTACHMENT = 36096;
- lime.graphics.opengl.GL.STENCIL_ATTACHMENT = 36128;
- lime.graphics.opengl.GL.DEPTH_STENCIL_ATTACHMENT = 33306;
- lime.graphics.opengl.GL.NONE = 0;
- lime.graphics.opengl.GL.FRAMEBUFFER_COMPLETE = 36053;
- lime.graphics.opengl.GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
- lime.graphics.opengl.GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
- lime.graphics.opengl.GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
- lime.graphics.opengl.GL.FRAMEBUFFER_UNSUPPORTED = 36061;
- lime.graphics.opengl.GL.FRAMEBUFFER_BINDING = 36006;
- lime.graphics.opengl.GL.RENDERBUFFER_BINDING = 36007;
- lime.graphics.opengl.GL.MAX_RENDERBUFFER_SIZE = 34024;
- lime.graphics.opengl.GL.INVALID_FRAMEBUFFER_OPERATION = 1286;
- lime.graphics.opengl.GL.UNPACK_FLIP_Y_WEBGL = 37440;
- lime.graphics.opengl.GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;
- lime.graphics.opengl.GL.CONTEXT_LOST_WEBGL = 37442;
- lime.graphics.opengl.GL.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;
- lime.graphics.opengl.GL.BROWSER_DEFAULT_WEBGL = 37444;
- lime.math._ColorMatrix.ColorMatrix_Impl_.__identity = [1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0];
- lime.math.Matrix3.__identity = new lime.math.Matrix3();
- lime.math._Matrix4.Matrix4_Impl_.__identity = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0];
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.DELETE = "DELETE";
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.GET = "GET";
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.HEAD = "HEAD";
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.OPTIONS = "OPTIONS";
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.POST = "POST";
- lime.net._URLRequestMethod.URLRequestMethod_Impl_.PUT = "PUT";
- lime.ui._KeyCode.KeyCode_Impl_.UNKNOWN = 0;
- lime.ui._KeyCode.KeyCode_Impl_.BACKSPACE = 8;
- lime.ui._KeyCode.KeyCode_Impl_.TAB = 9;
- lime.ui._KeyCode.KeyCode_Impl_.RETURN = 13;
- lime.ui._KeyCode.KeyCode_Impl_.ESCAPE = 27;
- lime.ui._KeyCode.KeyCode_Impl_.SPACE = 32;
- lime.ui._KeyCode.KeyCode_Impl_.EXCLAMATION = 33;
- lime.ui._KeyCode.KeyCode_Impl_.QUOTE = 34;
- lime.ui._KeyCode.KeyCode_Impl_.HASH = 35;
- lime.ui._KeyCode.KeyCode_Impl_.DOLLAR = 36;
- lime.ui._KeyCode.KeyCode_Impl_.PERCENT = 37;
- lime.ui._KeyCode.KeyCode_Impl_.AMPERSAND = 38;
- lime.ui._KeyCode.KeyCode_Impl_.SINGLE_QUOTE = 39;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT_PARENTHESIS = 40;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT_PARENTHESIS = 41;
- lime.ui._KeyCode.KeyCode_Impl_.ASTERISK = 42;
- lime.ui._KeyCode.KeyCode_Impl_.PLUS = 43;
- lime.ui._KeyCode.KeyCode_Impl_.COMMA = 44;
- lime.ui._KeyCode.KeyCode_Impl_.MINUS = 45;
- lime.ui._KeyCode.KeyCode_Impl_.PERIOD = 46;
- lime.ui._KeyCode.KeyCode_Impl_.SLASH = 47;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_0 = 48;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_1 = 49;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_2 = 50;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_3 = 51;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_4 = 52;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_5 = 53;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_6 = 54;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_7 = 55;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_8 = 56;
- lime.ui._KeyCode.KeyCode_Impl_.NUMBER_9 = 57;
- lime.ui._KeyCode.KeyCode_Impl_.COLON = 58;
- lime.ui._KeyCode.KeyCode_Impl_.SEMICOLON = 59;
- lime.ui._KeyCode.KeyCode_Impl_.LESS_THAN = 60;
- lime.ui._KeyCode.KeyCode_Impl_.EQUALS = 61;
- lime.ui._KeyCode.KeyCode_Impl_.GREATER_THAN = 62;
- lime.ui._KeyCode.KeyCode_Impl_.QUESTION = 63;
- lime.ui._KeyCode.KeyCode_Impl_.AT = 64;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT_BRACKET = 91;
- lime.ui._KeyCode.KeyCode_Impl_.BACKSLASH = 92;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT_BRACKET = 93;
- lime.ui._KeyCode.KeyCode_Impl_.CARET = 94;
- lime.ui._KeyCode.KeyCode_Impl_.UNDERSCORE = 95;
- lime.ui._KeyCode.KeyCode_Impl_.GRAVE = 96;
- lime.ui._KeyCode.KeyCode_Impl_.A = 97;
- lime.ui._KeyCode.KeyCode_Impl_.B = 98;
- lime.ui._KeyCode.KeyCode_Impl_.C = 99;
- lime.ui._KeyCode.KeyCode_Impl_.D = 100;
- lime.ui._KeyCode.KeyCode_Impl_.E = 101;
- lime.ui._KeyCode.KeyCode_Impl_.F = 102;
- lime.ui._KeyCode.KeyCode_Impl_.G = 103;
- lime.ui._KeyCode.KeyCode_Impl_.H = 104;
- lime.ui._KeyCode.KeyCode_Impl_.I = 105;
- lime.ui._KeyCode.KeyCode_Impl_.J = 106;
- lime.ui._KeyCode.KeyCode_Impl_.K = 107;
- lime.ui._KeyCode.KeyCode_Impl_.L = 108;
- lime.ui._KeyCode.KeyCode_Impl_.M = 109;
- lime.ui._KeyCode.KeyCode_Impl_.N = 110;
- lime.ui._KeyCode.KeyCode_Impl_.O = 111;
- lime.ui._KeyCode.KeyCode_Impl_.P = 112;
- lime.ui._KeyCode.KeyCode_Impl_.Q = 113;
- lime.ui._KeyCode.KeyCode_Impl_.R = 114;
- lime.ui._KeyCode.KeyCode_Impl_.S = 115;
- lime.ui._KeyCode.KeyCode_Impl_.T = 116;
- lime.ui._KeyCode.KeyCode_Impl_.U = 117;
- lime.ui._KeyCode.KeyCode_Impl_.V = 118;
- lime.ui._KeyCode.KeyCode_Impl_.W = 119;
- lime.ui._KeyCode.KeyCode_Impl_.X = 120;
- lime.ui._KeyCode.KeyCode_Impl_.Y = 121;
- lime.ui._KeyCode.KeyCode_Impl_.Z = 122;
- lime.ui._KeyCode.KeyCode_Impl_.DELETE = 127;
- lime.ui._KeyCode.KeyCode_Impl_.CAPS_LOCK = 1073741881;
- lime.ui._KeyCode.KeyCode_Impl_.F1 = 1073741882;
- lime.ui._KeyCode.KeyCode_Impl_.F2 = 1073741883;
- lime.ui._KeyCode.KeyCode_Impl_.F3 = 1073741884;
- lime.ui._KeyCode.KeyCode_Impl_.F4 = 1073741885;
- lime.ui._KeyCode.KeyCode_Impl_.F5 = 1073741886;
- lime.ui._KeyCode.KeyCode_Impl_.F6 = 1073741887;
- lime.ui._KeyCode.KeyCode_Impl_.F7 = 1073741888;
- lime.ui._KeyCode.KeyCode_Impl_.F8 = 1073741889;
- lime.ui._KeyCode.KeyCode_Impl_.F9 = 1073741890;
- lime.ui._KeyCode.KeyCode_Impl_.F10 = 1073741891;
- lime.ui._KeyCode.KeyCode_Impl_.F11 = 1073741892;
- lime.ui._KeyCode.KeyCode_Impl_.F12 = 1073741893;
- lime.ui._KeyCode.KeyCode_Impl_.PRINT_SCREEN = 1073741894;
- lime.ui._KeyCode.KeyCode_Impl_.SCROLL_LOCK = 1073741895;
- lime.ui._KeyCode.KeyCode_Impl_.PAUSE = 1073741896;
- lime.ui._KeyCode.KeyCode_Impl_.INSERT = 1073741897;
- lime.ui._KeyCode.KeyCode_Impl_.HOME = 1073741898;
- lime.ui._KeyCode.KeyCode_Impl_.PAGE_UP = 1073741899;
- lime.ui._KeyCode.KeyCode_Impl_.END = 1073741901;
- lime.ui._KeyCode.KeyCode_Impl_.PAGE_DOWN = 1073741902;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT = 1073741903;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT = 1073741904;
- lime.ui._KeyCode.KeyCode_Impl_.DOWN = 1073741905;
- lime.ui._KeyCode.KeyCode_Impl_.UP = 1073741906;
- lime.ui._KeyCode.KeyCode_Impl_.NUM_LOCK = 1073741907;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_DIVIDE = 1073741908;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MULTIPLY = 1073741909;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MINUS = 1073741910;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_PLUS = 1073741911;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_ENTER = 1073741912;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_1 = 1073741913;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_2 = 1073741914;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_3 = 1073741915;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_4 = 1073741916;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_5 = 1073741917;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_6 = 1073741918;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_7 = 1073741919;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_8 = 1073741920;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_9 = 1073741921;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_0 = 1073741922;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_PERIOD = 1073741923;
- lime.ui._KeyCode.KeyCode_Impl_.APPLICATION = 1073741925;
- lime.ui._KeyCode.KeyCode_Impl_.POWER = 1073741926;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_EQUALS = 1073741927;
- lime.ui._KeyCode.KeyCode_Impl_.F13 = 1073741928;
- lime.ui._KeyCode.KeyCode_Impl_.F14 = 1073741929;
- lime.ui._KeyCode.KeyCode_Impl_.F15 = 1073741930;
- lime.ui._KeyCode.KeyCode_Impl_.F16 = 1073741931;
- lime.ui._KeyCode.KeyCode_Impl_.F17 = 1073741932;
- lime.ui._KeyCode.KeyCode_Impl_.F18 = 1073741933;
- lime.ui._KeyCode.KeyCode_Impl_.F19 = 1073741934;
- lime.ui._KeyCode.KeyCode_Impl_.F20 = 1073741935;
- lime.ui._KeyCode.KeyCode_Impl_.F21 = 1073741936;
- lime.ui._KeyCode.KeyCode_Impl_.F22 = 1073741937;
- lime.ui._KeyCode.KeyCode_Impl_.F23 = 1073741938;
- lime.ui._KeyCode.KeyCode_Impl_.F24 = 1073741939;
- lime.ui._KeyCode.KeyCode_Impl_.EXECUTE = 1073741940;
- lime.ui._KeyCode.KeyCode_Impl_.HELP = 1073741941;
- lime.ui._KeyCode.KeyCode_Impl_.MENU = 1073741942;
- lime.ui._KeyCode.KeyCode_Impl_.SELECT = 1073741943;
- lime.ui._KeyCode.KeyCode_Impl_.STOP = 1073741944;
- lime.ui._KeyCode.KeyCode_Impl_.AGAIN = 1073741945;
- lime.ui._KeyCode.KeyCode_Impl_.UNDO = 1073741946;
- lime.ui._KeyCode.KeyCode_Impl_.CUT = 1073741947;
- lime.ui._KeyCode.KeyCode_Impl_.COPY = 1073741948;
- lime.ui._KeyCode.KeyCode_Impl_.PASTE = 1073741949;
- lime.ui._KeyCode.KeyCode_Impl_.FIND = 1073741950;
- lime.ui._KeyCode.KeyCode_Impl_.MUTE = 1073741951;
- lime.ui._KeyCode.KeyCode_Impl_.VOLUME_UP = 1073741952;
- lime.ui._KeyCode.KeyCode_Impl_.VOLUME_DOWN = 1073741953;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_COMMA = 1073741957;
- lime.ui._KeyCode.KeyCode_Impl_.ALT_ERASE = 1073741977;
- lime.ui._KeyCode.KeyCode_Impl_.SYSTEM_REQUEST = 1073741978;
- lime.ui._KeyCode.KeyCode_Impl_.CANCEL = 1073741979;
- lime.ui._KeyCode.KeyCode_Impl_.CLEAR = 1073741980;
- lime.ui._KeyCode.KeyCode_Impl_.PRIOR = 1073741981;
- lime.ui._KeyCode.KeyCode_Impl_.RETURN2 = 1073741982;
- lime.ui._KeyCode.KeyCode_Impl_.SEPARATOR = 1073741983;
- lime.ui._KeyCode.KeyCode_Impl_.OUT = 1073741984;
- lime.ui._KeyCode.KeyCode_Impl_.OPER = 1073741985;
- lime.ui._KeyCode.KeyCode_Impl_.CLEAR_AGAIN = 1073741986;
- lime.ui._KeyCode.KeyCode_Impl_.CRSEL = 1073741987;
- lime.ui._KeyCode.KeyCode_Impl_.EXSEL = 1073741988;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_00 = 1073742000;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_000 = 1073742001;
- lime.ui._KeyCode.KeyCode_Impl_.THOUSAND_SEPARATOR = 1073742002;
- lime.ui._KeyCode.KeyCode_Impl_.DECIMAL_SEPARATOR = 1073742003;
- lime.ui._KeyCode.KeyCode_Impl_.CURRENCY_UNIT = 1073742004;
- lime.ui._KeyCode.KeyCode_Impl_.CURRENCY_SUBUNIT = 1073742005;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_LEFT_PARENTHESIS = 1073742006;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_RIGHT_PARENTHESIS = 1073742007;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_LEFT_BRACE = 1073742008;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_RIGHT_BRACE = 1073742009;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_TAB = 1073742010;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_BACKSPACE = 1073742011;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_A = 1073742012;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_B = 1073742013;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_C = 1073742014;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_D = 1073742015;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_E = 1073742016;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_F = 1073742017;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_XOR = 1073742018;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_POWER = 1073742019;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_PERCENT = 1073742020;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_LESS_THAN = 1073742021;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_GREATER_THAN = 1073742022;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_AMPERSAND = 1073742023;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_DOUBLE_AMPERSAND = 1073742024;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_VERTICAL_BAR = 1073742025;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_DOUBLE_VERTICAL_BAR = 1073742026;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_COLON = 1073742027;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_HASH = 1073742028;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_SPACE = 1073742029;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_AT = 1073742030;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_EXCLAMATION = 1073742031;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_STORE = 1073742032;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_RECALL = 1073742033;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_CLEAR = 1073742034;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_ADD = 1073742035;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_SUBTRACT = 1073742036;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_MULTIPLY = 1073742037;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_MEM_DIVIDE = 1073742038;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_PLUS_MINUS = 1073742039;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_CLEAR = 1073742040;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_CLEAR_ENTRY = 1073742041;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_BINARY = 1073742042;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_OCTAL = 1073742043;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_DECIMAL = 1073742044;
- lime.ui._KeyCode.KeyCode_Impl_.NUMPAD_HEXADECIMAL = 1073742045;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT_CTRL = 1073742048;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT_SHIFT = 1073742049;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT_ALT = 1073742050;
- lime.ui._KeyCode.KeyCode_Impl_.LEFT_META = 1073742051;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT_CTRL = 1073742052;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT_SHIFT = 1073742053;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT_ALT = 1073742054;
- lime.ui._KeyCode.KeyCode_Impl_.RIGHT_META = 1073742055;
- lime.ui._KeyCode.KeyCode_Impl_.MODE = 1073742081;
- lime.ui._KeyCode.KeyCode_Impl_.AUDIO_NEXT = 1073742082;
- lime.ui._KeyCode.KeyCode_Impl_.AUDIO_PREVIOUS = 1073742083;
- lime.ui._KeyCode.KeyCode_Impl_.AUDIO_STOP = 1073742084;
- lime.ui._KeyCode.KeyCode_Impl_.AUDIO_PLAY = 1073742085;
- lime.ui._KeyCode.KeyCode_Impl_.AUDIO_MUTE = 1073742086;
- lime.ui._KeyCode.KeyCode_Impl_.MEDIA_SELECT = 1073742087;
- lime.ui._KeyCode.KeyCode_Impl_.WWW = 1073742088;
- lime.ui._KeyCode.KeyCode_Impl_.MAIL = 1073742089;
- lime.ui._KeyCode.KeyCode_Impl_.CALCULATOR = 1073742090;
- lime.ui._KeyCode.KeyCode_Impl_.COMPUTER = 1073742091;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_SEARCH = 1073742092;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_HOME = 1073742093;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_BACK = 1073742094;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_FORWARD = 1073742095;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_STOP = 1073742096;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_REFRESH = 1073742097;
- lime.ui._KeyCode.KeyCode_Impl_.APP_CONTROL_BOOKMARKS = 1073742098;
- lime.ui._KeyCode.KeyCode_Impl_.BRIGHTNESS_DOWN = 1073742099;
- lime.ui._KeyCode.KeyCode_Impl_.BRIGHTNESS_UP = 1073742100;
- lime.ui._KeyCode.KeyCode_Impl_.DISPLAY_SWITCH = 1073742101;
- lime.ui._KeyCode.KeyCode_Impl_.BACKLIGHT_TOGGLE = 1073742102;
- lime.ui._KeyCode.KeyCode_Impl_.BACKLIGHT_DOWN = 1073742103;
- lime.ui._KeyCode.KeyCode_Impl_.BACKLIGHT_UP = 1073742104;
- lime.ui._KeyCode.KeyCode_Impl_.EJECT = 1073742105;
- lime.ui._KeyCode.KeyCode_Impl_.SLEEP = 1073742106;
- lime.ui._KeyModifier.KeyModifier_Impl_.NONE = 0;
- lime.ui._KeyModifier.KeyModifier_Impl_.LEFT_SHIFT = 1;
- lime.ui._KeyModifier.KeyModifier_Impl_.RIGHT_SHIFT = 2;
- lime.ui._KeyModifier.KeyModifier_Impl_.LEFT_CTRL = 64;
- lime.ui._KeyModifier.KeyModifier_Impl_.RIGHT_CTRL = 128;
- lime.ui._KeyModifier.KeyModifier_Impl_.LEFT_ALT = 256;
- lime.ui._KeyModifier.KeyModifier_Impl_.RIGHT_ALT = 512;
- lime.ui._KeyModifier.KeyModifier_Impl_.LEFT_META = 1024;
- lime.ui._KeyModifier.KeyModifier_Impl_.RIGHT_META = 2048;
- lime.ui._KeyModifier.KeyModifier_Impl_.NUM_LOCK = 4096;
- lime.ui._KeyModifier.KeyModifier_Impl_.CAPS_LOCK = 8192;
- lime.ui._KeyModifier.KeyModifier_Impl_.MODE = 16384;
- lime.ui._KeyModifier.KeyModifier_Impl_.CTRL = 192;
- lime.ui._KeyModifier.KeyModifier_Impl_.SHIFT = 3;
- lime.ui._KeyModifier.KeyModifier_Impl_.ALT = 768;
- lime.ui._KeyModifier.KeyModifier_Impl_.META = 3072;
- motion.actuators.SimpleActuator.actuators = new Array();
- motion.actuators.SimpleActuator.actuatorsLength = 0;
- motion.actuators.SimpleActuator.addedEvent = false;
- motion.Actuate.defaultActuator = motion.actuators.SimpleActuator;
- motion.Actuate.defaultEase = motion.easing.Expo.get_easeOut();
- motion.Actuate.targetLibraries = new haxe.ds.ObjectMap();
- openfl.Assets.cache = new openfl.AssetCache();
- openfl.Assets.dispatcher = new openfl.events.EventDispatcher();
- openfl._Assets.AssetType_Impl_.BINARY = "BINARY";
- openfl._Assets.AssetType_Impl_.FONT = "FONT";
- openfl._Assets.AssetType_Impl_.IMAGE = "IMAGE";
- openfl._Assets.AssetType_Impl_.MOVIE_CLIP = "MOVIE_CLIP";
- openfl._Assets.AssetType_Impl_.MUSIC = "MUSIC";
- openfl._Assets.AssetType_Impl_.SOUND = "SOUND";
- openfl._Assets.AssetType_Impl_.TEMPLATE = "TEMPLATE";
- openfl._Assets.AssetType_Impl_.TEXT = "TEXT";
- openfl.display.LoaderInfo.__rootURL = window.document.URL;
- openfl.system.ApplicationDomain.currentDomain = new openfl.system.ApplicationDomain(null);
- openfl.geom.Matrix.__identity = new openfl.geom.Matrix();
- openfl.Lib.current = new openfl.display.MovieClip();
- openfl.Lib.__sentWarnings = new haxe.ds.StringMap();
- openfl._internal.renderer.canvas.CanvasGraphics.SIN45 = 0.70710678118654752440084436210485;
- openfl._internal.renderer.canvas.CanvasGraphics.TAN22 = 0.4142135623730950488016887242097;
- openfl._internal.renderer.opengl.GLRenderer.blendModesWebGL = null;
- openfl._internal.renderer.opengl.GLRenderer.glContextId = 0;
- openfl._internal.renderer.opengl.GLRenderer.glContexts = [];
- openfl._internal.renderer.opengl.shaders.AbstractShader.__UID = 0;
- openfl._internal.renderer.opengl.shaders.DefaultShader.defaultVertexSrc = ["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec2 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"];
- openfl._internal.renderer.opengl.utils.PathBuiler.__fillIndex = 0;
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.graphicsDataPool = [];
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.bucketPool = [];
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectPosition = new openfl.geom.Point();
- openfl._internal.renderer.opengl.utils.GraphicsRenderer.objectBounds = new openfl.geom.Rectangle();
- openfl._internal.renderer.opengl.utils._GraphicsRenderer.RenderMode_Impl_.DEFAULT = 0;
- openfl._internal.renderer.opengl.utils._GraphicsRenderer.RenderMode_Impl_.STENCIL = 1;
- openfl.display.Graphics.TILE_SCALE = 1;
- openfl.display.Graphics.TILE_ROTATION = 2;
- openfl.display.Graphics.TILE_RGB = 4;
- openfl.display.Graphics.TILE_ALPHA = 8;
- openfl.display.Graphics.TILE_TRANS_2x2 = 16;
- openfl.display.Graphics.TILE_RECT = 32;
- openfl.display.Graphics.TILE_ORIGIN = 64;
- openfl.display.Graphics.TILE_BLEND_NORMAL = 0;
- openfl.display.Graphics.TILE_BLEND_ADD = 65536;
- openfl.display.GraphicsPathCommand.LINE_TO = 2;
- openfl.display.GraphicsPathCommand.MOVE_TO = 1;
- openfl.display.GraphicsPathCommand.CURVE_TO = 3;
- openfl.display.GraphicsPathCommand.WIDE_LINE_TO = 5;
- openfl.display.GraphicsPathCommand.WIDE_MOVE_TO = 4;
- openfl.display.GraphicsPathCommand.NO_OP = 0;
- openfl.display.GraphicsPathCommand.CUBIC_CURVE_TO = 6;
- openfl.display.OpenGLView.CONTEXT_LOST = "glcontextlost";
- openfl.display.OpenGLView.CONTEXT_RESTORED = "glcontextrestored";
- openfl.display.Tilesheet.TILE_SCALE = 1;
- openfl.display.Tilesheet.TILE_ROTATION = 2;
- openfl.display.Tilesheet.TILE_RGB = 4;
- openfl.display.Tilesheet.TILE_ALPHA = 8;
- openfl.display.Tilesheet.TILE_TRANS_2x2 = 16;
- openfl.display.Tilesheet.TILE_RECT = 32;
- openfl.display.Tilesheet.TILE_ORIGIN = 64;
- openfl.display.Tilesheet.TILE_BLEND_NORMAL = 0;
- openfl.display.Tilesheet.TILE_BLEND_ADD = 65536;
- openfl.display.Tilesheet.TILE_BLEND_MULTIPLY = 131072;
- openfl.display.Tilesheet.TILE_BLEND_SCREEN = 262144;
- openfl.display.Tilesheet.TILE_BLEND_SUBTRACT = 524288;
- openfl.display.Tilesheet.__defaultPoint = new openfl.geom.Point(0,0);
- openfl.display3D.Context3D.TEXTURE_MAX_ANISOTROPY_EXT = 34046;
- openfl.display3D.Context3D.MAX_SAMPLERS = 8;
- openfl.display3D.Context3D.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;
- openfl.display3D.Context3D.anisotropySupportTested = false;
- openfl.display3D.Context3D.supportsAnisotropy = false;
- openfl.display3D.Context3D.maxSupportedAnisotropy = 256;
- openfl.display3D.Context3DClearMask.ALL = 17664;
- openfl.display3D.Context3DClearMask.COLOR = 16384;
- openfl.display3D.Context3DClearMask.DEPTH = 256;
- openfl.display3D.Context3DClearMask.STENCIL = 1024;
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.BACK = 1028;
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.FRONT = 1029;
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.FRONT_AND_BACK = 1032;
- openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_.NONE = 0;
- openfl.errors.Error.DEFAULT_TO_STRING = "Error";
- openfl.events.TextEvent.LINK = "link";
- openfl.events.TextEvent.TEXT_INPUT = "textInput";
- openfl.events.DataEvent.DATA = "data";
- openfl.events.DataEvent.UPLOAD_COMPLETE_DATA = "uploadCompleteData";
- openfl.events.ErrorEvent.ERROR = "error";
- openfl.events.FocusEvent.FOCUS_IN = "focusIn";
- openfl.events.FocusEvent.FOCUS_OUT = "focusOut";
- openfl.events.FocusEvent.KEY_FOCUS_CHANGE = "keyFocusChange";
- openfl.events.FocusEvent.MOUSE_FOCUS_CHANGE = "mouseFocusChange";
- openfl.events.IOErrorEvent.IO_ERROR = "ioError";
- openfl.events.KeyboardEvent.KEY_DOWN = "keyDown";
- openfl.events.KeyboardEvent.KEY_UP = "keyUp";
- openfl.events.MouseEvent.CLICK = "click";
- openfl.events.MouseEvent.DOUBLE_CLICK = "doubleClick";
- openfl.events.MouseEvent.MIDDLE_CLICK = "middleClick";
- openfl.events.MouseEvent.MIDDLE_MOUSE_DOWN = "middleMouseDown";
- openfl.events.MouseEvent.MIDDLE_MOUSE_UP = "middleMouseUp";
- openfl.events.MouseEvent.MOUSE_DOWN = "mouseDown";
- openfl.events.MouseEvent.MOUSE_MOVE = "mouseMove";
- openfl.events.MouseEvent.MOUSE_OUT = "mouseOut";
- openfl.events.MouseEvent.MOUSE_OVER = "mouseOver";
- openfl.events.MouseEvent.MOUSE_UP = "mouseUp";
- openfl.events.MouseEvent.MOUSE_WHEEL = "mouseWheel";
- openfl.events.MouseEvent.RIGHT_CLICK = "rightClick";
- openfl.events.MouseEvent.RIGHT_MOUSE_DOWN = "rightMouseDown";
- openfl.events.MouseEvent.RIGHT_MOUSE_UP = "rightMouseUp";
- openfl.events.MouseEvent.ROLL_OUT = "rollOut";
- openfl.events.MouseEvent.ROLL_OVER = "rollOver";
- openfl.events.MouseEvent.__buttonDown = [false,false,false];
- openfl.events.TouchEvent.TOUCH_BEGIN = "touchBegin";
- openfl.events.TouchEvent.TOUCH_END = "touchEnd";
- openfl.events.TouchEvent.TOUCH_MOVE = "touchMove";
- openfl.events.TouchEvent.TOUCH_OUT = "touchOut";
- openfl.events.TouchEvent.TOUCH_OVER = "touchOver";
- openfl.events.TouchEvent.TOUCH_ROLL_OUT = "touchRollOut";
- openfl.events.TouchEvent.TOUCH_ROLL_OVER = "touchRollOver";
- openfl.events.TouchEvent.TOUCH_TAP = "touchTap";
- openfl.media.Sound.__registeredSounds = new haxe.ds.StringMap();
- openfl.net.URLRequestMethod.DELETE = "DELETE";
- openfl.net.URLRequestMethod.GET = "GET";
- openfl.net.URLRequestMethod.HEAD = "HEAD";
- openfl.net.URLRequestMethod.OPTIONS = "OPTIONS";
- openfl.net.URLRequestMethod.POST = "POST";
- openfl.net.URLRequestMethod.PUT = "PUT";
- openfl.system.SecurityDomain.currentDomain = new openfl.system.SecurityDomain();
- openfl.text.Font.__registeredFonts = new Array();
- openfl.ui._KeyLocation.KeyLocation_Impl_.STANDARD = 0;
- openfl.ui._KeyLocation.KeyLocation_Impl_.LEFT = 1;
- openfl.ui._KeyLocation.KeyLocation_Impl_.RIGHT = 2;
- openfl.ui._KeyLocation.KeyLocation_Impl_.NUM_PAD = 3;
- openfl.ui.Keyboard.NUMBER_0 = 48;
- openfl.ui.Keyboard.NUMBER_1 = 49;
- openfl.ui.Keyboard.NUMBER_2 = 50;
- openfl.ui.Keyboard.NUMBER_3 = 51;
- openfl.ui.Keyboard.NUMBER_4 = 52;
- openfl.ui.Keyboard.NUMBER_5 = 53;
- openfl.ui.Keyboard.NUMBER_6 = 54;
- openfl.ui.Keyboard.NUMBER_7 = 55;
- openfl.ui.Keyboard.NUMBER_8 = 56;
- openfl.ui.Keyboard.NUMBER_9 = 57;
- openfl.ui.Keyboard.A = 65;
- openfl.ui.Keyboard.B = 66;
- openfl.ui.Keyboard.C = 67;
- openfl.ui.Keyboard.D = 68;
- openfl.ui.Keyboard.E = 69;
- openfl.ui.Keyboard.F = 70;
- openfl.ui.Keyboard.G = 71;
- openfl.ui.Keyboard.H = 72;
- openfl.ui.Keyboard.I = 73;
- openfl.ui.Keyboard.J = 74;
- openfl.ui.Keyboard.K = 75;
- openfl.ui.Keyboard.L = 76;
- openfl.ui.Keyboard.M = 77;
- openfl.ui.Keyboard.N = 78;
- openfl.ui.Keyboard.O = 79;
- openfl.ui.Keyboard.P = 80;
- openfl.ui.Keyboard.Q = 81;
- openfl.ui.Keyboard.R = 82;
- openfl.ui.Keyboard.S = 83;
- openfl.ui.Keyboard.T = 84;
- openfl.ui.Keyboard.U = 85;
- openfl.ui.Keyboard.V = 86;
- openfl.ui.Keyboard.W = 87;
- openfl.ui.Keyboard.X = 88;
- openfl.ui.Keyboard.Y = 89;
- openfl.ui.Keyboard.Z = 90;
- openfl.ui.Keyboard.NUMPAD_0 = 96;
- openfl.ui.Keyboard.NUMPAD_1 = 97;
- openfl.ui.Keyboard.NUMPAD_2 = 98;
- openfl.ui.Keyboard.NUMPAD_3 = 99;
- openfl.ui.Keyboard.NUMPAD_4 = 100;
- openfl.ui.Keyboard.NUMPAD_5 = 101;
- openfl.ui.Keyboard.NUMPAD_6 = 102;
- openfl.ui.Keyboard.NUMPAD_7 = 103;
- openfl.ui.Keyboard.NUMPAD_8 = 104;
- openfl.ui.Keyboard.NUMPAD_9 = 105;
- openfl.ui.Keyboard.NUMPAD_MULTIPLY = 106;
- openfl.ui.Keyboard.NUMPAD_ADD = 107;
- openfl.ui.Keyboard.NUMPAD_ENTER = 108;
- openfl.ui.Keyboard.NUMPAD_SUBTRACT = 109;
- openfl.ui.Keyboard.NUMPAD_DECIMAL = 110;
- openfl.ui.Keyboard.NUMPAD_DIVIDE = 111;
- openfl.ui.Keyboard.F1 = 112;
- openfl.ui.Keyboard.F2 = 113;
- openfl.ui.Keyboard.F3 = 114;
- openfl.ui.Keyboard.F4 = 115;
- openfl.ui.Keyboard.F5 = 116;
- openfl.ui.Keyboard.F6 = 117;
- openfl.ui.Keyboard.F7 = 118;
- openfl.ui.Keyboard.F8 = 119;
- openfl.ui.Keyboard.F9 = 120;
- openfl.ui.Keyboard.F10 = 121;
- openfl.ui.Keyboard.F11 = 122;
- openfl.ui.Keyboard.F12 = 123;
- openfl.ui.Keyboard.F13 = 124;
- openfl.ui.Keyboard.F14 = 125;
- openfl.ui.Keyboard.F15 = 126;
- openfl.ui.Keyboard.BACKSPACE = 8;
- openfl.ui.Keyboard.TAB = 9;
- openfl.ui.Keyboard.ALTERNATE = 18;
- openfl.ui.Keyboard.ENTER = 13;
- openfl.ui.Keyboard.COMMAND = 15;
- openfl.ui.Keyboard.SHIFT = 16;
- openfl.ui.Keyboard.CONTROL = 17;
- openfl.ui.Keyboard.CAPS_LOCK = 20;
- openfl.ui.Keyboard.NUMPAD = 21;
- openfl.ui.Keyboard.ESCAPE = 27;
- openfl.ui.Keyboard.SPACE = 32;
- openfl.ui.Keyboard.PAGE_UP = 33;
- openfl.ui.Keyboard.PAGE_DOWN = 34;
- openfl.ui.Keyboard.END = 35;
- openfl.ui.Keyboard.HOME = 36;
- openfl.ui.Keyboard.LEFT = 37;
- openfl.ui.Keyboard.RIGHT = 39;
- openfl.ui.Keyboard.UP = 38;
- openfl.ui.Keyboard.DOWN = 40;
- openfl.ui.Keyboard.INSERT = 45;
- openfl.ui.Keyboard.DELETE = 46;
- openfl.ui.Keyboard.NUMLOCK = 144;
- openfl.ui.Keyboard.BREAK = 19;
- openfl.ui.Keyboard.SEMICOLON = 186;
- openfl.ui.Keyboard.EQUAL = 187;
- openfl.ui.Keyboard.COMMA = 188;
- openfl.ui.Keyboard.MINUS = 189;
- openfl.ui.Keyboard.PERIOD = 190;
- openfl.ui.Keyboard.SLASH = 191;
- openfl.ui.Keyboard.BACKQUOTE = 192;
- openfl.ui.Keyboard.LEFTBRACKET = 219;
- openfl.ui.Keyboard.BACKSLASH = 220;
- openfl.ui.Keyboard.RIGHTBRACKET = 221;
- openfl.ui.Keyboard.QUOTE = 222;
- openfl.ui.Keyboard.DOM_VK_CANCEL = 3;
- openfl.ui.Keyboard.DOM_VK_HELP = 6;
- openfl.ui.Keyboard.DOM_VK_BACK_SPACE = 8;
- openfl.ui.Keyboard.DOM_VK_TAB = 9;
- openfl.ui.Keyboard.DOM_VK_CLEAR = 12;
- openfl.ui.Keyboard.DOM_VK_RETURN = 13;
- openfl.ui.Keyboard.DOM_VK_ENTER = 14;
- openfl.ui.Keyboard.DOM_VK_SHIFT = 16;
- openfl.ui.Keyboard.DOM_VK_CONTROL = 17;
- openfl.ui.Keyboard.DOM_VK_ALT = 18;
- openfl.ui.Keyboard.DOM_VK_PAUSE = 19;
- openfl.ui.Keyboard.DOM_VK_CAPS_LOCK = 20;
- openfl.ui.Keyboard.DOM_VK_ESCAPE = 27;
- openfl.ui.Keyboard.DOM_VK_SPACE = 32;
- openfl.ui.Keyboard.DOM_VK_PAGE_UP = 33;
- openfl.ui.Keyboard.DOM_VK_PAGE_DOWN = 34;
- openfl.ui.Keyboard.DOM_VK_END = 35;
- openfl.ui.Keyboard.DOM_VK_HOME = 36;
- openfl.ui.Keyboard.DOM_VK_LEFT = 37;
- openfl.ui.Keyboard.DOM_VK_UP = 38;
- openfl.ui.Keyboard.DOM_VK_RIGHT = 39;
- openfl.ui.Keyboard.DOM_VK_DOWN = 40;
- openfl.ui.Keyboard.DOM_VK_PRINTSCREEN = 44;
- openfl.ui.Keyboard.DOM_VK_INSERT = 45;
- openfl.ui.Keyboard.DOM_VK_DELETE = 46;
- openfl.ui.Keyboard.DOM_VK_0 = 48;
- openfl.ui.Keyboard.DOM_VK_1 = 49;
- openfl.ui.Keyboard.DOM_VK_2 = 50;
- openfl.ui.Keyboard.DOM_VK_3 = 51;
- openfl.ui.Keyboard.DOM_VK_4 = 52;
- openfl.ui.Keyboard.DOM_VK_5 = 53;
- openfl.ui.Keyboard.DOM_VK_6 = 54;
- openfl.ui.Keyboard.DOM_VK_7 = 55;
- openfl.ui.Keyboard.DOM_VK_8 = 56;
- openfl.ui.Keyboard.DOM_VK_9 = 57;
- openfl.ui.Keyboard.DOM_VK_SEMICOLON = 59;
- openfl.ui.Keyboard.DOM_VK_EQUALS = 61;
- openfl.ui.Keyboard.DOM_VK_A = 65;
- openfl.ui.Keyboard.DOM_VK_B = 66;
- openfl.ui.Keyboard.DOM_VK_C = 67;
- openfl.ui.Keyboard.DOM_VK_D = 68;
- openfl.ui.Keyboard.DOM_VK_E = 69;
- openfl.ui.Keyboard.DOM_VK_F = 70;
- openfl.ui.Keyboard.DOM_VK_G = 71;
- openfl.ui.Keyboard.DOM_VK_H = 72;
- openfl.ui.Keyboard.DOM_VK_I = 73;
- openfl.ui.Keyboard.DOM_VK_J = 74;
- openfl.ui.Keyboard.DOM_VK_K = 75;
- openfl.ui.Keyboard.DOM_VK_L = 76;
- openfl.ui.Keyboard.DOM_VK_M = 77;
- openfl.ui.Keyboard.DOM_VK_N = 78;
- openfl.ui.Keyboard.DOM_VK_O = 79;
- openfl.ui.Keyboard.DOM_VK_P = 80;
- openfl.ui.Keyboard.DOM_VK_Q = 81;
- openfl.ui.Keyboard.DOM_VK_R = 82;
- openfl.ui.Keyboard.DOM_VK_S = 83;
- openfl.ui.Keyboard.DOM_VK_T = 84;
- openfl.ui.Keyboard.DOM_VK_U = 85;
- openfl.ui.Keyboard.DOM_VK_V = 86;
- openfl.ui.Keyboard.DOM_VK_W = 87;
- openfl.ui.Keyboard.DOM_VK_X = 88;
- openfl.ui.Keyboard.DOM_VK_Y = 89;
- openfl.ui.Keyboard.DOM_VK_Z = 90;
- openfl.ui.Keyboard.DOM_VK_CONTEXT_MENU = 93;
- openfl.ui.Keyboard.DOM_VK_NUMPAD0 = 96;
- openfl.ui.Keyboard.DOM_VK_NUMPAD1 = 97;
- openfl.ui.Keyboard.DOM_VK_NUMPAD2 = 98;
- openfl.ui.Keyboard.DOM_VK_NUMPAD3 = 99;
- openfl.ui.Keyboard.DOM_VK_NUMPAD4 = 100;
- openfl.ui.Keyboard.DOM_VK_NUMPAD5 = 101;
- openfl.ui.Keyboard.DOM_VK_NUMPAD6 = 102;
- openfl.ui.Keyboard.DOM_VK_NUMPAD7 = 103;
- openfl.ui.Keyboard.DOM_VK_NUMPAD8 = 104;
- openfl.ui.Keyboard.DOM_VK_NUMPAD9 = 105;
- openfl.ui.Keyboard.DOM_VK_MULTIPLY = 106;
- openfl.ui.Keyboard.DOM_VK_ADD = 107;
- openfl.ui.Keyboard.DOM_VK_SEPARATOR = 108;
- openfl.ui.Keyboard.DOM_VK_SUBTRACT = 109;
- openfl.ui.Keyboard.DOM_VK_DECIMAL = 110;
- openfl.ui.Keyboard.DOM_VK_DIVIDE = 111;
- openfl.ui.Keyboard.DOM_VK_F1 = 112;
- openfl.ui.Keyboard.DOM_VK_F2 = 113;
- openfl.ui.Keyboard.DOM_VK_F3 = 114;
- openfl.ui.Keyboard.DOM_VK_F4 = 115;
- openfl.ui.Keyboard.DOM_VK_F5 = 116;
- openfl.ui.Keyboard.DOM_VK_F6 = 117;
- openfl.ui.Keyboard.DOM_VK_F7 = 118;
- openfl.ui.Keyboard.DOM_VK_F8 = 119;
- openfl.ui.Keyboard.DOM_VK_F9 = 120;
- openfl.ui.Keyboard.DOM_VK_F10 = 121;
- openfl.ui.Keyboard.DOM_VK_F11 = 122;
- openfl.ui.Keyboard.DOM_VK_F12 = 123;
- openfl.ui.Keyboard.DOM_VK_F13 = 124;
- openfl.ui.Keyboard.DOM_VK_F14 = 125;
- openfl.ui.Keyboard.DOM_VK_F15 = 126;
- openfl.ui.Keyboard.DOM_VK_F16 = 127;
- openfl.ui.Keyboard.DOM_VK_F17 = 128;
- openfl.ui.Keyboard.DOM_VK_F18 = 129;
- openfl.ui.Keyboard.DOM_VK_F19 = 130;
- openfl.ui.Keyboard.DOM_VK_F20 = 131;
- openfl.ui.Keyboard.DOM_VK_F21 = 132;
- openfl.ui.Keyboard.DOM_VK_F22 = 133;
- openfl.ui.Keyboard.DOM_VK_F23 = 134;
- openfl.ui.Keyboard.DOM_VK_F24 = 135;
- openfl.ui.Keyboard.DOM_VK_NUM_LOCK = 144;
- openfl.ui.Keyboard.DOM_VK_SCROLL_LOCK = 145;
- openfl.ui.Keyboard.DOM_VK_COMMA = 188;
- openfl.ui.Keyboard.DOM_VK_PERIOD = 190;
- openfl.ui.Keyboard.DOM_VK_SLASH = 191;
- openfl.ui.Keyboard.DOM_VK_BACK_QUOTE = 192;
- openfl.ui.Keyboard.DOM_VK_OPEN_BRACKET = 219;
- openfl.ui.Keyboard.DOM_VK_BACK_SLASH = 220;
- openfl.ui.Keyboard.DOM_VK_CLOSE_BRACKET = 221;
- openfl.ui.Keyboard.DOM_VK_QUOTE = 222;
- openfl.ui.Keyboard.DOM_VK_META = 224;
- openfl.ui.Keyboard.DOM_VK_KANA = 21;
- openfl.ui.Keyboard.DOM_VK_HANGUL = 21;
- openfl.ui.Keyboard.DOM_VK_JUNJA = 23;
- openfl.ui.Keyboard.DOM_VK_FINAL = 24;
- openfl.ui.Keyboard.DOM_VK_HANJA = 25;
- openfl.ui.Keyboard.DOM_VK_KANJI = 25;
- openfl.ui.Keyboard.DOM_VK_CONVERT = 28;
- openfl.ui.Keyboard.DOM_VK_NONCONVERT = 29;
- openfl.ui.Keyboard.DOM_VK_ACEPT = 30;
- openfl.ui.Keyboard.DOM_VK_MODECHANGE = 31;
- openfl.ui.Keyboard.DOM_VK_SELECT = 41;
- openfl.ui.Keyboard.DOM_VK_PRINT = 42;
- openfl.ui.Keyboard.DOM_VK_EXECUTE = 43;
- openfl.ui.Keyboard.DOM_VK_SLEEP = 95;
- spritesheet.data.BehaviorData.uniqueID = 0;
- ApplicationMain.main();
- })(typeof window != "undefined" ? window : exports);
|