| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574 |
- (function(){"use strict";try{if(typeof document!="undefined"){var o=document.createElement("style");o.appendChild(document.createTextNode(".code-diff-view[theme=light]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #1F2328;--color-diff-blob-addition-fg: #1F2328;--color-diff-blob-addition-num-bg: #ccffd8;--color-diff-blob-addition-line-bg: #e6ffec;--color-diff-blob-addition-word-bg: #abf2bc;--color-diff-blob-deletion-num-text: #1F2328;--color-diff-blob-deletion-fg: #1F2328;--color-diff-blob-deletion-num-bg: #ffd7d5;--color-diff-blob-deletion-line-bg: #ffebe9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,.4);--color-diff-blob-expander-icon: #656d76;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(31,35,40,.15);--color-diffstat-addition-border: rgba(31,35,40,.15);--color-diffstat-addition-bg: #1f883d;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #6639ba;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #1F2328;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #656d76;--color-codemirror-cursor: #1F2328;--color-codemirror-selection-bg: rgba(84,174,255,.4);--color-codemirror-activeline-bg: rgba(234,238,242,.5);--color-codemirror-matchingbracket-text: #1F2328;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24292f;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #f6f8fa;--color-checks-text-secondary: #8c959f;--color-checks-text-link: #54aeff;--color-checks-btn-icon: #afb8c1;--color-checks-btn-hover-icon: #f6f8fa;--color-checks-btn-hover-bg: rgba(255,255,255,.125);--color-checks-input-text: #eaeef2;--color-checks-input-placeholder-text: #8c959f;--color-checks-input-focus-text: #8c959f;--color-checks-input-bg: #32383f;--color-checks-input-shadow: none;--color-checks-donut-error: #fa4549;--color-checks-donut-pending: #bf8700;--color-checks-donut-success: #1f883d;--color-checks-donut-neutral: #afb8c1;--color-checks-dropdown-text: #afb8c1;--color-checks-dropdown-bg: #32383f;--color-checks-dropdown-border: #424a53;--color-checks-dropdown-shadow: rgba(31,35,40,.3);--color-checks-dropdown-hover-text: #f6f8fa;--color-checks-dropdown-hover-bg: #424a53;--color-checks-dropdown-btn-hover-text: #f6f8fa;--color-checks-dropdown-btn-hover-bg: #32383f;--color-checks-scrollbar-thumb-bg: #57606a;--color-checks-header-label-text: #d0d7de;--color-checks-header-label-open-text: #f6f8fa;--color-checks-header-border: #32383f;--color-checks-header-icon: #8c959f;--color-checks-line-text: #d0d7de;--color-checks-line-num-text: rgba(140,149,159,.75);--color-checks-line-timestamp-text: #8c959f;--color-checks-line-hover-bg: #32383f;--color-checks-line-selected-bg: rgba(33,139,255,.15);--color-checks-line-selected-num-text: #54aeff;--color-checks-line-dt-fm-text: #24292f;--color-checks-line-dt-fm-bg: #9a6700;--color-checks-gate-bg: rgba(125,78,0,.15);--color-checks-gate-text: #d0d7de;--color-checks-gate-waiting-text: #d4a72c;--color-checks-step-header-open-bg: #32383f;--color-checks-step-error-text: #ff8182;--color-checks-step-warning-text: #d4a72c;--color-checks-logline-text: #8c959f;--color-checks-logline-num-text: rgba(140,149,159,.75);--color-checks-logline-debug-text: #c297ff;--color-checks-logline-error-text: #d0d7de;--color-checks-logline-error-num-text: #ff8182;--color-checks-logline-error-bg: rgba(164,14,38,.15);--color-checks-logline-warning-text: #d0d7de;--color-checks-logline-warning-num-text: #d4a72c;--color-checks-logline-warning-bg: rgba(125,78,0,.15);--color-checks-logline-command-text: #54aeff;--color-checks-logline-section-text: #4ac26b;--color-checks-ansi-black: #24292f;--color-checks-ansi-black-bright: #32383f;--color-checks-ansi-white: #d0d7de;--color-checks-ansi-white-bright: #d0d7de;--color-checks-ansi-gray: #8c959f;--color-checks-ansi-red: #ff8182;--color-checks-ansi-red-bright: #ffaba8;--color-checks-ansi-green: #4ac26b;--color-checks-ansi-green-bright: #6fdd8b;--color-checks-ansi-yellow: #d4a72c;--color-checks-ansi-yellow-bright: #eac54f;--color-checks-ansi-blue: #54aeff;--color-checks-ansi-blue-bright: #80ccff;--color-checks-ansi-magenta: #c297ff;--color-checks-ansi-magenta-bright: #d8b9ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #24292f;--color-project-sidebar-bg: #ffffff;--color-project-gradient-in: #ffffff;--color-project-gradient-out: rgba(255,255,255,0);--color-mktg-btn-bg: #1b1f23;--color-mktg-btn-shadow-outline: rgb(0 0 0 / 15%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(0 0 0 / 15%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 3px 2px rgba(0, 0, 0, .07), 0 7px 5px rgba(0, 0, 0, .04), 0 12px 10px rgba(0, 0, 0, .03), 0 22px 18px rgba(0, 0, 0, .03), 0 42px 33px rgba(0, 0, 0, .02), 0 100px 80px rgba(0, 0, 0, .02);--color-mktg-btn-shadow-hover-muted: rgb(0 0 0 / 70%) 0 0 0 2px inset;--color-control-border-color-emphasis: #858F99;--color-avatar-bg: #ffffff;--color-avatar-border: rgba(31,35,40,.15);--color-avatar-stack-fade: #afb8c1;--color-avatar-stack-fade-more: #d0d7de;--color-avatar-child-shadow: 0 0 0 2px rgba(255,255,255,.8);--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: rgba(0,0,0,0);--color-select-menu-tap-highlight: rgba(175,184,193,.5);--color-select-menu-tap-focus-bg: #b6e3ff;--color-overlay-shadow: 0 1px 3px rgba(31,35,40,.12), 0 8px 24px rgba(66,74,83,.12);--color-overlay-backdrop: rgba(140,149,159,.2);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #24292f;--color-header-divider: #57606a;--color-header-logo: #ffffff;--color-header-search-bg: #24292f;--color-header-search-border: #57606a;--color-sidenav-selected-bg: #ffffff;--color-menu-bg-active: rgba(0,0,0,0);--color-input-disabled-bg: rgba(175,184,193,.2);--color-timeline-badge-bg: #eaeef2;--color-ansi-black: #24292f;--color-ansi-black-bright: #57606a;--color-ansi-white: #6e7781;--color-ansi-white-bright: #8c959f;--color-ansi-gray: #6e7781;--color-ansi-red: #cf222e;--color-ansi-red-bright: #a40e26;--color-ansi-green: #116329;--color-ansi-green-bright: #1a7f37;--color-ansi-yellow: #4d2d00;--color-ansi-yellow-bright: #633c01;--color-ansi-blue: #0969da;--color-ansi-blue-bright: #218bff;--color-ansi-magenta: #8250df;--color-ansi-magenta-bright: #a475f9;--color-ansi-cyan: #1b7c83;--color-ansi-cyan-bright: #3192aa;--color-btn-text: #24292f;--color-btn-bg: #f6f8fa;--color-btn-border: rgba(31,35,40,.15);--color-btn-shadow: 0 1px 0 rgba(31,35,40,.04);--color-btn-inset-shadow: inset 0 1px 0 rgba(255,255,255,.25);--color-btn-hover-bg: #f3f4f6;--color-btn-hover-border: rgba(31,35,40,.15);--color-btn-active-bg: hsla(220,14%,93%,1);--color-btn-active-border: rgba(31,35,40,.15);--color-btn-selected-bg: hsla(220,14%,94%,1);--color-btn-counter-bg: rgba(31,35,40,.08);--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #1f883d;--color-btn-primary-border: rgba(31,35,40,.15);--color-btn-primary-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-primary-hover-bg: #1a7f37;--color-btn-primary-hover-border: rgba(31,35,40,.15);--color-btn-primary-selected-bg: hsla(137,66%,28%,1);--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0,45,17,.2);--color-btn-primary-disabled-text: rgba(255,255,255,.8);--color-btn-primary-disabled-bg: #94d3a2;--color-btn-primary-disabled-border: rgba(31,35,40,.15);--color-btn-primary-icon: rgba(255,255,255,.8);--color-btn-primary-counter-bg: rgba(0,45,17,.2);--color-btn-outline-text: #0969da;--color-btn-outline-hover-text: #ffffff;--color-btn-outline-hover-bg: #0969da;--color-btn-outline-hover-border: rgba(31,35,40,.15);--color-btn-outline-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(255,255,255,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: hsla(212,92%,42%,1);--color-btn-outline-selected-border: rgba(31,35,40,.15);--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0,33,85,.2);--color-btn-outline-disabled-text: rgba(9,105,218,.5);--color-btn-outline-disabled-bg: #f6f8fa;--color-btn-outline-disabled-counter-bg: rgba(9,105,218,.05);--color-btn-outline-counter-bg: #0969da1a;--color-btn-outline-counter-fg: #0550ae;--color-btn-outline-hover-counter-fg: #ffffff;--color-btn-outline-disabled-counter-fg: rgba(9,105,218,.5);--color-btn-danger-text: #cf222e;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #a40e26;--color-btn-danger-hover-border: rgba(31,35,40,.15);--color-btn-danger-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: hsla(356,72%,44%,1);--color-btn-danger-selected-border: rgba(31,35,40,.15);--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76,0,20,.2);--color-btn-danger-disabled-text: rgba(207,34,46,.5);--color-btn-danger-disabled-bg: #f6f8fa;--color-btn-danger-disabled-counter-bg: rgba(207,34,46,.05);--color-btn-danger-counter-bg: rgba(207,34,46,.1);--color-btn-danger-icon: #cf222e;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-counter-fg: #a40e26;--color-btn-danger-hover-counter-fg: #ffffff;--color-btn-danger-disabled-counter-fg: rgba(207,34,46,.5);--color-underlinenav-icon: #6e7781;--color-underlinenav-border-hover: rgba(175,184,193,.2);--color-action-list-item-inline-divider: rgba(208,215,222,.48);--color-action-list-item-default-hover-bg: rgba(208,215,222,.32);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(208,215,222,.48);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(208,215,222,.24);--color-action-list-item-danger-hover-bg: rgba(255,235,233,.64);--color-action-list-item-danger-active-bg: #ffebe9;--color-action-list-item-danger-hover-text: #d1242f;--color-switch-track-bg: #eaeef2;--color-switch-track-hover-bg: hsla(210,24%,90%,1);--color-switch-track-active-bg: hsla(210,24%,88%,1);--color-switch-track-disabled-bg: #8c959f;--color-switch-track-fg: #656d76;--color-switch-track-disabled-fg: #ffffff;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: #0969da;--color-switch-track-checked-hover-bg: #0860CA;--color-switch-track-checked-active-bg: #0757BA;--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #ffffff;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #ffffff;--color-switch-knob-disabled-bg: #f6f8fa;--color-switch-knob-border: #858F99;--color-switch-knob-checked-bg: #ffffff;--color-switch-knob-checked-disabled-bg: #f6f8fa;--color-switch-knob-checked-border: #0969da;--color-segmented-control-bg: #eaeef2;--color-segmented-control-button-bg: #ffffff;--color-segmented-control-button-hover-bg: rgba(175,184,193,.2);--color-segmented-control-button-active-bg: rgba(175,184,193,.4);--color-segmented-control-button-selected-border: #8c959f;--color-tree-view-item-chevron-hover-bg: rgba(208,215,222,.32);--color-tree-view-item-directory-fill: #54aeff;--color-fg-default: #1F2328;--color-fg-muted: #656d76;--color-fg-subtle: #6e7781;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #ffffff;--color-canvas-overlay: #ffffff;--color-canvas-inset: #f6f8fa;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-border-subtle: rgba(31,35,40,.15);--color-shadow-small: 0 1px 0 rgba(31,35,40,.04);--color-shadow-medium: 0 3px 6px rgba(140,149,159,.15);--color-shadow-large: 0 8px 24px rgba(140,149,159,.2);--color-shadow-extra-large: 0 12px 28px rgba(140,149,159,.3);--color-neutral-emphasis-plus: #24292f;--color-neutral-emphasis: #6e7781;--color-neutral-muted: rgba(175,184,193,.2);--color-neutral-subtle: rgba(234,238,242,.5);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-accent-muted: rgba(84,174,255,.4);--color-accent-subtle: #ddf4ff;--color-success-fg: #1a7f37;--color-success-emphasis: #1f883d;--color-success-muted: rgba(74,194,107,.4);--color-success-subtle: #dafbe1;--color-attention-fg: #9a6700;--color-attention-emphasis: #9a6700;--color-attention-muted: rgba(212,167,44,.4);--color-attention-subtle: #fff8c5;--color-severe-fg: #bc4c00;--color-severe-emphasis: #bc4c00;--color-severe-muted: rgba(251,143,68,.4);--color-severe-subtle: #fff1e5;--color-danger-fg: #d1242f;--color-danger-emphasis: #cf222e;--color-danger-muted: rgba(255,129,130,.4);--color-danger-subtle: #ffebe9;--color-open-fg: #1a7f37;--color-open-emphasis: #1f883d;--color-open-muted: rgba(74,194,107,.4);--color-open-subtle: #dafbe1;--color-closed-fg: #d1242f;--color-closed-emphasis: #cf222e;--color-closed-muted: rgba(255,129,130,.4);--color-closed-subtle: #ffebe9;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-done-muted: rgba(194,151,255,.4);--color-done-subtle: #fbefff;--color-sponsors-fg: #bf3989;--color-sponsors-emphasis: #bf3989;--color-sponsors-muted: rgba(255,128,200,.4);--color-sponsors-subtle: #ffeff7;--color-primer-fg-disabled: #8c959f;--color-primer-canvas-backdrop: rgba(31,35,40,.5);--color-primer-canvas-sticky: rgba(255,255,255,.95);--color-primer-border-active: #fd8c73;--color-primer-border-contrast: rgba(31,35,40,.1);--color-primer-shadow-highlight: inset 0 1px 0 rgba(255,255,255,.25);--color-primer-shadow-inset: inset 0 1px 0 rgba(208,215,222,.2);--color-scale-black: #1F2328;--color-scale-white: #ffffff;--color-scale-gray-0: #f6f8fa;--color-scale-gray-1: #eaeef2;--color-scale-gray-2: #d0d7de;--color-scale-gray-3: #afb8c1;--color-scale-gray-4: #8c959f;--color-scale-gray-5: #6e7781;--color-scale-gray-6: #57606a;--color-scale-gray-7: #424a53;--color-scale-gray-8: #32383f;--color-scale-gray-9: #24292f;--color-scale-blue-0: #ddf4ff;--color-scale-blue-1: #b6e3ff;--color-scale-blue-2: #80ccff;--color-scale-blue-3: #54aeff;--color-scale-blue-4: #218bff;--color-scale-blue-5: #0969da;--color-scale-blue-6: #0550ae;--color-scale-blue-7: #033d8b;--color-scale-blue-8: #0a3069;--color-scale-blue-9: #002155;--color-scale-green-0: #dafbe1;--color-scale-green-1: #aceebb;--color-scale-green-2: #6fdd8b;--color-scale-green-3: #4ac26b;--color-scale-green-4: #2da44e;--color-scale-green-5: #1a7f37;--color-scale-green-6: #116329;--color-scale-green-7: #044f1e;--color-scale-green-8: #003d16;--color-scale-green-9: #002d11;--color-scale-yellow-0: #fff8c5;--color-scale-yellow-1: #fae17d;--color-scale-yellow-2: #eac54f;--color-scale-yellow-3: #d4a72c;--color-scale-yellow-4: #bf8700;--color-scale-yellow-5: #9a6700;--color-scale-yellow-6: #7d4e00;--color-scale-yellow-7: #633c01;--color-scale-yellow-8: #4d2d00;--color-scale-yellow-9: #3b2300;--color-scale-orange-0: #fff1e5;--color-scale-orange-1: #ffd8b5;--color-scale-orange-2: #ffb77c;--color-scale-orange-3: #fb8f44;--color-scale-orange-4: #e16f24;--color-scale-orange-5: #bc4c00;--color-scale-orange-6: #953800;--color-scale-orange-7: #762c00;--color-scale-orange-8: #5c2200;--color-scale-orange-9: #471700;--color-scale-red-0: #ffebe9;--color-scale-red-1: #ffcecb;--color-scale-red-2: #ffaba8;--color-scale-red-3: #ff8182;--color-scale-red-4: #fa4549;--color-scale-red-5: #cf222e;--color-scale-red-6: #a40e26;--color-scale-red-7: #82071e;--color-scale-red-8: #660018;--color-scale-red-9: #4c0014;--color-scale-purple-0: #fbefff;--color-scale-purple-1: #ecd8ff;--color-scale-purple-2: #d8b9ff;--color-scale-purple-3: #c297ff;--color-scale-purple-4: #a475f9;--color-scale-purple-5: #8250df;--color-scale-purple-6: #6639ba;--color-scale-purple-7: #512a97;--color-scale-purple-8: #3e1f79;--color-scale-purple-9: #2e1461;--color-scale-pink-0: #ffeff7;--color-scale-pink-1: #ffd3eb;--color-scale-pink-2: #ffadda;--color-scale-pink-3: #ff80c8;--color-scale-pink-4: #e85aad;--color-scale-pink-5: #bf3989;--color-scale-pink-6: #99286e;--color-scale-pink-7: #772057;--color-scale-pink-8: #611347;--color-scale-pink-9: #4d0336;--color-scale-coral-0: #fff0eb;--color-scale-coral-1: #ffd6cc;--color-scale-coral-2: #ffb4a1;--color-scale-coral-3: #fd8c73;--color-scale-coral-4: #ec6547;--color-scale-coral-5: #c4432b;--color-scale-coral-6: #9e2f1c;--color-scale-coral-7: #801f0f;--color-scale-coral-8: #691105;--color-scale-coral-9: #510901}.code-diff-view[theme=light] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=light] code.hljs{padding:3px 5px}.code-diff-view[theme=light] .hljs{color:#24292e;background:#ffffff}.code-diff-view[theme=light] .hljs-doctag,.code-diff-view[theme=light] .hljs-keyword,.code-diff-view[theme=light] .hljs-meta .hljs-keyword,.code-diff-view[theme=light] .hljs-template-tag,.code-diff-view[theme=light] .hljs-template-variable,.code-diff-view[theme=light] .hljs-type,.code-diff-view[theme=light] .hljs-variable.language_{color:#d73a49}.code-diff-view[theme=light] .hljs-title,.code-diff-view[theme=light] .hljs-title.class_,.code-diff-view[theme=light] .hljs-title.class_.inherited__,.code-diff-view[theme=light] .hljs-title.function_{color:#6f42c1}.code-diff-view[theme=light] .hljs-attr,.code-diff-view[theme=light] .hljs-attribute,.code-diff-view[theme=light] .hljs-literal,.code-diff-view[theme=light] .hljs-meta,.code-diff-view[theme=light] .hljs-number,.code-diff-view[theme=light] .hljs-operator,.code-diff-view[theme=light] .hljs-variable,.code-diff-view[theme=light] .hljs-selector-attr,.code-diff-view[theme=light] .hljs-selector-class,.code-diff-view[theme=light] .hljs-selector-id{color:#005cc5}.code-diff-view[theme=light] .hljs-regexp,.code-diff-view[theme=light] .hljs-string,.code-diff-view[theme=light] .hljs-meta .hljs-string{color:#032f62}.code-diff-view[theme=light] .hljs-built_in,.code-diff-view[theme=light] .hljs-symbol{color:#e36209}.code-diff-view[theme=light] .hljs-comment,.code-diff-view[theme=light] .hljs-code,.code-diff-view[theme=light] .hljs-formula{color:#6a737d}.code-diff-view[theme=light] .hljs-name,.code-diff-view[theme=light] .hljs-quote,.code-diff-view[theme=light] .hljs-selector-tag,.code-diff-view[theme=light] .hljs-selector-pseudo{color:#22863a}.code-diff-view[theme=light] .hljs-subst{color:#24292e}.code-diff-view[theme=light] .hljs-section{color:#005cc5;font-weight:700}.code-diff-view[theme=light] .hljs-bullet{color:#735c0f}.code-diff-view[theme=light] .hljs-emphasis{color:#24292e;font-style:italic}.code-diff-view[theme=light] .hljs-strong{color:#24292e;font-weight:700}.code-diff-view[theme=light] .hljs-addition{color:#22863a;background-color:#f0fff4}.code-diff-view[theme=light] .hljs-deletion{color:#b31d28;background-color:#ffeef0}.code-diff-view[theme=dark]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #e6edf3;--color-diff-blob-addition-fg: #e6edf3;--color-diff-blob-addition-num-bg: rgba(63,185,80,.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,.4);--color-diff-blob-deletion-num-text: #e6edf3;--color-diff-blob-deletion-fg: #e6edf3;--color-diff-blob-deletion-num-bg: rgba(248,81,73,.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,.1);--color-diff-blob-deletion-word-bg: rgba(248,81,73,.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,.4);--color-diff-blob-expander-icon: #7d8590;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,.1);--color-diffstat-addition-border: rgba(240,246,252,.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #e6edf3;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #7d8590;--color-codemirror-cursor: #e6edf3;--color-codemirror-selection-bg: rgba(56,139,253,.4);--color-codemirror-activeline-bg: rgba(110,118,129,.1);--color-codemirror-matchingbracket-text: #e6edf3;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-container-border-width: 1px;--color-checks-text-primary: #e6edf3;--color-checks-text-secondary: #7d8590;--color-checks-text-link: #2f81f7;--color-checks-btn-icon: #7d8590;--color-checks-btn-hover-icon: #e6edf3;--color-checks-btn-hover-bg: rgba(110,118,129,.1);--color-checks-input-text: #7d8590;--color-checks-input-placeholder-text: #6e7681;--color-checks-input-focus-text: #e6edf3;--color-checks-input-bg: #161b22;--color-checks-donut-error: #f85149;--color-checks-donut-pending: #d29922;--color-checks-donut-success: #2ea043;--color-checks-donut-neutral: #8b949e;--color-checks-dropdown-text: #e6edf3;--color-checks-dropdown-bg: #161b22;--color-checks-dropdown-border: #30363d;--color-checks-dropdown-shadow: rgba(1,4,9,.3);--color-checks-dropdown-hover-text: #e6edf3;--color-checks-dropdown-hover-bg: rgba(110,118,129,.1);--color-checks-dropdown-btn-hover-text: #e6edf3;--color-checks-dropdown-btn-hover-bg: rgba(110,118,129,.1);--color-checks-scrollbar-thumb-bg: rgba(110,118,129,.4);--color-checks-header-label-text: #7d8590;--color-checks-header-label-open-text: #e6edf3;--color-checks-header-border: #21262d;--color-checks-header-icon: #7d8590;--color-checks-line-text: #7d8590;--color-checks-line-num-text: #6e7681;--color-checks-line-timestamp-text: #6e7681;--color-checks-line-hover-bg: rgba(110,118,129,.1);--color-checks-line-selected-bg: rgba(56,139,253,.1);--color-checks-line-selected-num-text: #2f81f7;--color-checks-line-dt-fm-text: #ffffff;--color-checks-line-dt-fm-bg: #9e6a03;--color-checks-gate-bg: rgba(187,128,9,.15);--color-checks-gate-text: #7d8590;--color-checks-gate-waiting-text: #d29922;--color-checks-step-header-open-bg: #161b22;--color-checks-step-error-text: #f85149;--color-checks-step-warning-text: #d29922;--color-checks-logline-text: #7d8590;--color-checks-logline-num-text: #6e7681;--color-checks-logline-debug-text: #a371f7;--color-checks-logline-error-text: #7d8590;--color-checks-logline-error-num-text: #6e7681;--color-checks-logline-error-bg: rgba(248,81,73,.1);--color-checks-logline-warning-text: #7d8590;--color-checks-logline-warning-num-text: #d29922;--color-checks-logline-warning-bg: rgba(187,128,9,.15);--color-checks-logline-command-text: #2f81f7;--color-checks-logline-section-text: #3fb950;--color-checks-ansi-black: #0d1117;--color-checks-ansi-black-bright: #161b22;--color-checks-ansi-white: #b1bac4;--color-checks-ansi-white-bright: #b1bac4;--color-checks-ansi-gray: #6e7681;--color-checks-ansi-red: #ff7b72;--color-checks-ansi-red-bright: #ffa198;--color-checks-ansi-green: #3fb950;--color-checks-ansi-green-bright: #56d364;--color-checks-ansi-yellow: #d29922;--color-checks-ansi-yellow-bright: #e3b341;--color-checks-ansi-blue: #58a6ff;--color-checks-ansi-blue-bright: #79c0ff;--color-checks-ansi-magenta: #bc8cff;--color-checks-ansi-magenta-bright: #d2a8ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #0d1117;--color-project-sidebar-bg: #161b22;--color-project-gradient-in: #161b22;--color-project-gradient-out: rgba(22,27,34,0);--color-mktg-btn-bg: #f6f8fa;--color-mktg-btn-shadow-outline: rgb(255 255 255 / 25%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(255 255 255 / 25%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 4px 7px rgba(0, 0, 0, .15), 0 100px 80px rgba(255, 255, 255, .02), 0 42px 33px rgba(255, 255, 255, .024), 0 22px 18px rgba(255, 255, 255, .028), 0 12px 10px rgba(255, 255, 255, .034), 0 7px 5px rgba(255, 255, 255, .04), 0 3px 2px rgba(255, 255, 255, .07);--color-mktg-btn-shadow-hover-muted: rgb(255 255 255) 0 0 0 2px inset;--color-control-border-color-emphasis: #606771;--color-avatar-bg: rgba(255,255,255,.1);--color-avatar-border: rgba(240,246,252,.1);--color-avatar-stack-fade: #30363d;--color-avatar-stack-fade-more: #21262d;--color-avatar-child-shadow: 0 0 0 2px #0d1117;--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: #484f58;--color-select-menu-tap-highlight: rgba(48,54,61,.5);--color-select-menu-tap-focus-bg: #0c2d6b;--color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1,4,9,.85);--color-overlay-backdrop: rgba(22,27,34,.4);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #161b22;--color-header-divider: #8b949e;--color-header-logo: #f0f6fc;--color-header-search-bg: #0d1117;--color-header-search-border: #30363d;--color-sidenav-selected-bg: #21262d;--color-menu-bg-active: #161b22;--color-input-disabled-bg: rgba(110,118,129,0);--color-timeline-badge-bg: #21262d;--color-ansi-black: #484f58;--color-ansi-black-bright: #6e7681;--color-ansi-white: #b1bac4;--color-ansi-white-bright: #ffffff;--color-ansi-gray: #6e7681;--color-ansi-red: #ff7b72;--color-ansi-red-bright: #ffa198;--color-ansi-green: #3fb950;--color-ansi-green-bright: #56d364;--color-ansi-yellow: #d29922;--color-ansi-yellow-bright: #e3b341;--color-ansi-blue: #58a6ff;--color-ansi-blue-bright: #79c0ff;--color-ansi-magenta: #bc8cff;--color-ansi-magenta-bright: #d2a8ff;--color-ansi-cyan: #39c5cf;--color-ansi-cyan-bright: #56d4dd;--color-btn-text: #c9d1d9;--color-btn-bg: #21262d;--color-btn-border: rgba(240,246,252,.1);--color-btn-shadow: 0 0 transparent;--color-btn-inset-shadow: 0 0 transparent;--color-btn-hover-bg: #30363d;--color-btn-hover-border: #8b949e;--color-btn-active-bg: hsla(212,12%,18%,1);--color-btn-active-border: #6e7681;--color-btn-selected-bg: #161b22;--color-btn-counter-bg: #30363d;--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #238636;--color-btn-primary-border: rgba(240,246,252,.1);--color-btn-primary-shadow: 0 0 transparent;--color-btn-primary-inset-shadow: 0 0 transparent;--color-btn-primary-hover-bg: #2ea043;--color-btn-primary-hover-border: rgba(240,246,252,.1);--color-btn-primary-selected-bg: #238636;--color-btn-primary-selected-shadow: 0 0 transparent;--color-btn-primary-disabled-text: rgba(255,255,255,.5);--color-btn-primary-disabled-bg: rgba(35,134,54,.6);--color-btn-primary-disabled-border: rgba(240,246,252,.1);--color-btn-primary-icon: #ffffff;--color-btn-primary-counter-bg: rgba(4,38,15,.2);--color-btn-outline-text: #388bfd;--color-btn-outline-hover-text: #58a6ff;--color-btn-outline-hover-bg: #30363d;--color-btn-outline-hover-border: rgba(240,246,252,.1);--color-btn-outline-hover-shadow: 0 1px 0 rgba(1,4,9,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(5,29,77,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: #0d419d;--color-btn-outline-selected-border: rgba(240,246,252,.1);--color-btn-outline-selected-shadow: 0 0 transparent;--color-btn-outline-disabled-text: rgba(88,166,255,.5);--color-btn-outline-disabled-bg: #0d1117;--color-btn-outline-disabled-counter-bg: rgba(31,111,235,.05);--color-btn-outline-counter-bg: rgba(5,29,77,.2);--color-btn-outline-hover-counter-fg: #58a6ff;--color-btn-outline-disabled-counter-fg: rgba(47,129,247,.5);--color-btn-outline-counter-fg: #388bfd;--color-btn-danger-text: #f85149;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #da3633;--color-btn-danger-hover-border: #f85149;--color-btn-danger-hover-shadow: 0 0 transparent;--color-btn-danger-hover-inset-shadow: 0 0 transparent;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: #b62324;--color-btn-danger-selected-border: #ff7b72;--color-btn-danger-selected-shadow: 0 0 transparent;--color-btn-danger-disabled-text: rgba(248,81,73,.5);--color-btn-danger-disabled-bg: #0d1117;--color-btn-danger-disabled-counter-bg: rgba(218,54,51,.05);--color-btn-danger-counter-bg: rgba(73,2,2,.2);--color-btn-danger-icon: #f85149;--color-btn-danger-counter-fg: #f85149;--color-btn-danger-disabled-counter-fg: rgba(248,81,73,.5);--color-btn-danger-hover-counter-fg: #ffffff;--color-underlinenav-icon: #6e7681;--color-underlinenav-border-hover: rgba(110,118,129,.4);--color-action-list-item-inline-divider: rgba(48,54,61,.48);--color-action-list-item-default-hover-bg: rgba(177,186,196,.12);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(177,186,196,.2);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(177,186,196,.08);--color-action-list-item-danger-hover-bg: rgba(248,81,73,.16);--color-action-list-item-danger-active-bg: rgba(248,81,73,.24);--color-action-list-item-danger-hover-text: #ff7b72;--color-switch-track-bg: rgba(110,118,129,.1);--color-switch-track-hover-bg: hsla(215,8%,72%,.1);--color-switch-track-active-bg: rgba(110,118,129,.4);--color-switch-track-disabled-bg: #21262d;--color-switch-track-fg: #7d8590;--color-switch-track-disabled-fg: #010409;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: rgba(31,111,235,.35);--color-switch-track-checked-hover-bg: rgba(31,111,235,.5);--color-switch-track-checked-active-bg: rgba(31,111,235,.65);--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #010409;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #0d1117;--color-switch-knob-border: #606771;--color-switch-knob-disabled-bg: #161b22;--color-switch-knob-checked-bg: #0d1117;--color-switch-knob-checked-disabled-bg: #161b22;--color-switch-knob-checked-border: rgba(31,111,235,.35);--color-segmented-control-bg: rgba(110,118,129,.1);--color-segmented-control-button-bg: #0d1117;--color-segmented-control-button-hover-bg: #30363d;--color-segmented-control-button-active-bg: #21262d;--color-segmented-control-button-selected-border: #6e7681;--color-tree-view-item-chevron-hover-bg: rgba(177,186,196,.12);--color-tree-view-item-directory-fill: #7d8590;--color-fg-default: #e6edf3;--color-fg-muted: #7d8590;--color-fg-subtle: #6e7681;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #0d1117;--color-canvas-overlay: #161b22;--color-canvas-inset: #010409;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-border-subtle: rgba(240,246,252,.1);--color-shadow-small: 0 0 transparent;--color-shadow-medium: 0 3px 6px #010409;--color-shadow-large: 0 8px 24px #010409;--color-shadow-extra-large: 0 12px 48px #010409;--color-neutral-emphasis-plus: #6e7681;--color-neutral-emphasis: #6e7681;--color-neutral-muted: rgba(110,118,129,.4);--color-neutral-subtle: rgba(110,118,129,.1);--color-accent-fg: #2f81f7;--color-accent-emphasis: #1f6feb;--color-accent-muted: rgba(56,139,253,.4);--color-accent-subtle: rgba(56,139,253,.1);--color-success-fg: #3fb950;--color-success-emphasis: #238636;--color-success-muted: rgba(46,160,67,.4);--color-success-subtle: rgba(46,160,67,.15);--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-attention-muted: rgba(187,128,9,.4);--color-attention-subtle: rgba(187,128,9,.15);--color-severe-fg: #db6d28;--color-severe-emphasis: #bd561d;--color-severe-muted: rgba(219,109,40,.4);--color-severe-subtle: rgba(219,109,40,.1);--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-danger-muted: rgba(248,81,73,.4);--color-danger-subtle: rgba(248,81,73,.1);--color-open-fg: #3fb950;--color-open-emphasis: #238636;--color-open-muted: rgba(46,160,67,.4);--color-open-subtle: rgba(46,160,67,.15);--color-closed-fg: #f85149;--color-closed-emphasis: #da3633;--color-closed-muted: rgba(248,81,73,.4);--color-closed-subtle: rgba(248,81,73,.15);--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-done-muted: rgba(163,113,247,.4);--color-done-subtle: rgba(163,113,247,.1);--color-sponsors-fg: #db61a2;--color-sponsors-emphasis: #bf4b8a;--color-sponsors-muted: rgba(219,97,162,.4);--color-sponsors-subtle: rgba(219,97,162,.1);--color-primer-fg-disabled: #484f58;--color-primer-canvas-backdrop: rgba(1,4,9,.8);--color-primer-canvas-sticky: rgba(13,17,23,.95);--color-primer-border-active: #f78166;--color-primer-border-contrast: rgba(255,255,255,.2);--color-primer-shadow-highlight: 0 0 transparent;--color-primer-shadow-inset: 0 0 transparent;--color-scale-black: #010409;--color-scale-white: #ffffff;--color-scale-gray-0: #f0f6fc;--color-scale-gray-1: #c9d1d9;--color-scale-gray-2: #b1bac4;--color-scale-gray-3: #8b949e;--color-scale-gray-4: #6e7681;--color-scale-gray-5: #484f58;--color-scale-gray-6: #30363d;--color-scale-gray-7: #21262d;--color-scale-gray-8: #161b22;--color-scale-gray-9: #0d1117;--color-scale-blue-0: #cae8ff;--color-scale-blue-1: #a5d6ff;--color-scale-blue-2: #79c0ff;--color-scale-blue-3: #58a6ff;--color-scale-blue-4: #388bfd;--color-scale-blue-5: #1f6feb;--color-scale-blue-6: #1158c7;--color-scale-blue-7: #0d419d;--color-scale-blue-8: #0c2d6b;--color-scale-blue-9: #051d4d;--color-scale-green-0: #aff5b4;--color-scale-green-1: #7ee787;--color-scale-green-2: #56d364;--color-scale-green-3: #3fb950;--color-scale-green-4: #2ea043;--color-scale-green-5: #238636;--color-scale-green-6: #196c2e;--color-scale-green-7: #0f5323;--color-scale-green-8: #033a16;--color-scale-green-9: #04260f;--color-scale-yellow-0: #f8e3a1;--color-scale-yellow-1: #f2cc60;--color-scale-yellow-2: #e3b341;--color-scale-yellow-3: #d29922;--color-scale-yellow-4: #bb8009;--color-scale-yellow-5: #9e6a03;--color-scale-yellow-6: #845306;--color-scale-yellow-7: #693e00;--color-scale-yellow-8: #4b2900;--color-scale-yellow-9: #341a00;--color-scale-orange-0: #ffdfb6;--color-scale-orange-1: #ffc680;--color-scale-orange-2: #ffa657;--color-scale-orange-3: #f0883e;--color-scale-orange-4: #db6d28;--color-scale-orange-5: #bd561d;--color-scale-orange-6: #9b4215;--color-scale-orange-7: #762d0a;--color-scale-orange-8: #5a1e02;--color-scale-orange-9: #3d1300;--color-scale-red-0: #ffdcd7;--color-scale-red-1: #ffc1ba;--color-scale-red-2: #ffa198;--color-scale-red-3: #ff7b72;--color-scale-red-4: #f85149;--color-scale-red-5: #da3633;--color-scale-red-6: #b62324;--color-scale-red-7: #8e1519;--color-scale-red-8: #67060c;--color-scale-red-9: #490202;--color-scale-purple-0: #eddeff;--color-scale-purple-1: #e2c5ff;--color-scale-purple-2: #d2a8ff;--color-scale-purple-3: #bc8cff;--color-scale-purple-4: #a371f7;--color-scale-purple-5: #8957e5;--color-scale-purple-6: #6e40c9;--color-scale-purple-7: #553098;--color-scale-purple-8: #3c1e70;--color-scale-purple-9: #271052;--color-scale-pink-0: #ffdaec;--color-scale-pink-1: #ffbedd;--color-scale-pink-2: #ff9bce;--color-scale-pink-3: #f778ba;--color-scale-pink-4: #db61a2;--color-scale-pink-5: #bf4b8a;--color-scale-pink-6: #9e3670;--color-scale-pink-7: #7d2457;--color-scale-pink-8: #5e103e;--color-scale-pink-9: #42062a;--color-scale-coral-0: #ffddd2;--color-scale-coral-1: #ffc2b2;--color-scale-coral-2: #ffa28b;--color-scale-coral-3: #f78166;--color-scale-coral-4: #ea6045;--color-scale-coral-5: #cf462d;--color-scale-coral-6: #ac3220;--color-scale-coral-7: #872012;--color-scale-coral-8: #640d04;--color-scale-coral-9: #460701}.code-diff-view[theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=dark] code.hljs{padding:3px 5px}.code-diff-view[theme=dark] .hljs{color:#c9d1d9;background:#0d1117}.code-diff-view[theme=dark] .hljs-doctag,.code-diff-view[theme=dark] .hljs-keyword,.code-diff-view[theme=dark] .hljs-meta .hljs-keyword,.code-diff-view[theme=dark] .hljs-template-tag,.code-diff-view[theme=dark] .hljs-template-variable,.code-diff-view[theme=dark] .hljs-type,.code-diff-view[theme=dark] .hljs-variable.language_{color:#ff7b72}.code-diff-view[theme=dark] .hljs-title,.code-diff-view[theme=dark] .hljs-title.class_,.code-diff-view[theme=dark] .hljs-title.class_.inherited__,.code-diff-view[theme=dark] .hljs-title.function_{color:#d2a8ff}.code-diff-view[theme=dark] .hljs-attr,.code-diff-view[theme=dark] .hljs-attribute,.code-diff-view[theme=dark] .hljs-literal,.code-diff-view[theme=dark] .hljs-meta,.code-diff-view[theme=dark] .hljs-number,.code-diff-view[theme=dark] .hljs-operator,.code-diff-view[theme=dark] .hljs-variable,.code-diff-view[theme=dark] .hljs-selector-attr,.code-diff-view[theme=dark] .hljs-selector-class,.code-diff-view[theme=dark] .hljs-selector-id{color:#79c0ff}.code-diff-view[theme=dark] .hljs-regexp,.code-diff-view[theme=dark] .hljs-string,.code-diff-view[theme=dark] .hljs-meta .hljs-string{color:#a5d6ff}.code-diff-view[theme=dark] .hljs-built_in,.code-diff-view[theme=dark] .hljs-symbol{color:#ffa657}.code-diff-view[theme=dark] .hljs-comment,.code-diff-view[theme=dark] .hljs-code,.code-diff-view[theme=dark] .hljs-formula{color:#8b949e}.code-diff-view[theme=dark] .hljs-name,.code-diff-view[theme=dark] .hljs-quote,.code-diff-view[theme=dark] .hljs-selector-tag,.code-diff-view[theme=dark] .hljs-selector-pseudo{color:#7ee787}.code-diff-view[theme=dark] .hljs-subst{color:#c9d1d9}.code-diff-view[theme=dark] .hljs-section{color:#1f6feb;font-weight:700}.code-diff-view[theme=dark] .hljs-bullet{color:#f2cc60}.code-diff-view[theme=dark] .hljs-emphasis{color:#c9d1d9;font-style:italic}.code-diff-view[theme=dark] .hljs-strong{color:#c9d1d9;font-weight:700}.code-diff-view[theme=dark] .hljs-addition{color:#aff5b4;background-color:#033a16}.code-diff-view[theme=dark] .hljs-deletion{color:#ffdcd7;background-color:#67060c}.code-diff-view{position:relative;margin-top:16px;margin-bottom:16px;border:1px solid var(--color-border-default, #ddd);border-radius:6px;overflow-y:auto}.code-diff-view *{position:static;box-sizing:border-box}.code-diff-view .file-header{position:sticky;top:0;z-index:1;background-color:var(--color-canvas-subtle);border-bottom:1px solid var(--color-border-default);padding:8px 16px;font-size:12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.code-diff-view .file-header .file-info{display:flex;justify-content:space-between;align-items:center;margin-left:8px;height:24px}.code-diff-view .file-header .file-info .info-left{color:var(--color-fg-default)}.code-diff-view .file-header .file-info .info-right{display:flex;justify-content:space-between;align-items:center;width:50%}.code-diff-view .file-header .file-info .diff-stat{display:inline-flex;align-items:center;gap:8px}.code-diff-view .file-header .file-info .diff-stat .diff-stat-added{color:var(--color-diffstat-addition-bg)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-deleted{color:var(--color-danger-emphasis)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-ignored{color:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar{margin-left:auto;margin-right:1rem}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button{background-color:transparent;color:var(--color-fg-subtle);border:none}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button svg{fill:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button:hover{background-color:var(--color-btn-outline-hover-border)}.code-diff-view table{border-spacing:0}.code-diff-view .diff-table{width:100%}.code-diff-view .diff-table .blob-num{position:relative;width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:20px;color:var(--color-fg-subtle);text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.code-diff-view .diff-table .blob-num-deletion{color:var(--color-diff-blob-deletion-num-text);background-color:var(--color-diff-blob-deletion-num-bg);border-color:var(--color-danger-emphasis)}.code-diff-view .diff-table .blob-num-addition{color:var(--color-diff-blob-addition-num-text);background-color:var(--color-diff-blob-addition-num-bg);border-color:var(--color-success-emphasis)}.code-diff-view .diff-table .blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}.code-diff-view .diff-table .blob-code .blob-code-inner{display:table-cell;overflow:visible;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;color:var(--color-fg-default);word-wrap:anywhere;white-space:pre-wrap}.code-diff-view .diff-table .blob-code-deletion{background-color:var(--color-diff-blob-deletion-line-bg);outline:1px dashed transparent}.code-diff-view .diff-table .blob-code-deletion .x{color:var(--color-diff-blob-deletion-fg);background-color:var(--color-diff-blob-deletion-word-bg)}.code-diff-view .diff-table .blob-code-addition{background-color:var(--color-diff-blob-addition-line-bg);outline:1px dotted transparent}.code-diff-view .diff-table .blob-code-addition .x{color:var(--color-diff-blob-addition-fg);background-color:var(--color-diff-blob-addition-word-bg)}.code-diff-view .diff-table .current-diff{border:1px solid var(--color-border-muted)}.code-diff-view .diff-table .blob-code-context,.code-diff-view .diff-table .blob-code-addition,.code-diff-view .diff-table .blob-code-deletion{padding-left:22px!important}.code-diff-view .diff-table .blob-code-marker:before{position:absolute;top:1px;left:8px;padding-right:8px;content:attr(data-code-marker)}.code-diff-view .diff-table .blob-num-hunk{background-color:var(--color-diff-blob-hunk-num-bg)}.code-diff-view .diff-table .blob-code-hunk{background-color:var(--color-accent-subtle)}.code-diff-view .file-diff-split{table-layout:fixed}.code-diff-view .file-diff-split .blob-code+.blob-num{border-left:1px solid var(--color-border-muted)}.code-diff-view .file-diff-split .no-select{user-select:none}.code-diff-view .empty-cell{cursor:default;background-color:var(--color-neutral-subtle);border-right-color:var(--color-border-muted)}")),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
- import Ue from "vue";
- import Gn, { computed as he, ref as Ve, watch as Kn } from "@vue/composition-api/dist/vue-composition-api.mjs";
- function Wn(e) {
- e = e || Ue, e && !e.__composition_api_installed__ && e.use(Gn);
- }
- Wn(Ue);
- Ue.version;
- function ne() {
- }
- ne.prototype = {
- diff: function(n, a) {
- var f = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, d = f.callback;
- typeof f == "function" && (d = f, f = {}), this.options = f;
- var t = this;
- function r(p) {
- return d ? (setTimeout(function() {
- d(void 0, p);
- }, 0), !0) : p;
- }
- n = this.castInput(n), a = this.castInput(a), n = this.removeEmpty(this.tokenize(n)), a = this.removeEmpty(this.tokenize(a));
- var i = a.length, s = n.length, o = 1, l = i + s;
- f.maxEditLength && (l = Math.min(l, f.maxEditLength));
- var c = [{
- newPos: -1,
- components: []
- }], u = this.extractCommon(c[0], a, n, 0);
- if (c[0].newPos + 1 >= i && u + 1 >= s)
- return r([{
- value: this.join(a),
- count: a.length
- }]);
- function h() {
- for (var p = -1 * o; p <= o; p += 2) {
- var _ = void 0, v = c[p - 1], m = c[p + 1], E = (m ? m.newPos : 0) - p;
- v && (c[p - 1] = void 0);
- var A = v && v.newPos + 1 < i, D = m && 0 <= E && E < s;
- if (!A && !D) {
- c[p] = void 0;
- continue;
- }
- if (!A || D && v.newPos < m.newPos ? (_ = Qn(m), t.pushComponent(_.components, void 0, !0)) : (_ = v, _.newPos++, t.pushComponent(_.components, !0, void 0)), E = t.extractCommon(_, a, n, p), _.newPos + 1 >= i && E + 1 >= s)
- return r(qn(t, _.components, a, n, t.useLongestToken));
- c[p] = _;
- }
- o++;
- }
- if (d)
- (function p() {
- setTimeout(function() {
- if (o > l)
- return d();
- h() || p();
- }, 0);
- })();
- else
- for (; o <= l; ) {
- var g = h();
- if (g)
- return g;
- }
- },
- pushComponent: function(n, a, f) {
- var d = n[n.length - 1];
- d && d.added === a && d.removed === f ? n[n.length - 1] = {
- count: d.count + 1,
- added: a,
- removed: f
- } : n.push({
- count: 1,
- added: a,
- removed: f
- });
- },
- extractCommon: function(n, a, f, d) {
- for (var t = a.length, r = f.length, i = n.newPos, s = i - d, o = 0; i + 1 < t && s + 1 < r && this.equals(a[i + 1], f[s + 1]); )
- i++, s++, o++;
- return o && n.components.push({
- count: o
- }), n.newPos = i, s;
- },
- equals: function(n, a) {
- return this.options.comparator ? this.options.comparator(n, a) : n === a || this.options.ignoreCase && n.toLowerCase() === a.toLowerCase();
- },
- removeEmpty: function(n) {
- for (var a = [], f = 0; f < n.length; f++)
- n[f] && a.push(n[f]);
- return a;
- },
- castInput: function(n) {
- return n;
- },
- tokenize: function(n) {
- return n.split("");
- },
- join: function(n) {
- return n.join("");
- }
- };
- function qn(e, n, a, f, d) {
- for (var t = 0, r = n.length, i = 0, s = 0; t < r; t++) {
- var o = n[t];
- if (o.removed) {
- if (o.value = e.join(f.slice(s, s + o.count)), s += o.count, t && n[t - 1].added) {
- var c = n[t - 1];
- n[t - 1] = n[t], n[t] = c;
- }
- } else {
- if (!o.added && d) {
- var l = a.slice(i, i + o.count);
- l = l.map(function(h, g) {
- var p = f[s + g];
- return p.length > h.length ? p : h;
- }), o.value = e.join(l);
- } else
- o.value = e.join(a.slice(i, i + o.count));
- i += o.count, o.added || (s += o.count);
- }
- }
- var u = n[r - 1];
- return r > 1 && typeof u.value == "string" && (u.added || u.removed) && e.equals("", u.value) && (n[r - 2].value += u.value, n.pop()), n;
- }
- function Qn(e) {
- return {
- newPos: e.newPos,
- components: e.components.slice(0)
- };
- }
- var jn = new ne();
- function Zn(e, n, a) {
- return jn.diff(e, n, a);
- }
- function Vn(e, n) {
- if (typeof e == "function")
- n.callback = e;
- else if (e)
- for (var a in e)
- e.hasOwnProperty(a) && (n[a] = e[a]);
- return n;
- }
- var Ye = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, Xe = /\S/, Pe = new ne();
- Pe.equals = function(e, n) {
- return this.options.ignoreCase && (e = e.toLowerCase(), n = n.toLowerCase()), e === n || this.options.ignoreWhitespace && !Xe.test(e) && !Xe.test(n);
- };
- Pe.tokenize = function(e) {
- for (var n = e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/), a = 0; a < n.length - 1; a++)
- !n[a + 1] && n[a + 2] && Ye.test(n[a]) && Ye.test(n[a + 2]) && (n[a] += n[a + 2], n.splice(a + 1, 2), a--);
- return n;
- };
- function Yn(e, n, a) {
- return a = Vn(a, {
- ignoreWhitespace: !0
- }), Pe.diff(e, n, a);
- }
- var _n = new ne();
- _n.tokenize = function(e) {
- var n = [], a = e.split(/(\n|\r\n)/);
- a[a.length - 1] || a.pop();
- for (var f = 0; f < a.length; f++) {
- var d = a[f];
- f % 2 && !this.options.newlineIsToken ? n[n.length - 1] += d : (this.options.ignoreWhitespace && (d = d.trim()), n.push(d));
- }
- return n;
- };
- var Xn = new ne();
- Xn.tokenize = function(e) {
- return e.split(/(\S.+?[.!?])(?=\s+|$)/);
- };
- var Jn = new ne();
- Jn.tokenize = function(e) {
- return e.split(/([{}:;,]|\s+)/);
- };
- function Te(e) {
- "@babel/helpers - typeof";
- return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Te = function(n) {
- return typeof n;
- } : Te = function(n) {
- return n && typeof Symbol == "function" && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : typeof n;
- }, Te(e);
- }
- var et = Object.prototype.toString, de = new ne();
- de.useLongestToken = !0;
- de.tokenize = _n.tokenize;
- de.castInput = function(e) {
- var n = this.options, a = n.undefinedReplacement, f = n.stringifyReplacer, d = f === void 0 ? function(t, r) {
- return typeof r == "undefined" ? a : r;
- } : f;
- return typeof e == "string" ? e : JSON.stringify($e(e, null, null, d), d, " ");
- };
- de.equals = function(e, n) {
- return ne.prototype.equals.call(de, e.replace(/,([\r\n])/g, "$1"), n.replace(/,([\r\n])/g, "$1"));
- };
- function $e(e, n, a, f, d) {
- n = n || [], a = a || [], f && (e = f(d, e));
- var t;
- for (t = 0; t < n.length; t += 1)
- if (n[t] === e)
- return a[t];
- var r;
- if (et.call(e) === "[object Array]") {
- for (n.push(e), r = new Array(e.length), a.push(r), t = 0; t < e.length; t += 1)
- r[t] = $e(e[t], n, a, f, d);
- return n.pop(), a.pop(), r;
- }
- if (e && e.toJSON && (e = e.toJSON()), Te(e) === "object" && e !== null) {
- n.push(e), r = {}, a.push(r);
- var i = [], s;
- for (s in e)
- e.hasOwnProperty(s) && i.push(s);
- for (i.sort(), t = 0; t < i.length; t += 1)
- s = i[t], r[s] = $e(e[s], n, a, f, s);
- n.pop(), a.pop();
- } else
- r = e;
- return r;
- }
- var Be = new ne();
- Be.tokenize = function(e) {
- return e.slice();
- };
- Be.join = Be.removeEmpty = function(e) {
- return e;
- };
- function nt(e) {
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
- }
- var bn = { exports: {} };
- (function(e) {
- var n = function() {
- this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = 0.5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = 0.5, this.Patch_Margin = 4, this.Match_MaxBits = 32;
- }, a = -1, f = 1, d = 0;
- n.Diff = function(t, r) {
- return [t, r];
- }, n.prototype.diff_main = function(t, r, i, s) {
- typeof s == "undefined" && (this.Diff_Timeout <= 0 ? s = Number.MAX_VALUE : s = (/* @__PURE__ */ new Date()).getTime() + this.Diff_Timeout * 1e3);
- var o = s;
- if (t == null || r == null)
- throw new Error("Null input. (diff_main)");
- if (t == r)
- return t ? [new n.Diff(d, t)] : [];
- typeof i == "undefined" && (i = !0);
- var l = i, c = this.diff_commonPrefix(t, r), u = t.substring(0, c);
- t = t.substring(c), r = r.substring(c), c = this.diff_commonSuffix(t, r);
- var h = t.substring(t.length - c);
- t = t.substring(0, t.length - c), r = r.substring(0, r.length - c);
- var g = this.diff_compute_(t, r, l, o);
- return u && g.unshift(new n.Diff(d, u)), h && g.push(new n.Diff(d, h)), this.diff_cleanupMerge(g), g;
- }, n.prototype.diff_compute_ = function(t, r, i, s) {
- var o;
- if (!t)
- return [new n.Diff(f, r)];
- if (!r)
- return [new n.Diff(a, t)];
- var l = t.length > r.length ? t : r, c = t.length > r.length ? r : t, u = l.indexOf(c);
- if (u != -1)
- return o = [
- new n.Diff(f, l.substring(0, u)),
- new n.Diff(d, c),
- new n.Diff(
- f,
- l.substring(u + c.length)
- )
- ], t.length > r.length && (o[0][0] = o[2][0] = a), o;
- if (c.length == 1)
- return [
- new n.Diff(a, t),
- new n.Diff(f, r)
- ];
- var h = this.diff_halfMatch_(t, r);
- if (h) {
- var g = h[0], p = h[1], _ = h[2], v = h[3], m = h[4], E = this.diff_main(g, _, i, s), A = this.diff_main(p, v, i, s);
- return E.concat(
- [new n.Diff(d, m)],
- A
- );
- }
- return i && t.length > 100 && r.length > 100 ? this.diff_lineMode_(t, r, s) : this.diff_bisect_(t, r, s);
- }, n.prototype.diff_lineMode_ = function(t, r, i) {
- var s = this.diff_linesToChars_(t, r);
- t = s.chars1, r = s.chars2;
- var o = s.lineArray, l = this.diff_main(t, r, !1, i);
- this.diff_charsToLines_(l, o), this.diff_cleanupSemantic(l), l.push(new n.Diff(d, ""));
- for (var c = 0, u = 0, h = 0, g = "", p = ""; c < l.length; ) {
- switch (l[c][0]) {
- case f:
- h++, p += l[c][1];
- break;
- case a:
- u++, g += l[c][1];
- break;
- case d:
- if (u >= 1 && h >= 1) {
- l.splice(
- c - u - h,
- u + h
- ), c = c - u - h;
- for (var _ = this.diff_main(g, p, !1, i), v = _.length - 1; v >= 0; v--)
- l.splice(c, 0, _[v]);
- c = c + _.length;
- }
- h = 0, u = 0, g = "", p = "";
- break;
- }
- c++;
- }
- return l.pop(), l;
- }, n.prototype.diff_bisect_ = function(t, r, i) {
- for (var s = t.length, o = r.length, l = Math.ceil((s + o) / 2), c = l, u = 2 * l, h = new Array(u), g = new Array(u), p = 0; p < u; p++)
- h[p] = -1, g[p] = -1;
- h[c + 1] = 0, g[c + 1] = 0;
- for (var _ = s - o, v = _ % 2 != 0, m = 0, E = 0, A = 0, D = 0, S = 0; S < l && !((/* @__PURE__ */ new Date()).getTime() > i); S++) {
- for (var N = -S + m; N <= S - E; N += 2) {
- var R = c + N, C;
- N == -S || N != S && h[R - 1] < h[R + 1] ? C = h[R + 1] : C = h[R - 1] + 1;
- for (var I = C - N; C < s && I < o && t.charAt(C) == r.charAt(I); )
- C++, I++;
- if (h[R] = C, C > s)
- E += 2;
- else if (I > o)
- m += 2;
- else if (v) {
- var B = c + _ - N;
- if (B >= 0 && B < u && g[B] != -1) {
- var $ = s - g[B];
- if (C >= $)
- return this.diff_bisectSplit_(t, r, C, I, i);
- }
- }
- }
- for (var F = -S + A; F <= S - D; F += 2) {
- var B = c + F, $;
- F == -S || F != S && g[B - 1] < g[B + 1] ? $ = g[B + 1] : $ = g[B - 1] + 1;
- for (var K = $ - F; $ < s && K < o && t.charAt(s - $ - 1) == r.charAt(o - K - 1); )
- $++, K++;
- if (g[B] = $, $ > s)
- D += 2;
- else if (K > o)
- A += 2;
- else if (!v) {
- var R = c + _ - F;
- if (R >= 0 && R < u && h[R] != -1) {
- var C = h[R], I = c + C - R;
- if ($ = s - $, C >= $)
- return this.diff_bisectSplit_(t, r, C, I, i);
- }
- }
- }
- }
- return [
- new n.Diff(a, t),
- new n.Diff(f, r)
- ];
- }, n.prototype.diff_bisectSplit_ = function(t, r, i, s, o) {
- var l = t.substring(0, i), c = r.substring(0, s), u = t.substring(i), h = r.substring(s), g = this.diff_main(l, c, !1, o), p = this.diff_main(u, h, !1, o);
- return g.concat(p);
- }, n.prototype.diff_linesToChars_ = function(t, r) {
- var i = [], s = {};
- i[0] = "";
- function o(h) {
- for (var g = "", p = 0, _ = -1, v = i.length; _ < h.length - 1; ) {
- _ = h.indexOf(`
- `, p), _ == -1 && (_ = h.length - 1);
- var m = h.substring(p, _ + 1);
- (s.hasOwnProperty ? s.hasOwnProperty(m) : s[m] !== void 0) ? g += String.fromCharCode(s[m]) : (v == l && (m = h.substring(p), _ = h.length), g += String.fromCharCode(v), s[m] = v, i[v++] = m), p = _ + 1;
- }
- return g;
- }
- var l = 4e4, c = o(t);
- l = 65535;
- var u = o(r);
- return { chars1: c, chars2: u, lineArray: i };
- }, n.prototype.diff_charsToLines_ = function(t, r) {
- for (var i = 0; i < t.length; i++) {
- for (var s = t[i][1], o = [], l = 0; l < s.length; l++)
- o[l] = r[s.charCodeAt(l)];
- t[i][1] = o.join("");
- }
- }, n.prototype.diff_commonPrefix = function(t, r) {
- if (!t || !r || t.charAt(0) != r.charAt(0))
- return 0;
- for (var i = 0, s = Math.min(t.length, r.length), o = s, l = 0; i < o; )
- t.substring(l, o) == r.substring(l, o) ? (i = o, l = i) : s = o, o = Math.floor((s - i) / 2 + i);
- return o;
- }, n.prototype.diff_commonSuffix = function(t, r) {
- if (!t || !r || t.charAt(t.length - 1) != r.charAt(r.length - 1))
- return 0;
- for (var i = 0, s = Math.min(t.length, r.length), o = s, l = 0; i < o; )
- t.substring(t.length - o, t.length - l) == r.substring(r.length - o, r.length - l) ? (i = o, l = i) : s = o, o = Math.floor((s - i) / 2 + i);
- return o;
- }, n.prototype.diff_commonOverlap_ = function(t, r) {
- var i = t.length, s = r.length;
- if (i == 0 || s == 0)
- return 0;
- i > s ? t = t.substring(i - s) : i < s && (r = r.substring(0, i));
- var o = Math.min(i, s);
- if (t == r)
- return o;
- for (var l = 0, c = 1; ; ) {
- var u = t.substring(o - c), h = r.indexOf(u);
- if (h == -1)
- return l;
- c += h, (h == 0 || t.substring(o - c) == r.substring(0, c)) && (l = c, c++);
- }
- }, n.prototype.diff_halfMatch_ = function(t, r) {
- if (this.Diff_Timeout <= 0)
- return null;
- var i = t.length > r.length ? t : r, s = t.length > r.length ? r : t;
- if (i.length < 4 || s.length * 2 < i.length)
- return null;
- var o = this;
- function l(E, A, D) {
- for (var S = E.substring(D, D + Math.floor(E.length / 4)), N = -1, R = "", C, I, B, $; (N = A.indexOf(S, N + 1)) != -1; ) {
- var F = o.diff_commonPrefix(
- E.substring(D),
- A.substring(N)
- ), K = o.diff_commonSuffix(
- E.substring(0, D),
- A.substring(0, N)
- );
- R.length < K + F && (R = A.substring(N - K, N) + A.substring(N, N + F), C = E.substring(0, D - K), I = E.substring(D + F), B = A.substring(0, N - K), $ = A.substring(N + F));
- }
- return R.length * 2 >= E.length ? [
- C,
- I,
- B,
- $,
- R
- ] : null;
- }
- var c = l(
- i,
- s,
- Math.ceil(i.length / 4)
- ), u = l(
- i,
- s,
- Math.ceil(i.length / 2)
- ), h;
- if (!c && !u)
- return null;
- u ? c ? h = c[4].length > u[4].length ? c : u : h = u : h = c;
- var g, p, _, v;
- t.length > r.length ? (g = h[0], p = h[1], _ = h[2], v = h[3]) : (_ = h[0], v = h[1], g = h[2], p = h[3]);
- var m = h[4];
- return [g, p, _, v, m];
- }, n.prototype.diff_cleanupSemantic = function(t) {
- for (var r = !1, i = [], s = 0, o = null, l = 0, c = 0, u = 0, h = 0, g = 0; l < t.length; )
- t[l][0] == d ? (i[s++] = l, c = h, u = g, h = 0, g = 0, o = t[l][1]) : (t[l][0] == f ? h += t[l][1].length : g += t[l][1].length, o && o.length <= Math.max(c, u) && o.length <= Math.max(
- h,
- g
- ) && (t.splice(
- i[s - 1],
- 0,
- new n.Diff(a, o)
- ), t[i[s - 1] + 1][0] = f, s--, s--, l = s > 0 ? i[s - 1] : -1, c = 0, u = 0, h = 0, g = 0, o = null, r = !0)), l++;
- for (r && this.diff_cleanupMerge(t), this.diff_cleanupSemanticLossless(t), l = 1; l < t.length; ) {
- if (t[l - 1][0] == a && t[l][0] == f) {
- var p = t[l - 1][1], _ = t[l][1], v = this.diff_commonOverlap_(p, _), m = this.diff_commonOverlap_(_, p);
- v >= m ? (v >= p.length / 2 || v >= _.length / 2) && (t.splice(l, 0, new n.Diff(
- d,
- _.substring(0, v)
- )), t[l - 1][1] = p.substring(0, p.length - v), t[l + 1][1] = _.substring(v), l++) : (m >= p.length / 2 || m >= _.length / 2) && (t.splice(l, 0, new n.Diff(
- d,
- p.substring(0, m)
- )), t[l - 1][0] = f, t[l - 1][1] = _.substring(0, _.length - m), t[l + 1][0] = a, t[l + 1][1] = p.substring(m), l++), l++;
- }
- l++;
- }
- }, n.prototype.diff_cleanupSemanticLossless = function(t) {
- function r(m, E) {
- if (!m || !E)
- return 6;
- var A = m.charAt(m.length - 1), D = E.charAt(0), S = A.match(n.nonAlphaNumericRegex_), N = D.match(n.nonAlphaNumericRegex_), R = S && A.match(n.whitespaceRegex_), C = N && D.match(n.whitespaceRegex_), I = R && A.match(n.linebreakRegex_), B = C && D.match(n.linebreakRegex_), $ = I && m.match(n.blanklineEndRegex_), F = B && E.match(n.blanklineStartRegex_);
- return $ || F ? 5 : I || B ? 4 : S && !R && C ? 3 : R || C ? 2 : S || N ? 1 : 0;
- }
- for (var i = 1; i < t.length - 1; ) {
- if (t[i - 1][0] == d && t[i + 1][0] == d) {
- var s = t[i - 1][1], o = t[i][1], l = t[i + 1][1], c = this.diff_commonSuffix(s, o);
- if (c) {
- var u = o.substring(o.length - c);
- s = s.substring(0, s.length - c), o = u + o.substring(0, o.length - c), l = u + l;
- }
- for (var h = s, g = o, p = l, _ = r(s, o) + r(o, l); o.charAt(0) === l.charAt(0); ) {
- s += o.charAt(0), o = o.substring(1) + l.charAt(0), l = l.substring(1);
- var v = r(s, o) + r(o, l);
- v >= _ && (_ = v, h = s, g = o, p = l);
- }
- t[i - 1][1] != h && (h ? t[i - 1][1] = h : (t.splice(i - 1, 1), i--), t[i][1] = g, p ? t[i + 1][1] = p : (t.splice(i + 1, 1), i--));
- }
- i++;
- }
- }, n.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/, n.whitespaceRegex_ = /\s/, n.linebreakRegex_ = /[\r\n]/, n.blanklineEndRegex_ = /\n\r?\n$/, n.blanklineStartRegex_ = /^\r?\n\r?\n/, n.prototype.diff_cleanupEfficiency = function(t) {
- for (var r = !1, i = [], s = 0, o = null, l = 0, c = !1, u = !1, h = !1, g = !1; l < t.length; )
- t[l][0] == d ? (t[l][1].length < this.Diff_EditCost && (h || g) ? (i[s++] = l, c = h, u = g, o = t[l][1]) : (s = 0, o = null), h = g = !1) : (t[l][0] == a ? g = !0 : h = !0, o && (c && u && h && g || o.length < this.Diff_EditCost / 2 && c + u + h + g == 3) && (t.splice(
- i[s - 1],
- 0,
- new n.Diff(a, o)
- ), t[i[s - 1] + 1][0] = f, s--, o = null, c && u ? (h = g = !0, s = 0) : (s--, l = s > 0 ? i[s - 1] : -1, h = g = !1), r = !0)), l++;
- r && this.diff_cleanupMerge(t);
- }, n.prototype.diff_cleanupMerge = function(t) {
- t.push(new n.Diff(d, ""));
- for (var r = 0, i = 0, s = 0, o = "", l = "", c; r < t.length; )
- switch (t[r][0]) {
- case f:
- s++, l += t[r][1], r++;
- break;
- case a:
- i++, o += t[r][1], r++;
- break;
- case d:
- i + s > 1 ? (i !== 0 && s !== 0 && (c = this.diff_commonPrefix(l, o), c !== 0 && (r - i - s > 0 && t[r - i - s - 1][0] == d ? t[r - i - s - 1][1] += l.substring(0, c) : (t.splice(0, 0, new n.Diff(
- d,
- l.substring(0, c)
- )), r++), l = l.substring(c), o = o.substring(c)), c = this.diff_commonSuffix(l, o), c !== 0 && (t[r][1] = l.substring(l.length - c) + t[r][1], l = l.substring(0, l.length - c), o = o.substring(0, o.length - c))), r -= i + s, t.splice(r, i + s), o.length && (t.splice(
- r,
- 0,
- new n.Diff(a, o)
- ), r++), l.length && (t.splice(
- r,
- 0,
- new n.Diff(f, l)
- ), r++), r++) : r !== 0 && t[r - 1][0] == d ? (t[r - 1][1] += t[r][1], t.splice(r, 1)) : r++, s = 0, i = 0, o = "", l = "";
- break;
- }
- t[t.length - 1][1] === "" && t.pop();
- var u = !1;
- for (r = 1; r < t.length - 1; )
- t[r - 1][0] == d && t[r + 1][0] == d && (t[r][1].substring(t[r][1].length - t[r - 1][1].length) == t[r - 1][1] ? (t[r][1] = t[r - 1][1] + t[r][1].substring(0, t[r][1].length - t[r - 1][1].length), t[r + 1][1] = t[r - 1][1] + t[r + 1][1], t.splice(r - 1, 1), u = !0) : t[r][1].substring(0, t[r + 1][1].length) == t[r + 1][1] && (t[r - 1][1] += t[r + 1][1], t[r][1] = t[r][1].substring(t[r + 1][1].length) + t[r + 1][1], t.splice(r + 1, 1), u = !0)), r++;
- u && this.diff_cleanupMerge(t);
- }, n.prototype.diff_xIndex = function(t, r) {
- var i = 0, s = 0, o = 0, l = 0, c;
- for (c = 0; c < t.length && (t[c][0] !== f && (i += t[c][1].length), t[c][0] !== a && (s += t[c][1].length), !(i > r)); c++)
- o = i, l = s;
- return t.length != c && t[c][0] === a ? l : l + (r - o);
- }, n.prototype.diff_prettyHtml = function(t) {
- for (var r = [], i = /&/g, s = /</g, o = />/g, l = /\n/g, c = 0; c < t.length; c++) {
- var u = t[c][0], h = t[c][1], g = h.replace(i, "&").replace(s, "<").replace(o, ">").replace(l, "¶<br>");
- switch (u) {
- case f:
- r[c] = '<ins style="background:#e6ffe6;">' + g + "</ins>";
- break;
- case a:
- r[c] = '<del style="background:#ffe6e6;">' + g + "</del>";
- break;
- case d:
- r[c] = "<span>" + g + "</span>";
- break;
- }
- }
- return r.join("");
- }, n.prototype.diff_text1 = function(t) {
- for (var r = [], i = 0; i < t.length; i++)
- t[i][0] !== f && (r[i] = t[i][1]);
- return r.join("");
- }, n.prototype.diff_text2 = function(t) {
- for (var r = [], i = 0; i < t.length; i++)
- t[i][0] !== a && (r[i] = t[i][1]);
- return r.join("");
- }, n.prototype.diff_levenshtein = function(t) {
- for (var r = 0, i = 0, s = 0, o = 0; o < t.length; o++) {
- var l = t[o][0], c = t[o][1];
- switch (l) {
- case f:
- i += c.length;
- break;
- case a:
- s += c.length;
- break;
- case d:
- r += Math.max(i, s), i = 0, s = 0;
- break;
- }
- }
- return r += Math.max(i, s), r;
- }, n.prototype.diff_toDelta = function(t) {
- for (var r = [], i = 0; i < t.length; i++)
- switch (t[i][0]) {
- case f:
- r[i] = "+" + encodeURI(t[i][1]);
- break;
- case a:
- r[i] = "-" + t[i][1].length;
- break;
- case d:
- r[i] = "=" + t[i][1].length;
- break;
- }
- return r.join(" ").replace(/%20/g, " ");
- }, n.prototype.diff_fromDelta = function(t, r) {
- for (var i = [], s = 0, o = 0, l = r.split(/\t/g), c = 0; c < l.length; c++) {
- var u = l[c].substring(1);
- switch (l[c].charAt(0)) {
- case "+":
- try {
- i[s++] = new n.Diff(f, decodeURI(u));
- } catch (p) {
- throw new Error("Illegal escape in diff_fromDelta: " + u);
- }
- break;
- case "-":
- case "=":
- var h = parseInt(u, 10);
- if (isNaN(h) || h < 0)
- throw new Error("Invalid number in diff_fromDelta: " + u);
- var g = t.substring(o, o += h);
- l[c].charAt(0) == "=" ? i[s++] = new n.Diff(d, g) : i[s++] = new n.Diff(a, g);
- break;
- default:
- if (l[c])
- throw new Error("Invalid diff operation in diff_fromDelta: " + l[c]);
- }
- }
- if (o != t.length)
- throw new Error("Delta length (" + o + ") does not equal source text length (" + t.length + ").");
- return i;
- }, n.prototype.match_main = function(t, r, i) {
- if (t == null || r == null || i == null)
- throw new Error("Null input. (match_main)");
- return i = Math.max(0, Math.min(i, t.length)), t == r ? 0 : t.length ? t.substring(i, i + r.length) == r ? i : this.match_bitap_(t, r, i) : -1;
- }, n.prototype.match_bitap_ = function(t, r, i) {
- if (r.length > this.Match_MaxBits)
- throw new Error("Pattern too long for this browser.");
- var s = this.match_alphabet_(r), o = this;
- function l(C, I) {
- var B = C / r.length, $ = Math.abs(i - I);
- return o.Match_Distance ? B + $ / o.Match_Distance : $ ? 1 : B;
- }
- var c = this.Match_Threshold, u = t.indexOf(r, i);
- u != -1 && (c = Math.min(l(0, u), c), u = t.lastIndexOf(r, i + r.length), u != -1 && (c = Math.min(l(0, u), c)));
- var h = 1 << r.length - 1;
- u = -1;
- for (var g, p, _ = r.length + t.length, v, m = 0; m < r.length; m++) {
- for (g = 0, p = _; g < p; )
- l(m, i + p) <= c ? g = p : _ = p, p = Math.floor((_ - g) / 2 + g);
- _ = p;
- var E = Math.max(1, i - p + 1), A = Math.min(i + p, t.length) + r.length, D = Array(A + 2);
- D[A + 1] = (1 << m) - 1;
- for (var S = A; S >= E; S--) {
- var N = s[t.charAt(S - 1)];
- if (m === 0 ? D[S] = (D[S + 1] << 1 | 1) & N : D[S] = (D[S + 1] << 1 | 1) & N | ((v[S + 1] | v[S]) << 1 | 1) | v[S + 1], D[S] & h) {
- var R = l(m, S - 1);
- if (R <= c)
- if (c = R, u = S - 1, u > i)
- E = Math.max(1, 2 * i - u);
- else
- break;
- }
- }
- if (l(m + 1, i) > c)
- break;
- v = D;
- }
- return u;
- }, n.prototype.match_alphabet_ = function(t) {
- for (var r = {}, i = 0; i < t.length; i++)
- r[t.charAt(i)] = 0;
- for (var i = 0; i < t.length; i++)
- r[t.charAt(i)] |= 1 << t.length - i - 1;
- return r;
- }, n.prototype.patch_addContext_ = function(t, r) {
- if (r.length != 0) {
- if (t.start2 === null)
- throw Error("patch not initialized");
- for (var i = r.substring(t.start2, t.start2 + t.length1), s = 0; r.indexOf(i) != r.lastIndexOf(i) && i.length < this.Match_MaxBits - this.Patch_Margin - this.Patch_Margin; )
- s += this.Patch_Margin, i = r.substring(
- t.start2 - s,
- t.start2 + t.length1 + s
- );
- s += this.Patch_Margin;
- var o = r.substring(t.start2 - s, t.start2);
- o && t.diffs.unshift(new n.Diff(d, o));
- var l = r.substring(
- t.start2 + t.length1,
- t.start2 + t.length1 + s
- );
- l && t.diffs.push(new n.Diff(d, l)), t.start1 -= o.length, t.start2 -= o.length, t.length1 += o.length + l.length, t.length2 += o.length + l.length;
- }
- }, n.prototype.patch_make = function(t, r, i) {
- var s, o;
- if (typeof t == "string" && typeof r == "string" && typeof i == "undefined")
- s = /** @type {string} */
- t, o = this.diff_main(
- s,
- /** @type {string} */
- r,
- !0
- ), o.length > 2 && (this.diff_cleanupSemantic(o), this.diff_cleanupEfficiency(o));
- else if (t && typeof t == "object" && typeof r == "undefined" && typeof i == "undefined")
- o = /** @type {!Array.<!diff_match_patch.Diff>} */
- t, s = this.diff_text1(o);
- else if (typeof t == "string" && r && typeof r == "object" && typeof i == "undefined")
- s = /** @type {string} */
- t, o = /** @type {!Array.<!diff_match_patch.Diff>} */
- r;
- else if (typeof t == "string" && typeof r == "string" && i && typeof i == "object")
- s = /** @type {string} */
- t, o = /** @type {!Array.<!diff_match_patch.Diff>} */
- i;
- else
- throw new Error("Unknown call format to patch_make.");
- if (o.length === 0)
- return [];
- for (var l = [], c = new n.patch_obj(), u = 0, h = 0, g = 0, p = s, _ = s, v = 0; v < o.length; v++) {
- var m = o[v][0], E = o[v][1];
- switch (!u && m !== d && (c.start1 = h, c.start2 = g), m) {
- case f:
- c.diffs[u++] = o[v], c.length2 += E.length, _ = _.substring(0, g) + E + _.substring(g);
- break;
- case a:
- c.length1 += E.length, c.diffs[u++] = o[v], _ = _.substring(0, g) + _.substring(g + E.length);
- break;
- case d:
- E.length <= 2 * this.Patch_Margin && u && o.length != v + 1 ? (c.diffs[u++] = o[v], c.length1 += E.length, c.length2 += E.length) : E.length >= 2 * this.Patch_Margin && u && (this.patch_addContext_(c, p), l.push(c), c = new n.patch_obj(), u = 0, p = _, h = g);
- break;
- }
- m !== f && (h += E.length), m !== a && (g += E.length);
- }
- return u && (this.patch_addContext_(c, p), l.push(c)), l;
- }, n.prototype.patch_deepCopy = function(t) {
- for (var r = [], i = 0; i < t.length; i++) {
- var s = t[i], o = new n.patch_obj();
- o.diffs = [];
- for (var l = 0; l < s.diffs.length; l++)
- o.diffs[l] = new n.Diff(s.diffs[l][0], s.diffs[l][1]);
- o.start1 = s.start1, o.start2 = s.start2, o.length1 = s.length1, o.length2 = s.length2, r[i] = o;
- }
- return r;
- }, n.prototype.patch_apply = function(t, r) {
- if (t.length == 0)
- return [r, []];
- t = this.patch_deepCopy(t);
- var i = this.patch_addPadding(t);
- r = i + r + i, this.patch_splitMax(t);
- for (var s = 0, o = [], l = 0; l < t.length; l++) {
- var c = t[l].start2 + s, u = this.diff_text1(t[l].diffs), h, g = -1;
- if (u.length > this.Match_MaxBits ? (h = this.match_main(
- r,
- u.substring(0, this.Match_MaxBits),
- c
- ), h != -1 && (g = this.match_main(
- r,
- u.substring(u.length - this.Match_MaxBits),
- c + u.length - this.Match_MaxBits
- ), (g == -1 || h >= g) && (h = -1))) : h = this.match_main(r, u, c), h == -1)
- o[l] = !1, s -= t[l].length2 - t[l].length1;
- else {
- o[l] = !0, s = h - c;
- var p;
- if (g == -1 ? p = r.substring(h, h + u.length) : p = r.substring(h, g + this.Match_MaxBits), u == p)
- r = r.substring(0, h) + this.diff_text2(t[l].diffs) + r.substring(h + u.length);
- else {
- var _ = this.diff_main(u, p, !1);
- if (u.length > this.Match_MaxBits && this.diff_levenshtein(_) / u.length > this.Patch_DeleteThreshold)
- o[l] = !1;
- else {
- this.diff_cleanupSemanticLossless(_);
- for (var v = 0, m, E = 0; E < t[l].diffs.length; E++) {
- var A = t[l].diffs[E];
- A[0] !== d && (m = this.diff_xIndex(_, v)), A[0] === f ? r = r.substring(0, h + m) + A[1] + r.substring(h + m) : A[0] === a && (r = r.substring(0, h + m) + r.substring(h + this.diff_xIndex(
- _,
- v + A[1].length
- ))), A[0] !== a && (v += A[1].length);
- }
- }
- }
- }
- }
- return r = r.substring(i.length, r.length - i.length), [r, o];
- }, n.prototype.patch_addPadding = function(t) {
- for (var r = this.Patch_Margin, i = "", s = 1; s <= r; s++)
- i += String.fromCharCode(s);
- for (var s = 0; s < t.length; s++)
- t[s].start1 += r, t[s].start2 += r;
- var o = t[0], l = o.diffs;
- if (l.length == 0 || l[0][0] != d)
- l.unshift(new n.Diff(d, i)), o.start1 -= r, o.start2 -= r, o.length1 += r, o.length2 += r;
- else if (r > l[0][1].length) {
- var c = r - l[0][1].length;
- l[0][1] = i.substring(l[0][1].length) + l[0][1], o.start1 -= c, o.start2 -= c, o.length1 += c, o.length2 += c;
- }
- if (o = t[t.length - 1], l = o.diffs, l.length == 0 || l[l.length - 1][0] != d)
- l.push(new n.Diff(d, i)), o.length1 += r, o.length2 += r;
- else if (r > l[l.length - 1][1].length) {
- var c = r - l[l.length - 1][1].length;
- l[l.length - 1][1] += i.substring(0, c), o.length1 += c, o.length2 += c;
- }
- return i;
- }, n.prototype.patch_splitMax = function(t) {
- for (var r = this.Match_MaxBits, i = 0; i < t.length; i++)
- if (!(t[i].length1 <= r)) {
- var s = t[i];
- t.splice(i--, 1);
- for (var o = s.start1, l = s.start2, c = ""; s.diffs.length !== 0; ) {
- var u = new n.patch_obj(), h = !0;
- for (u.start1 = o - c.length, u.start2 = l - c.length, c !== "" && (u.length1 = u.length2 = c.length, u.diffs.push(new n.Diff(d, c))); s.diffs.length !== 0 && u.length1 < r - this.Patch_Margin; ) {
- var g = s.diffs[0][0], p = s.diffs[0][1];
- g === f ? (u.length2 += p.length, l += p.length, u.diffs.push(s.diffs.shift()), h = !1) : g === a && u.diffs.length == 1 && u.diffs[0][0] == d && p.length > 2 * r ? (u.length1 += p.length, o += p.length, h = !1, u.diffs.push(new n.Diff(g, p)), s.diffs.shift()) : (p = p.substring(
- 0,
- r - u.length1 - this.Patch_Margin
- ), u.length1 += p.length, o += p.length, g === d ? (u.length2 += p.length, l += p.length) : h = !1, u.diffs.push(new n.Diff(g, p)), p == s.diffs[0][1] ? s.diffs.shift() : s.diffs[0][1] = s.diffs[0][1].substring(p.length));
- }
- c = this.diff_text2(u.diffs), c = c.substring(c.length - this.Patch_Margin);
- var _ = this.diff_text1(s.diffs).substring(0, this.Patch_Margin);
- _ !== "" && (u.length1 += _.length, u.length2 += _.length, u.diffs.length !== 0 && u.diffs[u.diffs.length - 1][0] === d ? u.diffs[u.diffs.length - 1][1] += _ : u.diffs.push(new n.Diff(d, _))), h || t.splice(++i, 0, u);
- }
- }
- }, n.prototype.patch_toText = function(t) {
- for (var r = [], i = 0; i < t.length; i++)
- r[i] = t[i];
- return r.join("");
- }, n.prototype.patch_fromText = function(t) {
- var r = [];
- if (!t)
- return r;
- for (var i = t.split(`
- `), s = 0, o = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/; s < i.length; ) {
- var l = i[s].match(o);
- if (!l)
- throw new Error("Invalid patch string: " + i[s]);
- var c = new n.patch_obj();
- for (r.push(c), c.start1 = parseInt(l[1], 10), l[2] === "" ? (c.start1--, c.length1 = 1) : l[2] == "0" ? c.length1 = 0 : (c.start1--, c.length1 = parseInt(l[2], 10)), c.start2 = parseInt(l[3], 10), l[4] === "" ? (c.start2--, c.length2 = 1) : l[4] == "0" ? c.length2 = 0 : (c.start2--, c.length2 = parseInt(l[4], 10)), s++; s < i.length; ) {
- var u = i[s].charAt(0);
- try {
- var h = decodeURI(i[s].substring(1));
- } catch (g) {
- throw new Error("Illegal escape in patch_fromText: " + h);
- }
- if (u == "-")
- c.diffs.push(new n.Diff(a, h));
- else if (u == "+")
- c.diffs.push(new n.Diff(f, h));
- else if (u == " ")
- c.diffs.push(new n.Diff(d, h));
- else {
- if (u == "@")
- break;
- if (u !== "")
- throw new Error('Invalid patch mode "' + u + '" in: ' + h);
- }
- s++;
- }
- }
- return r;
- }, n.patch_obj = function() {
- this.diffs = [], this.start1 = null, this.start2 = null, this.length1 = 0, this.length2 = 0;
- }, n.patch_obj.prototype.toString = function() {
- var t, r;
- this.length1 === 0 ? t = this.start1 + ",0" : this.length1 == 1 ? t = this.start1 + 1 : t = this.start1 + 1 + "," + this.length1, this.length2 === 0 ? r = this.start2 + ",0" : this.length2 == 1 ? r = this.start2 + 1 : r = this.start2 + 1 + "," + this.length2;
- for (var i = ["@@ -" + t + " +" + r + ` @@
- `], s, o = 0; o < this.diffs.length; o++) {
- switch (this.diffs[o][0]) {
- case f:
- s = "+";
- break;
- case a:
- s = "-";
- break;
- case d:
- s = " ";
- break;
- }
- i[o + 1] = s + encodeURI(this.diffs[o][1]) + `
- `;
- }
- return i.join("").replace(/%20/g, " ");
- }, e.exports = n, e.exports.diff_match_patch = n, e.exports.DIFF_DELETE = a, e.exports.DIFF_INSERT = f, e.exports.DIFF_EQUAL = d;
- })(bn);
- var Ie = bn.exports;
- function vn(e) {
- return e instanceof Map ? e.clear = e.delete = e.set = function() {
- throw new Error("map is read-only");
- } : e instanceof Set && (e.add = e.clear = e.delete = function() {
- throw new Error("set is read-only");
- }), Object.freeze(e), Object.getOwnPropertyNames(e).forEach((n) => {
- const a = e[n], f = typeof a;
- (f === "object" || f === "function") && !Object.isFrozen(a) && vn(a);
- }), e;
- }
- class Je {
- /**
- * @param {CompiledMode} mode
- */
- constructor(n) {
- n.data === void 0 && (n.data = {}), this.data = n.data, this.isMatchIgnored = !1;
- }
- ignoreMatch() {
- this.isMatchIgnored = !0;
- }
- }
- function mn(e) {
- return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
- }
- function re(e, ...n) {
- const a = /* @__PURE__ */ Object.create(null);
- for (const f in e)
- a[f] = e[f];
- return n.forEach(function(f) {
- for (const d in f)
- a[d] = f[d];
- }), /** @type {T} */
- a;
- }
- const tt = "</span>", en = (e) => !!e.scope, rt = (e, { prefix: n }) => {
- if (e.startsWith("language:"))
- return e.replace("language:", "language-");
- if (e.includes(".")) {
- const a = e.split(".");
- return [
- `${n}${a.shift()}`,
- ...a.map((f, d) => `${f}${"_".repeat(d + 1)}`)
- ].join(" ");
- }
- return `${n}${e}`;
- };
- class it {
- /**
- * Creates a new HTMLRenderer
- *
- * @param {Tree} parseTree - the parse tree (must support `walk` API)
- * @param {{classPrefix: string}} options
- */
- constructor(n, a) {
- this.buffer = "", this.classPrefix = a.classPrefix, n.walk(this);
- }
- /**
- * Adds texts to the output stream
- *
- * @param {string} text */
- addText(n) {
- this.buffer += mn(n);
- }
- /**
- * Adds a node open to the output stream (if needed)
- *
- * @param {Node} node */
- openNode(n) {
- if (!en(n))
- return;
- const a = rt(
- n.scope,
- { prefix: this.classPrefix }
- );
- this.span(a);
- }
- /**
- * Adds a node close to the output stream (if needed)
- *
- * @param {Node} node */
- closeNode(n) {
- en(n) && (this.buffer += tt);
- }
- /**
- * returns the accumulated buffer
- */
- value() {
- return this.buffer;
- }
- // helpers
- /**
- * Builds a span element
- *
- * @param {string} className */
- span(n) {
- this.buffer += `<span class="${n}">`;
- }
- }
- const nn = (e = {}) => {
- const n = { children: [] };
- return Object.assign(n, e), n;
- };
- class xe {
- constructor() {
- this.rootNode = nn(), this.stack = [this.rootNode];
- }
- get top() {
- return this.stack[this.stack.length - 1];
- }
- get root() {
- return this.rootNode;
- }
- /** @param {Node} node */
- add(n) {
- this.top.children.push(n);
- }
- /** @param {string} scope */
- openNode(n) {
- const a = nn({ scope: n });
- this.add(a), this.stack.push(a);
- }
- closeNode() {
- if (this.stack.length > 1)
- return this.stack.pop();
- }
- closeAllNodes() {
- for (; this.closeNode(); )
- ;
- }
- toJSON() {
- return JSON.stringify(this.rootNode, null, 4);
- }
- /**
- * @typedef { import("./html_renderer").Renderer } Renderer
- * @param {Renderer} builder
- */
- walk(n) {
- return this.constructor._walk(n, this.rootNode);
- }
- /**
- * @param {Renderer} builder
- * @param {Node} node
- */
- static _walk(n, a) {
- return typeof a == "string" ? n.addText(a) : a.children && (n.openNode(a), a.children.forEach((f) => this._walk(n, f)), n.closeNode(a)), n;
- }
- /**
- * @param {Node} node
- */
- static _collapse(n) {
- typeof n != "string" && n.children && (n.children.every((a) => typeof a == "string") ? n.children = [n.children.join("")] : n.children.forEach((a) => {
- xe._collapse(a);
- }));
- }
- }
- class st extends xe {
- /**
- * @param {*} options
- */
- constructor(n) {
- super(), this.options = n;
- }
- /**
- * @param {string} text
- */
- addText(n) {
- n !== "" && this.add(n);
- }
- /** @param {string} scope */
- startScope(n) {
- this.openNode(n);
- }
- endScope() {
- this.closeNode();
- }
- /**
- * @param {Emitter & {root: DataNode}} emitter
- * @param {string} name
- */
- __addSublanguage(n, a) {
- const f = n.root;
- a && (f.scope = `language:${a}`), this.add(f);
- }
- toHTML() {
- return new it(this, this.options).value();
- }
- finalize() {
- return this.closeAllNodes(), !0;
- }
- }
- function pe(e) {
- return e ? typeof e == "string" ? e : e.source : null;
- }
- function En(e) {
- return ae("(?=", e, ")");
- }
- function at(e) {
- return ae("(?:", e, ")*");
- }
- function ot(e) {
- return ae("(?:", e, ")?");
- }
- function ae(...e) {
- return e.map((a) => pe(a)).join("");
- }
- function lt(e) {
- const n = e[e.length - 1];
- return typeof n == "object" && n.constructor === Object ? (e.splice(e.length - 1, 1), n) : {};
- }
- function He(...e) {
- return "(" + (lt(e).capture ? "" : "?:") + e.map((f) => pe(f)).join("|") + ")";
- }
- function yn(e) {
- return new RegExp(e.toString() + "|").exec("").length - 1;
- }
- function ct(e, n) {
- const a = e && e.exec(n);
- return a && a.index === 0;
- }
- const ut = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
- function Fe(e, { joinWith: n }) {
- let a = 0;
- return e.map((f) => {
- a += 1;
- const d = a;
- let t = pe(f), r = "";
- for (; t.length > 0; ) {
- const i = ut.exec(t);
- if (!i) {
- r += t;
- break;
- }
- r += t.substring(0, i.index), t = t.substring(i.index + i[0].length), i[0][0] === "\\" && i[1] ? r += "\\" + String(Number(i[1]) + d) : (r += i[0], i[0] === "(" && a++);
- }
- return r;
- }).map((f) => `(${f})`).join(n);
- }
- const ft = /\b\B/, wn = "[a-zA-Z]\\w*", ze = "[a-zA-Z_]\\w*", An = "\\b\\d+(\\.\\d+)?", Nn = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", Mn = "\\b(0b[01]+)", gt = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", ht = (e = {}) => {
- const n = /^#![ ]*\//;
- return e.binary && (e.begin = ae(
- n,
- /.*\b/,
- e.binary,
- /\b.*/
- )), re({
- scope: "meta",
- begin: n,
- end: /$/,
- relevance: 0,
- /** @type {ModeCallback} */
- "on:begin": (a, f) => {
- a.index !== 0 && f.ignoreMatch();
- }
- }, e);
- }, _e = {
- begin: "\\\\[\\s\\S]",
- relevance: 0
- }, dt = {
- scope: "string",
- begin: "'",
- end: "'",
- illegal: "\\n",
- contains: [_e]
- }, pt = {
- scope: "string",
- begin: '"',
- end: '"',
- illegal: "\\n",
- contains: [_e]
- }, _t = {
- begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
- }, Ce = function(e, n, a = {}) {
- const f = re(
- {
- scope: "comment",
- begin: e,
- end: n,
- contains: []
- },
- a
- );
- f.contains.push({
- scope: "doctag",
- // hack to avoid the space from being included. the space is necessary to
- // match here to prevent the plain text rule below from gobbling up doctags
- begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
- end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,
- excludeBegin: !0,
- relevance: 0
- });
- const d = He(
- // list of common 1 and 2 letter words in English
- "I",
- "a",
- "is",
- "so",
- "us",
- "to",
- "at",
- "if",
- "in",
- "it",
- "on",
- // note: this is not an exhaustive list of contractions, just popular ones
- /[A-Za-z]+['](d|ve|re|ll|t|s|n)/,
- // contractions - can't we'd they're let's, etc
- /[A-Za-z]+[-][a-z]+/,
- // `no-way`, etc.
- /[A-Za-z][a-z]{2,}/
- // allow capitalized words at beginning of sentences
- );
- return f.contains.push(
- {
- // TODO: how to include ", (, ) without breaking grammars that use these for
- // comment delimiters?
- // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/
- // ---
- // this tries to find sequences of 3 english words in a row (without any
- // "programming" type syntax) this gives us a strong signal that we've
- // TRULY found a comment - vs perhaps scanning with the wrong language.
- // It's possible to find something that LOOKS like the start of the
- // comment - but then if there is no readable text - good chance it is a
- // false match and not a comment.
- //
- // for a visual example please see:
- // https://github.com/highlightjs/highlight.js/issues/2827
- begin: ae(
- /[ ]+/,
- // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */
- "(",
- d,
- /[.]?[:]?([.][ ]|[ ])/,
- "){3}"
- )
- // look for 3 words in a row
- }
- ), f;
- }, bt = Ce("//", "$"), vt = Ce("/\\*", "\\*/"), mt = Ce("#", "$"), Et = {
- scope: "number",
- begin: An,
- relevance: 0
- }, yt = {
- scope: "number",
- begin: Nn,
- relevance: 0
- }, wt = {
- scope: "number",
- begin: Mn,
- relevance: 0
- }, At = {
- scope: "regexp",
- begin: /\/(?=[^/\n]*\/)/,
- end: /\/[gimuy]*/,
- contains: [
- _e,
- {
- begin: /\[/,
- end: /\]/,
- relevance: 0,
- contains: [_e]
- }
- ]
- }, Nt = {
- scope: "title",
- begin: wn,
- relevance: 0
- }, Mt = {
- scope: "title",
- begin: ze,
- relevance: 0
- }, Tt = {
- // excludes method names from keyword processing
- begin: "\\.\\s*" + ze,
- relevance: 0
- }, St = function(e) {
- return Object.assign(
- e,
- {
- /** @type {ModeCallback} */
- "on:begin": (n, a) => {
- a.data._beginMatch = n[1];
- },
- /** @type {ModeCallback} */
- "on:end": (n, a) => {
- a.data._beginMatch !== n[1] && a.ignoreMatch();
- }
- }
- );
- };
- var Ae = /* @__PURE__ */ Object.freeze({
- __proto__: null,
- APOS_STRING_MODE: dt,
- BACKSLASH_ESCAPE: _e,
- BINARY_NUMBER_MODE: wt,
- BINARY_NUMBER_RE: Mn,
- COMMENT: Ce,
- C_BLOCK_COMMENT_MODE: vt,
- C_LINE_COMMENT_MODE: bt,
- C_NUMBER_MODE: yt,
- C_NUMBER_RE: Nn,
- END_SAME_AS_BEGIN: St,
- HASH_COMMENT_MODE: mt,
- IDENT_RE: wn,
- MATCH_NOTHING_RE: ft,
- METHOD_GUARD: Tt,
- NUMBER_MODE: Et,
- NUMBER_RE: An,
- PHRASAL_WORDS_MODE: _t,
- QUOTE_STRING_MODE: pt,
- REGEXP_MODE: At,
- RE_STARTERS_RE: gt,
- SHEBANG: ht,
- TITLE_MODE: Nt,
- UNDERSCORE_IDENT_RE: ze,
- UNDERSCORE_TITLE_MODE: Mt
- });
- function Dt(e, n) {
- e.input[e.index - 1] === "." && n.ignoreMatch();
- }
- function Ct(e, n) {
- e.className !== void 0 && (e.scope = e.className, delete e.className);
- }
- function Rt(e, n) {
- n && e.beginKeywords && (e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", e.__beforeBegin = Dt, e.keywords = e.keywords || e.beginKeywords, delete e.beginKeywords, e.relevance === void 0 && (e.relevance = 0));
- }
- function Lt(e, n) {
- Array.isArray(e.illegal) && (e.illegal = He(...e.illegal));
- }
- function Ot(e, n) {
- if (e.match) {
- if (e.begin || e.end)
- throw new Error("begin & end are not supported with match");
- e.begin = e.match, delete e.match;
- }
- }
- function It(e, n) {
- e.relevance === void 0 && (e.relevance = 1);
- }
- const kt = (e, n) => {
- if (!e.beforeMatch)
- return;
- if (e.starts)
- throw new Error("beforeMatch cannot be used with starts");
- const a = Object.assign({}, e);
- Object.keys(e).forEach((f) => {
- delete e[f];
- }), e.keywords = a.keywords, e.begin = ae(a.beforeMatch, En(a.begin)), e.starts = {
- relevance: 0,
- contains: [
- Object.assign(a, { endsParent: !0 })
- ]
- }, e.relevance = 0, delete a.beforeMatch;
- }, $t = [
- "of",
- "and",
- "for",
- "in",
- "not",
- "or",
- "if",
- "then",
- "parent",
- // common variable name
- "list",
- // common variable name
- "value"
- // common variable name
- ], Bt = "keyword";
- function Tn(e, n, a = Bt) {
- const f = /* @__PURE__ */ Object.create(null);
- return typeof e == "string" ? d(a, e.split(" ")) : Array.isArray(e) ? d(a, e) : Object.keys(e).forEach(function(t) {
- Object.assign(
- f,
- Tn(e[t], n, t)
- );
- }), f;
- function d(t, r) {
- n && (r = r.map((i) => i.toLowerCase())), r.forEach(function(i) {
- const s = i.split("|");
- f[s[0]] = [t, Ut(s[0], s[1])];
- });
- }
- }
- function Ut(e, n) {
- return n ? Number(n) : Pt(e) ? 0 : 1;
- }
- function Pt(e) {
- return $t.includes(e.toLowerCase());
- }
- const tn = {}, se = (e) => {
- console.error(e);
- }, rn = (e, ...n) => {
- console.log(`WARN: ${e}`, ...n);
- }, ce = (e, n) => {
- tn[`${e}/${n}`] || (console.log(`Deprecated as of ${e}. ${n}`), tn[`${e}/${n}`] = !0);
- }, Se = new Error();
- function Sn(e, n, { key: a }) {
- let f = 0;
- const d = e[a], t = {}, r = {};
- for (let i = 1; i <= n.length; i++)
- r[i + f] = d[i], t[i + f] = !0, f += yn(n[i - 1]);
- e[a] = r, e[a]._emit = t, e[a]._multi = !0;
- }
- function xt(e) {
- if (Array.isArray(e.begin)) {
- if (e.skip || e.excludeBegin || e.returnBegin)
- throw se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), Se;
- if (typeof e.beginScope != "object" || e.beginScope === null)
- throw se("beginScope must be object"), Se;
- Sn(e, e.begin, { key: "beginScope" }), e.begin = Fe(e.begin, { joinWith: "" });
- }
- }
- function Ht(e) {
- if (Array.isArray(e.end)) {
- if (e.skip || e.excludeEnd || e.returnEnd)
- throw se("skip, excludeEnd, returnEnd not compatible with endScope: {}"), Se;
- if (typeof e.endScope != "object" || e.endScope === null)
- throw se("endScope must be object"), Se;
- Sn(e, e.end, { key: "endScope" }), e.end = Fe(e.end, { joinWith: "" });
- }
- }
- function Ft(e) {
- e.scope && typeof e.scope == "object" && e.scope !== null && (e.beginScope = e.scope, delete e.scope);
- }
- function zt(e) {
- Ft(e), typeof e.beginScope == "string" && (e.beginScope = { _wrap: e.beginScope }), typeof e.endScope == "string" && (e.endScope = { _wrap: e.endScope }), xt(e), Ht(e);
- }
- function Gt(e) {
- function n(r, i) {
- return new RegExp(
- pe(r),
- "m" + (e.case_insensitive ? "i" : "") + (e.unicodeRegex ? "u" : "") + (i ? "g" : "")
- );
- }
- class a {
- constructor() {
- this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0;
- }
- // @ts-ignore
- addRule(i, s) {
- s.position = this.position++, this.matchIndexes[this.matchAt] = s, this.regexes.push([s, i]), this.matchAt += yn(i) + 1;
- }
- compile() {
- this.regexes.length === 0 && (this.exec = () => null);
- const i = this.regexes.map((s) => s[1]);
- this.matcherRe = n(Fe(i, { joinWith: "|" }), !0), this.lastIndex = 0;
- }
- /** @param {string} s */
- exec(i) {
- this.matcherRe.lastIndex = this.lastIndex;
- const s = this.matcherRe.exec(i);
- if (!s)
- return null;
- const o = s.findIndex((c, u) => u > 0 && c !== void 0), l = this.matchIndexes[o];
- return s.splice(0, o), Object.assign(s, l);
- }
- }
- class f {
- constructor() {
- this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0;
- }
- // @ts-ignore
- getMatcher(i) {
- if (this.multiRegexes[i])
- return this.multiRegexes[i];
- const s = new a();
- return this.rules.slice(i).forEach(([o, l]) => s.addRule(o, l)), s.compile(), this.multiRegexes[i] = s, s;
- }
- resumingScanAtSamePosition() {
- return this.regexIndex !== 0;
- }
- considerAll() {
- this.regexIndex = 0;
- }
- // @ts-ignore
- addRule(i, s) {
- this.rules.push([i, s]), s.type === "begin" && this.count++;
- }
- /** @param {string} s */
- exec(i) {
- const s = this.getMatcher(this.regexIndex);
- s.lastIndex = this.lastIndex;
- let o = s.exec(i);
- if (this.resumingScanAtSamePosition() && !(o && o.index === this.lastIndex)) {
- const l = this.getMatcher(0);
- l.lastIndex = this.lastIndex + 1, o = l.exec(i);
- }
- return o && (this.regexIndex += o.position + 1, this.regexIndex === this.count && this.considerAll()), o;
- }
- }
- function d(r) {
- const i = new f();
- return r.contains.forEach((s) => i.addRule(s.begin, { rule: s, type: "begin" })), r.terminatorEnd && i.addRule(r.terminatorEnd, { type: "end" }), r.illegal && i.addRule(r.illegal, { type: "illegal" }), i;
- }
- function t(r, i) {
- const s = (
- /** @type CompiledMode */
- r
- );
- if (r.isCompiled)
- return s;
- [
- Ct,
- // do this early so compiler extensions generally don't have to worry about
- // the distinction between match/begin
- Ot,
- zt,
- kt
- ].forEach((l) => l(r, i)), e.compilerExtensions.forEach((l) => l(r, i)), r.__beforeBegin = null, [
- Rt,
- // do this later so compiler extensions that come earlier have access to the
- // raw array if they wanted to perhaps manipulate it, etc.
- Lt,
- // default to 1 relevance if not specified
- It
- ].forEach((l) => l(r, i)), r.isCompiled = !0;
- let o = null;
- return typeof r.keywords == "object" && r.keywords.$pattern && (r.keywords = Object.assign({}, r.keywords), o = r.keywords.$pattern, delete r.keywords.$pattern), o = o || /\w+/, r.keywords && (r.keywords = Tn(r.keywords, e.case_insensitive)), s.keywordPatternRe = n(o, !0), i && (r.begin || (r.begin = /\B|\b/), s.beginRe = n(s.begin), !r.end && !r.endsWithParent && (r.end = /\B|\b/), r.end && (s.endRe = n(s.end)), s.terminatorEnd = pe(s.end) || "", r.endsWithParent && i.terminatorEnd && (s.terminatorEnd += (r.end ? "|" : "") + i.terminatorEnd)), r.illegal && (s.illegalRe = n(
- /** @type {RegExp | string} */
- r.illegal
- )), r.contains || (r.contains = []), r.contains = [].concat(...r.contains.map(function(l) {
- return Kt(l === "self" ? r : l);
- })), r.contains.forEach(function(l) {
- t(
- /** @type Mode */
- l,
- s
- );
- }), r.starts && t(r.starts, i), s.matcher = d(s), s;
- }
- if (e.compilerExtensions || (e.compilerExtensions = []), e.contains && e.contains.includes("self"))
- throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");
- return e.classNameAliases = re(e.classNameAliases || {}), t(
- /** @type Mode */
- e
- );
- }
- function Dn(e) {
- return e ? e.endsWithParent || Dn(e.starts) : !1;
- }
- function Kt(e) {
- return e.variants && !e.cachedVariants && (e.cachedVariants = e.variants.map(function(n) {
- return re(e, { variants: null }, n);
- })), e.cachedVariants ? e.cachedVariants : Dn(e) ? re(e, { starts: e.starts ? re(e.starts) : null }) : Object.isFrozen(e) ? re(e) : e;
- }
- var Wt = "11.9.0";
- class qt extends Error {
- constructor(n, a) {
- super(n), this.name = "HTMLInjectionError", this.html = a;
- }
- }
- const ke = mn, sn = re, an = Symbol("nomatch"), Qt = 7, Cn = function(e) {
- const n = /* @__PURE__ */ Object.create(null), a = /* @__PURE__ */ Object.create(null), f = [];
- let d = !0;
- const t = "Could not find the language '{}', did you forget to load/include a language module?", r = { disableAutodetect: !0, name: "Plain text", contains: [] };
- let i = {
- ignoreUnescapedHTML: !1,
- throwUnescapedHTML: !1,
- noHighlightRe: /^(no-?highlight)$/i,
- languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
- classPrefix: "hljs-",
- cssSelector: "pre code",
- languages: null,
- // beta configuration options, subject to change, welcome to discuss
- // https://github.com/highlightjs/highlight.js/issues/1086
- __emitter: st
- };
- function s(b) {
- return i.noHighlightRe.test(b);
- }
- function o(b) {
- let w = b.className + " ";
- w += b.parentNode ? b.parentNode.className : "";
- const L = i.languageDetectRe.exec(w);
- if (L) {
- const U = C(L[1]);
- return U || (rn(t.replace("{}", L[1])), rn("Falling back to no-highlight mode for this block.", b)), U ? L[1] : "no-highlight";
- }
- return w.split(/\s+/).find((U) => s(U) || C(U));
- }
- function l(b, w, L) {
- let U = "", H = "";
- typeof w == "object" ? (U = b, L = w.ignoreIllegals, H = w.language) : (ce("10.7.0", "highlight(lang, code, ...args) has been deprecated."), ce("10.7.0", `Please use highlight(code, options) instead.
- https://github.com/highlightjs/highlight.js/issues/2277`), H = b, U = w), L === void 0 && (L = !0);
- const W = {
- code: U,
- language: H
- };
- te("before:highlight", W);
- const Z = W.result ? W.result : c(W.language, W.code, L);
- return Z.code = W.code, te("after:highlight", Z), Z;
- }
- function c(b, w, L, U) {
- const H = /* @__PURE__ */ Object.create(null);
- function W(y, M) {
- return y.keywords[M];
- }
- function Z() {
- if (!O.keywords) {
- z.addText(x);
- return;
- }
- let y = 0;
- O.keywordPatternRe.lastIndex = 0;
- let M = O.keywordPatternRe.exec(x), k = "";
- for (; M; ) {
- k += x.substring(y, M.index);
- const P = Y.case_insensitive ? M[0].toLowerCase() : M[0], G = W(O, P);
- if (G) {
- const [X, Fn] = G;
- if (z.addText(k), k = "", H[P] = (H[P] || 0) + 1, H[P] <= Qt && (we += Fn), X.startsWith("_"))
- k += M[0];
- else {
- const zn = Y.classNameAliases[X] || X;
- V(M[0], zn);
- }
- } else
- k += M[0];
- y = O.keywordPatternRe.lastIndex, M = O.keywordPatternRe.exec(x);
- }
- k += x.substring(y), z.addText(k);
- }
- function Ee() {
- if (x === "")
- return;
- let y = null;
- if (typeof O.subLanguage == "string") {
- if (!n[O.subLanguage]) {
- z.addText(x);
- return;
- }
- y = c(O.subLanguage, x, !0, Ze[O.subLanguage]), Ze[O.subLanguage] = /** @type {CompiledMode} */
- y._top;
- } else
- y = h(x, O.subLanguage.length ? O.subLanguage : null);
- O.relevance > 0 && (we += y.relevance), z.__addSublanguage(y._emitter, y.language);
- }
- function q() {
- O.subLanguage != null ? Ee() : Z(), x = "";
- }
- function V(y, M) {
- y !== "" && (z.startScope(M), z.addText(y), z.endScope());
- }
- function We(y, M) {
- let k = 1;
- const P = M.length - 1;
- for (; k <= P; ) {
- if (!y._emit[k]) {
- k++;
- continue;
- }
- const G = Y.classNameAliases[y[k]] || y[k], X = M[k];
- G ? V(X, G) : (x = X, Z(), x = ""), k++;
- }
- }
- function qe(y, M) {
- return y.scope && typeof y.scope == "string" && z.openNode(Y.classNameAliases[y.scope] || y.scope), y.beginScope && (y.beginScope._wrap ? (V(x, Y.classNameAliases[y.beginScope._wrap] || y.beginScope._wrap), x = "") : y.beginScope._multi && (We(y.beginScope, M), x = "")), O = Object.create(y, { parent: { value: O } }), O;
- }
- function Qe(y, M, k) {
- let P = ct(y.endRe, k);
- if (P) {
- if (y["on:end"]) {
- const G = new Je(y);
- y["on:end"](M, G), G.isMatchIgnored && (P = !1);
- }
- if (P) {
- for (; y.endsParent && y.parent; )
- y = y.parent;
- return y;
- }
- }
- if (y.endsWithParent)
- return Qe(y.parent, M, k);
- }
- function Bn(y) {
- return O.matcher.regexIndex === 0 ? (x += y[0], 1) : (Oe = !0, 0);
- }
- function Un(y) {
- const M = y[0], k = y.rule, P = new Je(k), G = [k.__beforeBegin, k["on:begin"]];
- for (const X of G)
- if (X && (X(y, P), P.isMatchIgnored))
- return Bn(M);
- return k.skip ? x += M : (k.excludeBegin && (x += M), q(), !k.returnBegin && !k.excludeBegin && (x = M)), qe(k, y), k.returnBegin ? 0 : M.length;
- }
- function Pn(y) {
- const M = y[0], k = w.substring(y.index), P = Qe(O, y, k);
- if (!P)
- return an;
- const G = O;
- O.endScope && O.endScope._wrap ? (q(), V(M, O.endScope._wrap)) : O.endScope && O.endScope._multi ? (q(), We(O.endScope, y)) : G.skip ? x += M : (G.returnEnd || G.excludeEnd || (x += M), q(), G.excludeEnd && (x = M));
- do
- O.scope && z.closeNode(), !O.skip && !O.subLanguage && (we += O.relevance), O = O.parent;
- while (O !== P.parent);
- return P.starts && qe(P.starts, y), G.returnEnd ? 0 : M.length;
- }
- function xn() {
- const y = [];
- for (let M = O; M !== Y; M = M.parent)
- M.scope && y.unshift(M.scope);
- y.forEach((M) => z.openNode(M));
- }
- let ye = {};
- function je(y, M) {
- const k = M && M[0];
- if (x += y, k == null)
- return q(), 0;
- if (ye.type === "begin" && M.type === "end" && ye.index === M.index && k === "") {
- if (x += w.slice(M.index, M.index + 1), !d) {
- const P = new Error(`0 width match regex (${b})`);
- throw P.languageName = b, P.badRule = ye.rule, P;
- }
- return 1;
- }
- if (ye = M, M.type === "begin")
- return Un(M);
- if (M.type === "illegal" && !L) {
- const P = new Error('Illegal lexeme "' + k + '" for mode "' + (O.scope || "<unnamed>") + '"');
- throw P.mode = O, P;
- } else if (M.type === "end") {
- const P = Pn(M);
- if (P !== an)
- return P;
- }
- if (M.type === "illegal" && k === "")
- return 1;
- if (Le > 1e5 && Le > M.index * 3)
- throw new Error("potential infinite loop, way more iterations than matches");
- return x += k, k.length;
- }
- const Y = C(b);
- if (!Y)
- throw se(t.replace("{}", b)), new Error('Unknown language: "' + b + '"');
- const Hn = Gt(Y);
- let Re = "", O = U || Hn;
- const Ze = {}, z = new i.__emitter(i);
- xn();
- let x = "", we = 0, ie = 0, Le = 0, Oe = !1;
- try {
- if (Y.__emitTokens)
- Y.__emitTokens(w, z);
- else {
- for (O.matcher.considerAll(); ; ) {
- Le++, Oe ? Oe = !1 : O.matcher.considerAll(), O.matcher.lastIndex = ie;
- const y = O.matcher.exec(w);
- if (!y)
- break;
- const M = w.substring(ie, y.index), k = je(M, y);
- ie = y.index + k;
- }
- je(w.substring(ie));
- }
- return z.finalize(), Re = z.toHTML(), {
- language: b,
- value: Re,
- relevance: we,
- illegal: !1,
- _emitter: z,
- _top: O
- };
- } catch (y) {
- if (y.message && y.message.includes("Illegal"))
- return {
- language: b,
- value: ke(w),
- illegal: !0,
- relevance: 0,
- _illegalBy: {
- message: y.message,
- index: ie,
- context: w.slice(ie - 100, ie + 100),
- mode: y.mode,
- resultSoFar: Re
- },
- _emitter: z
- };
- if (d)
- return {
- language: b,
- value: ke(w),
- illegal: !1,
- relevance: 0,
- errorRaised: y,
- _emitter: z,
- _top: O
- };
- throw y;
- }
- }
- function u(b) {
- const w = {
- value: ke(b),
- illegal: !1,
- relevance: 0,
- _top: r,
- _emitter: new i.__emitter(i)
- };
- return w._emitter.addText(b), w;
- }
- function h(b, w) {
- w = w || i.languages || Object.keys(n);
- const L = u(b), U = w.filter(C).filter(B).map(
- (q) => c(q, b, !1)
- );
- U.unshift(L);
- const H = U.sort((q, V) => {
- if (q.relevance !== V.relevance)
- return V.relevance - q.relevance;
- if (q.language && V.language) {
- if (C(q.language).supersetOf === V.language)
- return 1;
- if (C(V.language).supersetOf === q.language)
- return -1;
- }
- return 0;
- }), [W, Z] = H, Ee = W;
- return Ee.secondBest = Z, Ee;
- }
- function g(b, w, L) {
- const U = w && a[w] || L;
- b.classList.add("hljs"), b.classList.add(`language-${U}`);
- }
- function p(b) {
- let w = null;
- const L = o(b);
- if (s(L))
- return;
- if (te(
- "before:highlightElement",
- { el: b, language: L }
- ), b.dataset.highlighted) {
- console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", b);
- return;
- }
- if (b.children.length > 0 && (i.ignoreUnescapedHTML || (console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), console.warn("The element with unescaped HTML:"), console.warn(b)), i.throwUnescapedHTML))
- throw new qt(
- "One of your code blocks includes unescaped HTML.",
- b.innerHTML
- );
- w = b;
- const U = w.textContent, H = L ? l(U, { language: L, ignoreIllegals: !0 }) : h(U);
- b.innerHTML = H.value, b.dataset.highlighted = "yes", g(b, L, H.language), b.result = {
- language: H.language,
- // TODO: remove with version 11.0
- re: H.relevance,
- relevance: H.relevance
- }, H.secondBest && (b.secondBest = {
- language: H.secondBest.language,
- relevance: H.secondBest.relevance
- }), te("after:highlightElement", { el: b, result: H, text: U });
- }
- function _(b) {
- i = sn(i, b);
- }
- const v = () => {
- A(), ce("10.6.0", "initHighlighting() deprecated. Use highlightAll() now.");
- };
- function m() {
- A(), ce("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now.");
- }
- let E = !1;
- function A() {
- if (document.readyState === "loading") {
- E = !0;
- return;
- }
- document.querySelectorAll(i.cssSelector).forEach(p);
- }
- function D() {
- E && A();
- }
- typeof window != "undefined" && window.addEventListener && window.addEventListener("DOMContentLoaded", D, !1);
- function S(b, w) {
- let L = null;
- try {
- L = w(e);
- } catch (U) {
- if (se("Language definition for '{}' could not be registered.".replace("{}", b)), d)
- se(U);
- else
- throw U;
- L = r;
- }
- L.name || (L.name = b), n[b] = L, L.rawDefinition = w.bind(null, e), L.aliases && I(L.aliases, { languageName: b });
- }
- function N(b) {
- delete n[b];
- for (const w of Object.keys(a))
- a[w] === b && delete a[w];
- }
- function R() {
- return Object.keys(n);
- }
- function C(b) {
- return b = (b || "").toLowerCase(), n[b] || n[a[b]];
- }
- function I(b, { languageName: w }) {
- typeof b == "string" && (b = [b]), b.forEach((L) => {
- a[L.toLowerCase()] = w;
- });
- }
- function B(b) {
- const w = C(b);
- return w && !w.disableAutodetect;
- }
- function $(b) {
- b["before:highlightBlock"] && !b["before:highlightElement"] && (b["before:highlightElement"] = (w) => {
- b["before:highlightBlock"](
- Object.assign({ block: w.el }, w)
- );
- }), b["after:highlightBlock"] && !b["after:highlightElement"] && (b["after:highlightElement"] = (w) => {
- b["after:highlightBlock"](
- Object.assign({ block: w.el }, w)
- );
- });
- }
- function F(b) {
- $(b), f.push(b);
- }
- function K(b) {
- const w = f.indexOf(b);
- w !== -1 && f.splice(w, 1);
- }
- function te(b, w) {
- const L = b;
- f.forEach(function(U) {
- U[L] && U[L](w);
- });
- }
- function le(b) {
- return ce("10.7.0", "highlightBlock will be removed entirely in v12.0"), ce("10.7.0", "Please use highlightElement now."), p(b);
- }
- Object.assign(e, {
- highlight: l,
- highlightAuto: h,
- highlightAll: A,
- highlightElement: p,
- // TODO: Remove with v12 API
- highlightBlock: le,
- configure: _,
- initHighlighting: v,
- initHighlightingOnLoad: m,
- registerLanguage: S,
- unregisterLanguage: N,
- listLanguages: R,
- getLanguage: C,
- registerAliases: I,
- autoDetection: B,
- inherit: sn,
- addPlugin: F,
- removePlugin: K
- }), e.debugMode = function() {
- d = !1;
- }, e.safeMode = function() {
- d = !0;
- }, e.versionString = Wt, e.regex = {
- concat: ae,
- lookahead: En,
- either: He,
- optional: ot,
- anyNumberOfTimes: at
- };
- for (const b in Ae)
- typeof Ae[b] == "object" && vn(Ae[b]);
- return Object.assign(e, Ae), e;
- }, fe = Cn({});
- fe.newInstance = () => Cn({});
- var jt = fe;
- fe.HighlightJS = fe;
- fe.default = fe;
- const j = /* @__PURE__ */ nt(jt);
- function Zt(e) {
- const n = e.regex, a = n.concat(/[\p{L}_]/u, n.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u), f = /[\p{L}0-9._:-]+/u, d = {
- className: "symbol",
- begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
- }, t = {
- begin: /\s/,
- contains: [
- {
- className: "keyword",
- begin: /#?[a-z_][a-z1-9_-]+/,
- illegal: /\n/
- }
- ]
- }, r = e.inherit(t, {
- begin: /\(/,
- end: /\)/
- }), i = e.inherit(e.APOS_STRING_MODE, { className: "string" }), s = e.inherit(e.QUOTE_STRING_MODE, { className: "string" }), o = {
- endsWithParent: !0,
- illegal: /</,
- relevance: 0,
- contains: [
- {
- className: "attr",
- begin: f,
- relevance: 0
- },
- {
- begin: /=\s*/,
- relevance: 0,
- contains: [
- {
- className: "string",
- endsParent: !0,
- variants: [
- {
- begin: /"/,
- end: /"/,
- contains: [d]
- },
- {
- begin: /'/,
- end: /'/,
- contains: [d]
- },
- { begin: /[^\s"'=<>`]+/ }
- ]
- }
- ]
- }
- ]
- };
- return {
- name: "HTML, XML",
- aliases: [
- "html",
- "xhtml",
- "rss",
- "atom",
- "xjb",
- "xsd",
- "xsl",
- "plist",
- "wsf",
- "svg"
- ],
- case_insensitive: !0,
- unicodeRegex: !0,
- contains: [
- {
- className: "meta",
- begin: /<![a-z]/,
- end: />/,
- relevance: 10,
- contains: [
- t,
- s,
- i,
- r,
- {
- begin: /\[/,
- end: /\]/,
- contains: [
- {
- className: "meta",
- begin: /<![a-z]/,
- end: />/,
- contains: [
- t,
- r,
- s,
- i
- ]
- }
- ]
- }
- ]
- },
- e.COMMENT(
- /<!--/,
- /-->/,
- { relevance: 10 }
- ),
- {
- begin: /<!\[CDATA\[/,
- end: /\]\]>/,
- relevance: 10
- },
- d,
- // xml processing instructions
- {
- className: "meta",
- end: /\?>/,
- variants: [
- {
- begin: /<\?xml/,
- relevance: 10,
- contains: [
- s
- ]
- },
- {
- begin: /<\?[a-z][a-z0-9]+/
- }
- ]
- },
- {
- className: "tag",
- /*
- The lookahead pattern (?=...) ensures that 'begin' only matches
- '<style' as a single word, followed by a whitespace or an
- ending bracket.
- */
- begin: /<style(?=\s|>)/,
- end: />/,
- keywords: { name: "style" },
- contains: [o],
- starts: {
- end: /<\/style>/,
- returnEnd: !0,
- subLanguage: [
- "css",
- "xml"
- ]
- }
- },
- {
- className: "tag",
- // See the comment in the <style tag about the lookahead pattern
- begin: /<script(?=\s|>)/,
- end: />/,
- keywords: { name: "script" },
- contains: [o],
- starts: {
- end: /<\/script>/,
- returnEnd: !0,
- subLanguage: [
- "javascript",
- "handlebars",
- "xml"
- ]
- }
- },
- // we need this for now for jSX
- {
- className: "tag",
- begin: /<>|<\/>/
- },
- // open tag
- {
- className: "tag",
- begin: n.concat(
- /</,
- n.lookahead(n.concat(
- a,
- // <tag/>
- // <tag>
- // <tag ...
- n.either(/\/>/, />/, /\s/)
- ))
- ),
- end: /\/?>/,
- contains: [
- {
- className: "name",
- begin: a,
- relevance: 0,
- starts: o
- }
- ]
- },
- // close tag
- {
- className: "tag",
- begin: n.concat(
- /<\//,
- n.lookahead(n.concat(
- a,
- />/
- ))
- ),
- contains: [
- {
- className: "name",
- begin: a,
- relevance: 0
- },
- {
- begin: />/,
- relevance: 0,
- endsParent: !0
- }
- ]
- }
- ]
- };
- }
- const on = "[A-Za-z$_][0-9A-Za-z$_]*", Vt = [
- "as",
- // for exports
- "in",
- "of",
- "if",
- "for",
- "while",
- "finally",
- "var",
- "new",
- "function",
- "do",
- "return",
- "void",
- "else",
- "break",
- "catch",
- "instanceof",
- "with",
- "throw",
- "case",
- "default",
- "try",
- "switch",
- "continue",
- "typeof",
- "delete",
- "let",
- "yield",
- "const",
- "class",
- // JS handles these with a special rule
- // "get",
- // "set",
- "debugger",
- "async",
- "await",
- "static",
- "import",
- "from",
- "export",
- "extends"
- ], Yt = [
- "true",
- "false",
- "null",
- "undefined",
- "NaN",
- "Infinity"
- ], Rn = [
- // Fundamental objects
- "Object",
- "Function",
- "Boolean",
- "Symbol",
- // numbers and dates
- "Math",
- "Date",
- "Number",
- "BigInt",
- // text
- "String",
- "RegExp",
- // Indexed collections
- "Array",
- "Float32Array",
- "Float64Array",
- "Int8Array",
- "Uint8Array",
- "Uint8ClampedArray",
- "Int16Array",
- "Int32Array",
- "Uint16Array",
- "Uint32Array",
- "BigInt64Array",
- "BigUint64Array",
- // Keyed collections
- "Set",
- "Map",
- "WeakSet",
- "WeakMap",
- // Structured data
- "ArrayBuffer",
- "SharedArrayBuffer",
- "Atomics",
- "DataView",
- "JSON",
- // Control abstraction objects
- "Promise",
- "Generator",
- "GeneratorFunction",
- "AsyncFunction",
- // Reflection
- "Reflect",
- "Proxy",
- // Internationalization
- "Intl",
- // WebAssembly
- "WebAssembly"
- ], Ln = [
- "Error",
- "EvalError",
- "InternalError",
- "RangeError",
- "ReferenceError",
- "SyntaxError",
- "TypeError",
- "URIError"
- ], On = [
- "setInterval",
- "setTimeout",
- "clearInterval",
- "clearTimeout",
- "require",
- "exports",
- "eval",
- "isFinite",
- "isNaN",
- "parseFloat",
- "parseInt",
- "decodeURI",
- "decodeURIComponent",
- "encodeURI",
- "encodeURIComponent",
- "escape",
- "unescape"
- ], Xt = [
- "arguments",
- "this",
- "super",
- "console",
- "window",
- "document",
- "localStorage",
- "sessionStorage",
- "module",
- "global"
- // Node.js
- ], Jt = [].concat(
- On,
- Rn,
- Ln
- );
- function er(e) {
- const n = e.regex, a = (w, { after: L }) => {
- const U = "</" + w[0].slice(1);
- return w.input.indexOf(U, L) !== -1;
- }, f = on, d = {
- begin: "<>",
- end: "</>"
- }, t = /<[A-Za-z0-9\\._:-]+\s*\/>/, r = {
- begin: /<[A-Za-z0-9\\._:-]+/,
- end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
- /**
- * @param {RegExpMatchArray} match
- * @param {CallbackResponse} response
- */
- isTrulyOpeningTag: (w, L) => {
- const U = w[0].length + w.index, H = w.input[U];
- if (
- // HTML should not include another raw `<` inside a tag
- // nested type?
- // `<Array<Array<number>>`, etc.
- H === "<" || // the , gives away that this is not HTML
- // `<T, A extends keyof T, V>`
- H === ","
- ) {
- L.ignoreMatch();
- return;
- }
- H === ">" && (a(w, { after: U }) || L.ignoreMatch());
- let W;
- const Z = w.input.substring(U);
- if (W = Z.match(/^\s*=/)) {
- L.ignoreMatch();
- return;
- }
- if ((W = Z.match(/^\s+extends\s+/)) && W.index === 0) {
- L.ignoreMatch();
- return;
- }
- }
- }, i = {
- $pattern: on,
- keyword: Vt,
- literal: Yt,
- built_in: Jt,
- "variable.language": Xt
- }, s = "[0-9](_?[0-9])*", o = `\\.(${s})`, l = "0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*", c = {
- className: "number",
- variants: [
- // DecimalLiteral
- { begin: `(\\b(${l})((${o})|\\.)?|(${o}))[eE][+-]?(${s})\\b` },
- { begin: `\\b(${l})\\b((${o})\\b|\\.)?|(${o})\\b` },
- // DecimalBigIntegerLiteral
- { begin: "\\b(0|[1-9](_?[0-9])*)n\\b" },
- // NonDecimalIntegerLiteral
- { begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b" },
- { begin: "\\b0[bB][0-1](_?[0-1])*n?\\b" },
- { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" },
- // LegacyOctalIntegerLiteral (does not include underscore separators)
- // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals
- { begin: "\\b0[0-7]+n?\\b" }
- ],
- relevance: 0
- }, u = {
- className: "subst",
- begin: "\\$\\{",
- end: "\\}",
- keywords: i,
- contains: []
- // defined later
- }, h = {
- begin: "html`",
- end: "",
- starts: {
- end: "`",
- returnEnd: !1,
- contains: [
- e.BACKSLASH_ESCAPE,
- u
- ],
- subLanguage: "xml"
- }
- }, g = {
- begin: "css`",
- end: "",
- starts: {
- end: "`",
- returnEnd: !1,
- contains: [
- e.BACKSLASH_ESCAPE,
- u
- ],
- subLanguage: "css"
- }
- }, p = {
- begin: "gql`",
- end: "",
- starts: {
- end: "`",
- returnEnd: !1,
- contains: [
- e.BACKSLASH_ESCAPE,
- u
- ],
- subLanguage: "graphql"
- }
- }, _ = {
- className: "string",
- begin: "`",
- end: "`",
- contains: [
- e.BACKSLASH_ESCAPE,
- u
- ]
- }, m = {
- className: "comment",
- variants: [
- e.COMMENT(
- /\/\*\*(?!\/)/,
- "\\*/",
- {
- relevance: 0,
- contains: [
- {
- begin: "(?=@[A-Za-z]+)",
- relevance: 0,
- contains: [
- {
- className: "doctag",
- begin: "@[A-Za-z]+"
- },
- {
- className: "type",
- begin: "\\{",
- end: "\\}",
- excludeEnd: !0,
- excludeBegin: !0,
- relevance: 0
- },
- {
- className: "variable",
- begin: f + "(?=\\s*(-)|$)",
- endsParent: !0,
- relevance: 0
- },
- // eat spaces (not newlines) so we can find
- // types or variables
- {
- begin: /(?=[^\n])\s/,
- relevance: 0
- }
- ]
- }
- ]
- }
- ),
- e.C_BLOCK_COMMENT_MODE,
- e.C_LINE_COMMENT_MODE
- ]
- }, E = [
- e.APOS_STRING_MODE,
- e.QUOTE_STRING_MODE,
- h,
- g,
- p,
- _,
- // Skip numbers when they are part of a variable name
- { match: /\$\d+/ },
- c
- // This is intentional:
- // See https://github.com/highlightjs/highlight.js/issues/3288
- // hljs.REGEXP_MODE
- ];
- u.contains = E.concat({
- // we need to pair up {} inside our subst to prevent
- // it from ending too early by matching another }
- begin: /\{/,
- end: /\}/,
- keywords: i,
- contains: [
- "self"
- ].concat(E)
- });
- const A = [].concat(m, u.contains), D = A.concat([
- // eat recursive parens in sub expressions
- {
- begin: /\(/,
- end: /\)/,
- keywords: i,
- contains: ["self"].concat(A)
- }
- ]), S = {
- className: "params",
- begin: /\(/,
- end: /\)/,
- excludeBegin: !0,
- excludeEnd: !0,
- keywords: i,
- contains: D
- }, N = {
- variants: [
- // class Car extends vehicle
- {
- match: [
- /class/,
- /\s+/,
- f,
- /\s+/,
- /extends/,
- /\s+/,
- n.concat(f, "(", n.concat(/\./, f), ")*")
- ],
- scope: {
- 1: "keyword",
- 3: "title.class",
- 5: "keyword",
- 7: "title.class.inherited"
- }
- },
- // class Car
- {
- match: [
- /class/,
- /\s+/,
- f
- ],
- scope: {
- 1: "keyword",
- 3: "title.class"
- }
- }
- ]
- }, R = {
- relevance: 0,
- match: n.either(
- // Hard coded exceptions
- /\bJSON/,
- // Float32Array, OutT
- /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,
- // CSSFactory, CSSFactoryT
- /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,
- // FPs, FPsT
- /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/
- // P
- // single letters are not highlighted
- // BLAH
- // this will be flagged as a UPPER_CASE_CONSTANT instead
- ),
- className: "title.class",
- keywords: {
- _: [
- // se we still get relevance credit for JS library classes
- ...Rn,
- ...Ln
- ]
- }
- }, C = {
- label: "use_strict",
- className: "meta",
- relevance: 10,
- begin: /^\s*['"]use (strict|asm)['"]/
- }, I = {
- variants: [
- {
- match: [
- /function/,
- /\s+/,
- f,
- /(?=\s*\()/
- ]
- },
- // anonymous function
- {
- match: [
- /function/,
- /\s*(?=\()/
- ]
- }
- ],
- className: {
- 1: "keyword",
- 3: "title.function"
- },
- label: "func.def",
- contains: [S],
- illegal: /%/
- }, B = {
- relevance: 0,
- match: /\b[A-Z][A-Z_0-9]+\b/,
- className: "variable.constant"
- };
- function $(w) {
- return n.concat("(?!", w.join("|"), ")");
- }
- const F = {
- match: n.concat(
- /\b/,
- $([
- ...On,
- "super",
- "import"
- ]),
- f,
- n.lookahead(/\(/)
- ),
- className: "title.function",
- relevance: 0
- }, K = {
- begin: n.concat(/\./, n.lookahead(
- n.concat(f, /(?![0-9A-Za-z$_(])/)
- )),
- end: f,
- excludeBegin: !0,
- keywords: "prototype",
- className: "property",
- relevance: 0
- }, te = {
- match: [
- /get|set/,
- /\s+/,
- f,
- /(?=\()/
- ],
- className: {
- 1: "keyword",
- 3: "title.function"
- },
- contains: [
- {
- // eat to avoid empty params
- begin: /\(\)/
- },
- S
- ]
- }, le = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + e.UNDERSCORE_IDENT_RE + ")\\s*=>", b = {
- match: [
- /const|var|let/,
- /\s+/,
- f,
- /\s*/,
- /=\s*/,
- /(async\s*)?/,
- // async is optional
- n.lookahead(le)
- ],
- keywords: "async",
- className: {
- 1: "keyword",
- 3: "title.function"
- },
- contains: [
- S
- ]
- };
- return {
- name: "JavaScript",
- aliases: ["js", "jsx", "mjs", "cjs"],
- keywords: i,
- // this will be extended by TypeScript
- exports: { PARAMS_CONTAINS: D, CLASS_REFERENCE: R },
- illegal: /#(?![$_A-z])/,
- contains: [
- e.SHEBANG({
- label: "shebang",
- binary: "node",
- relevance: 5
- }),
- C,
- e.APOS_STRING_MODE,
- e.QUOTE_STRING_MODE,
- h,
- g,
- p,
- _,
- m,
- // Skip numbers when they are part of a variable name
- { match: /\$\d+/ },
- c,
- R,
- {
- className: "attr",
- begin: f + n.lookahead(":"),
- relevance: 0
- },
- b,
- {
- // "value" container
- begin: "(" + e.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
- keywords: "return throw case",
- relevance: 0,
- contains: [
- m,
- e.REGEXP_MODE,
- {
- className: "function",
- // we have to count the parens to make sure we actually have the
- // correct bounding ( ) before the =>. There could be any number of
- // sub-expressions inside also surrounded by parens.
- begin: le,
- returnBegin: !0,
- end: "\\s*=>",
- contains: [
- {
- className: "params",
- variants: [
- {
- begin: e.UNDERSCORE_IDENT_RE,
- relevance: 0
- },
- {
- className: null,
- begin: /\(\s*\)/,
- skip: !0
- },
- {
- begin: /\(/,
- end: /\)/,
- excludeBegin: !0,
- excludeEnd: !0,
- keywords: i,
- contains: D
- }
- ]
- }
- ]
- },
- {
- // could be a comma delimited list of params to a function call
- begin: /,/,
- relevance: 0
- },
- {
- match: /\s+/,
- relevance: 0
- },
- {
- // JSX
- variants: [
- { begin: d.begin, end: d.end },
- { match: t },
- {
- begin: r.begin,
- // we carefully check the opening tag to see if it truly
- // is a tag and not a false positive
- "on:begin": r.isTrulyOpeningTag,
- end: r.end
- }
- ],
- subLanguage: "xml",
- contains: [
- {
- begin: r.begin,
- end: r.end,
- skip: !0,
- contains: ["self"]
- }
- ]
- }
- ]
- },
- I,
- {
- // prevent this from getting swallowed up by function
- // since they appear "function like"
- beginKeywords: "while if switch catch for"
- },
- {
- // we have to count the parens to make sure we actually have the correct
- // bounding ( ). There could be any number of sub-expressions inside
- // also surrounded by parens.
- begin: "\\b(?!function)" + e.UNDERSCORE_IDENT_RE + "\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
- // end parens
- returnBegin: !0,
- label: "func.def",
- contains: [
- S,
- e.inherit(e.TITLE_MODE, { begin: f, className: "title.function" })
- ]
- },
- // catch ... so it won't trigger the property rule below
- {
- match: /\.\.\./,
- relevance: 0
- },
- K,
- // hack: prevents detection of keywords in some circumstances
- // .keyword()
- // $keyword = x
- {
- match: "\\$" + f,
- relevance: 0
- },
- {
- match: [/\bconstructor(?=\s*\()/],
- className: { 1: "title.function" },
- contains: [S]
- },
- F,
- B,
- N,
- te,
- {
- match: /\$[(.]/
- // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
- }
- ]
- };
- }
- function nr(e) {
- const n = {
- className: "attr",
- begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
- relevance: 1.01
- }, a = {
- match: /[{}[\],:]/,
- className: "punctuation",
- relevance: 0
- }, f = [
- "true",
- "false",
- "null"
- ], d = {
- scope: "literal",
- beginKeywords: f.join(" ")
- };
- return {
- name: "JSON",
- keywords: {
- literal: f
- },
- contains: [
- n,
- a,
- e.QUOTE_STRING_MODE,
- d,
- e.C_NUMBER_MODE,
- e.C_LINE_COMMENT_MODE,
- e.C_BLOCK_COMMENT_MODE
- ],
- illegal: "\\S"
- };
- }
- function tr(e) {
- const n = "true false yes no null", a = "[\\w#;/?:@&=+$,.~*'()[\\]]+", f = {
- className: "attr",
- variants: [
- { begin: "\\w[\\w :\\/.-]*:(?=[ ]|$)" },
- {
- // double quoted keys
- begin: '"\\w[\\w :\\/.-]*":(?=[ ]|$)'
- },
- {
- // single quoted keys
- begin: "'\\w[\\w :\\/.-]*':(?=[ ]|$)"
- }
- ]
- }, d = {
- className: "template-variable",
- variants: [
- {
- // jinja templates Ansible
- begin: /\{\{/,
- end: /\}\}/
- },
- {
- // Ruby i18n
- begin: /%\{/,
- end: /\}/
- }
- ]
- }, t = {
- className: "string",
- relevance: 0,
- variants: [
- {
- begin: /'/,
- end: /'/
- },
- {
- begin: /"/,
- end: /"/
- },
- { begin: /\S+/ }
- ],
- contains: [
- e.BACKSLASH_ESCAPE,
- d
- ]
- }, r = e.inherit(t, { variants: [
- {
- begin: /'/,
- end: /'/
- },
- {
- begin: /"/,
- end: /"/
- },
- { begin: /[^\s,{}[\]]+/ }
- ] }), i = "[0-9]{4}(-[0-9][0-9]){0,2}", s = "([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?", o = "(\\.[0-9]*)?", l = "([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?", c = {
- className: "number",
- begin: "\\b" + i + s + o + l + "\\b"
- }, u = {
- end: ",",
- endsWithParent: !0,
- excludeEnd: !0,
- keywords: n,
- relevance: 0
- }, h = {
- begin: /\{/,
- end: /\}/,
- contains: [u],
- illegal: "\\n",
- relevance: 0
- }, g = {
- begin: "\\[",
- end: "\\]",
- contains: [u],
- illegal: "\\n",
- relevance: 0
- }, p = [
- f,
- {
- className: "meta",
- begin: "^---\\s*$",
- relevance: 10
- },
- {
- // multi line string
- // Blocks start with a | or > followed by a newline
- //
- // Indentation of subsequent lines must be the same to
- // be considered part of the block
- className: "string",
- begin: "[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"
- },
- {
- // Ruby/Rails erb
- begin: "<%[%=-]?",
- end: "[%-]?%>",
- subLanguage: "ruby",
- excludeBegin: !0,
- excludeEnd: !0,
- relevance: 0
- },
- {
- // named tags
- className: "type",
- begin: "!\\w+!" + a
- },
- // https://yaml.org/spec/1.2/spec.html#id2784064
- {
- // verbatim tags
- className: "type",
- begin: "!<" + a + ">"
- },
- {
- // primary tags
- className: "type",
- begin: "!" + a
- },
- {
- // secondary tags
- className: "type",
- begin: "!!" + a
- },
- {
- // fragment id &ref
- className: "meta",
- begin: "&" + e.UNDERSCORE_IDENT_RE + "$"
- },
- {
- // fragment reference *ref
- className: "meta",
- begin: "\\*" + e.UNDERSCORE_IDENT_RE + "$"
- },
- {
- // array listing
- className: "bullet",
- // TODO: remove |$ hack when we have proper look-ahead support
- begin: "-(?=[ ]|$)",
- relevance: 0
- },
- e.HASH_COMMENT_MODE,
- {
- beginKeywords: n,
- keywords: { literal: n }
- },
- c,
- // numbers are any valid C-style number that
- // sit isolated from other words
- {
- className: "number",
- begin: e.C_NUMBER_RE + "\\b",
- relevance: 0
- },
- h,
- g,
- t
- ], _ = [...p];
- return _.pop(), _.push(r), u.contains = _, {
- name: "YAML",
- case_insensitive: !0,
- aliases: ["yml"],
- contains: p
- };
- }
- function rr(e) {
- return {
- name: "Plain text",
- aliases: [
- "text",
- "txt"
- ],
- disableAutodetect: !0
- };
- }
- function ir(e) {
- const n = e.regex, a = /[\p{XID_Start}_]\p{XID_Continue}*/u, f = [
- "and",
- "as",
- "assert",
- "async",
- "await",
- "break",
- "case",
- "class",
- "continue",
- "def",
- "del",
- "elif",
- "else",
- "except",
- "finally",
- "for",
- "from",
- "global",
- "if",
- "import",
- "in",
- "is",
- "lambda",
- "match",
- "nonlocal|10",
- "not",
- "or",
- "pass",
- "raise",
- "return",
- "try",
- "while",
- "with",
- "yield"
- ], i = {
- $pattern: /[A-Za-z]\w+|__\w+__/,
- keyword: f,
- built_in: [
- "__import__",
- "abs",
- "all",
- "any",
- "ascii",
- "bin",
- "bool",
- "breakpoint",
- "bytearray",
- "bytes",
- "callable",
- "chr",
- "classmethod",
- "compile",
- "complex",
- "delattr",
- "dict",
- "dir",
- "divmod",
- "enumerate",
- "eval",
- "exec",
- "filter",
- "float",
- "format",
- "frozenset",
- "getattr",
- "globals",
- "hasattr",
- "hash",
- "help",
- "hex",
- "id",
- "input",
- "int",
- "isinstance",
- "issubclass",
- "iter",
- "len",
- "list",
- "locals",
- "map",
- "max",
- "memoryview",
- "min",
- "next",
- "object",
- "oct",
- "open",
- "ord",
- "pow",
- "print",
- "property",
- "range",
- "repr",
- "reversed",
- "round",
- "set",
- "setattr",
- "slice",
- "sorted",
- "staticmethod",
- "str",
- "sum",
- "super",
- "tuple",
- "type",
- "vars",
- "zip"
- ],
- literal: [
- "__debug__",
- "Ellipsis",
- "False",
- "None",
- "NotImplemented",
- "True"
- ],
- type: [
- "Any",
- "Callable",
- "Coroutine",
- "Dict",
- "List",
- "Literal",
- "Generic",
- "Optional",
- "Sequence",
- "Set",
- "Tuple",
- "Type",
- "Union"
- ]
- }, s = {
- className: "meta",
- begin: /^(>>>|\.\.\.) /
- }, o = {
- className: "subst",
- begin: /\{/,
- end: /\}/,
- keywords: i,
- illegal: /#/
- }, l = {
- begin: /\{\{/,
- relevance: 0
- }, c = {
- className: "string",
- contains: [e.BACKSLASH_ESCAPE],
- variants: [
- {
- begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,
- end: /'''/,
- contains: [
- e.BACKSLASH_ESCAPE,
- s
- ],
- relevance: 10
- },
- {
- begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,
- end: /"""/,
- contains: [
- e.BACKSLASH_ESCAPE,
- s
- ],
- relevance: 10
- },
- {
- begin: /([fF][rR]|[rR][fF]|[fF])'''/,
- end: /'''/,
- contains: [
- e.BACKSLASH_ESCAPE,
- s,
- l,
- o
- ]
- },
- {
- begin: /([fF][rR]|[rR][fF]|[fF])"""/,
- end: /"""/,
- contains: [
- e.BACKSLASH_ESCAPE,
- s,
- l,
- o
- ]
- },
- {
- begin: /([uU]|[rR])'/,
- end: /'/,
- relevance: 10
- },
- {
- begin: /([uU]|[rR])"/,
- end: /"/,
- relevance: 10
- },
- {
- begin: /([bB]|[bB][rR]|[rR][bB])'/,
- end: /'/
- },
- {
- begin: /([bB]|[bB][rR]|[rR][bB])"/,
- end: /"/
- },
- {
- begin: /([fF][rR]|[rR][fF]|[fF])'/,
- end: /'/,
- contains: [
- e.BACKSLASH_ESCAPE,
- l,
- o
- ]
- },
- {
- begin: /([fF][rR]|[rR][fF]|[fF])"/,
- end: /"/,
- contains: [
- e.BACKSLASH_ESCAPE,
- l,
- o
- ]
- },
- e.APOS_STRING_MODE,
- e.QUOTE_STRING_MODE
- ]
- }, u = "[0-9](_?[0-9])*", h = `(\\b(${u}))?\\.(${u})|\\b(${u})\\.`, g = `\\b|${f.join("|")}`, p = {
- className: "number",
- relevance: 0,
- variants: [
- // exponentfloat, pointfloat
- // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals
- // optionally imaginary
- // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals
- // Note: no leading \b because floats can start with a decimal point
- // and we don't want to mishandle e.g. `fn(.5)`,
- // no trailing \b for pointfloat because it can end with a decimal point
- // and we don't want to mishandle e.g. `0..hex()`; this should be safe
- // because both MUST contain a decimal point and so cannot be confused with
- // the interior part of an identifier
- {
- begin: `(\\b(${u})|(${h}))[eE][+-]?(${u})[jJ]?(?=${g})`
- },
- {
- begin: `(${h})[jJ]?`
- },
- // decinteger, bininteger, octinteger, hexinteger
- // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals
- // optionally "long" in Python 2
- // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals
- // decinteger is optionally imaginary
- // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals
- {
- begin: `\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`
- },
- {
- begin: `\\b0[bB](_?[01])+[lL]?(?=${g})`
- },
- {
- begin: `\\b0[oO](_?[0-7])+[lL]?(?=${g})`
- },
- {
- begin: `\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`
- },
- // imagnumber (digitpart-based)
- // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals
- {
- begin: `\\b(${u})[jJ](?=${g})`
- }
- ]
- }, _ = {
- className: "comment",
- begin: n.lookahead(/# type:/),
- end: /$/,
- keywords: i,
- contains: [
- {
- // prevent keywords from coloring `type`
- begin: /# type:/
- },
- // comment within a datatype comment includes no keywords
- {
- begin: /#/,
- end: /\b\B/,
- endsWithParent: !0
- }
- ]
- }, v = {
- className: "params",
- variants: [
- // Exclude params in functions without params
- {
- className: "",
- begin: /\(\s*\)/,
- skip: !0
- },
- {
- begin: /\(/,
- end: /\)/,
- excludeBegin: !0,
- excludeEnd: !0,
- keywords: i,
- contains: [
- "self",
- s,
- p,
- c,
- e.HASH_COMMENT_MODE
- ]
- }
- ]
- };
- return o.contains = [
- c,
- p,
- s
- ], {
- name: "Python",
- aliases: [
- "py",
- "gyp",
- "ipython"
- ],
- unicodeRegex: !0,
- keywords: i,
- illegal: /(<\/|\?)|=>/,
- contains: [
- s,
- p,
- {
- // very common convention
- begin: /\bself\b/
- },
- {
- // eat "if" prior to string so that it won't accidentally be
- // labeled as an f-string
- beginKeywords: "if",
- relevance: 0
- },
- c,
- _,
- e.HASH_COMMENT_MODE,
- {
- match: [
- /\bdef/,
- /\s+/,
- a
- ],
- scope: {
- 1: "keyword",
- 3: "title.function"
- },
- contains: [v]
- },
- {
- variants: [
- {
- match: [
- /\bclass/,
- /\s+/,
- a,
- /\s*/,
- /\(\s*/,
- a,
- /\s*\)/
- ]
- },
- {
- match: [
- /\bclass/,
- /\s+/,
- a
- ]
- }
- ],
- scope: {
- 1: "keyword",
- 3: "title.class",
- 6: "title.class.inherited"
- }
- },
- {
- className: "meta",
- begin: /^[\t ]*@/,
- end: /(?=#)|$/,
- contains: [
- p,
- v,
- c
- ]
- }
- ]
- };
- }
- var ue = "[0-9](_*[0-9])*", Ne = `\\.(${ue})`, Me = "[0-9a-fA-F](_*[0-9a-fA-F])*", ln = {
- className: "number",
- variants: [
- // DecimalFloatingPointLiteral
- // including ExponentPart
- { begin: `(\\b(${ue})((${Ne})|\\.)?|(${Ne}))[eE][+-]?(${ue})[fFdD]?\\b` },
- // excluding ExponentPart
- { begin: `\\b(${ue})((${Ne})[fFdD]?\\b|\\.([fFdD]\\b)?)` },
- { begin: `(${Ne})[fFdD]?\\b` },
- { begin: `\\b(${ue})[fFdD]\\b` },
- // HexadecimalFloatingPointLiteral
- { begin: `\\b0[xX]((${Me})\\.?|(${Me})?\\.(${Me}))[pP][+-]?(${ue})[fFdD]?\\b` },
- // DecimalIntegerLiteral
- { begin: "\\b(0|[1-9](_*[0-9])*)[lL]?\\b" },
- // HexIntegerLiteral
- { begin: `\\b0[xX](${Me})[lL]?\\b` },
- // OctalIntegerLiteral
- { begin: "\\b0(_*[0-7])*[lL]?\\b" },
- // BinaryIntegerLiteral
- { begin: "\\b0[bB][01](_*[01])*[lL]?\\b" }
- ],
- relevance: 0
- };
- function In(e, n, a) {
- return a === -1 ? "" : e.replace(n, (f) => In(e, n, a - 1));
- }
- function sr(e) {
- const n = e.regex, a = "[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*", f = a + In("(?:<" + a + "~~~(?:\\s*,\\s*" + a + "~~~)*>)?", /~~~/g, 2), s = {
- keyword: [
- "synchronized",
- "abstract",
- "private",
- "var",
- "static",
- "if",
- "const ",
- "for",
- "while",
- "strictfp",
- "finally",
- "protected",
- "import",
- "native",
- "final",
- "void",
- "enum",
- "else",
- "break",
- "transient",
- "catch",
- "instanceof",
- "volatile",
- "case",
- "assert",
- "package",
- "default",
- "public",
- "try",
- "switch",
- "continue",
- "throws",
- "protected",
- "public",
- "private",
- "module",
- "requires",
- "exports",
- "do",
- "sealed",
- "yield",
- "permits"
- ],
- literal: [
- "false",
- "true",
- "null"
- ],
- type: [
- "char",
- "boolean",
- "long",
- "float",
- "int",
- "byte",
- "short",
- "double"
- ],
- built_in: [
- "super",
- "this"
- ]
- }, o = {
- className: "meta",
- begin: "@" + a,
- contains: [
- {
- begin: /\(/,
- end: /\)/,
- contains: ["self"]
- // allow nested () inside our annotation
- }
- ]
- }, l = {
- className: "params",
- begin: /\(/,
- end: /\)/,
- keywords: s,
- relevance: 0,
- contains: [e.C_BLOCK_COMMENT_MODE],
- endsParent: !0
- };
- return {
- name: "Java",
- aliases: ["jsp"],
- keywords: s,
- illegal: /<\/|#/,
- contains: [
- e.COMMENT(
- "/\\*\\*",
- "\\*/",
- {
- relevance: 0,
- contains: [
- {
- // eat up @'s in emails to prevent them to be recognized as doctags
- begin: /\w+@/,
- relevance: 0
- },
- {
- className: "doctag",
- begin: "@[A-Za-z]+"
- }
- ]
- }
- ),
- // relevance boost
- {
- begin: /import java\.[a-z]+\./,
- keywords: "import",
- relevance: 2
- },
- e.C_LINE_COMMENT_MODE,
- e.C_BLOCK_COMMENT_MODE,
- {
- begin: /"""/,
- end: /"""/,
- className: "string",
- contains: [e.BACKSLASH_ESCAPE]
- },
- e.APOS_STRING_MODE,
- e.QUOTE_STRING_MODE,
- {
- match: [
- /\b(?:class|interface|enum|extends|implements|new)/,
- /\s+/,
- a
- ],
- className: {
- 1: "keyword",
- 3: "title.class"
- }
- },
- {
- // Exceptions for hyphenated keywords
- match: /non-sealed/,
- scope: "keyword"
- },
- {
- begin: [
- n.concat(/(?!else)/, a),
- /\s+/,
- a,
- /\s+/,
- /=(?!=)/
- ],
- className: {
- 1: "type",
- 3: "variable",
- 5: "operator"
- }
- },
- {
- begin: [
- /record/,
- /\s+/,
- a
- ],
- className: {
- 1: "keyword",
- 3: "title.class"
- },
- contains: [
- l,
- e.C_LINE_COMMENT_MODE,
- e.C_BLOCK_COMMENT_MODE
- ]
- },
- {
- // Expression keywords prevent 'keyword Name(...)' from being
- // recognized as a function definition
- beginKeywords: "new throw return else",
- relevance: 0
- },
- {
- begin: [
- "(?:" + f + "\\s+)",
- e.UNDERSCORE_IDENT_RE,
- /\s*(?=\()/
- ],
- className: { 2: "title.function" },
- keywords: s,
- contains: [
- {
- className: "params",
- begin: /\(/,
- end: /\)/,
- keywords: s,
- relevance: 0,
- contains: [
- o,
- e.APOS_STRING_MODE,
- e.QUOTE_STRING_MODE,
- ln,
- e.C_BLOCK_COMMENT_MODE
- ]
- },
- e.C_LINE_COMMENT_MODE,
- e.C_BLOCK_COMMENT_MODE
- ]
- },
- ln,
- o
- ]
- };
- }
- function ar(e) {
- const n = e.regex, a = {}, f = {
- begin: /\$\{/,
- end: /\}/,
- contains: [
- "self",
- {
- begin: /:-/,
- contains: [a]
- }
- // default values
- ]
- };
- Object.assign(a, {
- className: "variable",
- variants: [
- { begin: n.concat(
- /\$[\w\d#@][\w\d_]*/,
- // negative look-ahead tries to avoid matching patterns that are not
- // Perl at all like $ident$, @ident@, etc.
- "(?![\\w\\d])(?![$])"
- ) },
- f
- ]
- });
- const d = {
- className: "subst",
- begin: /\$\(/,
- end: /\)/,
- contains: [e.BACKSLASH_ESCAPE]
- }, t = {
- begin: /<<-?\s*(?=\w+)/,
- starts: { contains: [
- e.END_SAME_AS_BEGIN({
- begin: /(\w+)/,
- end: /(\w+)/,
- className: "string"
- })
- ] }
- }, r = {
- className: "string",
- begin: /"/,
- end: /"/,
- contains: [
- e.BACKSLASH_ESCAPE,
- a,
- d
- ]
- };
- d.contains.push(r);
- const i = {
- match: /\\"/
- }, s = {
- className: "string",
- begin: /'/,
- end: /'/
- }, o = {
- match: /\\'/
- }, l = {
- begin: /\$?\(\(/,
- end: /\)\)/,
- contains: [
- {
- begin: /\d+#[0-9a-f]+/,
- className: "number"
- },
- e.NUMBER_MODE,
- a
- ]
- }, c = [
- "fish",
- "bash",
- "zsh",
- "sh",
- "csh",
- "ksh",
- "tcsh",
- "dash",
- "scsh"
- ], u = e.SHEBANG({
- binary: `(${c.join("|")})`,
- relevance: 10
- }), h = {
- className: "function",
- begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
- returnBegin: !0,
- contains: [e.inherit(e.TITLE_MODE, { begin: /\w[\w\d_]*/ })],
- relevance: 0
- }, g = [
- "if",
- "then",
- "else",
- "elif",
- "fi",
- "for",
- "while",
- "until",
- "in",
- "do",
- "done",
- "case",
- "esac",
- "function",
- "select"
- ], p = [
- "true",
- "false"
- ], _ = { match: /(\/[a-z._-]+)+/ }, v = [
- "break",
- "cd",
- "continue",
- "eval",
- "exec",
- "exit",
- "export",
- "getopts",
- "hash",
- "pwd",
- "readonly",
- "return",
- "shift",
- "test",
- "times",
- "trap",
- "umask",
- "unset"
- ], m = [
- "alias",
- "bind",
- "builtin",
- "caller",
- "command",
- "declare",
- "echo",
- "enable",
- "help",
- "let",
- "local",
- "logout",
- "mapfile",
- "printf",
- "read",
- "readarray",
- "source",
- "type",
- "typeset",
- "ulimit",
- "unalias"
- ], E = [
- "autoload",
- "bg",
- "bindkey",
- "bye",
- "cap",
- "chdir",
- "clone",
- "comparguments",
- "compcall",
- "compctl",
- "compdescribe",
- "compfiles",
- "compgroups",
- "compquote",
- "comptags",
- "comptry",
- "compvalues",
- "dirs",
- "disable",
- "disown",
- "echotc",
- "echoti",
- "emulate",
- "fc",
- "fg",
- "float",
- "functions",
- "getcap",
- "getln",
- "history",
- "integer",
- "jobs",
- "kill",
- "limit",
- "log",
- "noglob",
- "popd",
- "print",
- "pushd",
- "pushln",
- "rehash",
- "sched",
- "setcap",
- "setopt",
- "stat",
- "suspend",
- "ttyctl",
- "unfunction",
- "unhash",
- "unlimit",
- "unsetopt",
- "vared",
- "wait",
- "whence",
- "where",
- "which",
- "zcompile",
- "zformat",
- "zftp",
- "zle",
- "zmodload",
- "zparseopts",
- "zprof",
- "zpty",
- "zregexparse",
- "zsocket",
- "zstyle",
- "ztcp"
- ], A = [
- "chcon",
- "chgrp",
- "chown",
- "chmod",
- "cp",
- "dd",
- "df",
- "dir",
- "dircolors",
- "ln",
- "ls",
- "mkdir",
- "mkfifo",
- "mknod",
- "mktemp",
- "mv",
- "realpath",
- "rm",
- "rmdir",
- "shred",
- "sync",
- "touch",
- "truncate",
- "vdir",
- "b2sum",
- "base32",
- "base64",
- "cat",
- "cksum",
- "comm",
- "csplit",
- "cut",
- "expand",
- "fmt",
- "fold",
- "head",
- "join",
- "md5sum",
- "nl",
- "numfmt",
- "od",
- "paste",
- "ptx",
- "pr",
- "sha1sum",
- "sha224sum",
- "sha256sum",
- "sha384sum",
- "sha512sum",
- "shuf",
- "sort",
- "split",
- "sum",
- "tac",
- "tail",
- "tr",
- "tsort",
- "unexpand",
- "uniq",
- "wc",
- "arch",
- "basename",
- "chroot",
- "date",
- "dirname",
- "du",
- "echo",
- "env",
- "expr",
- "factor",
- // "false", // keyword literal already
- "groups",
- "hostid",
- "id",
- "link",
- "logname",
- "nice",
- "nohup",
- "nproc",
- "pathchk",
- "pinky",
- "printenv",
- "printf",
- "pwd",
- "readlink",
- "runcon",
- "seq",
- "sleep",
- "stat",
- "stdbuf",
- "stty",
- "tee",
- "test",
- "timeout",
- // "true", // keyword literal already
- "tty",
- "uname",
- "unlink",
- "uptime",
- "users",
- "who",
- "whoami",
- "yes"
- ];
- return {
- name: "Bash",
- aliases: ["sh"],
- keywords: {
- $pattern: /\b[a-z][a-z0-9._-]+\b/,
- keyword: g,
- literal: p,
- built_in: [
- ...v,
- ...m,
- // Shell modifiers
- "set",
- "shopt",
- ...E,
- ...A
- ]
- },
- contains: [
- u,
- // to catch known shells and boost relevancy
- e.SHEBANG(),
- // to catch unknown shells but still highlight the shebang
- h,
- l,
- e.HASH_COMMENT_MODE,
- t,
- _,
- r,
- i,
- s,
- o,
- a
- ]
- };
- }
- function or(e) {
- const n = e.regex, a = e.COMMENT("--", "$"), f = {
- className: "string",
- variants: [
- {
- begin: /'/,
- end: /'/,
- contains: [{ begin: /''/ }]
- }
- ]
- }, d = {
- begin: /"/,
- end: /"/,
- contains: [{ begin: /""/ }]
- }, t = [
- "true",
- "false",
- // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.
- // "null",
- "unknown"
- ], r = [
- "double precision",
- "large object",
- "with timezone",
- "without timezone"
- ], i = [
- "bigint",
- "binary",
- "blob",
- "boolean",
- "char",
- "character",
- "clob",
- "date",
- "dec",
- "decfloat",
- "decimal",
- "float",
- "int",
- "integer",
- "interval",
- "nchar",
- "nclob",
- "national",
- "numeric",
- "real",
- "row",
- "smallint",
- "time",
- "timestamp",
- "varchar",
- "varying",
- // modifier (character varying)
- "varbinary"
- ], s = [
- "add",
- "asc",
- "collation",
- "desc",
- "final",
- "first",
- "last",
- "view"
- ], o = [
- "abs",
- "acos",
- "all",
- "allocate",
- "alter",
- "and",
- "any",
- "are",
- "array",
- "array_agg",
- "array_max_cardinality",
- "as",
- "asensitive",
- "asin",
- "asymmetric",
- "at",
- "atan",
- "atomic",
- "authorization",
- "avg",
- "begin",
- "begin_frame",
- "begin_partition",
- "between",
- "bigint",
- "binary",
- "blob",
- "boolean",
- "both",
- "by",
- "call",
- "called",
- "cardinality",
- "cascaded",
- "case",
- "cast",
- "ceil",
- "ceiling",
- "char",
- "char_length",
- "character",
- "character_length",
- "check",
- "classifier",
- "clob",
- "close",
- "coalesce",
- "collate",
- "collect",
- "column",
- "commit",
- "condition",
- "connect",
- "constraint",
- "contains",
- "convert",
- "copy",
- "corr",
- "corresponding",
- "cos",
- "cosh",
- "count",
- "covar_pop",
- "covar_samp",
- "create",
- "cross",
- "cube",
- "cume_dist",
- "current",
- "current_catalog",
- "current_date",
- "current_default_transform_group",
- "current_path",
- "current_role",
- "current_row",
- "current_schema",
- "current_time",
- "current_timestamp",
- "current_path",
- "current_role",
- "current_transform_group_for_type",
- "current_user",
- "cursor",
- "cycle",
- "date",
- "day",
- "deallocate",
- "dec",
- "decimal",
- "decfloat",
- "declare",
- "default",
- "define",
- "delete",
- "dense_rank",
- "deref",
- "describe",
- "deterministic",
- "disconnect",
- "distinct",
- "double",
- "drop",
- "dynamic",
- "each",
- "element",
- "else",
- "empty",
- "end",
- "end_frame",
- "end_partition",
- "end-exec",
- "equals",
- "escape",
- "every",
- "except",
- "exec",
- "execute",
- "exists",
- "exp",
- "external",
- "extract",
- "false",
- "fetch",
- "filter",
- "first_value",
- "float",
- "floor",
- "for",
- "foreign",
- "frame_row",
- "free",
- "from",
- "full",
- "function",
- "fusion",
- "get",
- "global",
- "grant",
- "group",
- "grouping",
- "groups",
- "having",
- "hold",
- "hour",
- "identity",
- "in",
- "indicator",
- "initial",
- "inner",
- "inout",
- "insensitive",
- "insert",
- "int",
- "integer",
- "intersect",
- "intersection",
- "interval",
- "into",
- "is",
- "join",
- "json_array",
- "json_arrayagg",
- "json_exists",
- "json_object",
- "json_objectagg",
- "json_query",
- "json_table",
- "json_table_primitive",
- "json_value",
- "lag",
- "language",
- "large",
- "last_value",
- "lateral",
- "lead",
- "leading",
- "left",
- "like",
- "like_regex",
- "listagg",
- "ln",
- "local",
- "localtime",
- "localtimestamp",
- "log",
- "log10",
- "lower",
- "match",
- "match_number",
- "match_recognize",
- "matches",
- "max",
- "member",
- "merge",
- "method",
- "min",
- "minute",
- "mod",
- "modifies",
- "module",
- "month",
- "multiset",
- "national",
- "natural",
- "nchar",
- "nclob",
- "new",
- "no",
- "none",
- "normalize",
- "not",
- "nth_value",
- "ntile",
- "null",
- "nullif",
- "numeric",
- "octet_length",
- "occurrences_regex",
- "of",
- "offset",
- "old",
- "omit",
- "on",
- "one",
- "only",
- "open",
- "or",
- "order",
- "out",
- "outer",
- "over",
- "overlaps",
- "overlay",
- "parameter",
- "partition",
- "pattern",
- "per",
- "percent",
- "percent_rank",
- "percentile_cont",
- "percentile_disc",
- "period",
- "portion",
- "position",
- "position_regex",
- "power",
- "precedes",
- "precision",
- "prepare",
- "primary",
- "procedure",
- "ptf",
- "range",
- "rank",
- "reads",
- "real",
- "recursive",
- "ref",
- "references",
- "referencing",
- "regr_avgx",
- "regr_avgy",
- "regr_count",
- "regr_intercept",
- "regr_r2",
- "regr_slope",
- "regr_sxx",
- "regr_sxy",
- "regr_syy",
- "release",
- "result",
- "return",
- "returns",
- "revoke",
- "right",
- "rollback",
- "rollup",
- "row",
- "row_number",
- "rows",
- "running",
- "savepoint",
- "scope",
- "scroll",
- "search",
- "second",
- "seek",
- "select",
- "sensitive",
- "session_user",
- "set",
- "show",
- "similar",
- "sin",
- "sinh",
- "skip",
- "smallint",
- "some",
- "specific",
- "specifictype",
- "sql",
- "sqlexception",
- "sqlstate",
- "sqlwarning",
- "sqrt",
- "start",
- "static",
- "stddev_pop",
- "stddev_samp",
- "submultiset",
- "subset",
- "substring",
- "substring_regex",
- "succeeds",
- "sum",
- "symmetric",
- "system",
- "system_time",
- "system_user",
- "table",
- "tablesample",
- "tan",
- "tanh",
- "then",
- "time",
- "timestamp",
- "timezone_hour",
- "timezone_minute",
- "to",
- "trailing",
- "translate",
- "translate_regex",
- "translation",
- "treat",
- "trigger",
- "trim",
- "trim_array",
- "true",
- "truncate",
- "uescape",
- "union",
- "unique",
- "unknown",
- "unnest",
- "update",
- "upper",
- "user",
- "using",
- "value",
- "values",
- "value_of",
- "var_pop",
- "var_samp",
- "varbinary",
- "varchar",
- "varying",
- "versioning",
- "when",
- "whenever",
- "where",
- "width_bucket",
- "window",
- "with",
- "within",
- "without",
- "year"
- ], l = [
- "abs",
- "acos",
- "array_agg",
- "asin",
- "atan",
- "avg",
- "cast",
- "ceil",
- "ceiling",
- "coalesce",
- "corr",
- "cos",
- "cosh",
- "count",
- "covar_pop",
- "covar_samp",
- "cume_dist",
- "dense_rank",
- "deref",
- "element",
- "exp",
- "extract",
- "first_value",
- "floor",
- "json_array",
- "json_arrayagg",
- "json_exists",
- "json_object",
- "json_objectagg",
- "json_query",
- "json_table",
- "json_table_primitive",
- "json_value",
- "lag",
- "last_value",
- "lead",
- "listagg",
- "ln",
- "log",
- "log10",
- "lower",
- "max",
- "min",
- "mod",
- "nth_value",
- "ntile",
- "nullif",
- "percent_rank",
- "percentile_cont",
- "percentile_disc",
- "position",
- "position_regex",
- "power",
- "rank",
- "regr_avgx",
- "regr_avgy",
- "regr_count",
- "regr_intercept",
- "regr_r2",
- "regr_slope",
- "regr_sxx",
- "regr_sxy",
- "regr_syy",
- "row_number",
- "sin",
- "sinh",
- "sqrt",
- "stddev_pop",
- "stddev_samp",
- "substring",
- "substring_regex",
- "sum",
- "tan",
- "tanh",
- "translate",
- "translate_regex",
- "treat",
- "trim",
- "trim_array",
- "unnest",
- "upper",
- "value_of",
- "var_pop",
- "var_samp",
- "width_bucket"
- ], c = [
- "current_catalog",
- "current_date",
- "current_default_transform_group",
- "current_path",
- "current_role",
- "current_schema",
- "current_transform_group_for_type",
- "current_user",
- "session_user",
- "system_time",
- "system_user",
- "current_time",
- "localtime",
- "current_timestamp",
- "localtimestamp"
- ], u = [
- "create table",
- "insert into",
- "primary key",
- "foreign key",
- "not null",
- "alter table",
- "add constraint",
- "grouping sets",
- "on overflow",
- "character set",
- "respect nulls",
- "ignore nulls",
- "nulls first",
- "nulls last",
- "depth first",
- "breadth first"
- ], h = l, g = [
- ...o,
- ...s
- ].filter((E) => !l.includes(E)), p = {
- className: "variable",
- begin: /@[a-z0-9][a-z0-9_]*/
- }, _ = {
- className: "operator",
- begin: /[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,
- relevance: 0
- }, v = {
- begin: n.concat(/\b/, n.either(...h), /\s*\(/),
- relevance: 0,
- keywords: { built_in: h }
- };
- function m(E, {
- exceptions: A,
- when: D
- } = {}) {
- const S = D;
- return A = A || [], E.map((N) => N.match(/\|\d+$/) || A.includes(N) ? N : S(N) ? `${N}|0` : N);
- }
- return {
- name: "SQL",
- case_insensitive: !0,
- // does not include {} or HTML tags `</`
- illegal: /[{}]|<\//,
- keywords: {
- $pattern: /\b[\w\.]+/,
- keyword: m(g, { when: (E) => E.length < 3 }),
- literal: t,
- type: i,
- built_in: c
- },
- contains: [
- {
- begin: n.either(...u),
- relevance: 0,
- keywords: {
- $pattern: /[\w\.]+/,
- keyword: g.concat(u),
- literal: t,
- type: i
- }
- },
- {
- className: "type",
- begin: n.either(...r)
- },
- v,
- p,
- f,
- d,
- e.C_NUMBER_MODE,
- e.C_BLOCK_COMMENT_MODE,
- a,
- _
- ]
- };
- }
- j.registerLanguage("xml", Zt);
- j.registerLanguage("javascript", er);
- j.registerLanguage("json", nr);
- j.registerLanguage("yaml", tr);
- j.registerLanguage("plaintext", rr);
- j.registerLanguage("python", ir);
- j.registerLanguage("java", sr);
- j.registerLanguage("bash", ar);
- j.registerLanguage("sql", or);
- var T = /* @__PURE__ */ ((e) => (e.EQUAL = "equal", e.DELETE = "removed", e.ADD = "added", e.EMPTY = "empty", e))(T || {});
- const J = "<code-diff-modified>", ee = "</code-diff-modified>", lr = J.replace("<", "<").replace(">", ">"), cr = ee.replace("<", "<").replace(">", ">");
- function ge(e) {
- return e === void 0 ? T.EQUAL : e.added ? T.ADD : e.removed ? T.DELETE : T.EQUAL;
- }
- function De(e, n, a = "word") {
- return typeof e == "undefined" ? n : typeof n == "undefined" ? e : (a === "char" ? Zn : Yn)(e, n).filter((d) => ge(d) !== T.DELETE).map(
- (d) => ge(d) === T.ADD ? `${J}${d.value}${ee}` : d.value
- ).join("");
- }
- function kn(e, n) {
- const a = new Ie.diff_match_patch(), f = a.diff_linesToChars_(e, n), d = f.chars1, t = f.chars2, r = f.lineArray, i = a.diff_main(d, t, !1);
- return a.diff_charsToLines_(i, r), i.map((s) => {
- const [o, l] = s;
- return {
- count: l.replace(/\n$/, "").split(`
- `).length,
- value: l,
- removed: o === Ie.DIFF_DELETE,
- added: o === Ie.DIFF_INSERT
- };
- });
- }
- function Q(e, n) {
- if (!n.match(new RegExp(`(${J}|${ee})`, "g")))
- return j.highlight(n, { language: e }).value;
- let f = n;
- const d = n.replace(new RegExp(`(${J}|${ee})`, "g"), ""), t = document.createElement("div");
- t.innerHTML = j.highlight(d, { language: e }).value;
- let r = !1;
- const i = (s) => {
- s.childNodes.forEach((o) => {
- if (o.nodeType === Node.ELEMENT_NODE && i(o), o.nodeType === Node.TEXT_NODE) {
- if (!o.textContent)
- return;
- let l = o.textContent, c = "";
- for (r && (c = c + J); l.length; ) {
- if (f.startsWith(J)) {
- f = f.slice(J.length), c = c + J, r = !0;
- continue;
- }
- if (f.startsWith(ee)) {
- f = f.slice(ee.length), c = c + ee, r = !1;
- continue;
- }
- const u = f.match(new RegExp(`(${J}|${ee})`)), h = u && u.index ? u.index : f.length, g = Math.min(h, l.length);
- c = c + f.substring(0, g), f = f.slice(g), l = l.slice(g);
- }
- r && (c = c + ee), o.textContent = c;
- }
- });
- };
- return i(t), t.innerHTML.replace(new RegExp(lr, "g"), '<span class="x">').replace(new RegExp(cr, "g"), "</span>");
- }
- function $n(e, n) {
- const a = (s, o) => (s.match(new RegExp(o, "g")) || []).length, f = (s) => s.filter((o) => n == null ? void 0 : n.test(o)).length;
- let d = 0, t = 0, r = 0, i = 0;
- for (const s of e) {
- if (s.added) {
- const o = f(s.value.trim().split(`
- `));
- d += a(s.value.trim(), `
- `) + 1 - o, r += o;
- continue;
- }
- if (s.removed) {
- const o = f(s.value.trim().split(`
- `));
- t += a(s.value.trim(), `
- `) + 1 - o, i += o;
- continue;
- }
- }
- return {
- additionsNum: d,
- deletionsNum: t,
- ignoreAdditionsNum: r,
- ignoreDeletionsNum: i
- };
- }
- function ur(e, n, a = "plaintext", f = "word", d = !1, t = 10, r) {
- const i = () => ({ type: T.EMPTY }), s = (m, E, A) => ({ type: m, num: E, code: A }), o = kn(e, n), l = r ? new RegExp(r) : void 0;
- let c = 0, u = 0, h = !1;
- const g = [], p = {
- changes: g,
- collector: [],
- stat: $n(o, l)
- };
- for (let m = 0; m < o.length; m++) {
- if (h) {
- h = !1;
- continue;
- }
- const [E, A] = [o[m], o[m + 1]], [D, S] = [ge(E), ge(A)], N = E.value.replace(/\n$/, "").split(`
- `);
- if (A === void 0) {
- for (const C of N) {
- let I = i(), B = i();
- const $ = Q(a, C);
- D === T.EQUAL && (c++, u++, I = s(T.EQUAL, c, $), B = s(T.EQUAL, u, $)), D === T.DELETE && (c++, I = s(T.DELETE, c, $), B = i()), D === T.ADD && (u++, I = i(), B = s(T.ADD, u, $)), g.push({ left: I, right: B });
- }
- break;
- }
- if (D === T.EQUAL)
- for (const C of N) {
- c++, u++;
- const I = Q(a, C);
- g.push({
- left: s(T.EQUAL, c, I),
- right: s(T.EQUAL, u, I)
- });
- }
- const R = A.value.replace(/\n$/, "").split(`
- `);
- if (D === T.DELETE) {
- if (S === T.EQUAL)
- for (const C of N)
- c++, g.push({
- left: s(T.DELETE, c, Q(a, C)),
- right: i()
- });
- if (S === T.ADD) {
- h = !0;
- const C = Math.max(E.count, A.count);
- for (let I = 0; I < C; I++) {
- I < E.count && c++, I < A.count && u++;
- const [B, $] = [N[I], R[I]], F = d || N.length === R.length, K = F ? De($, B, f) : B, te = F ? De(B, $, f) : $, le = l != null && l.test(B) ? T.EQUAL : T.DELETE, b = l != null && l.test($) ? T.EQUAL : T.ADD, w = I < E.count ? s(le, c, Q(a, K)) : i(), L = I < A.count ? s(b, u, Q(a, te)) : i();
- g.push({ left: w, right: L });
- }
- }
- }
- if (D === T.ADD)
- for (const C of N)
- u++, g.push({
- left: i(),
- right: s(T.ADD, u, Q(a, C))
- });
- }
- if (e === n) {
- for (let m = 0; m < g.length; m++)
- g[m].fold = !1;
- return p;
- }
- for (let m = 0; m < g.length; m++) {
- const E = g[m];
- if (E.left.type === T.DELETE || E.right.type === T.ADD) {
- const [A, D] = [Math.max(m - t, 0), Math.min(m + t + 1, g.length)];
- for (let S = A; S < D; S++)
- g[S].fold = !1;
- }
- E.fold === void 0 && (E.fold = !0);
- }
- const _ = [];
- let v = [];
- for (let m = 0; m < g.length; m++) {
- const E = g[m];
- if (E.fold === !1) {
- v.length && (v[0].hideIndex = p.collector.length, p.collector.push({
- lines: v,
- fold: !0
- }), v = []), _.push(E);
- continue;
- }
- E.hide = !0, v.push(E), _.push(E);
- }
- return v.length && (v[0].hideIndex = p.collector.length, p.collector.push({
- lines: v,
- fold: !0
- }), v = []), p.changes = _, p;
- }
- function fr(e, n, a = "plaintext", f = "word", d = !1, t = 10, r) {
- const i = kn(e, n), s = r ? new RegExp(r) : void 0;
- let o = 0, l = 0, c = !1;
- const u = [], h = {
- changes: u,
- collector: [],
- stat: $n(i, s)
- };
- for (let _ = 0; _ < i.length; _++) {
- if (c) {
- c = !1;
- continue;
- }
- const [v, m] = [i[_], i[_ + 1]], [E, A] = [ge(v), ge(m)], D = v.value.replace(/\n$/, "").split(`
- `);
- if (m === void 0) {
- for (const N of D) {
- E === T.EQUAL && (o++, l++), E === T.DELETE && o++, E === T.ADD && l++;
- const R = Q(a, N);
- u.push({
- type: E,
- code: R,
- addNum: E === T.DELETE ? void 0 : l,
- delNum: E === T.ADD ? void 0 : o
- });
- }
- break;
- }
- if (E === T.EQUAL)
- for (const N of D) {
- o++, l++;
- const R = Q(a, N);
- u.push({ type: T.EQUAL, code: R, delNum: o, addNum: l });
- }
- const S = m.value.replace(/\n$/, "").split(`
- `);
- if (E === T.DELETE)
- if (A === T.ADD && (D.length === S.length || d)) {
- for (let N = 0; N < D.length; N++) {
- const R = D[N], C = S[N];
- o++;
- const I = Q(a, De(C, R, f));
- u.push({
- type: s != null && s.test(R) ? T.EQUAL : T.DELETE,
- code: I,
- delNum: o
- });
- }
- for (let N = 0; N < S.length; N++) {
- const R = D[N], C = S[N];
- l++;
- const I = Q(a, De(R, C, f));
- u.push({
- type: s != null && s.test(C) ? T.EQUAL : T.ADD,
- code: I,
- addNum: l
- });
- }
- c = !0;
- } else
- for (const N of D) {
- o++;
- const R = Q(a, N);
- u.push({ type: T.DELETE, code: R, delNum: o });
- }
- if (E === T.ADD)
- for (const N of D) {
- l++;
- const R = Q(a, N);
- u.push({ type: T.ADD, code: R, addNum: l });
- }
- }
- for (let _ = 0; _ < u.length; _++) {
- const v = u[_];
- if (v.type === T.DELETE || v.type === T.ADD) {
- const [m, E] = [Math.max(_ - t, 0), Math.min(_ + t + 1, u.length)];
- for (let A = m; A < E; A++)
- u[A].fold = !1;
- }
- v.fold === void 0 && (v.fold = !0);
- }
- if (e === n) {
- for (let _ = 0; _ < u.length; _++)
- u[_].fold = !1;
- return h;
- }
- const g = [];
- let p = [];
- for (let _ = 0; _ < u.length; _++) {
- const v = u[_];
- if (v.fold === !1) {
- p.length && (p[0].hideIndex = h.collector.length, h.collector.push({
- lines: p,
- fold: !0
- }), p = []), g.push(v);
- continue;
- }
- v.type === "equal" && (v.hide = !0, p.push(v)), g.push(v);
- }
- return p.length && (p[0].hideIndex = h.collector.length, h.collector.push({
- lines: p,
- fold: !0
- }), p = []), h.changes = g, h;
- }
- const Ge = {};
- Ge.props = {
- line: {
- key: "line",
- required: !0,
- type: null
- }
- };
- Ge.setup = (e, n) => {
- const a = n.emit;
- function f(d) {
- return d === T.DELETE ? "-" : d === T.ADD ? "+" : "";
- }
- return {
- DiffType: T,
- emit: a,
- getCodeMarker: f
- };
- };
- var gr = function() {
- var e = this, n = e.$createElement, a = e._self._c || n;
- return e.line.hideIndex !== void 0 && e.line.hide ? a("tr", [a("td", {
- staticClass: "blob-num blob-num-hunk text-center",
- attrs: {
- colspan: "2"
- },
- on: {
- click: function(f) {
- return e.emit("expand", e.line);
- }
- }
- }, [e._v(" > ")]), a("td", {
- staticClass: "blob-code blob-code-hunk",
- attrs: {
- align: "left"
- }
- }, [e._v(" ⋯ ")])]) : e.line.hide ? e._e() : a("tr", [a("td", {
- staticClass: "blob-num",
- class: {
- "blob-num-deletion": e.line.type === e.DiffType.DELETE,
- "blob-num-addition": e.line.type === e.DiffType.ADD,
- "blob-num-context": e.line.type === e.DiffType.EQUAL,
- "blob-num-hunk": e.line.hide !== void 0
- }
- }, [e._v(" " + e._s(e.line.delNum) + " ")]), a("td", {
- staticClass: "blob-num",
- class: {
- "blob-num-deletion": e.line.type === e.DiffType.DELETE,
- "blob-num-addition": e.line.type === e.DiffType.ADD,
- "blob-num-context": e.line.type === e.DiffType.EQUAL,
- "blob-num-hunk": e.line.hide !== void 0
- }
- }, [e._v(" " + e._s(e.line.addNum) + " ")]), a("td", {
- staticClass: "blob-code",
- class: {
- "blob-code-deletion": e.line.type === e.DiffType.DELETE,
- "blob-code-addition": e.line.type === e.DiffType.ADD,
- "blob-code-context": e.line.type === e.DiffType.EQUAL,
- "blob-code-hunk": e.line.hide !== void 0
- }
- }, [a("span", {
- staticClass: "blob-code-inner blob-code-marker",
- attrs: {
- "data-code-marker": e.getCodeMarker(e.line.type)
- },
- domProps: {
- innerHTML: e._s(e.line.code)
- }
- })])]);
- }, hr = [];
- function oe(e, n, a, f, d, t, r, i) {
- var s = typeof e == "function" ? e.options : e;
- n && (s.render = n, s.staticRenderFns = a, s._compiled = !0), f && (s.functional = !0), t && (s._scopeId = "data-v-" + t);
- var o;
- if (r ? (o = function(u) {
- u = u || // cached call
- this.$vnode && this.$vnode.ssrContext || // stateful
- this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !u && typeof __VUE_SSR_CONTEXT__ != "undefined" && (u = __VUE_SSR_CONTEXT__), d && d.call(this, u), u && u._registeredComponents && u._registeredComponents.add(r);
- }, s._ssrRegister = o) : d && (o = i ? function() {
- d.call(
- this,
- (s.functional ? this.parent : this).$root.$options.shadowRoot
- );
- } : d), o)
- if (s.functional) {
- s._injectStyles = o;
- var l = s.render;
- s.render = function(h, g) {
- return o.call(g), l(h, g);
- };
- } else {
- var c = s.beforeCreate;
- s.beforeCreate = c ? [].concat(c, o) : [o];
- }
- return {
- exports: e,
- options: s
- };
- }
- const cn = {};
- var dr = /* @__PURE__ */ oe(
- Ge,
- gr,
- hr,
- !1,
- pr,
- null,
- null,
- null
- );
- function pr(e) {
- for (let n in cn)
- this[n] = cn[n];
- }
- const _r = /* @__PURE__ */ function() {
- return dr.exports;
- }(), be = {};
- be.props = {
- diffChange: {
- key: "diffChange",
- required: !0,
- type: null
- }
- };
- be.setup = (e, n) => {
- const a = e;
- function f({
- hideIndex: d
- }) {
- d !== void 0 && a.diffChange.collector[d].lines.forEach((t) => {
- t.hide = !1, t.fold = !1;
- });
- }
- return {
- expandHandler: f
- };
- };
- be.components = Object.assign({
- UnifiedLine: _r
- }, be.components);
- var br = function() {
- var e, n = this, a = n.$createElement, f = n._self._c || a;
- return f("table", {
- staticClass: "diff-table"
- }, [f("tbody", n._l((e = n.diffChange) === null || e === void 0 ? void 0 : e.changes, function(d, t) {
- return f("UnifiedLine", {
- key: t,
- attrs: {
- line: d
- },
- on: {
- expand: n.expandHandler
- }
- });
- }), 1)]);
- }, vr = [];
- const un = {};
- var mr = /* @__PURE__ */ oe(
- be,
- br,
- vr,
- !1,
- Er,
- null,
- null,
- null
- );
- function Er(e) {
- for (let n in un)
- this[n] = un[n];
- }
- const yr = /* @__PURE__ */ function() {
- return mr.exports;
- }(), Ke = {};
- Ke.props = {
- splitLine: {
- key: "splitLine",
- required: !0,
- type: null
- }
- };
- Ke.setup = (e, n) => {
- const a = n.emit;
- function f(t) {
- return t === T.DELETE ? "-" : t === T.ADD ? "+" : "";
- }
- function d(t) {
- window.getSelection().removeAllRanges();
- const r = document.querySelectorAll(".file-diff-split .split-side-left"), i = document.querySelectorAll(".file-diff-split .split-side-right");
- for (const s of i)
- s.classList.toggle("no-select", t === "left");
- for (const s of r)
- s.classList.toggle("no-select", t === "right");
- }
- return {
- DiffType: T,
- emit: a,
- getCodeMarker: f,
- onSplitLineMousedown: d
- };
- };
- var wr = function() {
- var e = this, n = e.$createElement, a = e._self._c || n;
- return e.splitLine.hideIndex !== void 0 && e.splitLine.hide ? a("tr", [a("td", {
- staticClass: "blob-num blob-num-hunk",
- attrs: {
- colspan: "1"
- },
- on: {
- click: function(f) {
- return e.emit("expand", e.splitLine);
- }
- }
- }, [e._v(" > ")]), a("td", {
- staticClass: "blob-code blob-code-inner blob-code-hunk",
- attrs: {
- colspan: "3",
- align: "left"
- }
- }, [e._v(" ⋯ ")])]) : e.splitLine.hide ? e._e() : a("tr", [e._l([e.splitLine.left, e.splitLine.right], function(f, d) {
- return [f.type === e.DiffType.EMPTY ? [a("td", {
- staticClass: "blob-num blob-num-empty empty-cell"
- }), a("td", {
- staticClass: "blob-code blob-code-empty empty-cell"
- })] : [a("td", {
- staticClass: "blob-num",
- class: {
- "blob-num-deletion": f.type === e.DiffType.DELETE,
- "blob-num-addition": f.type === e.DiffType.ADD,
- "blob-num-context": f.type === e.DiffType.EQUAL,
- "blob-num-hunk": e.splitLine.hide !== void 0
- }
- }, [e._v(" " + e._s(f.num) + " ")]), a("td", {
- staticClass: "blob-code",
- class: {
- "blob-code-deletion": f.type === e.DiffType.DELETE,
- "blob-code-addition": f.type === e.DiffType.ADD,
- "blob-code-context": f.type === e.DiffType.EQUAL,
- "blob-code-hunk": e.splitLine.hide !== void 0,
- "split-side-left": d === 0,
- "split-side-right": d === 1
- },
- on: {
- mousedown: function(t) {
- return e.onSplitLineMousedown(d === 0 ? "left" : "right");
- }
- }
- }, [a("span", {
- staticClass: "blob-code-inner blob-code-marker",
- attrs: {
- "data-code-marker": e.getCodeMarker(f.type)
- },
- domProps: {
- innerHTML: e._s(f.code)
- }
- })])]];
- })], 2);
- }, Ar = [];
- const fn = {};
- var Nr = /* @__PURE__ */ oe(
- Ke,
- wr,
- Ar,
- !1,
- Mr,
- null,
- null,
- null
- );
- function Mr(e) {
- for (let n in fn)
- this[n] = fn[n];
- }
- const Tr = /* @__PURE__ */ function() {
- return Nr.exports;
- }(), ve = {};
- ve.props = {
- diffChange: {
- key: "diffChange",
- required: !0,
- type: null
- }
- };
- ve.setup = (e, n) => {
- const a = e;
- function f({
- hideIndex: d
- }) {
- d !== void 0 && a.diffChange.collector[d].lines.forEach((t) => {
- t.hide = !1, t.fold = !1;
- });
- }
- return {
- expandHandler: f
- };
- };
- ve.components = Object.assign({
- SplitLine: Tr
- }, ve.components);
- var Sr = function() {
- var e, n = this, a = n.$createElement, f = n._self._c || a;
- return f("table", {
- staticClass: "file-diff-split diff-table"
- }, [n._m(0), f("tbody", n._l((e = n.diffChange) === null || e === void 0 ? void 0 : e.changes, function(d, t) {
- return f("SplitLine", {
- key: t,
- attrs: {
- "split-line": d
- },
- on: {
- expand: n.expandHandler
- }
- });
- }), 1)]);
- }, Dr = [function() {
- var e = this, n = e.$createElement, a = e._self._c || n;
- return a("colgroup", [a("col", {
- attrs: {
- width: "44"
- }
- }), a("col"), a("col", {
- attrs: {
- width: "44"
- }
- }), a("col")]);
- }];
- const gn = {};
- var Cr = /* @__PURE__ */ oe(
- ve,
- Sr,
- Dr,
- !1,
- Rr,
- null,
- null,
- null
- );
- function Rr(e) {
- for (let n in gn)
- this[n] = gn[n];
- }
- const Lr = /* @__PURE__ */ function() {
- return Cr.exports;
- }();
- var Or = function() {
- var e = this, n = e.$createElement, a = e._self._c || n;
- return a("svg", {
- attrs: {
- width: "1rem",
- viewBox: "0 0 512 512",
- xmlns: "http://www.w3.org/2000/svg"
- }
- }, [a("path", {
- attrs: {
- d: "M383.6,322.7L278.6,423c-5.8,6-13.7,9-22.4,9c-8.7,0-16.5-3-22.4-9L128.4,322.7c-12.5-11.9-12.5-31.3,0-43.2 c12.5-11.9,32.7-11.9,45.2,0l50.4,48.2v-217c0-16.9,14.3-30.6,32-30.6c17.7,0,32,13.7,32,30.6v217l50.4-48.2 c12.5-11.9,32.7-11.9,45.2,0C396.1,291.4,396.1,310.7,383.6,322.7z"
- }
- })]);
- }, Ir = [];
- const kr = {
- name: "DownArrowIcon"
- }, hn = {};
- var $r = /* @__PURE__ */ oe(
- kr,
- Or,
- Ir,
- !1,
- Br,
- null,
- null,
- null
- );
- function Br(e) {
- for (let n in hn)
- this[n] = hn[n];
- }
- const Ur = /* @__PURE__ */ function() {
- return $r.exports;
- }();
- var Pr = function() {
- var e = this, n = e.$createElement, a = e._self._c || n;
- return a("svg", {
- attrs: {
- width: "1rem",
- viewBox: "0 0 512 512",
- xmlns: "http://www.w3.org/2000/svg"
- }
- }, [a("path", {
- attrs: {
- d: "M128.4,189.3L233.4,89c5.8-6,13.7-9,22.4-9c8.7,0,16.5,3,22.4,9l105.4,100.3c12.5,11.9,12.5,31.3,0,43.2 c-12.5,11.9-32.7,11.9-45.2,0L288,184.4v217c0,16.9-14.3,30.6-32,30.6c-17.7,0-32-13.7-32-30.6v-217l-50.4,48.2 c-12.5,11.9-32.7,11.9-45.2,0C115.9,220.6,115.9,201.3,128.4,189.3z"
- }
- })]);
- }, xr = [];
- const Hr = {
- name: "UpArrowIcon"
- }, dn = {};
- var Fr = /* @__PURE__ */ oe(
- Hr,
- Pr,
- xr,
- !1,
- zr,
- null,
- null,
- null
- );
- function zr(e) {
- for (let n in dn)
- this[n] = dn[n];
- }
- const Gr = /* @__PURE__ */ function() {
- return Fr.exports;
- }();
- const me = {};
- me.props = {
- newString: {
- key: "newString",
- required: !0,
- type: String
- },
- oldString: {
- key: "oldString",
- required: !0,
- type: String
- },
- language: {
- key: "language",
- required: !1,
- type: String,
- default: "plaintext"
- },
- context: {
- key: "context",
- required: !1,
- type: Number,
- default: 10
- },
- diffStyle: {
- key: "diffStyle",
- required: !1,
- type: String,
- default: "word"
- },
- forceInlineComparison: {
- key: "forceInlineComparison",
- required: !1,
- type: Boolean,
- default: !1
- },
- outputFormat: {
- key: "outputFormat",
- required: !1,
- type: String,
- default: "line-by-line"
- },
- trim: {
- key: "trim",
- required: !1,
- type: Boolean,
- default: !1
- },
- noDiffLineFeed: {
- key: "noDiffLineFeed",
- required: !1,
- type: Boolean,
- default: !1
- },
- maxHeight: {
- key: "maxHeight",
- required: !1,
- type: String,
- default: void 0
- },
- filename: {
- key: "filename",
- required: !1,
- type: String,
- default: void 0
- },
- newFilename: {
- key: "newFilename",
- required: !1,
- type: String,
- default: void 0
- },
- hideHeader: {
- key: "hideHeader",
- required: !1,
- type: Boolean,
- default: !1
- },
- hideStat: {
- key: "hideStat",
- required: !1,
- type: Boolean,
- default: !1
- },
- theme: {
- key: "theme",
- required: !1,
- type: String,
- default: "light"
- },
- ignoreMatchingLines: {
- key: "ignoreMatchingLines",
- required: !1,
- type: String,
- default: void 0
- }
- };
- me.setup = (e, n) => {
- const a = e, f = n.emit, d = he(() => a.outputFormat === "line-by-line"), t = he(() => {
- let g = a.oldString || "";
- return g = a.trim ? g.trim() : g, g = a.noDiffLineFeed ? g.replace(/(\r\n)/g, `
- `) : g, g;
- }), r = he(() => {
- let g = a.newString || "";
- return g = a.trim ? g.trim() : g, g = a.noDiffLineFeed ? g.replace(/(\r\n)/g, `
- `) : g, g;
- }), i = he(() => d.value ? fr(t.value, r.value, a.language, a.diffStyle, a.forceInlineComparison, a.context, a.ignoreMatchingLines) : ur(t.value, r.value, a.language, a.diffStyle, a.forceInlineComparison, a.context, a.ignoreMatchingLines)), s = Ve(i.value), o = he(() => s.value.stat.additionsNum === 0 && s.value.stat.deletionsNum === 0), l = Ve(-1);
- function c() {
- const g = document.querySelectorAll(".blob-code-addition");
- l.value < g.length - 1 && (l.value++, h(g));
- }
- function u() {
- const g = document.querySelectorAll(".blob-code-addition");
- l.value > 0 && (l.value--, h(g));
- }
- function h(g) {
- g.forEach((_) => _.classList.remove("current-diff"));
- const p = g[l.value];
- p && (p.classList.add("current-diff"), p.scrollIntoView({
- behavior: "smooth",
- block: "center"
- }));
- }
- return Kn(() => a, () => {
- s.value = i.value, f("diff", {
- stat: {
- isChanged: !o.value,
- addNum: s.value.stat.additionsNum,
- delNum: s.value.stat.deletionsNum
- }
- });
- }, {
- deep: !0,
- immediate: !0
- }), {
- isUnifiedViewer: d,
- diffChange: s,
- goToNextDiff: c,
- goToPrevDiff: u
- };
- };
- me.components = Object.assign({
- DownArrowIcon: Ur,
- UpArrowIcon: Gr,
- UnifiedViewer: yr,
- SplitViewer: Lr
- }, me.components);
- var Kr = function() {
- var e = this, n = e.$createElement, a = e._self._c || n;
- return a("div", {
- staticClass: "code-diff-view",
- style: {
- maxHeight: e.maxHeight
- },
- attrs: {
- theme: e.theme
- }
- }, [e.hideHeader ? e._e() : a("div", {
- staticClass: "file-header"
- }, [e.isUnifiedViewer ? a("div", {
- staticClass: "file-info"
- }, [a("span", [a("div", {
- staticClass: "info-left"
- }, [e._v(e._s(e.filename))]), a("div", {
- staticClass: "info-left"
- }, [e._v(e._s(e.newFilename))])]), a("span", {
- staticClass: "diff-commandbar"
- }, [a("button", {
- staticClass: "command-item-button",
- attrs: {
- title: "Next Change"
- },
- on: {
- click: e.goToNextDiff
- }
- }, [a("DownArrowIcon")], 1), a("button", {
- staticClass: "command-item-button",
- attrs: {
- title: "Previous Change"
- },
- on: {
- click: e.goToPrevDiff
- }
- }, [a("UpArrowIcon")], 1)]), e.hideStat ? e._e() : a("span", {
- staticClass: "diff-stat"
- }, [e._t("stat", function() {
- return [a("span", {
- staticClass: "diff-stat-added"
- }, [e._v("+" + e._s(e.diffChange.stat.additionsNum) + " additions")]), a("span", {
- staticClass: "diff-stat-deleted"
- }, [e._v("-" + e._s(e.diffChange.stat.deletionsNum) + " deletions")])];
- }, {
- stat: e.diffChange.stat
- })], 2)]) : a("div", {
- staticClass: "file-info"
- }, [a("span", {
- staticClass: "info-left"
- }, [e._v(e._s(e.filename))]), a("span", {
- staticClass: "info-right"
- }, [a("span", {
- staticStyle: {
- "margin-left": "20px"
- }
- }, [e._v(e._s(e.newFilename))]), a("span", {
- staticClass: "diff-commandbar"
- }, [a("button", {
- staticClass: "command-item-button",
- attrs: {
- title: "Next Change"
- },
- on: {
- click: e.goToNextDiff
- }
- }, [a("DownArrowIcon")], 1), a("button", {
- staticClass: "command-item-button",
- attrs: {
- title: "Previous Change"
- },
- on: {
- click: e.goToPrevDiff
- }
- }, [a("UpArrowIcon")], 1)]), e.hideStat ? e._e() : a("span", {
- staticClass: "diff-stat"
- }, [e._t("stat", function() {
- return [a("span", {
- staticClass: "diff-stat-added"
- }, [e._v("+" + e._s(e.diffChange.stat.additionsNum) + " additions")]), a("span", {
- staticClass: "diff-stat-deleted"
- }, [e._v("-" + e._s(e.diffChange.stat.deletionsNum) + " deletions")])];
- }, {
- stat: e.diffChange.stat
- })], 2)])])]), e.isUnifiedViewer ? a("UnifiedViewer", {
- attrs: {
- "diff-change": e.diffChange
- }
- }) : a("SplitViewer", {
- attrs: {
- "diff-change": e.diffChange
- }
- })], 1);
- }, Wr = [];
- const pn = {};
- var qr = /* @__PURE__ */ oe(
- me,
- Kr,
- Wr,
- !1,
- Qr,
- null,
- null,
- null
- );
- function Qr(e) {
- for (let n in pn)
- this[n] = pn[n];
- }
- const jr = /* @__PURE__ */ function() {
- return qr.exports;
- }();
- function Zr(e) {
- e.component("CodeDiff", jr);
- }
- const Xr = {
- install: Zr,
- hljs: j
- };
- export {
- jr as CodeDiff,
- Xr as default,
- j as hljs
- };
|