1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799(* Auto-generated from "wcs.atd" *)(**
Watson Conversation Service data structures.
Data srcutures used in Watson Conversation Service.
Based on the documentation available at:
https://www.ibm.com/watson/developercloud/conversation/api/v1/
Version 2017-05-26.
*)typeworkspace_status=Wcs_t.workspace_status=Ws_non_existent|Ws_training|Ws_failed|Ws_available|Ws_unavailable(** Type of arbitraty JSON values. *)typejson=Json_t.json(** A workspace metadata. *)typeworkspace_response=Wcs_t.workspace_response={ws_rsp_name(*atd name *):stringoption;ws_rsp_description(*atd description *):stringoption;ws_rsp_language(*atd language *):stringoption;ws_rsp_metadata(*atd metadata *):jsonoption;ws_rsp_created(*atd created *):stringoption;ws_rsp_updated(*atd updated *):stringoption;ws_rsp_workspace_id(*atd workspace_id *):string}(** Type of Spel expressions. *)typespel=Wcs_t.spel(** Goto selector. *)typeselector=Wcs_t.selector=Goto_user_input|Goto_client|Goto_condition|Goto_body(** Type of arbitraty JSON values with embedded Spel expressions. *)typejson_spel=Json_spel_t.json_spel(** Type of outputs of a dialog node. *)typeoutput_def=Wcs_t.output_def(** Type of goto definitions. *)typenext_step=Wcs_t.next_step={next_behavior(*atd behavior *):string;next_selector(*atd selector *):selector;next_dialog_node(*atd dialog_node *):string}(** Type of intent examples. *)typeintent_example=Wcs_t.intent_example={ex_text(*atd text *):string;ex_created(*atd created *):stringoption;ex_updated(*atd updated *):stringoption}(** Type of intent definitions. *)typeintent_def=Wcs_t.intent_def={i_def_intent(*atd intent *):string;i_def_description(*atd description *):stringoption;i_def_examples(*atd examples *):intent_examplelist;i_def_created(*atd created *):stringoption;i_def_updated(*atd updated *):stringoption}(** Type of entity values. *)typeentity_value=Wcs_t.entity_value={e_val_value(*atd value *):string;e_val_metadata(*atd metadata *):jsonoption;e_val_synonyms(*atd synonyms *):stringlist;e_val_created(*atd created *):stringoption;e_val_updated(*atd updated *):stringoption}(** Type of entity definitions. *)typeentity_def=Wcs_t.entity_def={e_def_entity(*atd entity *):string;e_def_description(*atd description *):stringoption;e_def_metadata(*atd metadata *):jsonoption;e_def_source(*atd source *):stringoption;e_def_open_list(*atd open_list *):booloption;e_def_values(*atd values *):entity_valuelist;e_def_created(*atd created *):stringoption;e_def_updated(*atd updated *):stringoption;e_def_fuzzy_match(*atd fuzzy_match *):booloption}(** Dialog node type. *)typedialog_node_type=Wcs_t.dialog_node_type=Node_response_condition|Node_frame|Node_event_handler|Node_slottypedialog_node_event_name=Wcs_t.dialog_node_event_name=Evt_focus|Evt_input|Evt_nomatch|Evt_filled|Evt_generic(** Type of dialog nodes. *)typedialog_node=Wcs_t.dialog_node={node_dialog_node(*atd dialog_node *):string;node_type_(*atd type_ *):dialog_node_typeoption;node_description(*atd description *):stringoption;node_conditions(*atd conditions *):speloption;node_parent(*atd parent *):stringoption;node_previous_sibling(*atd previous_sibling *):stringoption;node_output(*atd output *):output_defoption;node_context(*atd context *):json_speloption;node_metadata(*atd metadata *):jsonoption;node_next_step(*atd next_step *):next_stepoption;node_child_input_kind(*atd child_input_kind *):stringoption;node_created(*atd created *):stringoption;node_updated(*atd updated *):stringoption;node_event_name(*atd event_name *):dialog_node_event_nameoption;node_variable(*atd variable *):stringoption}(** Type of workspaces *)typeworkspace=Wcs_t.workspace={ws_name(*atd name *):stringoption;ws_description(*atd description *):stringoption;ws_language(*atd language *):stringoption;ws_metadata(*atd metadata *):jsonoption;ws_counterexamples(*atd counterexamples *):intent_examplelist;ws_dialog_nodes(*atd dialog_nodes *):dialog_nodelist;ws_entities(*atd entities *):entity_deflist;ws_intents(*atd intents *):intent_deflist;ws_created(*atd created *):stringoption;ws_updated(*atd updated *):stringoption;ws_modified(*atd modified *):stringoption;ws_created_by(*atd created_by *):stringoption;ws_modified_by(*atd modified_by *):stringoption;ws_workspace_id(*atd workspace_id *):stringoption;ws_status(*atd status *):workspace_statusoption}(** Supported versions *)typeversion=Wcs_t.version=V_2017_05_26(** Sorting criteria for list of workspaces. *)typesort_workspace_criteria=Wcs_t.sort_workspace_criteria=Sort_name_incr|Sort_modified_incr|Sort_workspace_id_incr|Sort_name_decr|Sort_modified_decr|Sort_workspace_id_decr(** Sorting criteria for logs. *)typesort_logs_criteria=Wcs_t.sort_logs_criteria=Sort_request_timestamp_incr|Sort_request_timestamp_decr(** Pagination information *)typepagination_response=Wcs_t.pagination_response={pag_refresh_url(*atd refresh_url *):stringoption;pag_next_url(*atd next_url *):stringoption;pag_total(*atd total *):intoption;pag_matched(*atd matched *):intoption}typelog_message=Wcs_t.log_message={log_msg__level(*atd level *):string;log_msg__msg(*atd msg *):string}typeoutput=Wcs_t.output={out_log_messages(*atd log_messages *):log_messagelist;out_text(*atd text *):stringlist;out_nodes_visited(*atd nodes_visited *):stringlist;out_error(*atd error *):stringoption}typeintent=Wcs_t.intent={i_intent(*atd intent *):string;i_confidence(*atd confidence *):float}typeinput=Wcs_t.input={in_text(*atd text *):string}typeentity=Wcs_t.entity={e_entity(*atd entity *):string;e_location(*atd location *):intlist;e_value(*atd value *):string;e_confidence(*atd confidence *):float}typemessage_response=Wcs_t.message_response={msg_rsp_input(*atd input *):input;msg_rsp_alternate_intents(*atd alternate_intents *):bool;msg_rsp_context(*atd context *):json;msg_rsp_entities(*atd entities *):entitylist;msg_rsp_intents(*atd intents *):intentlist;msg_rsp_output(*atd output *):output}typemessage_request=Wcs_t.message_request={msg_req_input(*atd input *):input;msg_req_alternate_intents(*atd alternate_intents *):bool;msg_req_context(*atd context *):jsonoption;msg_req_entities(*atd entities *):entitylistoption;msg_req_intents(*atd intents *):intentlistoption;msg_req_output(*atd output *):outputoption}typelog_entry=Wcs_t.log_entry={log_request(*atd request *):message_request;log_response(*atd response *):message_response;log_log_id(*atd log_id *):string;log_request_timestamp(*atd request_timestamp *):string;log_response_timestamp(*atd response_timestamp *):string}typelogs_response=Wcs_t.logs_response={logs_rsp_logs(*atd logs *):log_entrylist;logs_rsp_pagination(*atd pagination *):pagination_response}(** Request for the list the events from the log of a workspace. *)typelogs_request=Wcs_t.logs_request={logs_filter(*atd filter *):stringoption;logs_sort(*atd sort *):sort_logs_criteriaoption;logs_page_limit(*atd page_limit *):intoption;logs_cursor(*atd cursor *):stringoption}(** Response to the list of workspaces request. *)typelist_workspaces_response=Wcs_t.list_workspaces_response={list_ws_rsp_workspaces(*atd workspaces *):workspace_responselist;list_ws_rsp_pagination(*atd pagination *):pagination_response}(** Request the list of workspaces. *)typelist_workspaces_request=Wcs_t.list_workspaces_request={list_ws_req_page_limit(*atd page_limit *):intoption;list_ws_req_include_count(*atd include_count *):booloption;list_ws_req_sort(*atd sort *):sort_workspace_criteriaoption;list_ws_req_cursor(*atd cursor *):stringoption}typeget_workspace_request=Wcs_t.get_workspace_request={get_ws_req_workspace_id(*atd workspace_id *):string;get_ws_req_export(*atd export *):booloption}(** Watson Conversation Service credentials. *)typecredential=Wcs_t.credential={cred_url(*atd url *):string;cred_password(*atd password *):string;cred_username(*atd username *):string}typecreate_response=Wcs_t.create_response={crea_rsp_name(*atd name *):stringoption;crea_rsp_description(*atd description *):stringoption;crea_rsp_language(*atd language *):stringoption;crea_rsp_metadata(*atd metadata *):jsonoption;crea_rsp_created(*atd created *):stringoption;crea_rsp_updated(*atd updated *):stringoption;crea_rsp_workspace_id(*atd workspace_id *):stringoption}typecontext=Wcs_t.context={ctx_conversation_id(*atd conversation_id *):string;ctx_system(*atd system *):json}typeaction_def=Wcs_t.action_def={act_def_name(*atd name *):string;act_def_agent(*atd agent *):string;act_def_type_(*atd type_ *):string;act_def_parameters(*atd parameters *):json_spel;act_def_result_variable(*atd result_variable *):stringoption}typeaction=Wcs_t.action={act_name(*atd name *):string;act_agent(*atd agent *):string;act_type_(*atd type_ *):string;act_parameters(*atd parameters *):json;act_result_variable(*atd result_variable *):stringoption}letwrite_workspace_status:_->workspace_status->_=(funobsum->matchsumwith|Ws_non_existent->Bi_outbuf.add_stringob"\"Non Existent\""|Ws_training->Bi_outbuf.add_stringob"\"Training\""|Ws_failed->Bi_outbuf.add_stringob"\"Failed\""|Ws_available->Bi_outbuf.add_stringob"\"Available\""|Ws_unavailable->Bi_outbuf.add_stringob"\"Unavailable\"")letstring_of_workspace_status?(len=1024)x=letob=Bi_outbuf.createleninwrite_workspace_statusobx;Bi_outbuf.contentsobletread_workspace_status=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|6->(ifString.unsafe_getspos='F'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='i'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='d'then(2)else(raise(Exit)))|8->(ifString.unsafe_getspos='T'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='n'&&String.unsafe_gets(pos+7)='g'then(1)else(raise(Exit)))|9->(ifString.unsafe_getspos='A'&&String.unsafe_gets(pos+1)='v'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='l'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='b'&&String.unsafe_gets(pos+7)='l'&&String.unsafe_gets(pos+8)='e'then(3)else(raise(Exit)))|11->(ifString.unsafe_getspos='U'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='v'&&String.unsafe_gets(pos+4)='a'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='l'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='b'&&String.unsafe_gets(pos+9)='l'&&String.unsafe_gets(pos+10)='e'then(4)else(raise(Exit)))|12->(ifString.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)=' '&&String.unsafe_gets(pos+4)='E'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='e'&&String.unsafe_gets(pos+10)='n'&&String.unsafe_gets(pos+11)='t'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Ws_non_existent:workspace_status)|1->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Ws_training:workspace_status)|2->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Ws_failed:workspace_status)|3->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Ws_available:workspace_status)|4->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Ws_unavailable:workspace_status)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|6->(ifString.unsafe_getspos='F'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='i'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='d'then(2)else(raise(Exit)))|8->(ifString.unsafe_getspos='T'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='n'&&String.unsafe_gets(pos+7)='g'then(1)else(raise(Exit)))|9->(ifString.unsafe_getspos='A'&&String.unsafe_gets(pos+1)='v'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='l'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='b'&&String.unsafe_gets(pos+7)='l'&&String.unsafe_gets(pos+8)='e'then(3)else(raise(Exit)))|11->(ifString.unsafe_getspos='U'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='v'&&String.unsafe_gets(pos+4)='a'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='l'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='b'&&String.unsafe_gets(pos+9)='l'&&String.unsafe_gets(pos+10)='e'then(4)else(raise(Exit)))|12->(ifString.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)=' '&&String.unsafe_gets(pos+4)='E'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='e'&&String.unsafe_gets(pos+10)='n'&&String.unsafe_gets(pos+11)='t'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(Ws_non_existent:workspace_status)|1->(Ws_training:workspace_status)|2->(Ws_failed:workspace_status)|3->(Ws_available:workspace_status)|4->(Ws_unavailable:workspace_status)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letworkspace_status_of_strings=read_workspace_status(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_json=(Json_t.write_json)letstring_of_json?(len=1024)x=letob=Bi_outbuf.createleninwrite_jsonobx;Bi_outbuf.contentsobletread_json=(Json_t.read_json)letjson_of_strings=read_json(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__2=(Ag_oj_run.write_nullable(write_json))letstring_of__2?(len=1024)x=letob=Bi_outbuf.createleninwrite__2obx;Bi_outbuf.contentsobletread__2=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_json)plb):_option))let_2_of_strings=read__2(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__1=(Ag_oj_run.write_nullable(Yojson.Safe.write_string))letstring_of__1?(len=1024)x=letob=Bi_outbuf.createleninwrite__1obx;Bi_outbuf.contentsobletread__1=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((Ag_oj_run.read_string)plb):_option))let_1_of_strings=read__1(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_workspace_response:_->workspace_response->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"name\":";(write__1)obx.ws_rsp_name;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"description\":";(write__1)obx.ws_rsp_description;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"language\":";(write__1)obx.ws_rsp_language;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"metadata\":";(write__2)obx.ws_rsp_metadata;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(write__1)obx.ws_rsp_created;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(write__1)obx.ws_rsp_updated;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"workspace_id\":";(Yojson.Safe.write_string)obx.ws_rsp_workspace_id;Bi_outbuf.add_charob'}';)letstring_of_workspace_response?(len=1024)x=letob=Bi_outbuf.createleninwrite_workspace_responseobx;Bi_outbuf.contentsobletread_workspace_response=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_ws_rsp_name=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_rsp_description=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_rsp_language=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_rsp_metadata=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_rsp_created=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_rsp_updated=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_rsp_workspace_id=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(5)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'l'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='g'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='g'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(3)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(6)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ws_rsp_name:=((read__1)plb);bits0:=!bits0lor0x1;|1->field_ws_rsp_description:=((read__1)plb);bits0:=!bits0lor0x2;|2->field_ws_rsp_language:=((read__1)plb);bits0:=!bits0lor0x4;|3->field_ws_rsp_metadata:=((read__2)plb);bits0:=!bits0lor0x8;|4->field_ws_rsp_created:=((read__1)plb);bits0:=!bits0lor0x10;|5->field_ws_rsp_updated:=((read__1)plb);bits0:=!bits0lor0x20;|6->field_ws_rsp_workspace_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x40;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(5)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'l'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='g'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='g'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(3)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(6)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ws_rsp_name:=((read__1)plb);bits0:=!bits0lor0x1;|1->field_ws_rsp_description:=((read__1)plb);bits0:=!bits0lor0x2;|2->field_ws_rsp_language:=((read__1)plb);bits0:=!bits0lor0x4;|3->field_ws_rsp_metadata:=((read__2)plb);bits0:=!bits0lor0x8;|4->field_ws_rsp_created:=((read__1)plb);bits0:=!bits0lor0x10;|5->field_ws_rsp_updated:=((read__1)plb);bits0:=!bits0lor0x20;|6->field_ws_rsp_workspace_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x40;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x7fthenAg_oj_run.missing_fieldsp[|!bits0|][|"name";"description";"language";"metadata";"created";"updated";"workspace_id"|];({ws_rsp_name=!field_ws_rsp_name;ws_rsp_description=!field_ws_rsp_description;ws_rsp_language=!field_ws_rsp_language;ws_rsp_metadata=!field_ws_rsp_metadata;ws_rsp_created=!field_ws_rsp_created;ws_rsp_updated=!field_ws_rsp_updated;ws_rsp_workspace_id=!field_ws_rsp_workspace_id;}:workspace_response)))letworkspace_response_of_strings=read_workspace_response(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__11=(funobx->(letx=(Spel_print.to_string)xin(Yojson.Safe.write_string)obx))letstring_of__11?(len=1024)x=letob=Bi_outbuf.createleninwrite__11obx;Bi_outbuf.contentsobletread__11=(funplb->letx=(Ag_oj_run.read_string)plbin(Spel.of_string)x)let_11_of_strings=read__11(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_spel=(write__11)letstring_of_spel?(len=1024)x=letob=Bi_outbuf.createleninwrite_spelobx;Bi_outbuf.contentsobletread_spel=(read__11)letspel_of_strings=read_spel(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_selector:_->selector->_=(funobsum->matchsumwith|Goto_user_input->Bi_outbuf.add_stringob"\"user_input\""|Goto_client->Bi_outbuf.add_stringob"\"client\""|Goto_condition->Bi_outbuf.add_stringob"\"condition\""|Goto_body->Bi_outbuf.add_stringob"\"body\"")letstring_of_selector?(len=1024)x=letob=Bi_outbuf.createleninwrite_selectorobx;Bi_outbuf.contentsobletread_selector=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|4->(ifString.unsafe_getspos='b'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='y'then(3)else(raise(Exit)))|6->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='i'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(1)else(raise(Exit)))|9->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='d'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='o'&&String.unsafe_gets(pos+8)='n'then(2)else(raise(Exit)))|10->(ifString.unsafe_getspos='u'&&String.unsafe_gets(pos+1)='s'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='n'&&String.unsafe_gets(pos+7)='p'&&String.unsafe_gets(pos+8)='u'&&String.unsafe_gets(pos+9)='t'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Goto_user_input:selector)|1->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Goto_client:selector)|2->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Goto_condition:selector)|3->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Goto_body:selector)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|4->(ifString.unsafe_getspos='b'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='y'then(3)else(raise(Exit)))|6->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='i'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(1)else(raise(Exit)))|9->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='d'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='o'&&String.unsafe_gets(pos+8)='n'then(2)else(raise(Exit)))|10->(ifString.unsafe_getspos='u'&&String.unsafe_gets(pos+1)='s'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='n'&&String.unsafe_gets(pos+7)='p'&&String.unsafe_gets(pos+8)='u'&&String.unsafe_gets(pos+9)='t'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(Goto_user_input:selector)|1->(Goto_client:selector)|2->(Goto_condition:selector)|3->(Goto_body:selector)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letselector_of_strings=read_selector(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_json_spel=(Json_spel_t.write_json_spel)letstring_of_json_spel?(len=1024)x=letob=Bi_outbuf.createleninwrite_json_spelobx;Bi_outbuf.contentsobletread_json_spel=(Json_spel_t.read_json_spel)letjson_spel_of_strings=read_json_spel(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_output_def=(write_json_spel)letstring_of_output_def?(len=1024)x=letob=Bi_outbuf.createleninwrite_output_defobx;Bi_outbuf.contentsobletread_output_def=(read_json_spel)letoutput_def_of_strings=read_output_def(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_next_step:_->next_step->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"behavior\":";(Yojson.Safe.write_string)obx.next_behavior;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"selector\":";(write_selector)obx.next_selector;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"dialog_node\":";(Yojson.Safe.write_string)obx.next_dialog_node;Bi_outbuf.add_charob'}';)letstring_of_next_step?(len=1024)x=letob=Bi_outbuf.createleninwrite_next_stepobx;Bi_outbuf.contentsobletread_next_step=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_next_behavior=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_next_selector=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_next_dialog_node=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|8->(matchString.unsafe_getsposwith|'b'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='h'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='v'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='o'&&String.unsafe_gets(pos+7)='r'then(0)else(-1))|'s'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='c'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='o'&&String.unsafe_gets(pos+7)='r'then(1)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='g'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='e'then(2)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_next_behavior:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_next_selector:=((read_selector)plb);bits0:=!bits0lor0x2;|2->field_next_dialog_node:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x4;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|8->(matchString.unsafe_getsposwith|'b'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='h'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='v'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='o'&&String.unsafe_gets(pos+7)='r'then(0)else(-1))|'s'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='c'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='o'&&String.unsafe_gets(pos+7)='r'then(1)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='g'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='e'then(2)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_next_behavior:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_next_selector:=((read_selector)plb);bits0:=!bits0lor0x2;|2->field_next_dialog_node:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x4;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x7thenAg_oj_run.missing_fieldsp[|!bits0|][|"behavior";"selector";"dialog_node"|];({next_behavior=!field_next_behavior;next_selector=!field_next_selector;next_dialog_node=!field_next_dialog_node;}:next_step)))letnext_step_of_strings=read_next_step(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_intent_example:_->intent_example->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"text\":";(Yojson.Safe.write_string)obx.ex_text;(matchx.ex_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.ex_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_intent_example?(len=1024)x=letob=Bi_outbuf.createleninwrite_intent_exampleobx;Bi_outbuf.contentsobletread_intent_example=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_ex_text=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ex_created=ref(None)inletfield_ex_updated=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(1)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(2)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ex_text:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ex_created:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ex_updated:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(1)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(2)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ex_text:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ex_created:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ex_updated:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"text"|];({ex_text=!field_ex_text;ex_created=!field_ex_created;ex_updated=!field_ex_updated;}:intent_example)))letintent_example_of_strings=read_intent_example(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__7=(Ag_oj_run.write_list(write_intent_example))letstring_of__7?(len=1024)x=letob=Bi_outbuf.createleninwrite__7obx;Bi_outbuf.contentsobletread__7=(Ag_oj_run.read_list(read_intent_example))let_7_of_strings=read__7(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_intent_def:_->intent_def->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"intent\":";(Yojson.Safe.write_string)obx.i_def_intent;(matchx.i_def_descriptionwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"description\":";(Yojson.Safe.write_string)obx;);ifx.i_def_examples<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"examples\":";(write__7)obx.i_def_examples;);(matchx.i_def_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.i_def_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_intent_def?(len=1024)x=letob=Bi_outbuf.createleninwrite_intent_defobx;Bi_outbuf.contentsobletread_intent_def=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_i_def_intent=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_i_def_description=ref(None)inletfield_i_def_examples=ref([])inletfield_i_def_created=ref(None)inletfield_i_def_updated=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(3)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='x'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='p'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(2)else(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_i_def_intent:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_examples:=((read__7)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_created:=(Some((Ag_oj_run.read_string)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_updated:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(3)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='x'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='p'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(2)else(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_i_def_intent:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_examples:=((read__7)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_created:=(Some((Ag_oj_run.read_string)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_i_def_updated:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"intent"|];({i_def_intent=!field_i_def_intent;i_def_description=!field_i_def_description;i_def_examples=!field_i_def_examples;i_def_created=!field_i_def_created;i_def_updated=!field_i_def_updated;}:intent_def)))letintent_def_of_strings=read_intent_def(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__8=(Ag_oj_run.write_list(Yojson.Safe.write_string))letstring_of__8?(len=1024)x=letob=Bi_outbuf.createleninwrite__8obx;Bi_outbuf.contentsobletread__8=(Ag_oj_run.read_list(Ag_oj_run.read_string))let_8_of_strings=read__8(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_entity_value:_->entity_value->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"value\":";(Yojson.Safe.write_string)obx.e_val_value;(matchx.e_val_metadatawithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"metadata\":";(write_json)obx;);ifx.e_val_synonyms<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"synonyms\":";(write__8)obx.e_val_synonyms;);(matchx.e_val_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.e_val_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_entity_value?(len=1024)x=letob=Bi_outbuf.createleninwrite_entity_valueobx;Bi_outbuf.contentsobletread_entity_value=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_e_val_value=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_e_val_metadata=ref(None)inletfield_e_val_synonyms=ref([])inletfield_e_val_created=ref(None)inletfield_e_val_updated=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='v'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(3)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(1)else(-1))|'s'->(ifString.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='o'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='y'&&String.unsafe_gets(pos+6)='m'&&String.unsafe_gets(pos+7)='s'then(2)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_e_val_value:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_metadata:=(Some((read_json)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_synonyms:=((read__8)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_created:=(Some((Ag_oj_run.read_string)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_updated:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='v'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(3)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(1)else(-1))|'s'->(ifString.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='o'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='y'&&String.unsafe_gets(pos+6)='m'&&String.unsafe_gets(pos+7)='s'then(2)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_e_val_value:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_metadata:=(Some((read_json)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_synonyms:=((read__8)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_created:=(Some((Ag_oj_run.read_string)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_val_updated:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"value"|];({e_val_value=!field_e_val_value;e_val_metadata=!field_e_val_metadata;e_val_synonyms=!field_e_val_synonyms;e_val_created=!field_e_val_created;e_val_updated=!field_e_val_updated;}:entity_value)))letentity_value_of_strings=read_entity_value(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__9=(Ag_oj_run.write_std_option(Yojson.Safe.write_bool))letstring_of__9?(len=1024)x=letob=Bi_outbuf.createleninwrite__9obx;Bi_outbuf.contentsobletread__9=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4then(matchString.unsafe_getsposwith|'N'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|'S'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(1)else(raise(Exit)))|_->(raise(Exit)))else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(None:_option)|1->Ag_oj_run.read_until_field_valueplb;letx=(Ag_oj_run.read_bool)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Somex:_option)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(None:_option)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='S'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_commaplb;Yojson.Safe.read_spaceplb;letx=(Ag_oj_run.read_bool)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_rbrplb;(Somex:_option)|_->(assertfalse)))let_9_of_strings=read__9(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__10=(Ag_oj_run.write_list(write_entity_value))letstring_of__10?(len=1024)x=letob=Bi_outbuf.createleninwrite__10obx;Bi_outbuf.contentsobletread__10=(Ag_oj_run.read_list(read_entity_value))let_10_of_strings=read__10(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_entity_def:_->entity_def->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"entity\":";(Yojson.Safe.write_string)obx.e_def_entity;(matchx.e_def_descriptionwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"description\":";(Yojson.Safe.write_string)obx;);(matchx.e_def_metadatawithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"metadata\":";(write_json)obx;);(matchx.e_def_sourcewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"source\":";(Yojson.Safe.write_string)obx;);(matchx.e_def_open_listwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"open_list\":";(Yojson.Safe.write_bool)obx;);ifx.e_def_values<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"values\":";(write__10)obx.e_def_values;);(matchx.e_def_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.e_def_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);(matchx.e_def_fuzzy_matchwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"fuzzy_match\":";(Yojson.Safe.write_bool)obx;);Bi_outbuf.add_charob'}';)letstring_of_entity_def?(len=1024)x=letob=Bi_outbuf.createleninwrite_entity_defobx;Bi_outbuf.contentsobletread_entity_def=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_e_def_entity=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_e_def_description=ref(None)inletfield_e_def_metadata=ref(None)inletfield_e_def_source=ref(None)inletfield_e_def_open_list=ref(None)inletfield_e_def_values=ref([])inletfield_e_def_created=ref(None)inletfield_e_def_updated=ref(None)inletfield_e_def_fuzzy_match=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(matchString.unsafe_getsposwith|'e'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='y'then(0)else(-1))|'s'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='u'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='c'&&String.unsafe_gets(pos+5)='e'then(3)else(-1))|'v'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'then(5)else(-1))|_->(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(6)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(7)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(2)else(-1))|9->(ifString.unsafe_getspos='o'&&String.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='t'then(4)else(-1))|11->(matchString.unsafe_getsposwith|'d'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|'f'->(ifString.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='z'&&String.unsafe_gets(pos+3)='z'&&String.unsafe_gets(pos+4)='y'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='m'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='c'&&String.unsafe_gets(pos+10)='h'then(8)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_e_def_entity:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_metadata:=(Some((read_json)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_source:=(Some((Ag_oj_run.read_string)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_open_list:=(Some((Ag_oj_run.read_bool)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_values:=((read__10)plb);)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_created:=(Some((Ag_oj_run.read_string)plb));)|7->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_updated:=(Some((Ag_oj_run.read_string)plb));)|8->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_fuzzy_match:=(Some((Ag_oj_run.read_bool)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(matchString.unsafe_getsposwith|'e'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='y'then(0)else(-1))|'s'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='u'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='c'&&String.unsafe_gets(pos+5)='e'then(3)else(-1))|'v'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'then(5)else(-1))|_->(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(6)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(7)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(2)else(-1))|9->(ifString.unsafe_getspos='o'&&String.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='t'then(4)else(-1))|11->(matchString.unsafe_getsposwith|'d'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|'f'->(ifString.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='z'&&String.unsafe_gets(pos+3)='z'&&String.unsafe_gets(pos+4)='y'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='m'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='c'&&String.unsafe_gets(pos+10)='h'then(8)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_e_def_entity:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_metadata:=(Some((read_json)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_source:=(Some((Ag_oj_run.read_string)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_open_list:=(Some((Ag_oj_run.read_bool)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_values:=((read__10)plb);)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_created:=(Some((Ag_oj_run.read_string)plb));)|7->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_updated:=(Some((Ag_oj_run.read_string)plb));)|8->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_e_def_fuzzy_match:=(Some((Ag_oj_run.read_bool)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"entity"|];({e_def_entity=!field_e_def_entity;e_def_description=!field_e_def_description;e_def_metadata=!field_e_def_metadata;e_def_source=!field_e_def_source;e_def_open_list=!field_e_def_open_list;e_def_values=!field_e_def_values;e_def_created=!field_e_def_created;e_def_updated=!field_e_def_updated;e_def_fuzzy_match=!field_e_def_fuzzy_match;}:entity_def)))letentity_def_of_strings=read_entity_def(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_dialog_node_type:_->dialog_node_type->_=(funobsum->matchsumwith|Node_response_condition->Bi_outbuf.add_stringob"\"response_condition\""|Node_frame->Bi_outbuf.add_stringob"\"frame\""|Node_event_handler->Bi_outbuf.add_stringob"\"event_handler\""|Node_slot->Bi_outbuf.add_stringob"\"slot\"")letstring_of_dialog_node_type?(len=1024)x=letob=Bi_outbuf.createleninwrite_dialog_node_typeobx;Bi_outbuf.contentsobletread_dialog_node_type=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|4->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='o'&&String.unsafe_gets(pos+3)='t'then(3)else(raise(Exit)))|5->(ifString.unsafe_getspos='f'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='e'then(1)else(raise(Exit)))|13->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='v'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='h'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='n'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='l'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='r'then(2)else(raise(Exit)))|18->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='c'&&String.unsafe_gets(pos+10)='o'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='d'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='t'&&String.unsafe_gets(pos+15)='i'&&String.unsafe_gets(pos+16)='o'&&String.unsafe_gets(pos+17)='n'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Node_response_condition:dialog_node_type)|1->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Node_frame:dialog_node_type)|2->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Node_event_handler:dialog_node_type)|3->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Node_slot:dialog_node_type)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|4->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='o'&&String.unsafe_gets(pos+3)='t'then(3)else(raise(Exit)))|5->(ifString.unsafe_getspos='f'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='e'then(1)else(raise(Exit)))|13->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='v'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='h'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='n'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='l'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='r'then(2)else(raise(Exit)))|18->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='c'&&String.unsafe_gets(pos+10)='o'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='d'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='t'&&String.unsafe_gets(pos+15)='i'&&String.unsafe_gets(pos+16)='o'&&String.unsafe_gets(pos+17)='n'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(Node_response_condition:dialog_node_type)|1->(Node_frame:dialog_node_type)|2->(Node_event_handler:dialog_node_type)|3->(Node_slot:dialog_node_type)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letdialog_node_type_of_strings=read_dialog_node_type(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_dialog_node_event_name:_->dialog_node_event_name->_=(funobsum->matchsumwith|Evt_focus->Bi_outbuf.add_stringob"\"focus\""|Evt_input->Bi_outbuf.add_stringob"\"input\""|Evt_nomatch->Bi_outbuf.add_stringob"\"nomatch\""|Evt_filled->Bi_outbuf.add_stringob"\"filled\""|Evt_generic->Bi_outbuf.add_stringob"\"generic\"")letstring_of_dialog_node_event_name?(len=1024)x=letob=Bi_outbuf.createleninwrite_dialog_node_event_nameobx;Bi_outbuf.contentsobletread_dialog_node_event_name=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|5->(matchString.unsafe_getsposwith|'f'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='c'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='s'then(0)else(raise(Exit)))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='t'then(1)else(raise(Exit)))|_->(raise(Exit)))|6->(ifString.unsafe_getspos='f'&&String.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='d'then(3)else(raise(Exit)))|7->(matchString.unsafe_getsposwith|'g'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='c'then(4)else(raise(Exit)))|'n'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='c'&&String.unsafe_gets(pos+6)='h'then(2)else(raise(Exit)))|_->(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Evt_focus:dialog_node_event_name)|1->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Evt_input:dialog_node_event_name)|2->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Evt_nomatch:dialog_node_event_name)|3->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Evt_filled:dialog_node_event_name)|4->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Evt_generic:dialog_node_event_name)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|5->(matchString.unsafe_getsposwith|'f'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='c'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='s'then(0)else(raise(Exit)))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='t'then(1)else(raise(Exit)))|_->(raise(Exit)))|6->(ifString.unsafe_getspos='f'&&String.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='d'then(3)else(raise(Exit)))|7->(matchString.unsafe_getsposwith|'g'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='c'then(4)else(raise(Exit)))|'n'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='c'&&String.unsafe_gets(pos+6)='h'then(2)else(raise(Exit)))|_->(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(Evt_focus:dialog_node_event_name)|1->(Evt_input:dialog_node_event_name)|2->(Evt_nomatch:dialog_node_event_name)|3->(Evt_filled:dialog_node_event_name)|4->(Evt_generic:dialog_node_event_name)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letdialog_node_event_name_of_strings=read_dialog_node_event_name(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__17=(Ag_oj_run.write_nullable(write_dialog_node_event_name))letstring_of__17?(len=1024)x=letob=Bi_outbuf.createleninwrite__17obx;Bi_outbuf.contentsobletread__17=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_dialog_node_event_name)plb):_option))let_17_of_strings=read__17(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__16=(Ag_oj_run.write_nullable(write_next_step))letstring_of__16?(len=1024)x=letob=Bi_outbuf.createleninwrite__16obx;Bi_outbuf.contentsobletread__16=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_next_step)plb):_option))let_16_of_strings=read__16(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__15=(Ag_oj_run.write_nullable(write_json_spel))letstring_of__15?(len=1024)x=letob=Bi_outbuf.createleninwrite__15obx;Bi_outbuf.contentsobletread__15=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_json_spel)plb):_option))let_15_of_strings=read__15(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__14=(Ag_oj_run.write_nullable(write_output_def))letstring_of__14?(len=1024)x=letob=Bi_outbuf.createleninwrite__14obx;Bi_outbuf.contentsobletread__14=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_output_def)plb):_option))let_14_of_strings=read__14(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__13=(Ag_oj_run.write_nullable(write_spel))letstring_of__13?(len=1024)x=letob=Bi_outbuf.createleninwrite__13obx;Bi_outbuf.contentsobletread__13=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_spel)plb):_option))let_13_of_strings=read__13(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__12=(Ag_oj_run.write_nullable(write_dialog_node_type))letstring_of__12?(len=1024)x=letob=Bi_outbuf.createleninwrite__12obx;Bi_outbuf.contentsobletread__12=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_dialog_node_type)plb):_option))let_12_of_strings=read__12(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_dialog_node:_->dialog_node->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"dialog_node\":";(Yojson.Safe.write_string)obx.node_dialog_node;(matchx.node_type_withNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"type\":";(write_dialog_node_type)obx;);(matchx.node_descriptionwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"description\":";(Yojson.Safe.write_string)obx;);(matchx.node_conditionswithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"conditions\":";(write_spel)obx;);(matchx.node_parentwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"parent\":";(Yojson.Safe.write_string)obx;);(matchx.node_previous_siblingwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"previous_sibling\":";(Yojson.Safe.write_string)obx;);(matchx.node_outputwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"output\":";(write_output_def)obx;);(matchx.node_contextwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"context\":";(write_json_spel)obx;);(matchx.node_metadatawithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"metadata\":";(write_json)obx;);(matchx.node_next_stepwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"next_step\":";(write_next_step)obx;);(matchx.node_child_input_kindwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"child_input_kind\":";(Yojson.Safe.write_string)obx;);(matchx.node_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.node_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);(matchx.node_event_namewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"event_name\":";(write_dialog_node_event_name)obx;);(matchx.node_variablewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"variable\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_dialog_node?(len=1024)x=letob=Bi_outbuf.createleninwrite_dialog_nodeobx;Bi_outbuf.contentsobletread_dialog_node=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_node_dialog_node=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_node_type_=ref(None)inletfield_node_description=ref(None)inletfield_node_conditions=ref(None)inletfield_node_parent=ref(None)inletfield_node_previous_sibling=ref(None)inletfield_node_output=ref(None)inletfield_node_context=ref(None)inletfield_node_metadata=ref(None)inletfield_node_next_step=ref(None)inletfield_node_child_input_kind=ref(None)inletfield_node_created=ref(None)inletfield_node_updated=ref(None)inletfield_node_event_name=ref(None)inletfield_node_variable=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='e'then(1)else(-1))|6->(matchString.unsafe_getsposwith|'o'->(ifString.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='t'then(6)else(-1))|'p'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(4)else(-1))|_->(-1))|7->(matchString.unsafe_getsposwith|'c'->(matchString.unsafe_gets(pos+1)with|'o'->(ifString.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='t'then(7)else(-1))|'r'->(ifString.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(11)else(-1))|_->(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(12)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(8)else(-1))|'v'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='a'&&String.unsafe_gets(pos+5)='b'&&String.unsafe_gets(pos+6)='l'&&String.unsafe_gets(pos+7)='e'then(14)else(-1))|_->(-1))|9->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='p'then(9)else(-1))|10->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='d'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='o'&&String.unsafe_gets(pos+8)='n'&&String.unsafe_gets(pos+9)='s'then(3)else(-1))|'e'->(ifString.unsafe_gets(pos+1)='v'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='n'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='m'&&String.unsafe_gets(pos+9)='e'then(13)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'then(matchString.unsafe_gets(pos+1)with|'e'->(ifString.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(2)else(-1))|'i'->(ifString.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='g'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='e'then(0)else(-1))|_->(-1))else(-1))|16->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='h'&&String.unsafe_gets(pos+2)='i'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='p'&&String.unsafe_gets(pos+9)='u'&&String.unsafe_gets(pos+10)='t'&&String.unsafe_gets(pos+11)='_'&&String.unsafe_gets(pos+12)='k'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='d'then(10)else(-1))|'p'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='v'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='o'&&String.unsafe_gets(pos+6)='u'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='s'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='b'&&String.unsafe_gets(pos+12)='l'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='g'then(5)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_node_dialog_node:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_type_:=(Some((read_dialog_node_type)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_description:=(Some((Ag_oj_run.read_string)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_conditions:=(Some((read_spel)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_parent:=(Some((Ag_oj_run.read_string)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_previous_sibling:=(Some((Ag_oj_run.read_string)plb));)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_output:=(Some((read_output_def)plb));)|7->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_context:=(Some((read_json_spel)plb));)|8->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_metadata:=(Some((read_json)plb));)|9->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_next_step:=(Some((read_next_step)plb));)|10->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_child_input_kind:=(Some((Ag_oj_run.read_string)plb));)|11->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_created:=(Some((Ag_oj_run.read_string)plb));)|12->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_updated:=(Some((Ag_oj_run.read_string)plb));)|13->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_event_name:=(Some((read_dialog_node_event_name)plb));)|14->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_variable:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='e'then(1)else(-1))|6->(matchString.unsafe_getsposwith|'o'->(ifString.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='t'then(6)else(-1))|'p'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(4)else(-1))|_->(-1))|7->(matchString.unsafe_getsposwith|'c'->(matchString.unsafe_gets(pos+1)with|'o'->(ifString.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='t'then(7)else(-1))|'r'->(ifString.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(11)else(-1))|_->(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(12)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(8)else(-1))|'v'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='a'&&String.unsafe_gets(pos+5)='b'&&String.unsafe_gets(pos+6)='l'&&String.unsafe_gets(pos+7)='e'then(14)else(-1))|_->(-1))|9->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='p'then(9)else(-1))|10->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='d'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='o'&&String.unsafe_gets(pos+8)='n'&&String.unsafe_gets(pos+9)='s'then(3)else(-1))|'e'->(ifString.unsafe_gets(pos+1)='v'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='n'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='m'&&String.unsafe_gets(pos+9)='e'then(13)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'then(matchString.unsafe_gets(pos+1)with|'e'->(ifString.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(2)else(-1))|'i'->(ifString.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='g'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='e'then(0)else(-1))|_->(-1))else(-1))|16->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='h'&&String.unsafe_gets(pos+2)='i'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='p'&&String.unsafe_gets(pos+9)='u'&&String.unsafe_gets(pos+10)='t'&&String.unsafe_gets(pos+11)='_'&&String.unsafe_gets(pos+12)='k'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='d'then(10)else(-1))|'p'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='v'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='o'&&String.unsafe_gets(pos+6)='u'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='s'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='b'&&String.unsafe_gets(pos+12)='l'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='g'then(5)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_node_dialog_node:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_type_:=(Some((read_dialog_node_type)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_description:=(Some((Ag_oj_run.read_string)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_conditions:=(Some((read_spel)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_parent:=(Some((Ag_oj_run.read_string)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_previous_sibling:=(Some((Ag_oj_run.read_string)plb));)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_output:=(Some((read_output_def)plb));)|7->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_context:=(Some((read_json_spel)plb));)|8->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_metadata:=(Some((read_json)plb));)|9->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_next_step:=(Some((read_next_step)plb));)|10->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_child_input_kind:=(Some((Ag_oj_run.read_string)plb));)|11->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_created:=(Some((Ag_oj_run.read_string)plb));)|12->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_updated:=(Some((Ag_oj_run.read_string)plb));)|13->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_event_name:=(Some((read_dialog_node_event_name)plb));)|14->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_node_variable:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"dialog_node"|];({node_dialog_node=!field_node_dialog_node;node_type_=!field_node_type_;node_description=!field_node_description;node_conditions=!field_node_conditions;node_parent=!field_node_parent;node_previous_sibling=!field_node_previous_sibling;node_output=!field_node_output;node_context=!field_node_context;node_metadata=!field_node_metadata;node_next_step=!field_node_next_step;node_child_input_kind=!field_node_child_input_kind;node_created=!field_node_created;node_updated=!field_node_updated;node_event_name=!field_node_event_name;node_variable=!field_node_variable;}:dialog_node)))letdialog_node_of_strings=read_dialog_node(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__21=(Ag_oj_run.write_nullable(write_workspace_status))letstring_of__21?(len=1024)x=letob=Bi_outbuf.createleninwrite__21obx;Bi_outbuf.contentsobletread__21=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_workspace_status)plb):_option))let_21_of_strings=read__21(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__20=(Ag_oj_run.write_list(write_intent_def))letstring_of__20?(len=1024)x=letob=Bi_outbuf.createleninwrite__20obx;Bi_outbuf.contentsobletread__20=(Ag_oj_run.read_list(read_intent_def))let_20_of_strings=read__20(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__19=(Ag_oj_run.write_list(write_entity_def))letstring_of__19?(len=1024)x=letob=Bi_outbuf.createleninwrite__19obx;Bi_outbuf.contentsobletread__19=(Ag_oj_run.read_list(read_entity_def))let_19_of_strings=read__19(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__18=(Ag_oj_run.write_list(write_dialog_node))letstring_of__18?(len=1024)x=letob=Bi_outbuf.createleninwrite__18obx;Bi_outbuf.contentsobletread__18=(Ag_oj_run.read_list(read_dialog_node))let_18_of_strings=read__18(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_workspace:_->workspace->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"name\":";(write__1)obx.ws_name;(matchx.ws_descriptionwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"description\":";(Yojson.Safe.write_string)obx;);(matchx.ws_languagewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"language\":";(Yojson.Safe.write_string)obx;);(matchx.ws_metadatawithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"metadata\":";(write_json)obx;);ifx.ws_counterexamples<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"counterexamples\":";(write__7)obx.ws_counterexamples;);ifx.ws_dialog_nodes<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"dialog_nodes\":";(write__18)obx.ws_dialog_nodes;);ifx.ws_entities<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"entities\":";(write__19)obx.ws_entities;);ifx.ws_intents<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"intents\":";(write__20)obx.ws_intents;);(matchx.ws_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.ws_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);(matchx.ws_modifiedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"modified\":";(Yojson.Safe.write_string)obx;);(matchx.ws_created_bywithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created_by\":";(Yojson.Safe.write_string)obx;);(matchx.ws_modified_bywithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"modified_by\":";(Yojson.Safe.write_string)obx;);(matchx.ws_workspace_idwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"workspace_id\":";(Yojson.Safe.write_string)obx;);(matchx.ws_statuswithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"status\":";(write_workspace_status)obx;);Bi_outbuf.add_charob'}';)letstring_of_workspace?(len=1024)x=letob=Bi_outbuf.createleninwrite_workspaceobx;Bi_outbuf.contentsobletread_workspace=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_ws_name=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ws_description=ref(None)inletfield_ws_language=ref(None)inletfield_ws_metadata=ref(None)inletfield_ws_counterexamples=ref([])inletfield_ws_dialog_nodes=ref([])inletfield_ws_entities=ref([])inletfield_ws_intents=ref([])inletfield_ws_created=ref(None)inletfield_ws_updated=ref(None)inletfield_ws_modified=ref(None)inletfield_ws_created_by=ref(None)inletfield_ws_modified_by=ref(None)inletfield_ws_workspace_id=ref(None)inletfield_ws_status=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|6->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='t'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='s'then(14)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(8)else(-1))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='s'then(7)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(9)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'e'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(6)else(-1))|'l'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='g'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='g'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|'m'->(matchString.unsafe_gets(pos+1)with|'e'->(ifString.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(3)else(-1))|'o'->(ifString.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='f'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='d'then(10)else(-1))|_->(-1))|_->(-1))|10->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='b'&&String.unsafe_gets(pos+9)='y'then(11)else(-1))|11->(matchString.unsafe_getsposwith|'d'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|'m'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='f'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='d'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='b'&&String.unsafe_gets(pos+10)='y'then(12)else(-1))|_->(-1))|12->(matchString.unsafe_getsposwith|'d'->(ifString.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='g'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='e'&&String.unsafe_gets(pos+11)='s'then(5)else(-1))|'w'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(13)else(-1))|_->(-1))|15->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='u'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='r'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='x'&&String.unsafe_gets(pos+9)='a'&&String.unsafe_gets(pos+10)='m'&&String.unsafe_gets(pos+11)='p'&&String.unsafe_gets(pos+12)='l'&&String.unsafe_gets(pos+13)='e'&&String.unsafe_gets(pos+14)='s'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ws_name:=((read__1)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_language:=(Some((Ag_oj_run.read_string)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_metadata:=(Some((read_json)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_counterexamples:=((read__7)plb);)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_dialog_nodes:=((read__18)plb);)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_entities:=((read__19)plb);)|7->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_intents:=((read__20)plb);)|8->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_created:=(Some((Ag_oj_run.read_string)plb));)|9->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_updated:=(Some((Ag_oj_run.read_string)plb));)|10->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_modified:=(Some((Ag_oj_run.read_string)plb));)|11->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_created_by:=(Some((Ag_oj_run.read_string)plb));)|12->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_modified_by:=(Some((Ag_oj_run.read_string)plb));)|13->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_workspace_id:=(Some((Ag_oj_run.read_string)plb));)|14->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_status:=(Some((read_workspace_status)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|6->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='t'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='s'then(14)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(8)else(-1))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='s'then(7)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(9)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'e'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(6)else(-1))|'l'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='g'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='g'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|'m'->(matchString.unsafe_gets(pos+1)with|'e'->(ifString.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(3)else(-1))|'o'->(ifString.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='f'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='d'then(10)else(-1))|_->(-1))|_->(-1))|10->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='b'&&String.unsafe_gets(pos+9)='y'then(11)else(-1))|11->(matchString.unsafe_getsposwith|'d'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|'m'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='f'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='d'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='b'&&String.unsafe_gets(pos+10)='y'then(12)else(-1))|_->(-1))|12->(matchString.unsafe_getsposwith|'d'->(ifString.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='g'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='d'&&String.unsafe_gets(pos+10)='e'&&String.unsafe_gets(pos+11)='s'then(5)else(-1))|'w'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(13)else(-1))|_->(-1))|15->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='u'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='r'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='x'&&String.unsafe_gets(pos+9)='a'&&String.unsafe_gets(pos+10)='m'&&String.unsafe_gets(pos+11)='p'&&String.unsafe_gets(pos+12)='l'&&String.unsafe_gets(pos+13)='e'&&String.unsafe_gets(pos+14)='s'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ws_name:=((read__1)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_language:=(Some((Ag_oj_run.read_string)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_metadata:=(Some((read_json)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_counterexamples:=((read__7)plb);)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_dialog_nodes:=((read__18)plb);)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_entities:=((read__19)plb);)|7->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_intents:=((read__20)plb);)|8->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_created:=(Some((Ag_oj_run.read_string)plb));)|9->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_updated:=(Some((Ag_oj_run.read_string)plb));)|10->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_modified:=(Some((Ag_oj_run.read_string)plb));)|11->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_created_by:=(Some((Ag_oj_run.read_string)plb));)|12->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_modified_by:=(Some((Ag_oj_run.read_string)plb));)|13->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_workspace_id:=(Some((Ag_oj_run.read_string)plb));)|14->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_ws_status:=(Some((read_workspace_status)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"name"|];({ws_name=!field_ws_name;ws_description=!field_ws_description;ws_language=!field_ws_language;ws_metadata=!field_ws_metadata;ws_counterexamples=!field_ws_counterexamples;ws_dialog_nodes=!field_ws_dialog_nodes;ws_entities=!field_ws_entities;ws_intents=!field_ws_intents;ws_created=!field_ws_created;ws_updated=!field_ws_updated;ws_modified=!field_ws_modified;ws_created_by=!field_ws_created_by;ws_modified_by=!field_ws_modified_by;ws_workspace_id=!field_ws_workspace_id;ws_status=!field_ws_status;}:workspace)))letworkspace_of_strings=read_workspace(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_version:_->version->_=(funobsum->matchsumwith|V_2017_05_26->Bi_outbuf.add_stringob"\"V_2017_05_26\"")letstring_of_version?(len=1024)x=letob=Bi_outbuf.createleninwrite_versionobx;Bi_outbuf.contentsobletread_version=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=12&&String.unsafe_getspos='V'&&String.unsafe_gets(pos+1)='_'&&String.unsafe_gets(pos+2)='2'&&String.unsafe_gets(pos+3)='0'&&String.unsafe_gets(pos+4)='1'&&String.unsafe_gets(pos+5)='7'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='0'&&String.unsafe_gets(pos+8)='5'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='2'&&String.unsafe_gets(pos+11)='6'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(V_2017_05_26:version)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=12&&String.unsafe_getspos='V'&&String.unsafe_gets(pos+1)='_'&&String.unsafe_gets(pos+2)='2'&&String.unsafe_gets(pos+3)='0'&&String.unsafe_gets(pos+4)='1'&&String.unsafe_gets(pos+5)='7'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='0'&&String.unsafe_gets(pos+8)='5'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='2'&&String.unsafe_gets(pos+11)='6'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(V_2017_05_26:version)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letversion_of_strings=read_version(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_sort_workspace_criteria:_->sort_workspace_criteria->_=(funobsum->matchsumwith|Sort_name_incr->Bi_outbuf.add_stringob"\"name\""|Sort_modified_incr->Bi_outbuf.add_stringob"\"modified\""|Sort_workspace_id_incr->Bi_outbuf.add_stringob"\"workspace_id\""|Sort_name_decr->Bi_outbuf.add_stringob"\"-name\""|Sort_modified_decr->Bi_outbuf.add_stringob"\"-modified\""|Sort_workspace_id_decr->Bi_outbuf.add_stringob"\"-workspace_id\"")letstring_of_sort_workspace_criteria?(len=1024)x=letob=Bi_outbuf.createleninwrite_sort_workspace_criteriaobx;Bi_outbuf.contentsobletread_sort_workspace_criteria=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|5->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='e'then(3)else(raise(Exit)))|8->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='f'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='d'then(1)else(raise(Exit)))|9->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='m'&&String.unsafe_gets(pos+2)='o'&&String.unsafe_gets(pos+3)='d'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='f'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='d'then(4)else(raise(Exit)))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(2)else(raise(Exit)))|13->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='w'&&String.unsafe_gets(pos+2)='o'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='k'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='e'&&String.unsafe_gets(pos+10)='_'&&String.unsafe_gets(pos+11)='i'&&String.unsafe_gets(pos+12)='d'then(5)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_name_incr:sort_workspace_criteria)|1->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_modified_incr:sort_workspace_criteria)|2->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_workspace_id_incr:sort_workspace_criteria)|3->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_name_decr:sort_workspace_criteria)|4->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_modified_decr:sort_workspace_criteria)|5->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_workspace_id_decr:sort_workspace_criteria)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|5->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='e'then(3)else(raise(Exit)))|8->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='f'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='d'then(1)else(raise(Exit)))|9->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='m'&&String.unsafe_gets(pos+2)='o'&&String.unsafe_gets(pos+3)='d'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='f'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='d'then(4)else(raise(Exit)))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(2)else(raise(Exit)))|13->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='w'&&String.unsafe_gets(pos+2)='o'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='k'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='e'&&String.unsafe_gets(pos+10)='_'&&String.unsafe_gets(pos+11)='i'&&String.unsafe_gets(pos+12)='d'then(5)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(Sort_name_incr:sort_workspace_criteria)|1->(Sort_modified_incr:sort_workspace_criteria)|2->(Sort_workspace_id_incr:sort_workspace_criteria)|3->(Sort_name_decr:sort_workspace_criteria)|4->(Sort_modified_decr:sort_workspace_criteria)|5->(Sort_workspace_id_decr:sort_workspace_criteria)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letsort_workspace_criteria_of_strings=read_sort_workspace_criteria(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_sort_logs_criteria:_->sort_logs_criteria->_=(funobsum->matchsumwith|Sort_request_timestamp_incr->Bi_outbuf.add_stringob"\"request_timestamp\""|Sort_request_timestamp_decr->Bi_outbuf.add_stringob"\"-name\"")letstring_of_sort_logs_criteria?(len=1024)x=letob=Bi_outbuf.createleninwrite_sort_logs_criteriaobx;Bi_outbuf.contentsobletread_sort_logs_criteria=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|5->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='e'then(1)else(raise(Exit)))|17->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='q'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='m'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='s'&&String.unsafe_gets(pos+13)='t'&&String.unsafe_gets(pos+14)='a'&&String.unsafe_gets(pos+15)='m'&&String.unsafe_gets(pos+16)='p'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_request_timestamp_incr:sort_logs_criteria)|1->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Sort_request_timestamp_decr:sort_logs_criteria)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";trymatchlenwith|5->(ifString.unsafe_getspos='-'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='a'&&String.unsafe_gets(pos+3)='m'&&String.unsafe_gets(pos+4)='e'then(1)else(raise(Exit)))|17->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='q'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='m'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='s'&&String.unsafe_gets(pos+13)='t'&&String.unsafe_gets(pos+14)='a'&&String.unsafe_gets(pos+15)='m'&&String.unsafe_gets(pos+16)='p'then(0)else(raise(Exit)))|_->(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(Sort_request_timestamp_incr:sort_logs_criteria)|1->(Sort_request_timestamp_decr:sort_logs_criteria)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";Ag_oj_run.invalid_variant_tagp(String.subsposlen)inleti=Yojson.Safe.map_identpflbinmatchiwith|_->(assertfalse)))letsort_logs_criteria_of_strings=read_sort_logs_criteria(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__3=(Ag_oj_run.write_nullable(Yojson.Safe.write_int))letstring_of__3?(len=1024)x=letob=Bi_outbuf.createleninwrite__3obx;Bi_outbuf.contentsobletread__3=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((Ag_oj_run.read_int)plb):_option))let_3_of_strings=read__3(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_pagination_response:_->pagination_response->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftruein(matchx.pag_refresh_urlwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"refresh_url\":";(Yojson.Safe.write_string)obx;);(matchx.pag_next_urlwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"next_url\":";(Yojson.Safe.write_string)obx;);(matchx.pag_totalwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"total\":";(Yojson.Safe.write_int)obx;);(matchx.pag_matchedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"matched\":";(Yojson.Safe.write_int)obx;);Bi_outbuf.add_charob'}';)letstring_of_pagination_response?(len=1024)x=letob=Bi_outbuf.createleninwrite_pagination_responseobx;Bi_outbuf.contentsobletread_pagination_response=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_pag_refresh_url=ref(None)inletfield_pag_next_url=ref(None)inletfield_pag_total=ref(None)inletfield_pag_matched=ref(None)intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='l'then(2)else(-1))|7->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='h'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(3)else(-1))|8->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='u'&&String.unsafe_gets(pos+6)='r'&&String.unsafe_gets(pos+7)='l'then(1)else(-1))|11->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='f'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='h'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='u'&&String.unsafe_gets(pos+9)='r'&&String.unsafe_gets(pos+10)='l'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_refresh_url:=(Some((Ag_oj_run.read_string)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_next_url:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_total:=(Some((Ag_oj_run.read_int)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_matched:=(Some((Ag_oj_run.read_int)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='l'then(2)else(-1))|7->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='h'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(3)else(-1))|8->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='u'&&String.unsafe_gets(pos+6)='r'&&String.unsafe_gets(pos+7)='l'then(1)else(-1))|11->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='f'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='h'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='u'&&String.unsafe_gets(pos+9)='r'&&String.unsafe_gets(pos+10)='l'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_refresh_url:=(Some((Ag_oj_run.read_string)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_next_url:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_total:=(Some((Ag_oj_run.read_int)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_pag_matched:=(Some((Ag_oj_run.read_int)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(({pag_refresh_url=!field_pag_refresh_url;pag_next_url=!field_pag_next_url;pag_total=!field_pag_total;pag_matched=!field_pag_matched;}:pagination_response)))letpagination_response_of_strings=read_pagination_response(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_log_message:_->log_message->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"level\":";(Yojson.Safe.write_string)obx.log_msg__level;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"msg\":";(Yojson.Safe.write_string)obx.log_msg__msg;Bi_outbuf.add_charob'}';)letstring_of_log_message?(len=1024)x=letob=Bi_outbuf.createleninwrite_log_messageobx;Bi_outbuf.contentsobletread_log_message=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_log_msg__level=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_log_msg__msg=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|3->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='s'&&String.unsafe_gets(pos+2)='g'then(1)else(-1))|5->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='v'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='l'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_log_msg__level:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_log_msg__msg:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|3->(ifString.unsafe_getspos='m'&&String.unsafe_gets(pos+1)='s'&&String.unsafe_gets(pos+2)='g'then(1)else(-1))|5->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='v'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='l'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_log_msg__level:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_log_msg__msg:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"level";"msg"|];({log_msg__level=!field_log_msg__level;log_msg__msg=!field_log_msg__msg;}:log_message)))letlog_message_of_strings=read_log_message(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__23=(Ag_oj_run.write_list(write_log_message))letstring_of__23?(len=1024)x=letob=Bi_outbuf.createleninwrite__23obx;Bi_outbuf.contentsobletread__23=(Ag_oj_run.read_list(read_log_message))let_23_of_strings=read__23(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_output:_->output->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"log_messages\":";(write__23)obx.out_log_messages;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"text\":";(write__8)obx.out_text;ifx.out_nodes_visited<>[]then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"nodes_visited\":";(write__8)obx.out_nodes_visited;);(matchx.out_errorwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"error\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_output?(len=1024)x=letob=Bi_outbuf.createleninwrite_outputobx;Bi_outbuf.contentsobletread_output=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_out_log_messages=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_out_text=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_out_nodes_visited=ref([])inletfield_out_error=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'then(1)else(-1))|5->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='o'&&String.unsafe_gets(pos+4)='r'then(3)else(-1))|12->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='_'&&String.unsafe_gets(pos+4)='m'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='a'&&String.unsafe_gets(pos+9)='g'&&String.unsafe_gets(pos+10)='e'&&String.unsafe_gets(pos+11)='s'then(0)else(-1))|13->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='v'&&String.unsafe_gets(pos+7)='i'&&String.unsafe_gets(pos+8)='s'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='t'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='d'then(2)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_out_log_messages:=((read__23)plb);bits0:=!bits0lor0x1;|1->field_out_text:=((read__8)plb);bits0:=!bits0lor0x2;|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_out_nodes_visited:=((read__8)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_out_error:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'then(1)else(-1))|5->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='o'&&String.unsafe_gets(pos+4)='r'then(3)else(-1))|12->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='_'&&String.unsafe_gets(pos+4)='m'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='s'&&String.unsafe_gets(pos+8)='a'&&String.unsafe_gets(pos+9)='g'&&String.unsafe_gets(pos+10)='e'&&String.unsafe_gets(pos+11)='s'then(0)else(-1))|13->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='_'&&String.unsafe_gets(pos+6)='v'&&String.unsafe_gets(pos+7)='i'&&String.unsafe_gets(pos+8)='s'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='t'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='d'then(2)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_out_log_messages:=((read__23)plb);bits0:=!bits0lor0x1;|1->field_out_text:=((read__8)plb);bits0:=!bits0lor0x2;|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_out_nodes_visited:=((read__8)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_out_error:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"log_messages";"text"|];({out_log_messages=!field_out_log_messages;out_text=!field_out_text;out_nodes_visited=!field_out_nodes_visited;out_error=!field_out_error;}:output)))letoutput_of_strings=read_output(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_intent:_->intent->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"intent\":";(Yojson.Safe.write_string)obx.i_intent;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"confidence\":";(Yojson.Safe.write_std_float)obx.i_confidence;Bi_outbuf.add_charob'}';)letstring_of_intent?(len=1024)x=letob=Bi_outbuf.createleninwrite_intentobx;Bi_outbuf.contentsobletread_intent=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_i_intent=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_i_confidence=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(0)else(-1))|10->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='f'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='d'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='e'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_i_intent:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_i_confidence:=((Ag_oj_run.read_number)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'then(0)else(-1))|10->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='f'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='d'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='e'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_i_intent:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_i_confidence:=((Ag_oj_run.read_number)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"intent";"confidence"|];({i_intent=!field_i_intent;i_confidence=!field_i_confidence;}:intent)))letintent_of_strings=read_intent(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_input:_->input->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"text\":";(Yojson.Safe.write_string)obx.in_text;Bi_outbuf.add_charob'}';)letstring_of_input?(len=1024)x=letob=Bi_outbuf.createleninwrite_inputobx;Bi_outbuf.contentsobletread_input=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_in_text=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";iflen=4&&String.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'then(0)else(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_in_text:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";iflen=4&&String.unsafe_getspos='t'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='x'&&String.unsafe_gets(pos+3)='t'then(0)else(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_in_text:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"text"|];({in_text=!field_in_text;}:input)))letinput_of_strings=read_input(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__22=(Ag_oj_run.write_list(Yojson.Safe.write_int))letstring_of__22?(len=1024)x=letob=Bi_outbuf.createleninwrite__22obx;Bi_outbuf.contentsobletread__22=(Ag_oj_run.read_list(Ag_oj_run.read_int))let_22_of_strings=read__22(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_entity:_->entity->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"entity\":";(Yojson.Safe.write_string)obx.e_entity;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"location\":";(write__22)obx.e_location;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"value\":";(Yojson.Safe.write_string)obx.e_value;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"confidence\":";(Yojson.Safe.write_std_float)obx.e_confidence;Bi_outbuf.add_charob'}';)letstring_of_entity?(len=1024)x=letob=Bi_outbuf.createleninwrite_entityobx;Bi_outbuf.contentsobletread_entity=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_e_entity=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_e_location=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_e_value=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_e_confidence=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='v'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'then(2)else(-1))|6->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='y'then(0)else(-1))|8->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='c'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='o'&&String.unsafe_gets(pos+7)='n'then(1)else(-1))|10->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='f'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='d'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='e'then(3)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_e_entity:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_e_location:=((read__22)plb);bits0:=!bits0lor0x2;|2->field_e_value:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x4;|3->field_e_confidence:=((Ag_oj_run.read_number)plb);bits0:=!bits0lor0x8;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='v'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'then(2)else(-1))|6->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='y'then(0)else(-1))|8->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='c'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='o'&&String.unsafe_gets(pos+7)='n'then(1)else(-1))|10->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='f'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='d'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='n'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='e'then(3)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_e_entity:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_e_location:=((read__22)plb);bits0:=!bits0lor0x2;|2->field_e_value:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x4;|3->field_e_confidence:=((Ag_oj_run.read_number)plb);bits0:=!bits0lor0x8;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0xfthenAg_oj_run.missing_fieldsp[|!bits0|][|"entity";"location";"value";"confidence"|];({e_entity=!field_e_entity;e_location=!field_e_location;e_value=!field_e_value;e_confidence=!field_e_confidence;}:entity)))letentity_of_strings=read_entity(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__27=(Ag_oj_run.write_list(write_intent))letstring_of__27?(len=1024)x=letob=Bi_outbuf.createleninwrite__27obx;Bi_outbuf.contentsobletread__27=(Ag_oj_run.read_list(read_intent))let_27_of_strings=read__27(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__25=(Ag_oj_run.write_list(write_entity))letstring_of__25?(len=1024)x=letob=Bi_outbuf.createleninwrite__25obx;Bi_outbuf.contentsobletread__25=(Ag_oj_run.read_list(read_entity))let_25_of_strings=read__25(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_message_response:_->message_response->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"input\":";(write_input)obx.msg_rsp_input;ifx.msg_rsp_alternate_intents<>falsethen(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"alternate_intents\":";(Yojson.Safe.write_bool)obx.msg_rsp_alternate_intents;);if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"context\":";(write_json)obx.msg_rsp_context;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"entities\":";(write__25)obx.msg_rsp_entities;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"intents\":";(write__27)obx.msg_rsp_intents;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"output\":";(write_output)obx.msg_rsp_output;Bi_outbuf.add_charob'}';)letstring_of_message_response?(len=1024)x=letob=Bi_outbuf.createleninwrite_message_responseobx;Bi_outbuf.contentsobletread_message_response=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_msg_rsp_input=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_msg_rsp_alternate_intents=ref(false)inletfield_msg_rsp_context=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_msg_rsp_entities=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_msg_rsp_intents=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_msg_rsp_output=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='t'then(0)else(-1))|6->(ifString.unsafe_getspos='o'&&String.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='t'then(5)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='t'then(2)else(-1))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='s'then(4)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(3)else(-1))|17->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='t'&&String.unsafe_gets(pos+13)='e'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='t'&&String.unsafe_gets(pos+16)='s'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_msg_rsp_input:=((read_input)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_rsp_alternate_intents:=((Ag_oj_run.read_bool)plb);)|2->field_msg_rsp_context:=((read_json)plb);bits0:=!bits0lor0x2;|3->field_msg_rsp_entities:=((read__25)plb);bits0:=!bits0lor0x4;|4->field_msg_rsp_intents:=((read__27)plb);bits0:=!bits0lor0x8;|5->field_msg_rsp_output:=((read_output)plb);bits0:=!bits0lor0x10;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='t'then(0)else(-1))|6->(ifString.unsafe_getspos='o'&&String.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='t'then(5)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='t'then(2)else(-1))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='s'then(4)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(3)else(-1))|17->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='t'&&String.unsafe_gets(pos+13)='e'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='t'&&String.unsafe_gets(pos+16)='s'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_msg_rsp_input:=((read_input)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_rsp_alternate_intents:=((Ag_oj_run.read_bool)plb);)|2->field_msg_rsp_context:=((read_json)plb);bits0:=!bits0lor0x2;|3->field_msg_rsp_entities:=((read__25)plb);bits0:=!bits0lor0x4;|4->field_msg_rsp_intents:=((read__27)plb);bits0:=!bits0lor0x8;|5->field_msg_rsp_output:=((read_output)plb);bits0:=!bits0lor0x10;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1fthenAg_oj_run.missing_fieldsp[|!bits0|][|"input";"context";"entities";"intents";"output"|];({msg_rsp_input=!field_msg_rsp_input;msg_rsp_alternate_intents=!field_msg_rsp_alternate_intents;msg_rsp_context=!field_msg_rsp_context;msg_rsp_entities=!field_msg_rsp_entities;msg_rsp_intents=!field_msg_rsp_intents;msg_rsp_output=!field_msg_rsp_output;}:message_response)))letmessage_response_of_strings=read_message_response(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__29=(Ag_oj_run.write_std_option(write_output))letstring_of__29?(len=1024)x=letob=Bi_outbuf.createleninwrite__29obx;Bi_outbuf.contentsobletread__29=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4then(matchString.unsafe_getsposwith|'N'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|'S'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(1)else(raise(Exit)))|_->(raise(Exit)))else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(None:_option)|1->Ag_oj_run.read_until_field_valueplb;letx=(read_output)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Somex:_option)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(None:_option)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='S'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_commaplb;Yojson.Safe.read_spaceplb;letx=(read_output)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_rbrplb;(Somex:_option)|_->(assertfalse)))let_29_of_strings=read__29(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__28=(Ag_oj_run.write_std_option(write__27))letstring_of__28?(len=1024)x=letob=Bi_outbuf.createleninwrite__28obx;Bi_outbuf.contentsobletread__28=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4then(matchString.unsafe_getsposwith|'N'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|'S'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(1)else(raise(Exit)))|_->(raise(Exit)))else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(None:_option)|1->Ag_oj_run.read_until_field_valueplb;letx=(read__27)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Somex:_option)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(None:_option)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='S'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_commaplb;Yojson.Safe.read_spaceplb;letx=(read__27)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_rbrplb;(Somex:_option)|_->(assertfalse)))let_28_of_strings=read__28(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__26=(Ag_oj_run.write_std_option(write__25))letstring_of__26?(len=1024)x=letob=Bi_outbuf.createleninwrite__26obx;Bi_outbuf.contentsobletread__26=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4then(matchString.unsafe_getsposwith|'N'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|'S'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(1)else(raise(Exit)))|_->(raise(Exit)))else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(None:_option)|1->Ag_oj_run.read_until_field_valueplb;letx=(read__25)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Somex:_option)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(None:_option)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='S'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_commaplb;Yojson.Safe.read_spaceplb;letx=(read__25)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_rbrplb;(Somex:_option)|_->(assertfalse)))let_26_of_strings=read__26(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__24=(Ag_oj_run.write_std_option(write_json))letstring_of__24?(len=1024)x=letob=Bi_outbuf.createleninwrite__24obx;Bi_outbuf.contentsobletread__24=(funplb->Yojson.Safe.read_spaceplb;matchYojson.Safe.start_any_variantplbwith|`Edgy_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4then(matchString.unsafe_getsposwith|'N'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit)))|'S'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(1)else(raise(Exit)))|_->(raise(Exit)))else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(None:_option)|1->Ag_oj_run.read_until_field_valueplb;letx=(read_json)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_gtplb;(Somex:_option)|_->(assertfalse))|`Double_quote->(letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='N'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_stringpflbinmatchiwith|0->(None:_option)|_->(assertfalse))|`Square_bracket->(Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";tryiflen=4&&String.unsafe_getspos='S'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(raise(Exit))withExit->(Ag_oj_run.invalid_variant_tagp(String.subsposlen))inleti=Yojson.Safe.map_identpflbinmatchiwith|0->Yojson.Safe.read_spaceplb;Yojson.Safe.read_commaplb;Yojson.Safe.read_spaceplb;letx=(read_json)plbinYojson.Safe.read_spaceplb;Yojson.Safe.read_rbrplb;(Somex:_option)|_->(assertfalse)))let_24_of_strings=read__24(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_message_request:_->message_request->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"input\":";(write_input)obx.msg_req_input;ifx.msg_req_alternate_intents<>falsethen(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"alternate_intents\":";(Yojson.Safe.write_bool)obx.msg_req_alternate_intents;);(matchx.msg_req_contextwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"context\":";(write_json)obx;);(matchx.msg_req_entitieswithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"entities\":";(write__25)obx;);(matchx.msg_req_intentswithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"intents\":";(write__27)obx;);(matchx.msg_req_outputwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"output\":";(write_output)obx;);Bi_outbuf.add_charob'}';)letstring_of_message_request?(len=1024)x=letob=Bi_outbuf.createleninwrite_message_requestobx;Bi_outbuf.contentsobletread_message_request=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_msg_req_input=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_msg_req_alternate_intents=ref(false)inletfield_msg_req_context=ref(None)inletfield_msg_req_entities=ref(None)inletfield_msg_req_intents=ref(None)inletfield_msg_req_output=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='t'then(0)else(-1))|6->(ifString.unsafe_getspos='o'&&String.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='t'then(5)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='t'then(2)else(-1))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='s'then(4)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(3)else(-1))|17->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='t'&&String.unsafe_gets(pos+13)='e'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='t'&&String.unsafe_gets(pos+16)='s'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_msg_req_input:=((read_input)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_alternate_intents:=((Ag_oj_run.read_bool)plb);)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_context:=(Some((read_json)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_entities:=(Some((read__25)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_intents:=(Some((read__27)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_output:=(Some((read_output)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|5->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='t'then(0)else(-1))|6->(ifString.unsafe_getspos='o'&&String.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='t'then(5)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='x'&&String.unsafe_gets(pos+6)='t'then(2)else(-1))|'i'->(ifString.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='s'then(4)else(-1))|_->(-1))|8->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='s'then(3)else(-1))|17->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='l'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='t'&&String.unsafe_gets(pos+13)='e'&&String.unsafe_gets(pos+14)='n'&&String.unsafe_gets(pos+15)='t'&&String.unsafe_gets(pos+16)='s'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_msg_req_input:=((read_input)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_alternate_intents:=((Ag_oj_run.read_bool)plb);)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_context:=(Some((read_json)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_entities:=(Some((read__25)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_intents:=(Some((read__27)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_msg_req_output:=(Some((read_output)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"input"|];({msg_req_input=!field_msg_req_input;msg_req_alternate_intents=!field_msg_req_alternate_intents;msg_req_context=!field_msg_req_context;msg_req_entities=!field_msg_req_entities;msg_req_intents=!field_msg_req_intents;msg_req_output=!field_msg_req_output;}:message_request)))letmessage_request_of_strings=read_message_request(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_log_entry:_->log_entry->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"request\":";(write_message_request)obx.log_request;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"response\":";(write_message_response)obx.log_response;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"log_id\":";(Yojson.Safe.write_string)obx.log_log_id;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"request_timestamp\":";(Yojson.Safe.write_string)obx.log_request_timestamp;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"response_timestamp\":";(Yojson.Safe.write_string)obx.log_response_timestamp;Bi_outbuf.add_charob'}';)letstring_of_log_entry?(len=1024)x=letob=Bi_outbuf.createleninwrite_log_entryobx;Bi_outbuf.contentsobletread_log_entry=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_log_request=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_log_response=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_log_log_id=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_log_request_timestamp=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_log_response_timestamp=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='_'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='d'then(2)else(-1))|7->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='q'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'then(0)else(-1))|8->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='e'then(1)else(-1))|17->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='q'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='m'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='s'&&String.unsafe_gets(pos+13)='t'&&String.unsafe_gets(pos+14)='a'&&String.unsafe_gets(pos+15)='m'&&String.unsafe_gets(pos+16)='p'then(3)else(-1))|18->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='t'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='m'&&String.unsafe_gets(pos+12)='e'&&String.unsafe_gets(pos+13)='s'&&String.unsafe_gets(pos+14)='t'&&String.unsafe_gets(pos+15)='a'&&String.unsafe_gets(pos+16)='m'&&String.unsafe_gets(pos+17)='p'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_log_request:=((read_message_request)plb);bits0:=!bits0lor0x1;|1->field_log_response:=((read_message_response)plb);bits0:=!bits0lor0x2;|2->field_log_log_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x4;|3->field_log_request_timestamp:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x8;|4->field_log_response_timestamp:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x10;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='_'&&String.unsafe_gets(pos+4)='i'&&String.unsafe_gets(pos+5)='d'then(2)else(-1))|7->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='q'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'then(0)else(-1))|8->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='e'then(1)else(-1))|17->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='q'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='s'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='m'&&String.unsafe_gets(pos+11)='e'&&String.unsafe_gets(pos+12)='s'&&String.unsafe_gets(pos+13)='t'&&String.unsafe_gets(pos+14)='a'&&String.unsafe_gets(pos+15)='m'&&String.unsafe_gets(pos+16)='p'then(3)else(-1))|18->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='p'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='n'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='_'&&String.unsafe_gets(pos+9)='t'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='m'&&String.unsafe_gets(pos+12)='e'&&String.unsafe_gets(pos+13)='s'&&String.unsafe_gets(pos+14)='t'&&String.unsafe_gets(pos+15)='a'&&String.unsafe_gets(pos+16)='m'&&String.unsafe_gets(pos+17)='p'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_log_request:=((read_message_request)plb);bits0:=!bits0lor0x1;|1->field_log_response:=((read_message_response)plb);bits0:=!bits0lor0x2;|2->field_log_log_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x4;|3->field_log_request_timestamp:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x8;|4->field_log_response_timestamp:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x10;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1fthenAg_oj_run.missing_fieldsp[|!bits0|][|"request";"response";"log_id";"request_timestamp";"response_timestamp"|];({log_request=!field_log_request;log_response=!field_log_response;log_log_id=!field_log_log_id;log_request_timestamp=!field_log_request_timestamp;log_response_timestamp=!field_log_response_timestamp;}:log_entry)))letlog_entry_of_strings=read_log_entry(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__31=(Ag_oj_run.write_list(write_log_entry))letstring_of__31?(len=1024)x=letob=Bi_outbuf.createleninwrite__31obx;Bi_outbuf.contentsobletread__31=(Ag_oj_run.read_list(read_log_entry))let_31_of_strings=read__31(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_logs_response:_->logs_response->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"logs\":";(write__31)obx.logs_rsp_logs;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"pagination\":";(write_pagination_response)obx.logs_rsp_pagination;Bi_outbuf.add_charob'}';)letstring_of_logs_response?(len=1024)x=letob=Bi_outbuf.createleninwrite_logs_responseobx;Bi_outbuf.contentsobletread_logs_response=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_logs_rsp_logs=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_logs_rsp_pagination=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='s'then(0)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='i'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='n'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_logs_rsp_logs:=((read__31)plb);bits0:=!bits0lor0x1;|1->field_logs_rsp_pagination:=((read_pagination_response)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='l'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='s'then(0)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='i'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='n'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_logs_rsp_logs:=((read__31)plb);bits0:=!bits0lor0x1;|1->field_logs_rsp_pagination:=((read_pagination_response)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"logs";"pagination"|];({logs_rsp_logs=!field_logs_rsp_logs;logs_rsp_pagination=!field_logs_rsp_pagination;}:logs_response)))letlogs_response_of_strings=read_logs_response(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__30=(Ag_oj_run.write_nullable(write_sort_logs_criteria))letstring_of__30?(len=1024)x=letob=Bi_outbuf.createleninwrite__30obx;Bi_outbuf.contentsobletread__30=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_sort_logs_criteria)plb):_option))let_30_of_strings=read__30(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_logs_request:_->logs_request->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftruein(matchx.logs_filterwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"filter\":";(Yojson.Safe.write_string)obx;);(matchx.logs_sortwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"sort\":";(write_sort_logs_criteria)obx;);(matchx.logs_page_limitwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"page_limit\":";(Yojson.Safe.write_int)obx;);(matchx.logs_cursorwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"cursor\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_logs_request?(len=1024)x=letob=Bi_outbuf.createleninwrite_logs_requestobx;Bi_outbuf.contentsobletread_logs_request=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_logs_filter=ref(None)inletfield_logs_sort=ref(None)inletfield_logs_page_limit=ref(None)inletfield_logs_cursor=ref(None)intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='t'then(1)else(-1))|6->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='s'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='r'then(3)else(-1))|'f'->(ifString.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='r'then(0)else(-1))|_->(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='m'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='t'then(2)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_filter:=(Some((Ag_oj_run.read_string)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_sort:=(Some((read_sort_logs_criteria)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_page_limit:=(Some((Ag_oj_run.read_int)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_cursor:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='t'then(1)else(-1))|6->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='s'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='r'then(3)else(-1))|'f'->(ifString.unsafe_gets(pos+1)='i'&&String.unsafe_gets(pos+2)='l'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='r'then(0)else(-1))|_->(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='m'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='t'then(2)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_filter:=(Some((Ag_oj_run.read_string)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_sort:=(Some((read_sort_logs_criteria)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_page_limit:=(Some((Ag_oj_run.read_int)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_logs_cursor:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(({logs_filter=!field_logs_filter;logs_sort=!field_logs_sort;logs_page_limit=!field_logs_page_limit;logs_cursor=!field_logs_cursor;}:logs_request)))letlogs_request_of_strings=read_logs_request(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__6=(Ag_oj_run.write_list(write_workspace_response))letstring_of__6?(len=1024)x=letob=Bi_outbuf.createleninwrite__6obx;Bi_outbuf.contentsobletread__6=(Ag_oj_run.read_list(read_workspace_response))let_6_of_strings=read__6(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_list_workspaces_response:_->list_workspaces_response->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"workspaces\":";(write__6)obx.list_ws_rsp_workspaces;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"pagination\":";(write_pagination_response)obx.list_ws_rsp_pagination;Bi_outbuf.add_charob'}';)letstring_of_list_workspaces_response?(len=1024)x=letob=Bi_outbuf.createleninwrite_list_workspaces_responseobx;Bi_outbuf.contentsobletread_list_workspaces_response=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_list_ws_rsp_workspaces=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_list_ws_rsp_pagination=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";iflen=10then(matchString.unsafe_getsposwith|'p'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='i'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='n'then(1)else(-1))|'w'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='s'then(0)else(-1))|_->(-1))else(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_list_ws_rsp_workspaces:=((read__6)plb);bits0:=!bits0lor0x1;|1->field_list_ws_rsp_pagination:=((read_pagination_response)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";iflen=10then(matchString.unsafe_getsposwith|'p'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='i'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='i'&&String.unsafe_gets(pos+8)='o'&&String.unsafe_gets(pos+9)='n'then(1)else(-1))|'w'->(ifString.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='s'then(0)else(-1))|_->(-1))else(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_list_ws_rsp_workspaces:=((read__6)plb);bits0:=!bits0lor0x1;|1->field_list_ws_rsp_pagination:=((read_pagination_response)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"workspaces";"pagination"|];({list_ws_rsp_workspaces=!field_list_ws_rsp_workspaces;list_ws_rsp_pagination=!field_list_ws_rsp_pagination;}:list_workspaces_response)))letlist_workspaces_response_of_strings=read_list_workspaces_response(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__5=(Ag_oj_run.write_nullable(write_sort_workspace_criteria))letstring_of__5?(len=1024)x=letob=Bi_outbuf.createleninwrite__5obx;Bi_outbuf.contentsobletread__5=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((read_sort_workspace_criteria)plb):_option))let_5_of_strings=read__5(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite__4=(Ag_oj_run.write_nullable(Yojson.Safe.write_bool))letstring_of__4?(len=1024)x=letob=Bi_outbuf.createleninwrite__4obx;Bi_outbuf.contentsobletread__4=(funplb->Yojson.Safe.read_spaceplb;(ifYojson.Safe.read_null_if_possibleplbthenNoneelseSome((Ag_oj_run.read_bool)plb):_option))let_4_of_strings=read__4(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_list_workspaces_request:_->list_workspaces_request->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftruein(matchx.list_ws_req_page_limitwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"page_limit\":";(Yojson.Safe.write_int)obx;);(matchx.list_ws_req_include_countwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"include_count\":";(Yojson.Safe.write_bool)obx;);(matchx.list_ws_req_sortwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"sort\":";(write_sort_workspace_criteria)obx;);(matchx.list_ws_req_cursorwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"cursor\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_list_workspaces_request?(len=1024)x=letob=Bi_outbuf.createleninwrite_list_workspaces_requestobx;Bi_outbuf.contentsobletread_list_workspaces_request=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_list_ws_req_page_limit=ref(None)inletfield_list_ws_req_include_count=ref(None)inletfield_list_ws_req_sort=ref(None)inletfield_list_ws_req_cursor=ref(None)intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='t'then(2)else(-1))|6->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='s'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='r'then(3)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='m'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='t'then(0)else(-1))|13->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='c'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='d'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='u'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='t'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_page_limit:=(Some((Ag_oj_run.read_int)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_include_count:=(Some((Ag_oj_run.read_bool)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_sort:=(Some((read_sort_workspace_criteria)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_cursor:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='t'then(2)else(-1))|6->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='u'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='s'&&String.unsafe_gets(pos+4)='o'&&String.unsafe_gets(pos+5)='r'then(3)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='g'&&String.unsafe_gets(pos+3)='e'&&String.unsafe_gets(pos+4)='_'&&String.unsafe_gets(pos+5)='l'&&String.unsafe_gets(pos+6)='i'&&String.unsafe_gets(pos+7)='m'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='t'then(0)else(-1))|13->(ifString.unsafe_getspos='i'&&String.unsafe_gets(pos+1)='n'&&String.unsafe_gets(pos+2)='c'&&String.unsafe_gets(pos+3)='l'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='d'&&String.unsafe_gets(pos+6)='e'&&String.unsafe_gets(pos+7)='_'&&String.unsafe_gets(pos+8)='c'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='u'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='t'then(1)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_page_limit:=(Some((Ag_oj_run.read_int)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_include_count:=(Some((Ag_oj_run.read_bool)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_sort:=(Some((read_sort_workspace_criteria)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_list_ws_req_cursor:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(({list_ws_req_page_limit=!field_list_ws_req_page_limit;list_ws_req_include_count=!field_list_ws_req_include_count;list_ws_req_sort=!field_list_ws_req_sort;list_ws_req_cursor=!field_list_ws_req_cursor;}:list_workspaces_request)))letlist_workspaces_request_of_strings=read_list_workspaces_request(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_get_workspace_request:_->get_workspace_request->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"workspace_id\":";(Yojson.Safe.write_string)obx.get_ws_req_workspace_id;(matchx.get_ws_req_exportwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"export\":";(Yojson.Safe.write_bool)obx;);Bi_outbuf.add_charob'}';)letstring_of_get_workspace_request?(len=1024)x=letob=Bi_outbuf.createleninwrite_get_workspace_requestobx;Bi_outbuf.contentsobletread_get_workspace_request=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_get_ws_req_workspace_id=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_get_ws_req_export=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='x'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='o'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='t'then(1)else(-1))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_get_ws_req_workspace_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_get_ws_req_export:=(Some((Ag_oj_run.read_bool)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='e'&&String.unsafe_gets(pos+1)='x'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='o'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='t'then(1)else(-1))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_get_ws_req_workspace_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_get_ws_req_export:=(Some((Ag_oj_run.read_bool)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"workspace_id"|];({get_ws_req_workspace_id=!field_get_ws_req_workspace_id;get_ws_req_export=!field_get_ws_req_export;}:get_workspace_request)))letget_workspace_request_of_strings=read_get_workspace_request(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_credential:_->credential->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinifx.cred_url<>"https://gateway.watsonplatform.net/conversation/api"then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"url\":";(Yojson.Safe.write_string)obx.cred_url;);if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"password\":";(Yojson.Safe.write_string)obx.cred_password;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"username\":";(Yojson.Safe.write_string)obx.cred_username;Bi_outbuf.add_charob'}';)letstring_of_credential?(len=1024)x=letob=Bi_outbuf.createleninwrite_credentialobx;Bi_outbuf.contentsobletread_credential=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_cred_url=ref("https://gateway.watsonplatform.net/conversation/api")inletfield_cred_password=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_cred_username=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|3->(ifString.unsafe_getspos='u'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='l'then(0)else(-1))|8->(matchString.unsafe_getsposwith|'p'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='s'&&String.unsafe_gets(pos+4)='w'&&String.unsafe_gets(pos+5)='o'&&String.unsafe_gets(pos+6)='r'&&String.unsafe_gets(pos+7)='d'then(1)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='s'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='m'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_cred_url:=((Ag_oj_run.read_string)plb);)|1->field_cred_password:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|2->field_cred_username:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|3->(ifString.unsafe_getspos='u'&&String.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='l'then(0)else(-1))|8->(matchString.unsafe_getsposwith|'p'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='s'&&String.unsafe_gets(pos+4)='w'&&String.unsafe_gets(pos+5)='o'&&String.unsafe_gets(pos+6)='r'&&String.unsafe_gets(pos+7)='d'then(1)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='s'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='r'&&String.unsafe_gets(pos+4)='n'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='m'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|_->(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_cred_url:=((Ag_oj_run.read_string)plb);)|1->field_cred_password:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|2->field_cred_username:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"password";"username"|];({cred_url=!field_cred_url;cred_password=!field_cred_password;cred_username=!field_cred_username;}:credential)))letcredential_of_strings=read_credential(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_create_response:_->create_response->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftruein(matchx.crea_rsp_namewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"name\":";(Yojson.Safe.write_string)obx;);(matchx.crea_rsp_descriptionwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"description\":";(Yojson.Safe.write_string)obx;);(matchx.crea_rsp_languagewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"language\":";(Yojson.Safe.write_string)obx;);(matchx.crea_rsp_metadatawithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"metadata\":";(write_json)obx;);(matchx.crea_rsp_createdwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"created\":";(Yojson.Safe.write_string)obx;);(matchx.crea_rsp_updatedwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"updated\":";(Yojson.Safe.write_string)obx;);(matchx.crea_rsp_workspace_idwithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"workspace_id\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_create_response?(len=1024)x=letob=Bi_outbuf.createleninwrite_create_responseobx;Bi_outbuf.contentsobletread_create_response=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_crea_rsp_name=ref(None)inletfield_crea_rsp_description=ref(None)inletfield_crea_rsp_language=ref(None)inletfield_crea_rsp_metadata=ref(None)inletfield_crea_rsp_created=ref(None)inletfield_crea_rsp_updated=ref(None)inletfield_crea_rsp_workspace_id=ref(None)intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(5)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'l'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='g'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='g'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(3)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(6)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_name:=(Some((Ag_oj_run.read_string)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_language:=(Some((Ag_oj_run.read_string)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_metadata:=(Some((read_json)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_created:=(Some((Ag_oj_run.read_string)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_updated:=(Some((Ag_oj_run.read_string)plb));)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_workspace_id:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(ifString.unsafe_getspos='n'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|7->(matchString.unsafe_getsposwith|'c'->(ifString.unsafe_gets(pos+1)='r'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(4)else(-1))|'u'->(ifString.unsafe_gets(pos+1)='p'&&String.unsafe_gets(pos+2)='d'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='t'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='d'then(5)else(-1))|_->(-1))|8->(matchString.unsafe_getsposwith|'l'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='g'&&String.unsafe_gets(pos+4)='u'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='g'&&String.unsafe_gets(pos+7)='e'then(2)else(-1))|'m'->(ifString.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='t'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='d'&&String.unsafe_gets(pos+5)='a'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='a'then(3)else(-1))|_->(-1))|11->(ifString.unsafe_getspos='d'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='c'&&String.unsafe_gets(pos+4)='r'&&String.unsafe_gets(pos+5)='i'&&String.unsafe_gets(pos+6)='p'&&String.unsafe_gets(pos+7)='t'&&String.unsafe_gets(pos+8)='i'&&String.unsafe_gets(pos+9)='o'&&String.unsafe_gets(pos+10)='n'then(1)else(-1))|12->(ifString.unsafe_getspos='w'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='k'&&String.unsafe_gets(pos+4)='s'&&String.unsafe_gets(pos+5)='p'&&String.unsafe_gets(pos+6)='a'&&String.unsafe_gets(pos+7)='c'&&String.unsafe_gets(pos+8)='e'&&String.unsafe_gets(pos+9)='_'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='d'then(6)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_name:=(Some((Ag_oj_run.read_string)plb));)|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_description:=(Some((Ag_oj_run.read_string)plb));)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_language:=(Some((Ag_oj_run.read_string)plb));)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_metadata:=(Some((read_json)plb));)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_created:=(Some((Ag_oj_run.read_string)plb));)|5->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_updated:=(Some((Ag_oj_run.read_string)plb));)|6->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_crea_rsp_workspace_id:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(({crea_rsp_name=!field_crea_rsp_name;crea_rsp_description=!field_crea_rsp_description;crea_rsp_language=!field_crea_rsp_language;crea_rsp_metadata=!field_crea_rsp_metadata;crea_rsp_created=!field_crea_rsp_created;crea_rsp_updated=!field_crea_rsp_updated;crea_rsp_workspace_id=!field_crea_rsp_workspace_id;}:create_response)))letcreate_response_of_strings=read_create_response(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_context:_->context->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"conversation_id\":";(Yojson.Safe.write_string)obx.ctx_conversation_id;if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"system\":";(write_json)obx.ctx_system;Bi_outbuf.add_charob'}';)letstring_of_context?(len=1024)x=letob=Bi_outbuf.createleninwrite_contextobx;Bi_outbuf.contentsobletread_context=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_ctx_conversation_id=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_ctx_system=ref(Obj.magic(Sys.opaque_identity0.0))inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='m'then(1)else(-1))|15->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='v'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='r'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='o'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='_'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='d'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ctx_conversation_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_ctx_system:=((read_json)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|6->(ifString.unsafe_getspos='s'&&String.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='t'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='m'then(1)else(-1))|15->(ifString.unsafe_getspos='c'&&String.unsafe_gets(pos+1)='o'&&String.unsafe_gets(pos+2)='n'&&String.unsafe_gets(pos+3)='v'&&String.unsafe_gets(pos+4)='e'&&String.unsafe_gets(pos+5)='r'&&String.unsafe_gets(pos+6)='s'&&String.unsafe_gets(pos+7)='a'&&String.unsafe_gets(pos+8)='t'&&String.unsafe_gets(pos+9)='i'&&String.unsafe_gets(pos+10)='o'&&String.unsafe_gets(pos+11)='n'&&String.unsafe_gets(pos+12)='_'&&String.unsafe_gets(pos+13)='i'&&String.unsafe_gets(pos+14)='d'then(0)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_ctx_conversation_id:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->field_ctx_system:=((read_json)plb);bits0:=!bits0lor0x2;|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x3thenAg_oj_run.missing_fieldsp[|!bits0|][|"conversation_id";"system"|];({ctx_conversation_id=!field_ctx_conversation_id;ctx_system=!field_ctx_system;}:context)))letcontext_of_strings=read_context(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_action_def:_->action_def->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"name\":";(Yojson.Safe.write_string)obx.act_def_name;ifx.act_def_agent<>"client"then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"agent\":";(Yojson.Safe.write_string)obx.act_def_agent;);ifx.act_def_type_<>"conversation"then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"type\":";(Yojson.Safe.write_string)obx.act_def_type_;);ifx.act_def_parameters<>`Nullthen(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"parameters\":";(write_json_spel)obx.act_def_parameters;);(matchx.act_def_result_variablewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"result_variable\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_action_def?(len=1024)x=letob=Bi_outbuf.createleninwrite_action_defobx;Bi_outbuf.contentsobletread_action_def=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_act_def_name=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_act_def_agent=ref("client")inletfield_act_def_type_=ref("conversation")inletfield_act_def_parameters=ref(`Null)inletfield_act_def_result_variable=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(matchString.unsafe_getsposwith|'n'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|'t'->(ifString.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='e'then(2)else(-1))|_->(-1))|5->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='g'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'then(1)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='m'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='r'&&String.unsafe_gets(pos+9)='s'then(3)else(-1))|15->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='l'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='v'&&String.unsafe_gets(pos+8)='a'&&String.unsafe_gets(pos+9)='r'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='a'&&String.unsafe_gets(pos+12)='b'&&String.unsafe_gets(pos+13)='l'&&String.unsafe_gets(pos+14)='e'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_act_def_name:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_agent:=((Ag_oj_run.read_string)plb);)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_type_:=((Ag_oj_run.read_string)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_parameters:=((read_json_spel)plb);)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_result_variable:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(matchString.unsafe_getsposwith|'n'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|'t'->(ifString.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='e'then(2)else(-1))|_->(-1))|5->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='g'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'then(1)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='m'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='r'&&String.unsafe_gets(pos+9)='s'then(3)else(-1))|15->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='l'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='v'&&String.unsafe_gets(pos+8)='a'&&String.unsafe_gets(pos+9)='r'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='a'&&String.unsafe_gets(pos+12)='b'&&String.unsafe_gets(pos+13)='l'&&String.unsafe_gets(pos+14)='e'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_act_def_name:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_agent:=((Ag_oj_run.read_string)plb);)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_type_:=((Ag_oj_run.read_string)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_parameters:=((read_json_spel)plb);)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_def_result_variable:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"name"|];({act_def_name=!field_act_def_name;act_def_agent=!field_act_def_agent;act_def_type_=!field_act_def_type_;act_def_parameters=!field_act_def_parameters;act_def_result_variable=!field_act_def_result_variable;}:action_def)))letaction_def_of_strings=read_action_def(Yojson.Safe.init_lexer())(Lexing.from_strings)letwrite_action:_->action->_=(funobx->Bi_outbuf.add_charob'{';letis_first=reftrueinif!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"name\":";(Yojson.Safe.write_string)obx.act_name;ifx.act_agent<>"client"then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"agent\":";(Yojson.Safe.write_string)obx.act_agent;);ifx.act_type_<>"conversation"then(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"type\":";(Yojson.Safe.write_string)obx.act_type_;);ifx.act_parameters<>`Nullthen(if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"parameters\":";(write_json)obx.act_parameters;);(matchx.act_result_variablewithNone->()|Somex->if!is_firstthenis_first:=falseelseBi_outbuf.add_charob',';Bi_outbuf.add_stringob"\"result_variable\":";(Yojson.Safe.write_string)obx;);Bi_outbuf.add_charob'}';)letstring_of_action?(len=1024)x=letob=Bi_outbuf.createleninwrite_actionobx;Bi_outbuf.contentsobletread_action=(funplb->Yojson.Safe.read_spaceplb;Yojson.Safe.read_lcurlplb;letfield_act_name=ref(Obj.magic(Sys.opaque_identity0.0))inletfield_act_agent=ref("client")inletfield_act_type_=ref("conversation")inletfield_act_parameters=ref(`Null)inletfield_act_result_variable=ref(None)inletbits0=ref0intryYojson.Safe.read_spaceplb;Yojson.Safe.read_object_endlb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(matchString.unsafe_getsposwith|'n'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|'t'->(ifString.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='e'then(2)else(-1))|_->(-1))|5->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='g'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'then(1)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='m'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='r'&&String.unsafe_gets(pos+9)='s'then(3)else(-1))|15->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='l'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='v'&&String.unsafe_gets(pos+8)='a'&&String.unsafe_gets(pos+9)='r'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='a'&&String.unsafe_gets(pos+12)='b'&&String.unsafe_gets(pos+13)='l'&&String.unsafe_gets(pos+14)='e'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_act_name:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_agent:=((Ag_oj_run.read_string)plb);)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_type_:=((Ag_oj_run.read_string)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_parameters:=((read_json)plb);)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_result_variable:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));whiletruedoYojson.Safe.read_spaceplb;Yojson.Safe.read_object_sepplb;Yojson.Safe.read_spaceplb;letf=funsposlen->ifpos<0||len<0||pos+len>String.lengthstheninvalid_arg"out-of-bounds substring position or length";matchlenwith|4->(matchString.unsafe_getsposwith|'n'->(ifString.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='m'&&String.unsafe_gets(pos+3)='e'then(0)else(-1))|'t'->(ifString.unsafe_gets(pos+1)='y'&&String.unsafe_gets(pos+2)='p'&&String.unsafe_gets(pos+3)='e'then(2)else(-1))|_->(-1))|5->(ifString.unsafe_getspos='a'&&String.unsafe_gets(pos+1)='g'&&String.unsafe_gets(pos+2)='e'&&String.unsafe_gets(pos+3)='n'&&String.unsafe_gets(pos+4)='t'then(1)else(-1))|10->(ifString.unsafe_getspos='p'&&String.unsafe_gets(pos+1)='a'&&String.unsafe_gets(pos+2)='r'&&String.unsafe_gets(pos+3)='a'&&String.unsafe_gets(pos+4)='m'&&String.unsafe_gets(pos+5)='e'&&String.unsafe_gets(pos+6)='t'&&String.unsafe_gets(pos+7)='e'&&String.unsafe_gets(pos+8)='r'&&String.unsafe_gets(pos+9)='s'then(3)else(-1))|15->(ifString.unsafe_getspos='r'&&String.unsafe_gets(pos+1)='e'&&String.unsafe_gets(pos+2)='s'&&String.unsafe_gets(pos+3)='u'&&String.unsafe_gets(pos+4)='l'&&String.unsafe_gets(pos+5)='t'&&String.unsafe_gets(pos+6)='_'&&String.unsafe_gets(pos+7)='v'&&String.unsafe_gets(pos+8)='a'&&String.unsafe_gets(pos+9)='r'&&String.unsafe_gets(pos+10)='i'&&String.unsafe_gets(pos+11)='a'&&String.unsafe_gets(pos+12)='b'&&String.unsafe_gets(pos+13)='l'&&String.unsafe_gets(pos+14)='e'then(4)else(-1))|_->(-1)inleti=Yojson.Safe.map_identpflbinAg_oj_run.read_until_field_valueplb;(matchiwith|0->field_act_name:=((Ag_oj_run.read_string)plb);bits0:=!bits0lor0x1;|1->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_agent:=((Ag_oj_run.read_string)plb);)|2->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_type_:=((Ag_oj_run.read_string)plb);)|3->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_parameters:=((read_json)plb);)|4->ifnot(Yojson.Safe.read_null_if_possibleplb)then(field_act_result_variable:=(Some((Ag_oj_run.read_string)plb));)|_->(Yojson.Safe.skip_jsonplb));done;assertfalse;withYojson.End_of_object->(if!bits0<>0x1thenAg_oj_run.missing_fieldsp[|!bits0|][|"name"|];({act_name=!field_act_name;act_agent=!field_act_agent;act_type_=!field_act_type_;act_parameters=!field_act_parameters;act_result_variable=!field_act_result_variable;}:action)))letaction_of_strings=read_action(Yojson.Safe.init_lexer())(Lexing.from_strings)