{"version":3,"file":"bundle.js","sources":["/source-files/jsondiffpatch/node_modules/fiberglass/node_modules/browserify/node_modules/browser-pack/_prelude.js","/source-files/jsondiffpatch/src/main.js","/source-files/jsondiffpatch/src/environment.js","/source-files/jsondiffpatch/src/diffpatcher.js","/source-files/jsondiffpatch/src/date-reviver.js","/source-files/jsondiffpatch/src/contexts/diff.js","/source-files/jsondiffpatch/src/pipe.js","/source-files/jsondiffpatch/src/processor.js","/source-files/jsondiffpatch/src/contexts/patch.js","/source-files/jsondiffpatch/src/contexts/reverse.js","/source-files/jsondiffpatch/src/filters/trivial.js","/source-files/jsondiffpatch/src/filters/nested.js","/source-files/jsondiffpatch/src/filters/arrays.js","/source-files/jsondiffpatch/src/filters/dates.js","/source-files/jsondiffpatch/src/filters/texts.js","/source-files/jsondiffpatch/src/contexts/context.js","/source-files/jsondiffpatch/src/filters/lcs.js"],"names":["exports","isBrowser","window","Processor","require","Pipe","DiffContext","PatchContext","ReverseContext","trivial","nested","arrays","dates","texts","DiffPatcher","options","this","processor","pipe","append","collectChildrenDiffFilter","diffFilter","objectsDiffFilter","shouldHaveResult","collectChildrenPatchFilter","patchFilter","collectChildrenReverseFilter","reverseFilter","prototype","apply","arguments","diff","left","right","process","patch","delta","reverse","unpatch","module","key","value","parts","exec","Date","UTC","Context","name","filters","input","Error","debug","length","context","index","filter","log","filterName","exiting","next","resultCheck","msg","console","push","prepend","unshift","indexOf","list","names","after","params","Array","slice","call","splice","before","clear","should","hasResult","error","noResult","selfOptions","pipes","lastPipe","lastContext","nextPipe","nextAfterChildren","result","undefined","isArray","a","setResult","exit","leftType","rightType","leftIsArray","rightIsArray","children","child","childName","_t","hasOwnProperty","arraysHaveMatchByRef","array1","array2","len1","len2","index1","val1","index2","val2","matchItems","value1","value2","objectHash","matchByPosition","hash1","hash2","hashCache1","hashCache2","lcs","ARRAY_MOVE","arrayIndexOf","array","item","i","matchContext","commonHead","commonTail","trimmed1","trimmed2","seq","get","removedItems","indices1","detectMove","includeValueOnMove","removedItemsLength","indexOnArray2","indices2","isMove","removeItemIndex1","compare","numerically","b","numericallyBy","toRemove","toInsert","toModify","parseInt","sort","indexDiff","removedValue","toInsertLength","insertion","toModifyLength","modification","newName","substr","reverseArrayDeltaIndex","itemDelta","reverseIndex","deltaIndex","deltaItem","moveFromIndex","moveToIndex","deleteIndex","getTime","TEXT_DIFF","DEFAULT_MIN_LENGTH","cachedDiffPatch","getDiffMatchPatch","instance","diff_match_patch","dmpModuleName","dmp","err","diff_match_patch_not_found","txt1","txt2","patch_toText","patch_make","results","patch_apply","patch_fromText","textPatchFailed","minLength","textDiff","textDeltaReverse","l","lines","line","lineTmp","lineHeader","lineAdd","lineRemove","header","headerRegex","split","lineStart","join","switchTo","parent","root","defaultMatch","lengthMatrix","match","x","y","matrix","Math","max","backtrack","sequence","subsequence"],"mappings":"AAAA;ACAA;;AcCA,GAAIK,MAAOD,QAAQ,WAAWC,KAE1ByC,QAAU,YAGdA,SAAQlB,UAAU+D,UAAY,SAASJ,GAGtC,MAFAvE,MAAKuE,OAASA,EACdvE,KAAK8D,WAAY,EACV9D,MAGR8B,QAAQlB,UAAUgE,KAAO,WAExB,MADA5E,MAAK0C,SAAU,EACR1C,MAGR8B,QAAQlB,UAAU6K,SAAW,SAAS9I,EAAMzC,GAS3C,MARoB,gBAATyC,IAAqBA,YAAgBtD,MAC/CW,KAAKqE,SAAW1B,GAEhB3C,KAAK2C,KAAOA,EACRzC,IACHF,KAAKqE,SAAWnE,IAGXF,MAGR8B,QAAQlB,UAAUmC,KAAO,SAASmC,EAAOnD,GAgBxC,MAfAmD,GAAMwG,OAAS1L,KACK,mBAAT+B,KACVmD,EAAMC,UAAYpD,GAEnBmD,EAAMyG,KAAO3L,KAAK2L,MAAQ3L,KAC1BkF,EAAMnF,QAAUmF,EAAMnF,SAAWC,KAAKD,QACjCC,KAAKiF,UAKTjF,KAAKiF,SAASjF,KAAKiF,SAAS7C,OAAS,GAAGO,KAAOuC,EAC/ClF,KAAKiF,SAASlC,KAAKmC,KALnBlF,KAAKiF,UAAYC,GACjBlF,KAAKsE,kBAAoBtE,KAAK2C,MAAQ,KACtC3C,KAAK2C,KAAOuC,GAKbA,EAAMvC,KAAO3C,KACNA,MAGRhB,QAAQ8C,QAAUA;;AVhDlB,GAAIA,SAAU1C,QAAQ,aAAa0C,QAE/BxC,YAAc,SAAqB0B,EAAMC,GAC3CjB,KAAKgB,KAAOA,EACZhB,KAAKiB,MAAQA,EACbjB,KAAKE,KAAO,OAGdZ,aAAYsB,UAAY,GAAIkB,SAE5B9C,QAAQM,YAAcA;;AGVtB,GAAIwC,SAAU1C,QAAQ,aAAa0C,QAE/BvC,aAAe,SAAsByB,EAAMI,GAC7CpB,KAAKgB,KAAOA,EACZhB,KAAKoB,MAAQA,EACbpB,KAAKE,KAAO,QAGdX,cAAaqB,UAAY,GAAIkB,SAE7B9C,QAAQO,aAAeA;;ACVvB,GAAIuC,SAAU1C,QAAQ,aAAa0C,QAE/BtC,eAAiB,SAAwB4B,GAC3CpB,KAAKoB,MAAQA,EACbpB,KAAKE,KAAO,UAGdV,gBAAeoB,UAAY,GAAIkB,SAE/B9C,QAAQQ,eAAiBA;;ALRzB+B,OAAOvC,QAAU,SAAqBwC,EAAKC,GACzC,GAAIC,EACJ,OAAqB,gBAAVD,KACTC,EAAQ,0FAA0FC,KAAKF,IAE9F,GAAIG,MAAKA,KAAKC,KAAKH,EAAM,IAAKA,EAAM,GAAK,GAAIA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,KAAMA,EAAM,IAAM,KAG1GD;;ADTT,GAAItC,WAAYC,QAAQ,eAAeD,UACnCE,KAAOD,QAAQ,UAAUC,KACzBC,YAAcF,QAAQ,mBAAmBE,YACzCC,aAAeH,QAAQ,oBAAoBG,aAC3CC,eAAiBJ,QAAQ,sBAAsBI,eAE/CC,QAAUL,QAAQ,qBAClBM,OAASN,QAAQ,oBACjBO,OAASP,QAAQ,oBACjBQ,MAAQR,QAAQ,mBAChBS,MAAQT,QAAQ,mBAEhBU,YAAc,SAAqBC,GACrCC,KAAKC,UAAY,GAAId,WAAUY,GAC/BC,KAAKC,UAAUC,KAAK,GAAIb,MAAK,QAAQc,OACnCT,OAAOU,0BACPX,QAAQY,WACRT,MAAMS,WACNR,MAAMQ,WACNX,OAAOY,kBACPX,OAAOU,YACPE,oBACFP,KAAKC,UAAUC,KAAK,GAAIb,MAAK,SAASc,OACpCT,OAAOc,2BACPb,OAAOa,2BACPf,QAAQgB,YACRZ,MAAMY,YACNf,OAAOe,YACPd,OAAOc,aACPF,oBACFP,KAAKC,UAAUC,KAAK,GAAIb,MAAK,WAAWc,OACtCT,OAAOgB,6BACPf,OAAOe,6BACPjB,QAAQkB,cACRd,MAAMc,cACNjB,OAAOiB,cACPhB,OAAOgB,eACPJ,oBAGJT,aAAYc,UAAUb,QAAU,WAC9B,MAAOC,MAAKC,UAAUF,QAAQc,MAAMb,KAAKC,UAAWa,YAGtDhB,YAAYc,UAAUG,KAAO,SAASC,EAAMC,GAC1C,MAAOjB,MAAKC,UAAUiB,QAAQ,GAAI5B,aAAY0B,EAAMC,KAGtDnB,YAAYc,UAAUO,MAAQ,SAASH,EAAMI,GAC3C,MAAOpB,MAAKC,UAAUiB,QAAQ,GAAI3B,cAAayB,EAAMI,KAGvDtB,YAAYc,UAAUS,QAAU,SAASD,GACvC,MAAOpB,MAAKC,UAAUiB,QAAQ,GAAI1B,gBAAe4B,KAGnDtB,YAAYc,UAAUU,QAAU,SAASL,EAAOG,GAC9C,MAAOpB,MAAKmB,MAAMF,EAAOjB,KAAKqB,QAAQD,KAGxCpC,QAAQc,YAAcA;;AD3DtBd,QAAQC,UAA8B,mBAAXC;;AU4B3B,QAASoG,sBAAqBC,EAAQC,EAAQC,EAAMC,GAClD,IAAK,GAAIC,GAAS,EAAYF,EAATE,EAAeA,IAElC,IAAK,GADDC,GAAOL,EAAOI,GACTE,EAAS,EAAYH,EAATG,EAAeA,IAAU,CAC5C,GAAIC,GAAON,EAAOK,EAClB,IAAID,IAASE,EACX,OAAO,GAMf,QAASC,YAAWR,EAAQC,EAAQG,EAAQE,EAAQxD,GAClD,GAAI2D,GAAST,EAAOI,GAChBM,EAAST,EAAOK,EACpB,IAAIG,IAAWC,EACb,OAAO,CAET,IAAsB,gBAAXD,IAAyC,gBAAXC,GACvC,OAAO,CAET,IAAIC,GAAa7D,EAAQ6D,UACzB,KAAKA,EAEH,MAAO7D,GAAQ8D,iBAAmBR,IAAWE,CAE/C,IAAIO,GACAC,CAUJ,OATsB,gBAAXV,IACTtD,EAAQiE,WAAajE,EAAQiE,eAC7BF,EAAQ/D,EAAQiE,WAAWX,GACN,mBAAVS,KACT/D,EAAQiE,WAAWX,GAAUS,EAAQF,EAAWF,EAAQL,KAG1DS,EAAQF,EAAWF,GAEA,mBAAVI,IACF,GAEa,gBAAXP,IACTxD,EAAQkE,WAAalE,EAAQkE,eAC7BF,EAAQhE,EAAQkE,WAAWV,GACN,mBAAVQ,KACThE,EAAQkE,WAAWV,GAAUQ,EAAQH,EAAWD,EAAQJ,KAG1DQ,EAAQH,EAAWD,GAEA,mBAAVI,IACF,EAEFD,IAAUC,GAjFnB,GAAI/G,aAAcF,QAAQ,oBAAoBE,YAC1CC,aAAeH,QAAQ,qBAAqBG,aAC5CC,eAAiBJ,QAAQ,uBAAuBI,eAEhDgH,IAAMpH,QAAQ,SAEdqH,WAAa,EAEbhC,QAAoC,kBAAlBlB,OAAMkB,QAE1BlB,MAAMkB,QAEN,SAASC,GACP,MAAOA,aAAanB,QAGpBmD,aAAkD,kBAA5BnD,OAAM3C,UAAUsC,QACxC,SAASyD,EAAOC,GACd,MAAOD,GAAMzD,QAAQ0D,IACnB,SAASD,EAAOC,GAElB,IAAK,GADDxE,GAASuE,EAAMvE,OACVyE,EAAI,EAAOzE,EAAJyE,EAAYA,IAC1B,GAAIF,EAAME,KAAOD,EACf,MAAOC,EAGX,OAAO,IA0DPxG,WAAa,SAA0BgC,GACzC,GAAKA,EAAQ0C,YAAb,CAIA,GAMIzC,GACAqD,EACAE,EAMAX,EAdA4B,GACFZ,WAAY7D,EAAQtC,SAAWsC,EAAQtC,QAAQmG,WAC/CC,gBAAiB9D,EAAQtC,SAAWsC,EAAQtC,QAAQoG,iBAElDY,EAAa,EACbC,EAAa,EAIbzB,EAASlD,EAAQrB,KACjBwE,EAASnD,EAAQpB,MACjBwE,EAAOF,EAAOnD,OACdsD,EAAOF,EAAOpD,MAUlB,KANIqD,EAAO,GAAKC,EAAO,IAAMoB,EAAaZ,YACA,iBAAjCY,GAAaX,kBACpBW,EAAaX,iBAAmBb,qBAAqBC,EAAQC,EAAQC,EAAMC,IAIzDD,EAAbsB,GAAkCrB,EAAbqB,GAC1BhB,WAAWR,EAAQC,EAAQuB,EAAYA,EAAYD,IACnDxE,EAAQyE,EACR7B,EAAQ,GAAI5F,aAAY+C,EAAQrB,KAAKsB,GAAQD,EAAQpB,MAAMqB,IAC3DD,EAAQU,KAAKmC,EAAO5C,GACpByE,GAGF,MAAiCtB,EAA1BuB,EAAaD,GAA+CrB,EAA1BsB,EAAaD,GACpDhB,WAAWR,EAAQC,EAAQC,EAAO,EAAIuB,EAAYtB,EAAO,EAAIsB,EAAYF,IACzEnB,EAASF,EAAO,EAAIuB,EACpBnB,EAASH,EAAO,EAAIsB,EACpB9B,EAAQ,GAAI5F,aAAY+C,EAAQrB,KAAK2E,GAAStD,EAAQpB,MAAM4E,IAC5DxD,EAAQU,KAAKmC,EAAOW,GACpBmB,GAEF,IAAIzC,EACJ,IAAIwC,EAAaC,IAAevB,EAAM,CACpC,GAAIA,IAASC,EAGX,WADArD,GAAQsC,UAAUH,QAAWI,MAO/B,KAHAL,EAASA,IACPa,GAAI,KAED9C,EAAQyE,EAAoBrB,EAAOsB,EAAf1E,EAA2BA,IAClDiC,EAAOjC,IAAUkD,EAAOlD,GAG1B,YADAD,GAAQsC,UAAUJ,GAAQK,OAG5B,GAAImC,EAAaC,IAAetB,EAAM,CAKpC,IAHAnB,EAASA,IACPa,GAAI,KAED9C,EAAQyE,EAAoBtB,EAAOuB,EAAf1E,EAA2BA,IAClDiC,EAAO,IAAMjC,IAAUiD,EAAOjD,GAAQ,EAAG,EAG3C,YADAD,GAAQsC,UAAUJ,GAAQK,aAIrBkC,GAAaR,iBACbQ,GAAaP,UAGpB,IAAIU,GAAW1B,EAAO/B,MAAMuD,EAAYtB,EAAOuB,GAC3CE,EAAW1B,EAAOhC,MAAMuD,EAAYrB,EAAOsB,GAC3CG,EAAMX,IAAIY,IACZH,EAAUC,EACVnB,WACAe,GAEEO,IAIJ,KAHA9C,EAASA,IACPa,GAAI,KAED9C,EAAQyE,EAAoBtB,EAAOuB,EAAf1E,EAA2BA,IAC9CoE,aAAaS,EAAIG,SAAUhF,EAAQyE,GAAc,IAEnDxC,EAAO,IAAMjC,IAAUiD,EAAOjD,GAAQ,EAAG,GACzC+E,EAAatE,KAAKT,GAItB,IAAIiF,IAAa,CACblF,GAAQtC,SAAWsC,EAAQtC,QAAQJ,QAAU0C,EAAQtC,QAAQJ,OAAO4H,cAAe,IACrFA,GAAa,EAEf,IAAIC,IAAqB,CACrBnF,GAAQtC,SAAWsC,EAAQtC,QAAQJ,QAAU0C,EAAQtC,QAAQJ,OAAO6H,qBACtEA,GAAqB,EAGvB,IAAIC,GAAqBJ,EAAajF,MACtC,KAAKE,EAAQyE,EAAoBrB,EAAOsB,EAAf1E,EAA2BA,IAAS,CAC3D,GAAIoF,GAAgBhB,aAAaS,EAAIQ,SAAUrF,EAAQyE,EACvD,IAAoB,EAAhBW,EAAmB,CAErB,GAAIE,IAAS,CACb,IAAIL,GAAcE,EAAqB,EACrC,IAAK,GAAII,GAAmB,EAAsBJ,EAAnBI,EAAuCA,IAEpE,GADAlC,EAAS0B,EAAaQ,GAClB9B,WAAWkB,EAAUC,EAAUvB,EAASoB,EAC1CzE,EAAQyE,EAAYD,GAAe,CAEnCvC,EAAO,IAAMoB,GAAQjC,OAAO,EAAG,EAAGpB,EAAOmE,YACpCe,IAEHjD,EAAO,IAAMoB,GAAQ,GAAK,IAG5BE,EAASvD,EACT4C,EAAQ,GAAI5F,aAAY+C,EAAQrB,KAAK2E,GAAStD,EAAQpB,MAAM4E,IAC5DxD,EAAQU,KAAKmC,EAAOW,GACpBwB,EAAa3D,OAAOmE,EAAkB,GACtCD,GAAS,CACT,OAIDA,IAEHrD,EAAOjC,IAAUkD,EAAOlD,SAI1BqD,GAASwB,EAAIG,SAASI,GAAiBX,EACvClB,EAASsB,EAAIQ,SAASD,GAAiBX,EACvC7B,EAAQ,GAAI5F,aAAY+C,EAAQrB,KAAK2E,GAAStD,EAAQpB,MAAM4E,IAC5DxD,EAAQU,KAAKmC,EAAOW,GAIxBxD,EAAQsC,UAAUJ,GAAQK,QAG5BvE,YAAWoC,WAAa,QAExB,IAAIqF,UACFC,YAAa,SAASrD,EAAGsD,GACvB,MAAOtD,GAAIsD,GAEbC,cAAe,SAASlG,GACtB,MAAO,UAAS2C,EAAGsD,GACjB,MAAOtD,GAAE3C,GAAQiG,EAAEjG,MAKrBtB,YAAc,SAA2B4B,GAC3C,GAAKA,EAAQ3C,QAGY,MAArB2C,EAAQjB,MAAMgE,GAAlB,CAGA,GAAI9C,GAAOqD,EAEPvE,EAAQiB,EAAQjB,MAChBuF,EAAQtE,EAAQrB,KAGhBkH,KACAC,KACAC,IACJ,KAAK9F,IAASlB,GACZ,GAAc,OAAVkB,EACF,GAAiB,MAAbA,EAAM,GAAY,CAEpB,GAAwB,IAApBlB,EAAMkB,GAAO,IAAYlB,EAAMkB,GAAO,KAAOmE,WAG/C,KAAM,IAAIvE,OAAM,qFACYd,EAAMkB,GAAO,GAHzC4F,GAASnF,KAAKsF,SAAS/F,EAAMkB,MAAM,GAAI,SAMb,KAAxBpC,EAAMkB,GAAOF,OAEf+F,EAASpF,MACPT,MAAO+F,SAAS/F,EAAO,IACvBb,MAAOL,EAAMkB,GAAO,KAItB8F,EAASrF,MACPT,MAAO+F,SAAS/F,EAAO,IACvBlB,MAAOA,EAAMkB,IASvB,KADA4F,EAAWA,EAASI,KAAKR,QAAQC,aAC5BzF,EAAQ4F,EAAS9F,OAAS,EAAGE,GAAS,EAAGA,IAAS,CACrDqD,EAASuC,EAAS5F,EAClB,IAAIiG,GAAYnH,EAAM,IAAMuE,GACxB6C,EAAe7B,EAAMjD,OAAOiC,EAAQ,GAAG,EACvC4C,GAAU,KAAO9B,YAEnB0B,EAASpF,MACPT,MAAOiG,EAAU,GACjB9G,MAAO+G,IAMbL,EAAWA,EAASG,KAAKR,QAAQG,cAAc,SAC/C,IAAIQ,GAAiBN,EAAS/F,MAC9B,KAAKE,EAAQ,EAAWmG,EAARnG,EAAwBA,IAAS,CAC/C,GAAIoG,GAAYP,EAAS7F,EACzBqE,GAAMjD,OAAOgF,EAAUpG,MAAO,EAAGoG,EAAUjH,OAI7C,GACIyD,GADAyD,EAAiBP,EAAShG,MAE9B,IAAIuG,EAAiB,EACnB,IAAKrG,EAAQ,EAAWqG,EAARrG,EAAwBA,IAAS,CAC/C,GAAIsG,GAAeR,EAAS9F,EAC5B4C,GAAQ,GAAI3F,cAAa8C,EAAQrB,KAAK4H,EAAatG,OAAQsG,EAAaxH,OACxEiB,EAAQU,KAAKmC,EAAO0D,EAAatG,OAIrC,MAAKD,GAAQ4C,aAIb5C,GAAQuC,WAHNvC,GAAQsC,UAAUtC,EAAQrB,MAAM4D,QAKpCnE,aAAYgC,WAAa,QAEzB,IAAIjC,4BAA6B,SAAoC6B,GACnE,GAAKA,GAAYA,EAAQ4C,UAGA,MAArB5C,EAAQjB,MAAMgE,GAAlB,CAKA,IAAK,GADDF,GADA9C,EAASC,EAAQ4C,SAAS7C,OAErBE,EAAQ,EAAWF,EAARE,EAAgBA,IAClC4C,EAAQ7C,EAAQ4C,SAAS3C,GACzBD,EAAQrB,KAAKkE,EAAMC,WAAaD,EAAMX,MAExClC,GAAQsC,UAAUtC,EAAQrB,MAAM4D,QAElCpE,4BAA2BiC,WAAa,uBAExC,IAAI9B,eAAgB,SAA6B0B,GAC/C,IAAKA,EAAQ3C,OAKX,YAJI2C,EAAQjB,MAAM,KAAOqF,aACvBpE,EAAQwG,QAAU,IAAMxG,EAAQjB,MAAM,GACtCiB,EAAQsC,WAAWtC,EAAQjB,MAAM,GAAIiH,SAAShG,EAAQ8C,UAAU2D,OAAO,GAAI,IAAKrC,aAAa7B,QAIjG,IAAyB,MAArBvC,EAAQjB,MAAMgE,GAAlB,CAGA,GAAIrD,GAAMmD,CACV,KAAKnD,IAAQM,GAAQjB,MACN,OAATW,IAGJmD,EAAQ,GAAI1F,gBAAe6C,EAAQjB,MAAMW,IACzCM,EAAQU,KAAKmC,EAAOnD,GAEtBM,GAAQuC,QAEVjE,eAAc8B,WAAa,QAE3B,IAAIsG,wBAAyB,SAAS3H,EAAOkB,EAAO0G,GAClD,GAAqB,gBAAV1G,IAAmC,MAAbA,EAAM,GACrC,MAAO+F,UAAS/F,EAAMwG,OAAO,GAAI,GAC5B,IAAIrE,QAAQuE,IAA+B,IAAjBA,EAAU,GACzC,MAAO,IAAM1G,CAGf,IAAI2G,IAAgB3G,CACpB,KAAK,GAAI4G,KAAc9H,GAAO,CAC5B,GAAI+H,GAAY/H,EAAM8H,EACtB,IAAIzE,QAAQ0E,GACV,GAAIA,EAAU,KAAO1C,WAAY,CAC/B,GAAI2C,GAAgBf,SAASa,EAAWJ,OAAO,GAAI,IAC/CO,EAAcF,EAAU,EAC5B,IAAIE,KAAiB/G,EACnB,MAAO8G,EAEYH,IAAjBG,GAAiCC,EAAcJ,EACjDA,IACSG,GAAiBH,GAA8BA,EAAdI,GAC1CJ,QAEG,IAAqB,IAAjBE,EAAU,GAAU,CAC7B,GAAIG,GAAcjB,SAASa,EAAWJ,OAAO,GAAI,GAC9BG,IAAfK,GACFL,QAE4B,KAArBE,EAAU/G,QAA8B6G,GAAdC,GACnCD,IAKN,MAAOA,IAGLvI,6BAA+B,SAAsC2B,GACvE,GAAKA,GAAYA,EAAQ4C,UAGA,MAArB5C,EAAQjB,MAAMgE,GAAlB,CASA,IAAK,GALDF,GADA9C,EAASC,EAAQ4C,SAAS7C,OAE1BhB,GACFgE,GAAI,KAGG9C,EAAQ,EAAWF,EAARE,EAAgBA,IAAS,CAC3C4C,EAAQ7C,EAAQ4C,SAAS3C,EACzB,IAAIP,GAAOmD,EAAM2D,OACG,oBAAT9G,KACTA,EAAOgH,uBAAuB1G,EAAQjB,MAAO8D,EAAMC,UAAWD,EAAMX,SAElEnD,EAAMW,KAAUmD,EAAMX,SACxBnD,EAAMW,GAAQmD,EAAMX,QAGxBlC,EAAQsC,UAAUvD,GAAOwD,QAE3BlE,8BAA6B+B,WAAa,wBAE1CzD,QAAQqB,WAAaA,WACrBrB,QAAQyB,YAAcA,YACtBzB,QAAQwB,2BAA6BA,2BACrCxB,QAAQ2B,cAAgBA,cACxB3B,QAAQ0B,6BAA+BA;;ACrbvC,GAAIL,YAAa,SAAyBgC,GACpCA,EAAQrB,eAAgBY,OAGtBS,EAAQsC,UAFRtC,EAAQpB,gBAAiBW,MACvBS,EAAQrB,KAAKuI,YAAclH,EAAQpB,MAAMsI,WACxBlH,EAAQrB,KAAMqB,EAAQpB,OAEvBuD,QAGDnC,EAAQrB,KAAMqB,EAAQpB,QAE3CoB,EAAQuC,QACCvC,EAAQpB,gBAAiBW,OAClCS,EAAQsC,WAAWtC,EAAQrB,KAAMqB,EAAQpB,QAAQ2D,OAGrDvE,YAAWoC,WAAa,QAExBzD,QAAQqB,WAAaA;;AGVrB,GAAIuL,cAAe,SAASrG,EAAQC,EAAQG,EAAQE,GAClD,MAAON,GAAOI,KAAYH,EAAOK,IAG/BgG,aAAe,SAAStG,EAAQC,EAAQsG,EAAOzJ,GACjD,GAEI0J,GAAGC,EAFHvG,EAAOF,EAAOnD,OACdsD,EAAOF,EAAOpD,OAId6J,GAAUxG,EAAO,EACrB,KAAKsG,EAAI,EAAOtG,EAAO,EAAXsG,EAAcA,IAExB,IADAE,EAAOF,IAAMrG,EAAO,GACfsG,EAAI,EAAOtG,EAAO,EAAXsG,EAAcA,IACxBC,EAAOF,GAAGC,GAAK,CAKnB,KAFAC,EAAOH,MAAQA,EAEVC,EAAI,EAAOtG,EAAO,EAAXsG,EAAcA,IACxB,IAAKC,EAAI,EAAOtG,EAAO,EAAXsG,EAAcA,IAEtBC,EAAOF,GAAGC,GADRF,EAAMvG,EAAQC,EAAQuG,EAAI,EAAGC,EAAI,EAAG3J,GACvB4J,EAAOF,EAAI,GAAGC,EAAI,GAAK,EAEvBE,KAAKC,IAAIF,EAAOF,EAAI,GAAGC,GAAIC,EAAOF,GAAGC,EAAI,GAI9D,OAAOC,IAGLG,UAAY,SAASH,EAAQ1G,EAAQC,EAAQG,EAAQE,EAAQxD,GAC/D,GAAe,IAAXsD,GAA2B,IAAXE,EAClB,OACEwG,YACA/E,YACAK,YAIJ,IAAIsE,EAAOH,MAAMvG,EAAQC,EAAQG,EAAS,EAAGE,EAAS,EAAGxD,GAAU,CACjE,GAAIiK,GAAcF,UAAUH,EAAQ1G,EAAQC,EAAQG,EAAS,EAAGE,EAAS,EAAGxD,EAI5E,OAHAiK,GAAYD,SAAStJ,KAAKwC,EAAOI,EAAS,IAC1C2G,EAAYhF,SAASvE,KAAK4C,EAAS,GACnC2G,EAAY3E,SAAS5E,KAAK8C,EAAS,GAC5ByG,EAGT,MAAIL,GAAOtG,GAAQE,EAAS,GAAKoG,EAAOtG,EAAS,GAAGE,GAC3CuG,UAAUH,EAAQ1G,EAAQC,EAAQG,EAAQE,EAAS,EAAGxD,GAEtD+J,UAAUH,EAAQ1G,EAAQC,EAAQG,EAAS,EAAGE,EAAQxD,IAI7D+E,IAAM,SAAS7B,EAAQC,EAAQsG,EAAOzJ,GACxCA,EAAUA,KACV,IAAI4J,GAASJ,aAAatG,EAAQC,EAAQsG,GAASF,aAAcvJ,GAC7DkC,EAAS6H,UAAUH,EAAQ1G,EAAQC,EAAQD,EAAOnD,OAAQoD,EAAOpD,OAAQC,EAI7E,OAHsB,gBAAXkD,IAAyC,gBAAXC,KACvCjB,EAAO8H,SAAW9H,EAAO8H,SAASb,KAAK,KAElCjH,EAGTvF,SAAQoI,IAAMA;;ALzEd,GAAI9H,aAAcF,QAAQ,oBAAoBE,YAC1CC,aAAeH,QAAQ,qBAAqBG,aAC5CC,eAAiBJ,QAAQ,uBAAuBI,eAEhDY,0BAA4B,SAAmCiC,GACjE,GAAKA,GAAYA,EAAQ4C,SAAzB,CAMA,IAAK,GAFDC,GADA9C,EAASC,EAAQ4C,SAAS7C,OAE1BmC,EAASlC,EAAQkC,OACZjC,EAAQ,EAAWF,EAARE,EAAgBA,IAClC4C,EAAQ7C,EAAQ4C,SAAS3C,GACG,mBAAjB4C,GAAMX,SAGjBA,EAASA,MACTA,EAAOW,EAAMC,WAAaD,EAAMX,OAE9BA,IAAUlC,EAAQ0C,cACpBR,EAAOa,GAAK,KAEd/C,EAAQsC,UAAUJ,GAAQK,QAE5BxE,2BAA0BqC,WAAa,iBAEvC,IAAInC,mBAAoB,SAA2B+B,GACjD,IAAIA,EAAQ0C,aAAoC,WAArB1C,EAAQwC,SAAnC,CAIA,GAAI9C,GAAMmD,CACV,KAAKnD,IAAQM,GAAQrB,KACnBkE,EAAQ,GAAI5F,aAAY+C,EAAQrB,KAAKe,GAAOM,EAAQpB,MAAMc,IAC1DM,EAAQU,KAAKmC,EAAOnD,EAEtB,KAAKA,IAAQM,GAAQpB,MACe,mBAAvBoB,GAAQrB,KAAKe,KACtBmD,EAAQ,GAAI5F,aAAYkF,OAAWnC,EAAQpB,MAAMc,IACjDM,EAAQU,KAAKmC,EAAOnD,GAIxB,OAAKM,GAAQ4C,UAAwC,IAA5B5C,EAAQ4C,SAAS7C,WAI1CC,GAAQuC,WAHNvC,GAAQsC,UAAUH,QAAWI,QAKjCtE,mBAAkBmC,WAAa,SAE/B,IAAIhC,aAAc,SAA2B4B,GAC3C,GAAKA,EAAQ3C,SAGT2C,EAAQjB,MAAMgE,GAAlB,CAGA,GAAIrD,GAAMmD,CACV,KAAKnD,IAAQM,GAAQjB,MACnB8D,EAAQ,GAAI3F,cAAa8C,EAAQrB,KAAKe,GAAOM,EAAQjB,MAAMW,IAC3DM,EAAQU,KAAKmC,EAAOnD,EAEtBM,GAAQuC,QAEVnE,aAAYgC,WAAa,SAEzB,IAAIjC,4BAA6B,SAAoC6B,GACnE,GAAKA,GAAYA,EAAQ4C,WAGrB5C,EAAQjB,MAAMgE,GAAlB,CAKA,IAAK,GADDF,GADA9C,EAASC,EAAQ4C,SAAS7C,OAErBE,EAAQ,EAAWF,EAARE,EAAgBA,IAClC4C,EAAQ7C,EAAQ4C,SAAS3C,GACrBD,EAAQrB,KAAKqE,eAAeH,EAAMC,YAA+BX,SAAjBU,EAAMX,aACjDlC,GAAQrB,KAAKkE,EAAMC,WACjB9C,EAAQrB,KAAKkE,EAAMC,aAAeD,EAAMX,SACjDlC,EAAQrB,KAAKkE,EAAMC,WAAaD,EAAMX,OAG1ClC,GAAQsC,UAAUtC,EAAQrB,MAAM4D,QAElCpE,4BAA2BiC,WAAa,iBAExC,IAAI9B,eAAgB,SAA6B0B,GAC/C,GAAKA,EAAQ3C,SAGT2C,EAAQjB,MAAMgE,GAAlB,CAGA,GAAIrD,GAAMmD,CACV,KAAKnD,IAAQM,GAAQjB,MACnB8D,EAAQ,GAAI1F,gBAAe6C,EAAQjB,MAAMW,IACzCM,EAAQU,KAAKmC,EAAOnD,EAEtBM,GAAQuC,QAEVjE,eAAc8B,WAAa,SAE3B,IAAI/B,8BAA+B,SAAsC2B,GACvE,GAAKA,GAAYA,EAAQ4C,WAGrB5C,EAAQjB,MAAMgE,GAAlB,CAMA,IAAK,GAFDF,GADA9C,EAASC,EAAQ4C,SAAS7C,OAE1BhB,KACKkB,EAAQ,EAAWF,EAARE,EAAgBA,IAClC4C,EAAQ7C,EAAQ4C,SAAS3C,GACrBlB,EAAM8D,EAAMC,aAAeD,EAAMX,SACnCnD,EAAM8D,EAAMC,WAAaD,EAAMX,OAGnClC,GAAQsC,UAAUvD,GAAOwD,QAE3BlE,8BAA6B+B,WAAa,kBAE1CzD,QAAQoB,0BAA4BA,0BACpCpB,QAAQsB,kBAAoBA,kBAC5BtB,QAAQyB,YAAcA,YACtBzB,QAAQwB,2BAA6BA,2BACrCxB,QAAQ2B,cAAgBA,cACxB3B,QAAQ0B,6BAA+BA;;AGhIvC,GAAI8I,WAAY,EACZC,mBAAqB,GACrBC,gBAAkB,KAElBC,kBAAoB,WAGtB,IAAKD,gBAAiB,CACpB,GAAIE,EACJ,IAAgC,mBAArBC,kBAETD,EAAuC,kBAArBC,kBAChB,GAAIA,kBAAqB,GAAIA,kBAAiBA,qBAC3C,IAAuB,kBAAZzK,SAChB,IACE,GAAI0K,GAAgB,gCAChBC,EAAM3K,QAAQ,yBAA2B0K,EAC7CF,GAAW,GAAIG,GAAIF,iBACnB,MAAOG,GACPJ,EAAW,KAGf,IAAKA,EAAU,CACb,GAAI7F,GAAQ,GAAI7B,OAAM,0CAEtB,MADA6B,GAAMkG,4BAA6B,EAC7BlG,EAER2F,iBACE3I,KAAM,SAASmJ,EAAMC,GACnB,MAAOP,GAASQ,aAAaR,EAASS,WAAWH,EAAMC,KAEzDhJ,MAAO,SAAS+I,EAAM/I,GAEpB,IAAK,GADDmJ,GAAUV,EAASW,YAAYX,EAASY,eAAerJ,GAAQ+I,GAC1DrD,EAAI,EAAGA,EAAIyD,EAAQ,GAAGlI,OAAQyE,IACrC,IAAKyD,EAAQ,GAAGzD,GAAI,CAClB,GAAI9C,GAAQ,GAAI7B,OAAM,oBACtB6B,GAAM0G,iBAAkB,EAG5B,MAAOH,GAAQ,KAIrB,MAAOZ,kBAGLrJ,WAAa,SAAyBgC,GACxC,GAAyB,WAArBA,EAAQwC,SAAZ,CAGA,GAAI6F,GAAarI,EAAQtC,SAAWsC,EAAQtC,QAAQ4K,UAClDtI,EAAQtC,QAAQ4K,SAASD,WAAcjB,kBACzC,IAAIpH,EAAQrB,KAAKoB,OAASsI,GACxBrI,EAAQpB,MAAMmB,OAASsI,EAEvB,WADArI,GAAQsC,WAAWtC,EAAQrB,KAAMqB,EAAQpB,QAAQ2D,MAInD,IAAI7D,GAAO4I,oBAAoB5I,IAC/BsB,GAAQsC,WAAW5D,EAAKsB,EAAQrB,KAAMqB,EAAQpB,OAAQ,EAAGuI,YAAY5E,QAEvEvE,YAAWoC,WAAa,OAExB,IAAIhC,aAAc,SAA0B4B,GAC1C,IAAIA,EAAQ3C,QAGR2C,EAAQjB,MAAM,KAAOoI,UAAzB,CAKA,GAAIrI,GAAQwI,oBAAoBxI,KAChCkB,GAAQsC,UAAUxD,EAAMkB,EAAQrB,KAAMqB,EAAQjB,MAAM,KAAKwD,QAE3DnE,aAAYgC,WAAa,OAEzB,IAAImI,kBAAmB,SAASxJ,GAC9B,GAAIyF,GAAGgE,EAAGC,EAAOC,EAAMC,EAErBC,EAAYC,EAASC,EAFSC,EAAS,KACvCC,EAAc,wCAGhB,KADAP,EAAQ1J,EAAMkK,MAAM,MACfzE,EAAI,EAAGgE,EAAIC,EAAM1I,OAAYyI,EAAJhE,EAAOA,IAAK,CACxCkE,EAAOD,EAAMjE,EACb,IAAI0E,GAAYR,EAAKvH,MAAM,EAAG,EACZ,OAAd+H,GACFH,EAASC,EAAY1J,KAAKoJ,GAC1BE,EAAapE,EACbqE,EAAU,KACVC,EAAa,KAGbL,EAAMG,GAAc,OAASG,EAAO,GAAK,IAAMA,EAAO,GAAK,KAAOA,EAAO,GAAK,IAAMA,EAAO,GAAK,OACzE,MAAdG,GACTL,EAAUrE,EACViE,EAAMjE,GAAK,IAAMiE,EAAMjE,GAAGrD,MAAM,GACC,MAA7BsH,EAAMjE,EAAI,GAAGrD,MAAM,EAAG,KAExBwH,EAAUF,EAAMjE,GAChBiE,EAAMjE,GAAKiE,EAAMjE,EAAI,GACrBiE,EAAMjE,EAAI,GAAKmE,IAEM,MAAdO,IACTJ,EAAatE,EACbiE,EAAMjE,GAAK,IAAMiE,EAAMjE,GAAGrD,MAAM,IAGpC,MAAOsH,GAAMU,KAAK,OAGhB7K,cAAgB,SAA4B0B,GAC1CA,EAAQ3C,QAGR2C,EAAQjB,MAAM,KAAOoI,WAKzBnH,EAAQsC,WAAWiG,iBAAiBvI,EAAQjB,MAAM,IAAK,EAAGoI,YAAY5E,OAExEjE,eAAc8B,WAAa,QAE3BzD,QAAQqB,WAAaA,WACrBrB,QAAQyB,YAAcA,YACtBzB,QAAQ2B,cAAgBA;;AJ9HxB,GAAI8D,SAAoC,kBAAlBlB,OAAMkB,QAE1BlB,MAAMkB,QAEN,SAASC,GACP,MAAOA,aAAanB,QAGpBlD,WAAa,SAAkCgC,GACjD,GAAIA,EAAQrB,OAASqB,EAAQpB,MAE3B,WADAoB,GAAQsC,UAAUH,QAAWI,MAG/B,IAA4B,mBAAjBvC,GAAQrB,KAAsB,CACvC,GAA6B,kBAAlBqB,GAAQpB,MACjB,KAAM,IAAIiB,OAAM,8BAGlB,YADAG,GAAQsC,WAAWtC,EAAQpB,QAAQ2D,OAGrC,GAA6B,mBAAlBvC,GAAQpB,MAEjB,WADAoB,GAAQsC,WAAWtC,EAAQrB,KAAM,EAAG,IAAI4D,MAG1C,IAA4B,kBAAjBvC,GAAQrB,MAAgD,kBAAlBqB,GAAQpB,MACvD,KAAM,IAAIiB,OAAM,8BAIlB,OAFAG,GAAQwC,SAA4B,OAAjBxC,EAAQrB,KAAgB,aAAgBqB,GAAQrB,KACnEqB,EAAQyC,UAA8B,OAAlBzC,EAAQpB,MAAiB,aAAgBoB,GAAQpB,MACjEoB,EAAQwC,WAAaxC,EAAQyC,cAC/BzC,GAAQsC,WAAWtC,EAAQrB,KAAMqB,EAAQpB,QAAQ2D,OAG1B,YAArBvC,EAAQwC,UAA+C,WAArBxC,EAAQwC,aAC5CxC,GAAQsC,WAAWtC,EAAQrB,KAAMqB,EAAQpB,QAAQ2D,QAG1B,WAArBvC,EAAQwC,WACVxC,EAAQ0C,YAAcN,QAAQpC,EAAQrB,OAEd,WAAtBqB,EAAQyC,YACVzC,EAAQ2C,aAAeP,QAAQpC,EAAQpB,QAErCoB,EAAQ0C,cAAgB1C,EAAQ2C,iBAClC3C,GAAQsC,WAAWtC,EAAQrB,KAAMqB,EAAQpB,QAAQ2D,OADnD,QAKFvE,YAAWoC,WAAa,SAExB,IAAIhC,aAAc,SAAmC4B,GACnD,MAA6B,mBAAlBA,GAAQjB,UACjBiB,GAAQsC,UAAUtC,EAAQrB,MAAM4D,QAGlCvC,EAAQ3C,QAAU+E,QAAQpC,EAAQjB,OAC9BiB,EAAQ3C,OAAZ,OAG6B,IAAzB2C,EAAQjB,MAAMgB,WAChBC,GAAQsC,UAAUtC,EAAQjB,MAAM,IAAIwD,OAGT,IAAzBvC,EAAQjB,MAAMgB,WAChBC,GAAQsC,UAAUtC,EAAQjB,MAAM,IAAIwD,OAGT,IAAzBvC,EAAQjB,MAAMgB,QAAqC,IAArBC,EAAQjB,MAAM,OAC9CiB,GAAQsC,UAAUH,QAAWI,OAD/B,QAKFnE,aAAYgC,WAAa,SAEzB,IAAI9B,eAAgB,SAA8B0B,GAChD,MAA6B,mBAAlBA,GAAQjB,UACjBiB,GAAQsC,UAAUtC,EAAQjB,OAAOwD,QAGnCvC,EAAQ3C,QAAU+E,QAAQpC,EAAQjB,OAC9BiB,EAAQ3C,OAAZ,OAG6B,IAAzB2C,EAAQjB,MAAMgB,WAChBC,GAAQsC,WAAWtC,EAAQjB,MAAM,GAAI,EAAG,IAAIwD,OAGjB,IAAzBvC,EAAQjB,MAAMgB,WAChBC,GAAQsC,WAAWtC,EAAQjB,MAAM,GAAIiB,EAAQjB,MAAM,KAAKwD,OAG7B,IAAzBvC,EAAQjB,MAAMgB,QAAqC,IAArBC,EAAQjB,MAAM,OAC9CiB,GAAQsC,WAAWtC,EAAQjB,MAAM,KAAKwD,OADxC,QAKFjE,eAAc8B,WAAa,UAE3BzD,QAAQqB,WAAaA,WACrBrB,QAAQyB,YAAcA,YACtBzB,QAAQ2B,cAAgBA;;AJpGxB,GAAItB,MAAO,SAAc0C,GACvB/B,KAAK+B,KAAOA,EACZ/B,KAAKgC,WAGP3C,MAAKuB,UAAUM,QAAU,SAASe,GAChC,IAAKjC,KAAKC,UACR,KAAM,IAAIiC,OAAM,+CAKlB,KAAK,GAHDC,GAAQnC,KAAKmC,MACbC,EAASpC,KAAKgC,QAAQI,OACtBC,EAAUJ,EACLK,EAAQ,EAAWF,EAARE,EAAgBA,IAAS,CAC3C,GAAIC,GAASvC,KAAKgC,QAAQM,EAK1B,IAJIH,GACFnC,KAAKwC,IAAI,WAAaD,EAAOE,YAE/BF,EAAOF,GACgB,gBAAZA,IAAwBA,EAAQK,QAAS,CAClDL,EAAQK,SAAU,CAClB,SAGCL,EAAQM,MAAQ3C,KAAK4C,aACxB5C,KAAK4C,YAAYP,IAIrBhD,KAAKuB,UAAU4B,IAAM,SAASK,GAC5BC,QAAQN,IAAI,mBAAqBxC,KAAK+B,KAAO,UAAYc,IAG3DxD,KAAKuB,UAAUT,OAAS,WAEtB,MADAH,MAAKgC,QAAQe,KAAKlC,MAAMb,KAAKgC,QAASlB,WAC/Bd,MAGTX,KAAKuB,UAAUoC,QAAU,WAEvB,MADAhD,MAAKgC,QAAQiB,QAAQpC,MAAMb,KAAKgC,QAASlB,WAClCd,MAGTX,KAAKuB,UAAUsC,QAAU,SAAST,GAChC,IAAKA,EACH,KAAM,IAAIP,OAAM,4BAElB,KAAK,GAAII,GAAQ,EAAGA,EAAQtC,KAAKgC,QAAQI,OAAQE,IAAS,CACxD,GAAIC,GAASvC,KAAKgC,QAAQM,EAC1B,IAAIC,EAAOE,aAAeA,EACxB,MAAOH,GAGX,KAAM,IAAIJ,OAAM,qBAAuBO,IAGzCpD,KAAKuB,UAAUuC,KAAO,WAEpB,IAAK,GADDC,MACKd,EAAQ,EAAGA,EAAQtC,KAAKgC,QAAQI,OAAQE,IAAS,CACxD,GAAIC,GAASvC,KAAKgC,QAAQM,EAC1Bc,GAAML,KAAKR,EAAOE,YAEpB,MAAOW,IAGT/D,KAAKuB,UAAUyC,MAAQ,SAASZ,GAC9B,GAAIH,GAAQtC,KAAKkD,QAAQT,GACrBa,EAASC,MAAM3C,UAAU4C,MAAMC,KAAK3C,UAAW,EACnD,KAAKwC,EAAOlB,OACV,KAAM,IAAIF,OAAM,uBAIlB,OAFAoB,GAAOL,QAAQX,EAAQ,EAAG,GAC1BiB,MAAM3C,UAAU8C,OAAO7C,MAAMb,KAAKgC,QAASsB,GACpCtD,MAGTX,KAAKuB,UAAU+C,OAAS,SAASlB,GAC/B,GAAIH,GAAQtC,KAAKkD,QAAQT,GACrBa,EAASC,MAAM3C,UAAU4C,MAAMC,KAAK3C,UAAW,EACnD,KAAKwC,EAAOlB,OACV,KAAM,IAAIF,OAAM,uBAIlB,OAFAoB,GAAOL,QAAQX,EAAO,GACtBiB,MAAM3C,UAAU8C,OAAO7C,MAAMb,KAAKgC,QAASsB,GACpCtD,MAGTX,KAAKuB,UAAUgD,MAAQ,WAErB,MADA5D,MAAKgC,QAAQI,OAAS,EACfpC,MAGTX,KAAKuB,UAAUL,iBAAmB,SAASsD,GACzC,GAAIA,KAAW,EAEb,YADA7D,KAAK4C,YAAc,KAGrB,KAAI5C,KAAK4C,YAAT,CAGA,GAAI1C,GAAOF,IASX,OARAA,MAAK4C,YAAc,SAASP,GAC1B,IAAKA,EAAQyB,UAAW,CACtBhB,QAAQN,IAAIH,EACZ,IAAI0B,GAAQ,GAAI7B,OAAMhC,EAAK6B,KAAO,UAElC,MADAgC,GAAMC,UAAW,EACXD,IAGH/D,OAGThB,QAAQK,KAAOA;;AC9Gf,GAAIF,WAAY,SAAmBY,GAClCC,KAAKiE,YAAclE,EACnBC,KAAKkE,SAGN/E,WAAUyB,UAAUb,QAAU,SAASA,GAItC,MAHIA,KACHC,KAAKiE,YAAclE,GAEbC,KAAKiE,aAGb9E,UAAUyB,UAAUV,KAAO,SAAS6B,EAAM7B,GACzC,GAAoB,gBAAT6B,GAAmB,CAC7B,GAAoB,mBAAT7B,GACV,MAAOF,MAAKkE,MAAMnC,EAElB/B,MAAKkE,MAAMnC,GAAQ7B,EAGrB,GAAI6B,GAAQA,EAAKA,KAAM,CAEtB,GADA7B,EAAO6B,EACH7B,EAAKD,YAAcD,KAAQ,MAAOE,EACtCF,MAAKkE,MAAMhE,EAAK6B,MAAQ7B,EAGzB,MADAA,GAAKD,UAAYD,KACVE,GAGRf,UAAUyB,UAAUM,QAAU,SAASe,EAAO/B,GAC7C,GAAImC,GAAUJ,CACdI,GAAQtC,QAAUC,KAAKD,SAGvB,KAFA,GACIoE,GAAUC,EADVC,EAAWnE,GAAQ+B,EAAM/B,MAAQ,UAE9BmE,GACmC,mBAA9BhC,GAAQiC,oBAElBjC,EAAQM,KAAON,EAAQiC,kBACvBjC,EAAQiC,kBAAoB,MAGL,gBAAbD,KACVA,EAAWrE,KAAKE,KAAKmE,IAEtBA,EAASnD,QAAQmB,GACjB+B,EAAc/B,EACd8B,EAAWE,EACXA,EAAW,KACPhC,GACCA,EAAQM,OACXN,EAAUA,EAAQM,KAClB0B,EAAWD,EAAYC,UAAYhC,EAAQnC,MAAQiE,EAItD,OAAO9B,GAAQyB,UAAYzB,EAAQkC,OAASC,QAG7CxF,QAAQG,UAAYA","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0 && len2 > 0 && !matchContext.objectHash &&\n typeof matchContext.matchByPosition !== 'boolean') {\n matchContext.matchByPosition = !arraysHaveMatchByRef(array1, array2, len1, len2);\n }\n\n // separate common head\n while (commonHead < len1 && commonHead < len2 &&\n matchItems(array1, array2, commonHead, commonHead, matchContext)) {\n index = commonHead;\n child = new DiffContext(context.left[index], context.right[index]);\n context.push(child, index);\n commonHead++;\n }\n // separate common tail\n while (commonTail + commonHead < len1 && commonTail + commonHead < len2 &&\n matchItems(array1, array2, len1 - 1 - commonTail, len2 - 1 - commonTail, matchContext)) {\n index1 = len1 - 1 - commonTail;\n index2 = len2 - 1 - commonTail;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n commonTail++;\n }\n var result;\n if (commonHead + commonTail === len1) {\n if (len1 === len2) {\n // arrays are identical\n context.setResult(undefined).exit();\n return;\n }\n // trivial case, a block (1 or more consecutive items) was added\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len2 - commonTail; index++) {\n result[index] = [array2[index]];\n }\n context.setResult(result).exit();\n return;\n }\n if (commonHead + commonTail === len2) {\n // trivial case, a block (1 or more consecutive items) was removed\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n result['_' + index] = [array1[index], 0, 0];\n }\n context.setResult(result).exit();\n return;\n }\n // reset hash cache\n delete matchContext.hashCache1;\n delete matchContext.hashCache2;\n\n // diff is not trivial, find the LCS (Longest Common Subsequence)\n var trimmed1 = array1.slice(commonHead, len1 - commonTail);\n var trimmed2 = array2.slice(commonHead, len2 - commonTail);\n var seq = lcs.get(\n trimmed1, trimmed2,\n matchItems,\n matchContext\n );\n var removedItems = [];\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n if (arrayIndexOf(seq.indices1, index - commonHead) < 0) {\n // removed\n result['_' + index] = [array1[index], 0, 0];\n removedItems.push(index);\n }\n }\n\n var detectMove = true;\n if (context.options && context.options.arrays && context.options.arrays.detectMove === false) {\n detectMove = false;\n }\n var includeValueOnMove = false;\n if (context.options && context.options.arrays && context.options.arrays.includeValueOnMove) {\n includeValueOnMove = true;\n }\n\n var removedItemsLength = removedItems.length;\n for (index = commonHead; index < len2 - commonTail; index++) {\n var indexOnArray2 = arrayIndexOf(seq.indices2, index - commonHead);\n if (indexOnArray2 < 0) {\n // added, try to match with a removed item and register as position move\n var isMove = false;\n if (detectMove && removedItemsLength > 0) {\n for (var removeItemIndex1 = 0; removeItemIndex1 < removedItemsLength; removeItemIndex1++) {\n index1 = removedItems[removeItemIndex1];\n if (matchItems(trimmed1, trimmed2, index1 - commonHead,\n index - commonHead, matchContext)) {\n // store position move as: [originalValue, newPosition, ARRAY_MOVE]\n result['_' + index1].splice(1, 2, index, ARRAY_MOVE);\n if (!includeValueOnMove) {\n // don't include moved value on diff, to save bytes\n result['_' + index1][0] = '';\n }\n\n index2 = index;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n removedItems.splice(removeItemIndex1, 1);\n isMove = true;\n break;\n }\n }\n }\n if (!isMove) {\n // added\n result[index] = [array2[index]];\n }\n } else {\n // match, do inner diff\n index1 = seq.indices1[indexOnArray2] + commonHead;\n index2 = seq.indices2[indexOnArray2] + commonHead;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n }\n }\n\n context.setResult(result).exit();\n\n};\ndiffFilter.filterName = 'arrays';\n\nvar compare = {\n numerically: function(a, b) {\n return a - b;\n },\n numericallyBy: function(name) {\n return function(a, b) {\n return a[name] - b[name];\n };\n }\n};\n\nvar patchFilter = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var index, index1;\n\n var delta = context.delta;\n var array = context.left;\n\n // first, separate removals, insertions and modifications\n var toRemove = [];\n var toInsert = [];\n var toModify = [];\n for (index in delta) {\n if (index !== '_t') {\n if (index[0] === '_') {\n // removed item from original array\n if (delta[index][2] === 0 || delta[index][2] === ARRAY_MOVE) {\n toRemove.push(parseInt(index.slice(1), 10));\n } else {\n throw new Error('only removal or move can be applied at original array indices' +\n ', invalid diff type: ' + delta[index][2]);\n }\n } else {\n if (delta[index].length === 1) {\n // added item at new array\n toInsert.push({\n index: parseInt(index, 10),\n value: delta[index][0]\n });\n } else {\n // modified item at new array\n toModify.push({\n index: parseInt(index, 10),\n delta: delta[index]\n });\n }\n }\n }\n }\n\n // remove items, in reverse order to avoid sawing our own floor\n toRemove = toRemove.sort(compare.numerically);\n for (index = toRemove.length - 1; index >= 0; index--) {\n index1 = toRemove[index];\n var indexDiff = delta['_' + index1];\n var removedValue = array.splice(index1, 1)[0];\n if (indexDiff[2] === ARRAY_MOVE) {\n // reinsert later\n toInsert.push({\n index: indexDiff[1],\n value: removedValue\n });\n }\n }\n\n // insert items, in reverse order to avoid moving our own floor\n toInsert = toInsert.sort(compare.numericallyBy('index'));\n var toInsertLength = toInsert.length;\n for (index = 0; index < toInsertLength; index++) {\n var insertion = toInsert[index];\n array.splice(insertion.index, 0, insertion.value);\n }\n\n // apply modifications\n var toModifyLength = toModify.length;\n var child;\n if (toModifyLength > 0) {\n for (index = 0; index < toModifyLength; index++) {\n var modification = toModify[index];\n child = new PatchContext(context.left[modification.index], modification.delta);\n context.push(child, modification.index);\n }\n }\n\n if (!context.children) {\n context.setResult(context.left).exit();\n return;\n }\n context.exit();\n};\npatchFilter.filterName = 'arrays';\n\nvar collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var length = context.children.length;\n var child;\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n context.left[child.childName] = child.result;\n }\n context.setResult(context.left).exit();\n};\ncollectChildrenPatchFilter.filterName = 'arraysCollectChildren';\n\nvar reverseFilter = function arraysReverseFilter(context) {\n if (!context.nested) {\n if (context.delta[2] === ARRAY_MOVE) {\n context.newName = '_' + context.delta[1];\n context.setResult([context.delta[0], parseInt(context.childName.substr(1), 10), ARRAY_MOVE]).exit();\n }\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var name, child;\n for (name in context.delta) {\n if (name === '_t') {\n continue;\n }\n child = new ReverseContext(context.delta[name]);\n context.push(child, name);\n }\n context.exit();\n};\nreverseFilter.filterName = 'arrays';\n\nvar reverseArrayDeltaIndex = function(delta, index, itemDelta) {\n if (typeof index === 'string' && index[0] === '_') {\n return parseInt(index.substr(1), 10);\n } else if (isArray(itemDelta) && itemDelta[2] === 0) {\n return '_' + index;\n }\n\n var reverseIndex = +index;\n for (var deltaIndex in delta) {\n var deltaItem = delta[deltaIndex];\n if (isArray(deltaItem)) {\n if (deltaItem[2] === ARRAY_MOVE) {\n var moveFromIndex = parseInt(deltaIndex.substr(1), 10);\n var moveToIndex = deltaItem[1];\n if (moveToIndex === +index) {\n return moveFromIndex;\n }\n if (moveFromIndex <= reverseIndex && moveToIndex > reverseIndex) {\n reverseIndex++;\n } else if (moveFromIndex >= reverseIndex && moveToIndex < reverseIndex) {\n reverseIndex--;\n }\n } else if (deltaItem[2] === 0) {\n var deleteIndex = parseInt(deltaIndex.substr(1), 10);\n if (deleteIndex <= reverseIndex) {\n reverseIndex++;\n }\n } else if (deltaItem.length === 1 && deltaIndex <= reverseIndex) {\n reverseIndex--;\n }\n }\n }\n\n return reverseIndex;\n};\n\nvar collectChildrenReverseFilter = function collectChildrenReverseFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var length = context.children.length;\n var child;\n var delta = {\n _t: 'a'\n };\n\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n var name = child.newName;\n if (typeof name === 'undefined') {\n name = reverseArrayDeltaIndex(context.delta, child.childName, child.result);\n }\n if (delta[name] !== child.result) {\n delta[name] = child.result;\n }\n }\n context.setResult(delta).exit();\n};\ncollectChildrenReverseFilter.filterName = 'arraysCollectChildren';\n\nexports.diffFilter = diffFilter;\nexports.patchFilter = patchFilter;\nexports.collectChildrenPatchFilter = collectChildrenPatchFilter;\nexports.reverseFilter = reverseFilter;\nexports.collectChildrenReverseFilter = collectChildrenReverseFilter;\n","var diffFilter = function datesDiffFilter(context) {\n if (context.left instanceof Date) {\n if (context.right instanceof Date) {\n if (context.left.getTime() !== context.right.getTime()) {\n context.setResult([context.left, context.right]);\n } else {\n context.setResult(undefined);\n }\n } else {\n context.setResult([context.left, context.right]);\n }\n context.exit();\n } else if (context.right instanceof Date) {\n context.setResult([context.left, context.right]).exit();\n }\n};\ndiffFilter.filterName = 'dates';\n\nexports.diffFilter = diffFilter;\n","/* global diff_match_patch */\nvar TEXT_DIFF = 2;\nvar DEFAULT_MIN_LENGTH = 60;\nvar cachedDiffPatch = null;\n\nvar getDiffMatchPatch = function() {\n /*jshint camelcase: false */\n\n if (!cachedDiffPatch) {\n var instance;\n if (typeof diff_match_patch !== 'undefined') {\n // already loaded, probably a browser\n instance = typeof diff_match_patch === 'function' ?\n new diff_match_patch() : new diff_match_patch.diff_match_patch();\n } else if (typeof require === 'function') {\n try {\n var dmpModuleName = 'diff_match_patch_uncompressed';\n var dmp = require('../../public/external/' + dmpModuleName);\n instance = new dmp.diff_match_patch();\n } catch (err) {\n instance = null;\n }\n }\n if (!instance) {\n var error = new Error('text diff_match_patch library not found');\n error.diff_match_patch_not_found = true;\n throw error;\n }\n cachedDiffPatch = {\n diff: function(txt1, txt2) {\n return instance.patch_toText(instance.patch_make(txt1, txt2));\n },\n patch: function(txt1, patch) {\n var results = instance.patch_apply(instance.patch_fromText(patch), txt1);\n for (var i = 0; i < results[1].length; i++) {\n if (!results[1][i]) {\n var error = new Error('text patch failed');\n error.textPatchFailed = true;\n }\n }\n return results[0];\n }\n };\n }\n return cachedDiffPatch;\n};\n\nvar diffFilter = function textsDiffFilter(context) {\n if (context.leftType !== 'string') {\n return;\n }\n var minLength = (context.options && context.options.textDiff &&\n context.options.textDiff.minLength) || DEFAULT_MIN_LENGTH;\n if (context.left.length < minLength ||\n context.right.length < minLength) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n // large text, use a text-diff algorithm\n var diff = getDiffMatchPatch().diff;\n context.setResult([diff(context.left, context.right), 0, TEXT_DIFF]).exit();\n};\ndiffFilter.filterName = 'texts';\n\nvar patchFilter = function textsPatchFilter(context) {\n if (context.nested) {\n return;\n }\n if (context.delta[2] !== TEXT_DIFF) {\n return;\n }\n\n // text-diff, use a text-patch algorithm\n var patch = getDiffMatchPatch().patch;\n context.setResult(patch(context.left, context.delta[0])).exit();\n};\npatchFilter.filterName = 'texts';\n\nvar textDeltaReverse = function(delta) {\n var i, l, lines, line, lineTmp, header = null,\n headerRegex = /^@@ +\\-(\\d+),(\\d+) +\\+(\\d+),(\\d+) +@@$/,\n lineHeader, lineAdd, lineRemove;\n lines = delta.split('\\n');\n for (i = 0, l = lines.length; i < l; i++) {\n line = lines[i];\n var lineStart = line.slice(0, 1);\n if (lineStart === '@') {\n header = headerRegex.exec(line);\n lineHeader = i;\n lineAdd = null;\n lineRemove = null;\n\n // fix header\n lines[lineHeader] = '@@ -' + header[3] + ',' + header[4] + ' +' + header[1] + ',' + header[2] + ' @@';\n } else if (lineStart === '+') {\n lineAdd = i;\n lines[i] = '-' + lines[i].slice(1);\n if (lines[i - 1].slice(0, 1) === '+') {\n // swap lines to keep default order (-+)\n lineTmp = lines[i];\n lines[i] = lines[i - 1];\n lines[i - 1] = lineTmp;\n }\n } else if (lineStart === '-') {\n lineRemove = i;\n lines[i] = '+' + lines[i].slice(1);\n }\n }\n return lines.join('\\n');\n};\n\nvar reverseFilter = function textsReverseFilter(context) {\n if (context.nested) {\n return;\n }\n if (context.delta[2] !== TEXT_DIFF) {\n return;\n }\n\n // text-diff, use a text-diff algorithm\n context.setResult([textDeltaReverse(context.delta[0]), 0, TEXT_DIFF]).exit();\n};\nreverseFilter.filterName = 'texts';\n\nexports.diffFilter = diffFilter;\nexports.patchFilter = patchFilter;\nexports.reverseFilter = reverseFilter;\n","\nvar Pipe = require('../pipe').Pipe;\n\nvar Context = function Context(){\n};\n\nContext.prototype.setResult = function(result) {\n\tthis.result = result;\n\tthis.hasResult = true;\n\treturn this;\n};\n\nContext.prototype.exit = function() {\n\tthis.exiting = true;\n\treturn this;\n};\n\nContext.prototype.switchTo = function(next, pipe) {\n\tif (typeof next === 'string' || next instanceof Pipe) {\n\t\tthis.nextPipe = next;\n\t} else {\n\t\tthis.next = next;\n\t\tif (pipe) {\n\t\t\tthis.nextPipe = pipe;\n\t\t}\n\t}\n\treturn this;\n};\n\nContext.prototype.push = function(child, name) {\n\tchild.parent = this;\n\tif (typeof name !== 'undefined') {\n\t\tchild.childName = name;\n\t}\n\tchild.root = this.root || this;\n\tchild.options = child.options || this.options;\n\tif (!this.children) {\n\t\tthis.children = [child];\n\t\tthis.nextAfterChildren = this.next || null;\n\t\tthis.next = child;\n\t} else {\n\t\tthis.children[this.children.length - 1].next = child;\n\t\tthis.children.push(child);\n\t}\n\tchild.next = this;\n\treturn this;\n};\n\nexports.Context = Context;\n","/*\n\nLCS implementation that supports arrays or strings\n\nreference: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem\n\n*/\n\nvar defaultMatch = function(array1, array2, index1, index2) {\n return array1[index1] === array2[index2];\n};\n\nvar lengthMatrix = function(array1, array2, match, context) {\n var len1 = array1.length;\n var len2 = array2.length;\n var x, y;\n\n // initialize empty matrix of len1+1 x len2+1\n var matrix = [len1 + 1];\n for (x = 0; x < len1 + 1; x++) {\n matrix[x] = [len2 + 1];\n for (y = 0; y < len2 + 1; y++) {\n matrix[x][y] = 0;\n }\n }\n matrix.match = match;\n // save sequence lengths for each coordinate\n for (x = 1; x < len1 + 1; x++) {\n for (y = 1; y < len2 + 1; y++) {\n if (match(array1, array2, x - 1, y - 1, context)) {\n matrix[x][y] = matrix[x - 1][y - 1] + 1;\n } else {\n matrix[x][y] = Math.max(matrix[x - 1][y], matrix[x][y - 1]);\n }\n }\n }\n return matrix;\n};\n\nvar backtrack = function(matrix, array1, array2, index1, index2, context) {\n if (index1 === 0 || index2 === 0) {\n return {\n sequence: [],\n indices1: [],\n indices2: []\n };\n }\n\n if (matrix.match(array1, array2, index1 - 1, index2 - 1, context)) {\n var subsequence = backtrack(matrix, array1, array2, index1 - 1, index2 - 1, context);\n subsequence.sequence.push(array1[index1 - 1]);\n subsequence.indices1.push(index1 - 1);\n subsequence.indices2.push(index2 - 1);\n return subsequence;\n }\n\n if (matrix[index1][index2 - 1] > matrix[index1 - 1][index2]) {\n return backtrack(matrix, array1, array2, index1, index2 - 1, context);\n } else {\n return backtrack(matrix, array1, array2, index1 - 1, index2, context);\n }\n};\n\nvar get = function(array1, array2, match, context) {\n context = context || {};\n var matrix = lengthMatrix(array1, array2, match || defaultMatch, context);\n var result = backtrack(matrix, array1, array2, array1.length, array2.length, context);\n if (typeof array1 === 'string' && typeof array2 === 'string') {\n result.sequence = result.sequence.join('');\n }\n return result;\n};\n\nexports.get = get;\n"]}