diff --git a/bundles/95952f773ec942db46dc.worker.js.map b/bundles/4a345b767c160cf4e5c0.worker.js.map similarity index 99% rename from bundles/95952f773ec942db46dc.worker.js.map rename to bundles/4a345b767c160cf4e5c0.worker.js.map index 38af5de8..51cc8413 100644 --- a/bundles/95952f773ec942db46dc.worker.js.map +++ b/bundles/4a345b767c160cf4e5c0.worker.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://Redoc/webpack/bootstrap","webpack://Redoc/./node_modules/core-js/internals/global.js","webpack://Redoc/./node_modules/core-js/internals/well-known-symbol.js","webpack://Redoc/./node_modules/core-js/internals/an-object.js","webpack://Redoc/./node_modules/core-js/internals/has.js","webpack://Redoc/./node_modules/lunr/lunr.js","webpack://Redoc/./node_modules/core-js/internals/fails.js","webpack://Redoc/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://Redoc/./node_modules/core-js/internals/is-object.js","webpack://Redoc/./node_modules/core-js/internals/descriptors.js","webpack://Redoc/./node_modules/core-js/internals/object-define-property.js","webpack://Redoc/./node_modules/core-js/internals/redefine.js","webpack://Redoc/./node_modules/core-js/internals/get-built-in.js","webpack://Redoc/./node_modules/core-js/internals/is-pure.js","webpack://Redoc/./node_modules/core-js/internals/classof-raw.js","webpack://Redoc/./node_modules/core-js/internals/iterators.js","webpack://Redoc/./node_modules/core-js/internals/a-function.js","webpack://Redoc/./node_modules/core-js/internals/internal-state.js","webpack://Redoc/./node_modules/core-js/internals/export.js","webpack://Redoc/./node_modules/core-js/internals/to-indexed-object.js","webpack://Redoc/./node_modules/core-js/internals/to-string-tag-support.js","webpack://Redoc/./node_modules/core-js/internals/set-global.js","webpack://Redoc/./node_modules/core-js/internals/document-create-element.js","webpack://Redoc/./node_modules/core-js/internals/create-property-descriptor.js","webpack://Redoc/./node_modules/core-js/internals/inspect-source.js","webpack://Redoc/./node_modules/core-js/internals/shared-key.js","webpack://Redoc/./node_modules/core-js/internals/hidden-keys.js","webpack://Redoc/./node_modules/core-js/internals/to-integer.js","webpack://Redoc/./node_modules/core-js/internals/require-object-coercible.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://Redoc/./node_modules/core-js/internals/enum-bug-keys.js","webpack://Redoc/./node_modules/core-js/internals/set-to-string-tag.js","webpack://Redoc/./node_modules/core-js/internals/new-promise-capability.js","webpack://Redoc/./node_modules/core-js/internals/shared.js","webpack://Redoc/./node_modules/core-js/internals/shared-store.js","webpack://Redoc/./node_modules/core-js/internals/ie8-dom-define.js","webpack://Redoc/./node_modules/core-js/internals/to-primitive.js","webpack://Redoc/./node_modules/core-js/internals/uid.js","webpack://Redoc/./node_modules/core-js/internals/native-symbol.js","webpack://Redoc/./node_modules/core-js/internals/classof.js","webpack://Redoc/./node_modules/core-js/internals/define-iterator.js","webpack://Redoc/./node_modules/core-js/internals/path.js","webpack://Redoc/./node_modules/core-js/internals/object-keys-internal.js","webpack://Redoc/./node_modules/core-js/internals/to-length.js","webpack://Redoc/./node_modules/core-js/internals/is-forced.js","webpack://Redoc/./node_modules/core-js/internals/iterators-core.js","webpack://Redoc/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://Redoc/./node_modules/core-js/internals/object-create.js","webpack://Redoc/./node_modules/core-js/internals/html.js","webpack://Redoc/./node_modules/core-js/internals/native-promise-constructor.js","webpack://Redoc/./node_modules/core-js/internals/iterate.js","webpack://Redoc/./node_modules/core-js/internals/function-bind-context.js","webpack://Redoc/./node_modules/core-js/internals/species-constructor.js","webpack://Redoc/./node_modules/core-js/internals/task.js","webpack://Redoc/./node_modules/core-js/internals/engine-is-ios.js","webpack://Redoc/./node_modules/core-js/internals/engine-user-agent.js","webpack://Redoc/./node_modules/core-js/internals/promise-resolve.js","webpack://Redoc/./node_modules/core-js/internals/perform.js","webpack://Redoc/./node_modules/core-js/es/promise/index.js","webpack://Redoc/./node_modules/core-js/modules/es.object.to-string.js","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://Redoc/./node_modules/core-js/internals/native-weak-map.js","webpack://Redoc/./node_modules/core-js/internals/object-to-string.js","webpack://Redoc/./node_modules/core-js/modules/es.string.iterator.js","webpack://Redoc/./node_modules/core-js/internals/string-multibyte.js","webpack://Redoc/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://Redoc/./node_modules/core-js/internals/indexed-object.js","webpack://Redoc/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://Redoc/./node_modules/core-js/internals/own-keys.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://Redoc/./node_modules/core-js/internals/array-includes.js","webpack://Redoc/./node_modules/core-js/internals/to-absolute-index.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://Redoc/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://Redoc/./node_modules/core-js/internals/to-object.js","webpack://Redoc/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://Redoc/./node_modules/core-js/internals/object-define-properties.js","webpack://Redoc/./node_modules/core-js/internals/object-keys.js","webpack://Redoc/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://Redoc/./node_modules/core-js/internals/a-possible-prototype.js","webpack://Redoc/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://Redoc/./node_modules/core-js/internals/dom-iterables.js","webpack://Redoc/./node_modules/core-js/modules/es.array.iterator.js","webpack://Redoc/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.js","webpack://Redoc/./node_modules/core-js/internals/redefine-all.js","webpack://Redoc/./node_modules/core-js/internals/set-species.js","webpack://Redoc/./node_modules/core-js/internals/an-instance.js","webpack://Redoc/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://Redoc/./node_modules/core-js/internals/get-iterator-method.js","webpack://Redoc/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://Redoc/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://Redoc/./node_modules/core-js/internals/microtask.js","webpack://Redoc/./node_modules/core-js/internals/host-report-errors.js","webpack://Redoc/./node_modules/core-js/internals/engine-v8-version.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.finally.js","webpack://Redoc/./node_modules/tslib/tslib.es6.js","webpack://Redoc/./src/services/SearchWorker.worker.ts"],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,aAAa,mBAAO,CAAC,EAAqB;AAC1C,UAAU,mBAAO,CAAC,CAAkB;AACpC,UAAU,mBAAO,CAAC,EAAkB;AACpC,oBAAoB,mBAAO,CAAC,EAA4B;AACxD,wBAAwB,mBAAO,CAAC,EAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AChBA,eAAe,mBAAO,CAAC,CAAwB;;AAE/C;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACNA,uBAAuB;;AAEvB;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,IAAI;AACJ;AACA,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,aAAa;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,WAAW,0BAA0B;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa;AACb;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,WAAW,QAAQ;AACnB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,wCAAwC,iBAAiB;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,wBAAwB,0BAA0B;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,WAAW;AACtB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,UAAU;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C,2BAA2B,2BAA2B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC,+BAA+B,cAAc,sBAAsB;AACnE,+BAA+B,aAAa;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY,WAAW;AACvB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,UAAU;AAC7B;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,iDAAiD;AAClE;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,4BAA4B,iBAAiB;AAC7C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,aAAa;AAC3D;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,4BAA4B;AACvC,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAA6D;AACrE;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,YAAY,qBAAqB;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;;AAEA;;AAEA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,eAAe;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,gBAAgB;AAChB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,oCAAoC;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,0BAA0B;AACvC;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,cAAc,OAAO;AACrB,SAAS;AACT;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,SAAS;AACT;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iBAAiB,yBAAyB;AAC1C;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA,cAAc,oBAAoB;AAClC,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,iBAAiB;AAC1C,8BAA8B,iBAAiB;AAC/C;AACA,aAAa,OAAO;AACpB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,+BAA+B,0CAA0C;AACzE;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kEAAkE,uBAAuB;AACzF;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,QAAQ,IAA0C;AAClD;AACA,MAAM,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AACrB,KAAK,MAAM,EAUN;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACl5GD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;ACNA,kBAAkB,mBAAO,CAAC,CAA0B;AACpD,2BAA2B,mBAAO,CAAC,CAAqC;AACxE,+BAA+B,mBAAO,CAAC,EAAyC;;AAEhF;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACTA;AACA;AACA;;;;;;;ACFA,YAAY,mBAAO,CAAC,CAAoB;;AAExC;AACA;AACA,iCAAiC,MAAM,mBAAmB,UAAU,EAAE,EAAE;AACxE,CAAC;;;;;;;ACLD,kBAAkB,mBAAO,CAAC,CAA0B;AACpD,qBAAqB,mBAAO,CAAC,EAA6B;AAC1D,eAAe,mBAAO,CAAC,CAAwB;AAC/C,kBAAkB,mBAAO,CAAC,EAA2B;;AAErD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;;;;;;;ACnBA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,UAAU,mBAAO,CAAC,CAAkB;AACpC,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,oBAAoB,mBAAO,CAAC,EAA6B;AACzD,0BAA0B,mBAAO,CAAC,EAA6B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;ACjCD,WAAW,mBAAO,CAAC,EAAmB;AACtC,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACVA;;;;;;;ACAA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;;;;;;;ACAA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,sBAAsB,mBAAO,CAAC,EAA8B;AAC5D,aAAa,mBAAO,CAAC,CAAqB;AAC1C,eAAe,mBAAO,CAAC,CAAwB;AAC/C,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,gBAAgB,mBAAO,CAAC,CAAkB;AAC1C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,iBAAiB,mBAAO,CAAC,EAA0B;;AAEnD;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5DA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,+BAA+B,mBAAO,CAAC,EAAiD;AACxF,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,eAAe,mBAAO,CAAC,EAAuB;AAC9C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,gCAAgC,mBAAO,CAAC,EAA0C;AAClF,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mDAAmD;AACnD,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrDA;AACA,oBAAoB,mBAAO,CAAC,EAA6B;AACzD,6BAA6B,mBAAO,CAAC,EAAuC;;AAE5E;AACA;AACA;;;;;;;ACNA,sBAA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AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AChBA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,uBAAuB,mBAAO,CAAC,EAAuC;AACtE,kBAAkB,mBAAO,CAAC,EAA4B;AACtD,iBAAiB,mBAAO,CAAC,EAA0B;AACnD,WAAW,mBAAO,CAAC,EAAmB;AACtC,4BAA4B,mBAAO,CAAC,EAAsC;AAC1E,gBAAgB,mBAAO,CAAC,EAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;AC7EA,iBAAiB,mBAAO,CAAC,EAA2B;;AAEpD;;;;;;;ACFA,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;;;;;;;ACFA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,4BAA4B,mBAAO,CAAC,EAAuC;AAC3E,eAAe,mBAAO,CAAC,EAAwB;AAC/C,WAAW,mBAAO,CAAC,EAAoC;AACvD,wBAAwB,mBAAO,CAAC,EAAkC;AAClE,mCAAmC,mBAAO,CAAC,EAA+C;;AAE1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;;;;;;AC1CA,gBAAgB,mBAAO,CAAC,EAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvBA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,YAAY,mBAAO,CAAC,CAAoB;AACxC,cAAc,mBAAO,CAAC,EAA0B;AAChD,WAAW,mBAAO,CAAC,EAAoC;AACvD,WAAW,mBAAO,CAAC,EAAmB;AACtC,oBAAoB,mBAAO,CAAC,EAAsC;AAClE,aAAa,mBAAO,CAAC,EAA4B;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AC1GA,gBAAgB,mBAAO,CAAC,EAAgC;;AAExD;;;;;;;ACFA,iBAAiB,mBAAO,CAAC,EAA2B;;AAEpD;;;;;;;ACFA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,eAAe,mBAAO,CAAC,CAAwB;AAC/C,2BAA2B,mBAAO,CAAC,EAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA,YAAY;AACZ,GAAG;AACH,YAAY;AACZ;AACA;;;;;;;ACNA,mBAAO,CAAC,EAAmC;AAC3C,mBAAO,CAAC,EAAkC;AAC1C,mBAAO,CAAC,EAA4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BAAiB,mBAAO,CAAC,EAAgC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,eAAe,cAAc;AACjE;AACA;AACA;AACA,qCAAqC,cAAc;AACnD,CAAC;;AAED;AACA,yDAAyD,cAAc;AACvE,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,6BAA6B,cAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK,GAAG,eAAe;;AAEvB;AACA,wCAAwC,+CAA+C;AACvF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,GAAG,2CAA2C;AAC9C;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,GAAG,8CAA8C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,yDAAyD;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,2DAA2D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;AC1XD,eAAe,mBAAO,CAAC,EAAuB;;AAE9C;AACA;AACA;AACA;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,EAA2B;AACpD,2BAA2B,mBAAO,CAAC,CAAqC;AACxE,sBAAsB,mBAAO,CAAC,CAAgC;AAC9D,kBAAkB,mBAAO,CAAC,CAA0B;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;;;;;;;AClBA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,sBAAsB,mBAAO,CAAC,CAAgC;AAC9D,gBAAgB,mBAAO,CAAC,EAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACTA,cAAc,mBAAO,CAAC,EAAsB;AAC5C,gBAAgB,mBAAO,CAAC,EAAwB;AAChD,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACVA,eAAe,mBAAO,CAAC,CAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;ACZA,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS,EAAE;AACzD,CAAC,gBAAgB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;;;;;;;ACrCA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,+BAA+B,mBAAO,CAAC,EAAiD;AACxF,cAAc,mBAAO,CAAC,EAA0B;AAChD,gBAAgB,mBAAO,CAAC,EAAmB;AAC3C,aAAa,mBAAO,CAAC,EAA4B;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AC7EA,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,gBAAgB,mBAAO,CAAC,EAAgC;;AAExD;AACA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","file":"95952f773ec942db46dc.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 97);\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = {};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {// nope\n}\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n dispose = dispose;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\nlunr.tokenizer.separator = /\\s+/;\nlet builder: lunr.Builder;\nlet resolveIndex: (v: lunr.Index) => void;\nlet index: Promise;\n\nfunction initEmpty() {\n builder = new lunr.Builder();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n index = new Promise(resolve => {\n resolveIndex = resolve;\n });\n}\n\ninitEmpty();\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function dispose() {\n store = [];\n initEmpty();\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://Redoc/webpack/bootstrap","webpack://Redoc/./node_modules/core-js/internals/global.js","webpack://Redoc/./node_modules/core-js/internals/well-known-symbol.js","webpack://Redoc/./node_modules/core-js/internals/an-object.js","webpack://Redoc/./node_modules/core-js/internals/has.js","webpack://Redoc/./node_modules/lunr/lunr.js","webpack://Redoc/./node_modules/core-js/internals/fails.js","webpack://Redoc/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://Redoc/./node_modules/core-js/internals/is-object.js","webpack://Redoc/./node_modules/core-js/internals/descriptors.js","webpack://Redoc/./node_modules/core-js/internals/object-define-property.js","webpack://Redoc/./node_modules/core-js/internals/redefine.js","webpack://Redoc/./node_modules/core-js/internals/get-built-in.js","webpack://Redoc/./node_modules/core-js/internals/is-pure.js","webpack://Redoc/./node_modules/core-js/internals/classof-raw.js","webpack://Redoc/./node_modules/core-js/internals/iterators.js","webpack://Redoc/./node_modules/core-js/internals/a-function.js","webpack://Redoc/./node_modules/core-js/internals/internal-state.js","webpack://Redoc/./node_modules/core-js/internals/export.js","webpack://Redoc/./node_modules/core-js/internals/to-indexed-object.js","webpack://Redoc/./node_modules/core-js/internals/to-string-tag-support.js","webpack://Redoc/./node_modules/core-js/internals/set-global.js","webpack://Redoc/./node_modules/core-js/internals/document-create-element.js","webpack://Redoc/./node_modules/core-js/internals/create-property-descriptor.js","webpack://Redoc/./node_modules/core-js/internals/inspect-source.js","webpack://Redoc/./node_modules/core-js/internals/shared-key.js","webpack://Redoc/./node_modules/core-js/internals/hidden-keys.js","webpack://Redoc/./node_modules/core-js/internals/to-integer.js","webpack://Redoc/./node_modules/core-js/internals/require-object-coercible.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://Redoc/./node_modules/core-js/internals/enum-bug-keys.js","webpack://Redoc/./node_modules/core-js/internals/set-to-string-tag.js","webpack://Redoc/./node_modules/core-js/internals/new-promise-capability.js","webpack://Redoc/./node_modules/core-js/internals/shared.js","webpack://Redoc/./node_modules/core-js/internals/shared-store.js","webpack://Redoc/./node_modules/core-js/internals/ie8-dom-define.js","webpack://Redoc/./node_modules/core-js/internals/to-primitive.js","webpack://Redoc/./node_modules/core-js/internals/uid.js","webpack://Redoc/./node_modules/core-js/internals/native-symbol.js","webpack://Redoc/./node_modules/core-js/internals/classof.js","webpack://Redoc/./node_modules/core-js/internals/define-iterator.js","webpack://Redoc/./node_modules/core-js/internals/path.js","webpack://Redoc/./node_modules/core-js/internals/object-keys-internal.js","webpack://Redoc/./node_modules/core-js/internals/to-length.js","webpack://Redoc/./node_modules/core-js/internals/is-forced.js","webpack://Redoc/./node_modules/core-js/internals/iterators-core.js","webpack://Redoc/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://Redoc/./node_modules/core-js/internals/object-create.js","webpack://Redoc/./node_modules/core-js/internals/html.js","webpack://Redoc/./node_modules/core-js/internals/native-promise-constructor.js","webpack://Redoc/./node_modules/core-js/internals/iterate.js","webpack://Redoc/./node_modules/core-js/internals/function-bind-context.js","webpack://Redoc/./node_modules/core-js/internals/species-constructor.js","webpack://Redoc/./node_modules/core-js/internals/task.js","webpack://Redoc/./node_modules/core-js/internals/engine-is-ios.js","webpack://Redoc/./node_modules/core-js/internals/engine-user-agent.js","webpack://Redoc/./node_modules/core-js/internals/promise-resolve.js","webpack://Redoc/./node_modules/core-js/internals/perform.js","webpack://Redoc/./node_modules/core-js/es/promise/index.js","webpack://Redoc/./node_modules/core-js/modules/es.object.to-string.js","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://Redoc/./node_modules/core-js/internals/native-weak-map.js","webpack://Redoc/./node_modules/core-js/internals/object-to-string.js","webpack://Redoc/./node_modules/core-js/modules/es.string.iterator.js","webpack://Redoc/./node_modules/core-js/internals/string-multibyte.js","webpack://Redoc/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://Redoc/./node_modules/core-js/internals/indexed-object.js","webpack://Redoc/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://Redoc/./node_modules/core-js/internals/own-keys.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://Redoc/./node_modules/core-js/internals/array-includes.js","webpack://Redoc/./node_modules/core-js/internals/to-absolute-index.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://Redoc/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://Redoc/./node_modules/core-js/internals/to-object.js","webpack://Redoc/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://Redoc/./node_modules/core-js/internals/object-define-properties.js","webpack://Redoc/./node_modules/core-js/internals/object-keys.js","webpack://Redoc/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://Redoc/./node_modules/core-js/internals/a-possible-prototype.js","webpack://Redoc/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://Redoc/./node_modules/core-js/internals/dom-iterables.js","webpack://Redoc/./node_modules/core-js/modules/es.array.iterator.js","webpack://Redoc/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.js","webpack://Redoc/./node_modules/core-js/internals/redefine-all.js","webpack://Redoc/./node_modules/core-js/internals/set-species.js","webpack://Redoc/./node_modules/core-js/internals/an-instance.js","webpack://Redoc/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://Redoc/./node_modules/core-js/internals/get-iterator-method.js","webpack://Redoc/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://Redoc/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://Redoc/./node_modules/core-js/internals/microtask.js","webpack://Redoc/./node_modules/core-js/internals/host-report-errors.js","webpack://Redoc/./node_modules/core-js/internals/engine-v8-version.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.finally.js","webpack://Redoc/./node_modules/tslib/tslib.es6.js","webpack://Redoc/./src/services/SearchWorker.worker.ts"],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,aAAa,mBAAO,CAAC,EAAqB;AAC1C,UAAU,mBAAO,CAAC,CAAkB;AACpC,UAAU,mBAAO,CAAC,EAAkB;AACpC,oBAAoB,mBAAO,CAAC,EAA4B;AACxD,wBAAwB,mBAAO,CAAC,EAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AChBA,eAAe,mBAAO,CAAC,CAAwB;;AAE/C;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACNA,uBAAuB;;AAEvB;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,IAAI;AACJ;AACA,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,aAAa;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,WAAW,0BAA0B;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa;AACb;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,WAAW,QAAQ;AACnB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,wCAAwC,iBAAiB;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,wBAAwB,0BAA0B;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,WAAW;AACtB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,UAAU;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C,2BAA2B,2BAA2B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC,+BAA+B,cAAc,sBAAsB;AACnE,+BAA+B,aAAa;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY,WAAW;AACvB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,UAAU;AAC7B;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,iDAAiD;AAClE;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,4BAA4B,iBAAiB;AAC7C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,aAAa;AAC3D;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,4BAA4B;AACvC,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAA6D;AACrE;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,YAAY,qBAAqB;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;;AAEA;;AAEA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,eAAe;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,gBAAgB;AAChB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,oCAAoC;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,0BAA0B;AACvC;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,cAAc,OAAO;AACrB,SAAS;AACT;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,SAAS;AACT;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iBAAiB,yBAAyB;AAC1C;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA,cAAc,oBAAoB;AAClC,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,iBAAiB;AAC1C,8BAA8B,iBAAiB;AAC/C;AACA,aAAa,OAAO;AACpB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,+BAA+B,0CAA0C;AACzE;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kEAAkE,uBAAuB;AACzF;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,QAAQ,IAA0C;AAClD;AACA,MAAM,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AACrB,KAAK,MAAM,EAUN;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACl5GD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;ACNA,kBAAkB,mBAAO,CAAC,CAA0B;AACpD,2BAA2B,mBAAO,CAAC,CAAqC;AACxE,+BAA+B,mBAAO,CAAC,EAAyC;;AAEhF;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACTA;AACA;AACA;;;;;;;ACFA,YAAY,mBAAO,CAAC,CAAoB;;AAExC;AACA;AACA,iCAAiC,MAAM,mBAAmB,UAAU,EAAE,EAAE;AACxE,CAAC;;;;;;;ACLD,kBAAkB,mBAAO,CAAC,CAA0B;AACpD,qBAAqB,mBAAO,CAAC,EAA6B;AAC1D,eAAe,mBAAO,CAAC,CAAwB;AAC/C,kBAAkB,mBAAO,CAAC,EAA2B;;AAErD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;;;;;;;ACnBA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,UAAU,mBAAO,CAAC,CAAkB;AACpC,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,oBAAoB,mBAAO,CAAC,EAA6B;AACzD,0BAA0B,mBAAO,CAAC,EAA6B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;ACjCD,WAAW,mBAAO,CAAC,EAAmB;AACtC,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACVA;;;;;;;ACAA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;;;;;;;ACAA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,sBAAsB,mBAAO,CAAC,EAA8B;AAC5D,aAAa,mBAAO,CAAC,CAAqB;AAC1C,eAAe,mBAAO,CAAC,CAAwB;AAC/C,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,gBAAgB,mBAAO,CAAC,CAAkB;AAC1C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,iBAAiB,mBAAO,CAAC,EAA0B;;AAEnD;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5DA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,+BAA+B,mBAAO,CAAC,EAAiD;AACxF,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,eAAe,mBAAO,CAAC,EAAuB;AAC9C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,gCAAgC,mBAAO,CAAC,EAA0C;AAClF,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mDAAmD;AACnD,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrDA;AACA,oBAAoB,mBAAO,CAAC,EAA6B;AACzD,6BAA6B,mBAAO,CAAC,EAAuC;;AAE5E;AACA;AACA;;;;;;;ACNA,sBAA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AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AChBA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,uBAAuB,mBAAO,CAAC,EAAuC;AACtE,kBAAkB,mBAAO,CAAC,EAA4B;AACtD,iBAAiB,mBAAO,CAAC,EAA0B;AACnD,WAAW,mBAAO,CAAC,EAAmB;AACtC,4BAA4B,mBAAO,CAAC,EAAsC;AAC1E,gBAAgB,mBAAO,CAAC,EAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;AC7EA,iBAAiB,mBAAO,CAAC,EAA2B;;AAEpD;;;;;;;ACFA,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;;;;;;;ACFA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,4BAA4B,mBAAO,CAAC,EAAuC;AAC3E,eAAe,mBAAO,CAAC,EAAwB;AAC/C,WAAW,mBAAO,CAAC,EAAoC;AACvD,wBAAwB,mBAAO,CAAC,EAAkC;AAClE,mCAAmC,mBAAO,CAAC,EAA+C;;AAE1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;;;;;;AC1CA,gBAAgB,mBAAO,CAAC,EAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvBA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,YAAY,mBAAO,CAAC,CAAoB;AACxC,cAAc,mBAAO,CAAC,EAA0B;AAChD,WAAW,mBAAO,CAAC,EAAoC;AACvD,WAAW,mBAAO,CAAC,EAAmB;AACtC,oBAAoB,mBAAO,CAAC,EAAsC;AAClE,aAAa,mBAAO,CAAC,EAA4B;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AC1GA,gBAAgB,mBAAO,CAAC,EAAgC;;AAExD;;;;;;;ACFA,iBAAiB,mBAAO,CAAC,EAA2B;;AAEpD;;;;;;;ACFA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,eAAe,mBAAO,CAAC,CAAwB;AAC/C,2BAA2B,mBAAO,CAAC,EAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA,YAAY;AACZ,GAAG;AACH,YAAY;AACZ;AACA;;;;;;;ACNA,mBAAO,CAAC,EAAmC;AAC3C,mBAAO,CAAC,EAAkC;AAC1C,mBAAO,CAAC,EAA4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BAAiB,mBAAO,CAAC,EAAgC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,eAAe,cAAc;AACjE;AACA;AACA;AACA,qCAAqC,cAAc;AACnD,CAAC;;AAED;AACA,yDAAyD,cAAc;AACvE,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,6BAA6B,cAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK,GAAG,eAAe;;AAEvB;AACA,wCAAwC,+CAA+C;AACvF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,GAAG,2CAA2C;AAC9C;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,GAAG,8CAA8C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,yDAAyD;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,2DAA2D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;AC1XD,eAAe,mBAAO,CAAC,EAAuB;;AAE9C;AACA;AACA;AACA;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,EAA2B;AACpD,2BAA2B,mBAAO,CAAC,CAAqC;AACxE,sBAAsB,mBAAO,CAAC,CAAgC;AAC9D,kBAAkB,mBAAO,CAAC,CAA0B;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;;;;;;;AClBA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,sBAAsB,mBAAO,CAAC,CAAgC;AAC9D,gBAAgB,mBAAO,CAAC,EAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACTA,cAAc,mBAAO,CAAC,EAAsB;AAC5C,gBAAgB,mBAAO,CAAC,EAAwB;AAChD,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACVA,eAAe,mBAAO,CAAC,CAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;ACZA,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS,EAAE;AACzD,CAAC,gBAAgB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;;;;;;;ACrCA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,+BAA+B,mBAAO,CAAC,EAAiD;AACxF,cAAc,mBAAO,CAAC,EAA0B;AAChD,gBAAgB,mBAAO,CAAC,EAAmB;AAC3C,aAAa,mBAAO,CAAC,EAA4B;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AC7EA,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,gBAAgB,mBAAO,CAAC,EAAgC;;AAExD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBa;AACb,QAAQ,mBAAO,CAAC,EAAqB;AACrC,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,iCAAiC,mBAAO,CAAC,EAAqC;AAC9E,cAAc,mBAAO,CAAC,EAAsB;AAC5C,cAAc,mBAAO,CAAC,EAAsB;;AAE5C;AACA;AACA,GAAG,gCAAgC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;AACT;AACA;AACA,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;AC1CY;AACb,QAAQ,mBAAO,CAAC,EAAqB;AACrC,cAAc,mBAAO,CAAC,EAAsB;AAC5C,oBAAoB,mBAAO,CAAC,EAAyC;AACrE,YAAY,mBAAO,CAAC,CAAoB;AACxC,iBAAiB,mBAAO,CAAC,EAA2B;AACpD,yBAAyB,mBAAO,CAAC,EAAkC;AACnE,qBAAqB,mBAAO,CAAC,EAA8B;AAC3D,eAAe,mBAAO,CAAC,EAAuB;;AAE9C;AACA;AACA,2CAA2C,oBAAoB,cAAc,EAAE,eAAe,cAAc;AAC5G,CAAC;;AAED;AACA;AACA,GAAG,kEAAkE;AACrE;AACA;AACA;AACA;AACA;AACA,gEAAgE,UAAU,EAAE;AAC5E,OAAO;AACP;AACA,gEAAgE,SAAS,EAAE;AAC3E,OAAO;AACP;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACnCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEO;AACP,mCAAmC,oCAAoC;AACvE;;AAEO;AACP;AACA;;AAEO;AACP,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;;AAEO;AACP,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;;AAEO;AACP;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;;AAEM;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEO;AACP,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEO;AACP,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEA;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;AClO6B;AAE7B,IAAI;IACF,2BAA2B;IAC3B,mBAAO,CAAC,EAAoB,CAAC,CAAC,CAAC,qBAAqB;CAErD;AAAC,OAAO,CAAC,EAAE,EAAC,OAAO;CACnB;AACD,6BAA6B;AAG7B;IAAA;QACE,QAAG,GAAe,GAAG,CAAC;QACtB,SAAI,GAAG,IAAI,CAAC;QACZ,WAAM,GAAkB,MAAM,CAAC;QAC/B,SAAI,GAAG,IAAI,CAAC;QACZ,SAAI,GAAG,IAAI,CAAC;QACZ,YAAO,GAAG,OAAO,CAAC;IACpB,CAAC;IAAD,aAAC;AAAD,CAAC;;AAUD,IAAI,KAAK,GAAU,EAAE,CAAC;AACtB,iBAAc,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,IAAI,OAAqB,CAAC;AAC1B,IAAI,YAAqC,CAAC;AAC1C,IAAI,KAA0B,CAAC;AAE/B,SAAS,SAAS;IAChB,OAAO,GAAG,IAAI,eAAY,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAY,EAAE,sBAAmB,EAAE,eAAY,CAAC,CAAC;IACtE,KAAK,GAAG,IAAI,OAAO,CAAC,iBAAO;QACzB,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,EAAE,CAAC;AAEZ,IAAM,UAAU,GAAG,cAAI,IAAI,UAAG,GAAG,eAAY,CAAC,IAAI,aAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAlD,CAAkD,CAAC;AAEvE,SAAS,GAAG,CAAI,KAAa,EAAE,WAAmB,EAAE,IAAQ;IACjE,IAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,IAAM,IAAI,GAAG;QACX,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1B,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QACtC,GAAG;KACJ,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AACM,SAAe,IAAI;;;YACxB,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;;;;CAC/B;AACM,SAAe,IAAI;;;;;;;wBAEtB,KAAK;;oBACG,qBAAM,KAAK;wBAFrB,uBAEE,QAAK,GAAE,CAAC,SAAW,CAAC,CAAC,MAAM,EAAE;6BAC7B;;;;CACH;AACM,SAAe,IAAI,CAAC,KAAU;;;YACnC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACpB,YAAY,CAAC,aAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;;;;CAC5C;AACM,SAAe,OAAO;;;YAC3B,KAAK,GAAG,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;;;;CACb;AACM,SAAe,MAAM,CAAgB,CAAS,EAAE,KAAS;IAAT,iCAAS;;;;;;oBAC9D,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,sBAAO,EAAE,EAAC;qBACX;oBAEoB,qBAAM,KAAK;;oBAA5B,aAAa,GAAG,CAAC,SAAW,CAAC,CAAC,KAAK,CAAC,WAAC;wBACvC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,cAAI;4BAC9C,IAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC7B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAClB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC;oBAEF,IAAI,KAAK,GAAG,CAAC,EAAE;wBACb,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;qBAC/C;oBAED,sBAAO,aAAa,CAAC,GAAG,CAAC,aAAG,IAAI,QAAC;4BAC/B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;4BACpB,KAAK,EAAE,GAAG,CAAC,KAAK;yBACjB,CAAC,EAH8B,CAG9B,CAAC,EAAC;;;;CACL","file":"4a345b767c160cf4e5c0.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 97);\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = {};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {// nope\n}\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n dispose = dispose;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\nlunr.tokenizer.separator = /\\s+/;\nlet builder: lunr.Builder;\nlet resolveIndex: (v: lunr.Index) => void;\nlet index: Promise;\n\nfunction initEmpty() {\n builder = new lunr.Builder();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n index = new Promise(resolve => {\n resolveIndex = resolve;\n });\n}\n\ninitEmpty();\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function dispose() {\n store = [];\n initEmpty();\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/bundles/6ab91c58bf337b7164c3.worker.js.map b/bundles/fb98e1ba53a1ba89d121.worker.js.map similarity index 99% rename from bundles/6ab91c58bf337b7164c3.worker.js.map rename to bundles/fb98e1ba53a1ba89d121.worker.js.map index ac8dcac3..25f8078a 100644 --- a/bundles/6ab91c58bf337b7164c3.worker.js.map +++ b/bundles/fb98e1ba53a1ba89d121.worker.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://Redoc/182649235cd683068b8d.worker.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","check","it","Math","globalThis","window","self","Function","this","shared","has","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","isObject","TypeError","String","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","step2list","step3list","v","C","re_mgr0","re_mgr1","re_meq1","re_s_v","re_1a","re2_1a","re_1b","re2_1b","re_1b_2","re2_1b_2","re3_1b_2","re4_1b_2","re_1c","re_2","re_3","re_4","re2_4","re_5","re_5_1","re3_5","porterStemmer","lunr","config","builder","Builder","pipeline","add","trimmer","stopWordFilter","stemmer","searchPipeline","build","version","utils","warn","message","console","asString","obj","toString","clone","keys","length","val","Array","isArray","slice","FieldRef","docRef","fieldName","stringValue","_stringValue","joiner","fromString","indexOf","fieldRef","undefined","Set","elements","complete","intersect","other","union","contains","empty","a","b","intersection","element","push","concat","idf","posting","documentCount","documentsWithTerm","x","log","abs","Token","str","metadata","update","fn","tokenizer","map","toLowerCase","len","tokens","sliceEnd","sliceStart","sliceLength","charAt","match","separator","tokenMetadata","Pipeline","_stack","registeredFunctions","registerFunction","label","warnIfFunctionNotRegistered","load","serialised","forEach","fnName","Error","fns","arguments","after","existingFn","newFn","pos","splice","before","remove","run","stackLength","memo","j","result","k","runString","token","reset","toJSON","Vector","_magnitude","positionForIndex","index","start","end","pivotPoint","floor","pivotIndex","insert","insertIdx","upsert","position","magnitude","sumOfSquares","elementsLength","sqrt","dot","otherVector","dotProduct","aLen","bLen","aVal","bVal","similarity","toArray","output","ational","tional","enci","anci","izer","bli","alli","entli","eli","ousli","ization","ation","ator","alism","iveness","fulness","ousness","aliti","iviti","biliti","logi","icate","ative","alize","iciti","ical","ful","ness","RegExp","w","stem","suffix","firstch","re","re2","re3","re4","substr","toUpperCase","test","replace","fp","exec","generateStopWordFilter","stopWords","words","reduce","stopWord","TokenSet","final","edges","id","_nextId","fromArray","arr","finish","root","fromClause","clause","fromFuzzyString","term","editDistance","stack","node","editsRemaining","frame","pop","noEditNode","char","insertionNode","substitutionNode","transposeNode","charA","charB","next","prefix","edge","_str","labels","sort","qNode","qEdges","qLen","nEdges","nLen","q","qEdge","nEdge","previousWord","uncheckedNodes","minimizedNodes","word","commonPrefix","minimize","child","nextNode","parent","downTo","childKey","Index","attrs","invertedIndex","fieldVectors","tokenSet","fields","search","queryString","query","QueryParser","parse","Query","matchingFields","queryVectors","termFieldCache","requiredMatches","prohibitedMatches","clauses","terms","clauseMatches","usePipeline","termTokenSet","expandedTerms","presence","REQUIRED","field","expandedTerm","termIndex","_index","fieldPosting","matchingDocumentRefs","termField","matchingDocumentsSet","PROHIBITED","boost","fieldMatch","matchingDocumentRef","matchingFieldRef","MatchData","allRequiredMatches","allProhibitedMatches","matchingFieldRefs","results","matches","isNegated","docMatch","fieldVector","score","matchData","combine","ref","serializedIndex","serializedVectors","serializedInvertedIndex","tokenSetBuilder","tuple","_ref","_fields","_documents","fieldTermFrequencies","fieldLengths","_b","_k1","metadataWhitelist","attributes","RangeError","number","k1","doc","extractor","fieldTerms","metadataKey","calculateAverageFieldLengths","fieldRefs","numberOfFields","accumulator","documentsWithField","averageFieldLength","createFieldVectors","fieldRefsLength","termIdfCache","fieldLength","termFrequencies","termsLength","fieldBoost","docBoost","scoreWithPrecision","tf","round","createTokenSet","use","args","unshift","apply","clonedMetadata","metadataKeys","otherMatchData","allFields","wildcard","NONE","LEADING","TRAILING","OPTIONAL","options","QueryParseError","QueryLexer","lexemes","escapeCharPositions","state","lexText","sliceString","subSlices","join","emit","type","escapeCharacter","EOS","width","ignore","backup","acceptDigitRun","charCode","charCodeAt","more","FIELD","TERM","EDIT_DISTANCE","BOOST","PRESENCE","lexField","lexer","lexTerm","lexEditDistance","lexBoost","lexEOS","termSeparator","currentClause","lexemeIdx","parseClause","peekLexeme","consumeLexeme","lexeme","nextClause","completedClause","parser","parsePresence","parseField","parseTerm","errorMessage","nextLexeme","possibleFields","f","parseEditDistance","parseBoost","parseInt","isNaN","error","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","fails","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","createNonEnumerableProperty","setGlobal","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","split","unsafe","simple","noTargetGet","source","path","aFunction","variable","namespace","method","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","STATE","getterFor","TYPE","getOwnPropertyDescriptor","redefine","copyConstructorProperties","isForced","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","forced","sham","IndexedObject","requireObjectCoercible","wellKnownSymbol","document","EXISTS","createElement","bitmap","configurable","writable","functionToString","ceil","argument","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","TO_STRING_TAG","TAG","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","IS_PURE","copyright","input","PREFERRED_STRING","valueOf","postfix","random","getOwnPropertySymbols","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","$","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","names","toInteger","min","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","constructor","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","Properties","getBuiltIn","Promise","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterable","that","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","step","boundFunction","done","stop","SPECIES","defaultConstructor","S","defer","channel","port","classof","IS_IOS","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","runner","listener","event","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","userAgent","newPromiseCapability","promiseCapability","g","e","defineIterator","setInternalState","iterated","point","createMethod","CONVERT_TO_STRING","$this","first","second","size","codeAt","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","V","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","getOwnPropertyNames","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","max","integer","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","addToUnscopables","kind","Arguments","UNSCOPABLES","ArrayPrototype","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","PromiseRejectionEvent","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","catch","fetch","wrap","capability","$promiseResolve","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","ENTRIES","returnMethod","SAFE_CLOSING","called","iteratorWithReturn","return","from","SKIP_CLOSING","ITERATION_SUPPORT","flush","head","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","versions","v8","allSettled","status","real","finally","onFinally","isFunction","__webpack_exports__","toJS","dispose","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","__generator","body","y","_","sent","trys","ops","verb","throw","op","resolveIndex","Worker","initEmpty","title","description","meta","item","_a","limit","searchResults","trim","exp","expandTerm","res","_e$data","params"],"mappings":";;;;;IAMS,SAAUA,GAET,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAJ,EAAQG,GAAUK,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBO,EAAIT,EAGxBE,EAAoBQ,EAAIT,EAGxBC,EAAoBS,EAAI,SAASP,EAASQ,EAAMC,GAC3CX,EAAoBY,EAAEV,EAASQ,IAClCG,OAAOC,eAAeZ,EAASQ,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEX,EAAoBiB,EAAI,SAASf,GACX,oBAAXgB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeZ,EAASgB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,KAQvDpB,EAAoBqB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpB,EAAoBoB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAzB,EAAoBiB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpB,EAAoBS,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxB,EAAoB4B,EAAI,SAASzB,GAChC,IAAIQ,EAASR,GAAUA,EAAOoB,WAC7B,WAAwB,OAAOpB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG9B,EAAoBiC,EAAI,GAIjBjC,EAAoBA,EAAoBkC,EAAI,IAnFpD,CAsFC,CAEJ,SAAU/B,EAAQD,EAASF,IAEL,SAASmC,GAAS,IAAIC,EAAQ,SAAUC,GAClE,OAAOA,GAAMA,EAAGC,MAAQA,MAAQD,GAIlClC,EAAOD,QAELkC,EAA2B,iBAAdG,YAA0BA,aACvCH,EAAuB,iBAAVI,QAAsBA,SACnCJ,EAAqB,iBAARK,MAAoBA,OACjCL,EAAuB,iBAAVD,GAAsBA,IAEnCO,SAAS,cAATA,KAE2BpC,KAAKqC,KAAM3C,EAAoB,MAItD,SAAUG,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7B4C,EAAS5C,EAAoB,IAC7B6C,EAAM7C,EAAoB,GAC1B8C,EAAM9C,EAAoB,IAC1B+C,EAAgB/C,EAAoB,IACpCgD,EAAoBhD,EAAoB,IAExCiD,EAAwBL,EAAO,OAC/B1B,EAASiB,EAAOjB,OAChBgC,EAAwBF,EAAoB9B,EAASA,GAAUA,EAAOiC,eAAiBL,EAE3F3C,EAAOD,QAAU,SAAUQ,GAIvB,OAHGmC,EAAII,EAAuBvC,KAC1BqC,GAAiBF,EAAI3B,EAAQR,GAAOuC,EAAsBvC,GAAQQ,EAAOR,GACxEuC,EAAsBvC,GAAQwC,EAAsB,UAAYxC,IAC9DuC,EAAsBvC,KAM3B,SAAUP,EAAQD,EAASF,GAEjC,IAAIoD,EAAWpD,EAAoB,GAEnCG,EAAOD,QAAU,SAAUmC,GACzB,IAAKe,EAASf,GACZ,MAAMgB,UAAUC,OAAOjB,GAAM,qBAC7B,OAAOA,IAML,SAAUlC,EAAQD,GAExB,IAAI8B,EAAiB,GAAGA,eAExB7B,EAAOD,QAAU,SAAUmC,EAAIX,GAC7B,OAAOM,EAAe1B,KAAK+B,EAAIX,KAM3B,SAAUvB,EAAQD,EAASF,GAEjC,IAAIuD,EAAgCC;;;;;IAMnC,WAiCD,IAoC6BrB,EAw2BvBsB,EAwBFC,EAWAC,EACAC,EAQEC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EAEAC,EAEAC,EACAC,EAEAC,EACAC,EACAC,EAEAC,EAl9BFC,EAAO,SAAUC,GACnB,IAAIC,EAAU,IAAIF,EAAKG,QAavB,OAXAD,EAAQE,SAASC,IACfL,EAAKM,QACLN,EAAKO,eACLP,EAAKQ,SAGPN,EAAQO,eAAeJ,IACrBL,EAAKQ,SAGPP,EAAO7E,KAAK8E,EAASA,GACdA,EAAQQ,SAGjBV,EAAKW,QAAU;;;;IAUfX,EAAKY,MAAQ,GASbZ,EAAKY,MAAMC,MAAkB5D,EAQ1BQ,KANM,SAAUqD,GACX7D,EAAO8D,SAAWA,QAAQF,MAC5BE,QAAQF,KAAKC,KAiBnBd,EAAKY,MAAMI,SAAW,SAAUC,GAC9B,OAAIA,QACK,GAEAA,EAAIC,YAoBflB,EAAKY,MAAMO,MAAQ,SAAUF,GAC3B,GAAIA,QACF,OAAOA,EAMT,IAHA,IAAIE,EAAQxF,OAAOY,OAAO,MACtB6E,EAAOzF,OAAOyF,KAAKH,GAEd/F,EAAI,EAAGA,EAAIkG,EAAKC,OAAQnG,IAAK,CACpC,IAAIsB,EAAM4E,EAAKlG,GACXoG,EAAML,EAAIzE,GAEd,GAAI+E,MAAMC,QAAQF,GAChBH,EAAM3E,GAAO8E,EAAIG,YADnB,CAKA,GAAmB,iBAARH,GACQ,iBAARA,GACQ,kBAARA,EAKX,MAAM,IAAInD,UAAU,yDAJlBgD,EAAM3E,GAAO8E,GAOjB,OAAOH,GAETnB,EAAK0B,SAAW,SAAUC,EAAQC,EAAWC,GAC3CpE,KAAKkE,OAASA,EACdlE,KAAKmE,UAAYA,EACjBnE,KAAKqE,aAAeD,GAGtB7B,EAAK0B,SAASK,OAAS,IAEvB/B,EAAK0B,SAASM,WAAa,SAAUhF,GACnC,IAAIN,EAAIM,EAAEiF,QAAQjC,EAAK0B,SAASK,QAEhC,IAAW,IAAPrF,EACF,KAAM,6BAGR,IAAIwF,EAAWlF,EAAEyE,MAAM,EAAG/E,GACtBiF,EAAS3E,EAAEyE,MAAM/E,EAAI,GAEzB,OAAO,IAAIsD,EAAK0B,SAAUC,EAAQO,EAAUlF,IAG9CgD,EAAK0B,SAAS7E,UAAUqE,SAAW,WAKjC,OAJyBiB,MAArB1E,KAAKqE,eACPrE,KAAKqE,aAAerE,KAAKmE,UAAY5B,EAAK0B,SAASK,OAAStE,KAAKkE,QAG5DlE,KAAKqE;;;;IAYd9B,EAAKoC,IAAM,SAAUC,GAGnB,GAFA5E,KAAK4E,SAAW1G,OAAOY,OAAO,MAE1B8F,EAAU,CACZ5E,KAAK4D,OAASgB,EAAShB,OAEvB,IAAK,IAAInG,EAAI,EAAGA,EAAIuC,KAAK4D,OAAQnG,IAC/BuC,KAAK4E,SAASA,EAASnH,KAAM,OAG/BuC,KAAK4D,OAAS,GAWlBrB,EAAKoC,IAAIE,SAAW,CAClBC,UAAW,SAAUC,GACnB,OAAOA,GAGTC,MAAO,SAAUD,GACf,OAAOA,GAGTE,SAAU,WACR,OAAO,IAWX1C,EAAKoC,IAAIO,MAAQ,CACfJ,UAAW,WACT,OAAO9E,MAGTgF,MAAO,SAAUD,GACf,OAAOA,GAGTE,SAAU,WACR,OAAO,IAUX1C,EAAKoC,IAAIvF,UAAU6F,SAAW,SAAU/F,GACtC,QAASc,KAAK4E,SAAS1F,IAWzBqD,EAAKoC,IAAIvF,UAAU0F,UAAY,SAAUC,GACvC,IAAII,EAAGC,EAAGR,EAAUS,EAAe,GAEnC,GAAIN,IAAUxC,EAAKoC,IAAIE,SACrB,OAAO7E,KAGT,GAAI+E,IAAUxC,EAAKoC,IAAIO,MACrB,OAAOH,EAGL/E,KAAK4D,OAASmB,EAAMnB,QACtBuB,EAAInF,KACJoF,EAAIL,IAEJI,EAAIJ,EACJK,EAAIpF,MAGN4E,EAAW1G,OAAOyF,KAAKwB,EAAEP,UAEzB,IAAK,IAAInH,EAAI,EAAGA,EAAImH,EAAShB,OAAQnG,IAAK,CACxC,IAAI6H,EAAUV,EAASnH,GACnB6H,KAAWF,EAAER,UACfS,EAAaE,KAAKD,GAItB,OAAO,IAAI/C,EAAKoC,IAAKU,IAUvB9C,EAAKoC,IAAIvF,UAAU4F,MAAQ,SAAUD,GACnC,OAAIA,IAAUxC,EAAKoC,IAAIE,SACdtC,EAAKoC,IAAIE,SAGdE,IAAUxC,EAAKoC,IAAIO,MACdlF,KAGF,IAAIuC,EAAKoC,IAAIzG,OAAOyF,KAAK3D,KAAK4E,UAAUY,OAAOtH,OAAOyF,KAAKoB,EAAMH,aAU1ErC,EAAKkD,IAAM,SAAUC,EAASC,GAC5B,IAAIC,EAAoB,EAExB,IAAK,IAAIzB,KAAauB,EACH,UAAbvB,IACJyB,GAAqB1H,OAAOyF,KAAK+B,EAAQvB,IAAYP,QAGvD,IAAIiC,GAAKF,EAAgBC,EAAoB,KAAQA,EAAoB,IAEzE,OAAOjG,KAAKmG,IAAI,EAAInG,KAAKoG,IAAIF,KAW/BtD,EAAKyD,MAAQ,SAAUC,EAAKC,GAC1BlG,KAAKiG,IAAMA,GAAO,GAClBjG,KAAKkG,SAAWA,GAAY,IAQ9B3D,EAAKyD,MAAM5G,UAAUqE,SAAW,WAC9B,OAAOzD,KAAKiG,KAuBd1D,EAAKyD,MAAM5G,UAAU+G,OAAS,SAAUC,GAEtC,OADApG,KAAKiG,IAAMG,EAAGpG,KAAKiG,IAAKjG,KAAKkG,UACtBlG,MAUTuC,EAAKyD,MAAM5G,UAAUsE,MAAQ,SAAU0C,GAErC,OADAA,EAAKA,GAAM,SAAU7G,GAAK,OAAOA,GAC1B,IAAIgD,EAAKyD,MAAOI,EAAGpG,KAAKiG,IAAKjG,KAAKkG,UAAWlG,KAAKkG;;;;IAyB3D3D,EAAK8D,UAAY,SAAU7C,EAAK0C,GAC9B,GAAW,MAAP1C,GAAsBkB,MAAPlB,EACjB,MAAO,GAGT,GAAIM,MAAMC,QAAQP,GAChB,OAAOA,EAAI8C,KAAI,SAAU5H,GACvB,OAAO,IAAI6D,EAAKyD,MACdzD,EAAKY,MAAMI,SAAS7E,GAAG6H,cACvBhE,EAAKY,MAAMO,MAAMwC,OASvB,IAJA,IAAID,EAAMzC,EAAIC,WAAW8C,cACrBC,EAAMP,EAAIrC,OACV6C,EAAS,GAEJC,EAAW,EAAGC,EAAa,EAAGD,GAAYF,EAAKE,IAAY,CAClE,IACIE,EAAcF,EAAWC,EAE7B,GAHWV,EAAIY,OAAOH,GAGZI,MAAMvE,EAAK8D,UAAUU,YAAcL,GAAYF,EAAM,CAE7D,GAAII,EAAc,EAAG,CACnB,IAAII,EAAgBzE,EAAKY,MAAMO,MAAMwC,IAAa,GAClDc,EAAwB,SAAI,CAACL,EAAYC,GACzCI,EAAqB,MAAIP,EAAO7C,OAEhC6C,EAAOlB,KACL,IAAIhD,EAAKyD,MACPC,EAAIjC,MAAM2C,EAAYD,GACtBM,IAKNL,EAAaD,EAAW,GAK5B,OAAOD,GAUTlE,EAAK8D,UAAUU,UAAY;;;;IAmC3BxE,EAAK0E,SAAW,WACdjH,KAAKkH,OAAS,IAGhB3E,EAAK0E,SAASE,oBAAsBjJ,OAAOY,OAAO,MAmClDyD,EAAK0E,SAASG,iBAAmB,SAAUhB,EAAIiB,GACzCA,KAASrH,KAAKmH,qBAChB5E,EAAKY,MAAMC,KAAK,6CAA+CiE,GAGjEjB,EAAGiB,MAAQA,EACX9E,EAAK0E,SAASE,oBAAoBf,EAAGiB,OAASjB,GAShD7D,EAAK0E,SAASK,4BAA8B,SAAUlB,GACjCA,EAAGiB,OAAUjB,EAAGiB,SAASrH,KAAKmH,qBAG/C5E,EAAKY,MAAMC,KAAK,kGAAmGgD,IAcvH7D,EAAK0E,SAASM,KAAO,SAAUC,GAC7B,IAAI7E,EAAW,IAAIJ,EAAK0E,SAYxB,OAVAO,EAAWC,SAAQ,SAAUC,GAC3B,IAAItB,EAAK7D,EAAK0E,SAASE,oBAAoBO,GAE3C,IAAItB,EAGF,MAAM,IAAIuB,MAAM,sCAAwCD,GAFxD/E,EAASC,IAAIwD,MAMVzD,GAUTJ,EAAK0E,SAAS7H,UAAUwD,IAAM,WAC5B,IAAIgF,EAAM9D,MAAM1E,UAAU4E,MAAMrG,KAAKkK,WAErCD,EAAIH,SAAQ,SAAUrB,GACpB7D,EAAK0E,SAASK,4BAA4BlB,GAC1CpG,KAAKkH,OAAO3B,KAAKa,KAChBpG,OAYLuC,EAAK0E,SAAS7H,UAAU0I,MAAQ,SAAUC,EAAYC,GACpDzF,EAAK0E,SAASK,4BAA4BU,GAE1C,IAAIC,EAAMjI,KAAKkH,OAAO1C,QAAQuD,GAC9B,IAAY,GAARE,EACF,MAAM,IAAIN,MAAM,0BAGlBM,GAAY,EACZjI,KAAKkH,OAAOgB,OAAOD,EAAK,EAAGD,IAY7BzF,EAAK0E,SAAS7H,UAAU+I,OAAS,SAAUJ,EAAYC,GACrDzF,EAAK0E,SAASK,4BAA4BU,GAE1C,IAAIC,EAAMjI,KAAKkH,OAAO1C,QAAQuD,GAC9B,IAAY,GAARE,EACF,MAAM,IAAIN,MAAM,0BAGlB3H,KAAKkH,OAAOgB,OAAOD,EAAK,EAAGD,IAQ7BzF,EAAK0E,SAAS7H,UAAUgJ,OAAS,SAAUhC,GACzC,IAAI6B,EAAMjI,KAAKkH,OAAO1C,QAAQ4B,IAClB,GAAR6B,GAIJjI,KAAKkH,OAAOgB,OAAOD,EAAK,IAU1B1F,EAAK0E,SAAS7H,UAAUiJ,IAAM,SAAU5B,GAGtC,IAFA,IAAI6B,EAActI,KAAKkH,OAAOtD,OAErBnG,EAAI,EAAGA,EAAI6K,EAAa7K,IAAK,CAIpC,IAHA,IAAI2I,EAAKpG,KAAKkH,OAAOzJ,GACjB8K,EAAO,GAEFC,EAAI,EAAGA,EAAI/B,EAAO7C,OAAQ4E,IAAK,CACtC,IAAIC,EAASrC,EAAGK,EAAO+B,GAAIA,EAAG/B,GAE9B,GAAIgC,SAAmD,KAAXA,EAE5C,GAAI3E,MAAMC,QAAQ0E,GAChB,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAO7E,OAAQ8E,IACjCH,EAAKhD,KAAKkD,EAAOC,SAGnBH,EAAKhD,KAAKkD,GAIdhC,EAAS8B,EAGX,OAAO9B,GAaTlE,EAAK0E,SAAS7H,UAAUuJ,UAAY,SAAU1C,EAAKC,GACjD,IAAI0C,EAAQ,IAAIrG,EAAKyD,MAAOC,EAAKC,GAEjC,OAAOlG,KAAKqI,IAAI,CAACO,IAAQtC,KAAI,SAAU5H,GACrC,OAAOA,EAAE+E,eAQblB,EAAK0E,SAAS7H,UAAUyJ,MAAQ,WAC9B7I,KAAKkH,OAAS,IAUhB3E,EAAK0E,SAAS7H,UAAU0J,OAAS,WAC/B,OAAO9I,KAAKkH,OAAOZ,KAAI,SAAUF,GAG/B,OAFA7D,EAAK0E,SAASK,4BAA4BlB,GAEnCA,EAAGiB;;;;IAwBd9E,EAAKwG,OAAS,SAAUnE,GACtB5E,KAAKgJ,WAAa,EAClBhJ,KAAK4E,SAAWA,GAAY,IAc9BrC,EAAKwG,OAAO3J,UAAU6J,iBAAmB,SAAUC,GAEjD,GAA4B,GAAxBlJ,KAAK4E,SAAShB,OAChB,OAAO,EAST,IANA,IAAIuF,EAAQ,EACRC,EAAMpJ,KAAK4E,SAAShB,OAAS,EAC7BgD,EAAcwC,EAAMD,EACpBE,EAAa1J,KAAK2J,MAAM1C,EAAc,GACtC2C,EAAavJ,KAAK4E,SAAsB,EAAbyE,GAExBzC,EAAc,IACf2C,EAAaL,IACfC,EAAQE,GAGNE,EAAaL,IACfE,EAAMC,GAGJE,GAAcL,IAIlBtC,EAAcwC,EAAMD,EACpBE,EAAaF,EAAQxJ,KAAK2J,MAAM1C,EAAc,GAC9C2C,EAAavJ,KAAK4E,SAAsB,EAAbyE,GAG7B,OAAIE,GAAcL,GAIdK,EAAaL,EAHK,EAAbG,EAOLE,EAAaL,EACW,GAAlBG,EAAa,QADvB,GAcF9G,EAAKwG,OAAO3J,UAAUoK,OAAS,SAAUC,EAAW5F,GAClD7D,KAAK0J,OAAOD,EAAW5F,GAAK,WAC1B,KAAM,sBAYVtB,EAAKwG,OAAO3J,UAAUsK,OAAS,SAAUD,EAAW5F,EAAKuC,GACvDpG,KAAKgJ,WAAa,EAClB,IAAIW,EAAW3J,KAAKiJ,iBAAiBQ,GAEjCzJ,KAAK4E,SAAS+E,IAAaF,EAC7BzJ,KAAK4E,SAAS+E,EAAW,GAAKvD,EAAGpG,KAAK4E,SAAS+E,EAAW,GAAI9F,GAE9D7D,KAAK4E,SAASsD,OAAOyB,EAAU,EAAGF,EAAW5F,IASjDtB,EAAKwG,OAAO3J,UAAUwK,UAAY,WAChC,GAAI5J,KAAKgJ,WAAY,OAAOhJ,KAAKgJ,WAKjC,IAHA,IAAIa,EAAe,EACfC,EAAiB9J,KAAK4E,SAAShB,OAE1BnG,EAAI,EAAGA,EAAIqM,EAAgBrM,GAAK,EAAG,CAC1C,IAAIoG,EAAM7D,KAAK4E,SAASnH,GACxBoM,GAAgBhG,EAAMA,EAGxB,OAAO7D,KAAKgJ,WAAarJ,KAAKoK,KAAKF,IASrCtH,EAAKwG,OAAO3J,UAAU4K,IAAM,SAAUC,GAOpC,IANA,IAAIC,EAAa,EACb/E,EAAInF,KAAK4E,SAAUQ,EAAI6E,EAAYrF,SACnCuF,EAAOhF,EAAEvB,OAAQwG,EAAOhF,EAAExB,OAC1ByG,EAAO,EAAGC,EAAO,EACjB7M,EAAI,EAAG+K,EAAI,EAER/K,EAAI0M,GAAQ3B,EAAI4B,IACrBC,EAAOlF,EAAE1H,KAAI6M,EAAOlF,EAAEoD,IAEpB/K,GAAK,EACI4M,EAAOC,EAChB9B,GAAK,EACI6B,GAAQC,IACjBJ,GAAc/E,EAAE1H,EAAI,GAAK2H,EAAEoD,EAAI,GAC/B/K,GAAK,EACL+K,GAAK,GAIT,OAAO0B,GAUT3H,EAAKwG,OAAO3J,UAAUmL,WAAa,SAAUN,GAC3C,OAAOjK,KAAKgK,IAAIC,GAAejK,KAAK4J,aAAe,GAQrDrH,EAAKwG,OAAO3J,UAAUoL,QAAU,WAG9B,IAFA,IAAIC,EAAS,IAAI3G,MAAO9D,KAAK4E,SAAShB,OAAS,GAEtCnG,EAAI,EAAG+K,EAAI,EAAG/K,EAAIuC,KAAK4E,SAAShB,OAAQnG,GAAK,EAAG+K,IACvDiC,EAAOjC,GAAKxI,KAAK4E,SAASnH,GAG5B,OAAOgN,GAQTlI,EAAKwG,OAAO3J,UAAU0J,OAAS,WAC7B,OAAO9I,KAAK4E;;;;;IAoBdrC,EAAKQ,SACCjC,EAAY,CACZ4J,QAAY,MACZC,OAAW,OACXC,KAAS,OACTC,KAAS,OACTC,KAAS,MACTC,IAAQ,MACRC,KAAS,KACTC,MAAU,MACVC,IAAQ,IACRC,MAAU,MACVC,QAAY,MACZC,MAAU,MACVC,KAAS,MACTC,MAAU,KACVC,QAAY,MACZC,QAAY,MACZC,QAAY,MACZC,MAAU,KACVC,MAAU,MACVC,OAAW,MACXC,KAAS,OAGX/K,EAAY,CACVgL,MAAU,KACVC,MAAU,GACVC,MAAU,KACVC,MAAU,KACVC,KAAS,KACTC,IAAQ,GACRC,KAAS,IAIXrL,EAAI,WACJC,EAAIpD,qBAQFqD,EAAU,IAAIoL,OALT,4DAMLnL,EAAU,IAAImL,OAJT,8FAKLlL,EAAU,IAAIkL,OANT,gFAOLjL,EAAS,IAAIiL,OALT,kCAOJhL,EAAQ,kBACRC,EAAS,iBACTC,EAAQ,aACRC,EAAS,kBACTC,EAAU,KACVC,EAAW,cACXC,EAAW,IAAI0K,OAAO,sBACtBzK,EAAW,IAAIyK,OAAO,IAAMrL,EAAID,EAAI,gBAEpCc,EAAQ,mBACRC,EAAO,2IAEPC,EAAO,iDAEPC,EAAO,sFACPC,EAAQ,oBAERC,EAAO,WACPC,EAAS,MACTC,EAAQ,IAAIiK,OAAO,IAAMrL,EAAID,EAAI,gBAEjCsB,EAAgB,SAAuBiK,GACzC,IAAIC,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEF,GAAIP,EAAE3I,OAAS,EAAK,OAAO2I,EAiB3B,GAde,MADfG,EAAUH,EAAEQ,OAAO,EAAE,MAEnBR,EAAIG,EAAQM,cAAgBT,EAAEQ,OAAO,IAKvCH,EAAMrL,GADNoL,EAAKrL,GAGE2L,KAAKV,GAAMA,EAAIA,EAAEW,QAAQP,EAAG,QAC1BC,EAAIK,KAAKV,KAAMA,EAAIA,EAAEW,QAAQN,EAAI,SAI1CA,EAAMnL,GADNkL,EAAKnL,GAEEyL,KAAKV,GAAI,CACd,IAAIY,EAAKR,EAAGS,KAAKb,IACjBI,EAAKzL,GACE+L,KAAKE,EAAG,MACbR,EAAKjL,EACL6K,EAAIA,EAAEW,QAAQP,EAAG,UAEVC,EAAIK,KAAKV,KAElBC,GADIW,EAAKP,EAAIQ,KAAKb,IACR,IACVK,EAAMvL,GACE4L,KAAKT,KAGXK,EAAMjL,EACNkL,EAAMjL,GAFN+K,EAAMjL,GAGEsL,KAJRV,EAAIC,GAIeD,GAAQ,IAClBM,EAAII,KAAKV,IAAMI,EAAKjL,EAAS6K,EAAIA,EAAEW,QAAQP,EAAG,KAC9CG,EAAIG,KAAKV,KAAMA,GAAQ,OAiFpC,OA5EAI,EAAK7K,GACEmL,KAAKV,KAGVA,GADAC,GADIW,EAAKR,EAAGS,KAAKb,IACP,IACC,MAIbI,EAAK5K,GACEkL,KAAKV,KAEVC,GADIW,EAAKR,EAAGS,KAAKb,IACP,GACVE,EAASU,EAAG,IACZR,EAAKzL,GACE+L,KAAKT,KACVD,EAAIC,EAAO1L,EAAU2L,MAKzBE,EAAK3K,GACEiL,KAAKV,KAEVC,GADIW,EAAKR,EAAGS,KAAKb,IACP,GACVE,EAASU,EAAG,IACZR,EAAKzL,GACE+L,KAAKT,KACVD,EAAIC,EAAOzL,EAAU0L,KAMzBG,EAAM1K,GADNyK,EAAK1K,GAEEgL,KAAKV,IAEVC,GADIW,EAAKR,EAAGS,KAAKb,IACP,IACVI,EAAKxL,GACE8L,KAAKT,KACVD,EAAIC,IAEGI,EAAIK,KAAKV,KAElBC,GADIW,EAAKP,EAAIQ,KAAKb,IACR,GAAKY,EAAG,IAClBP,EAAMzL,GACE8L,KAAKT,KACXD,EAAIC,KAKRG,EAAKxK,GACE8K,KAAKV,KAEVC,GADIW,EAAKR,EAAGS,KAAKb,IACP,GAEVK,EAAMxL,EACNyL,EAAMxK,IAFNsK,EAAKxL,GAGE8L,KAAKT,IAAUI,EAAIK,KAAKT,KAAWK,EAAII,KAAKT,MACjDD,EAAIC,IAKRI,EAAMzL,GADNwL,EAAKvK,GAEE6K,KAAKV,IAAMK,EAAIK,KAAKV,KACzBI,EAAKjL,EACL6K,EAAIA,EAAEW,QAAQP,EAAG,KAKJ,KAAXD,IACFH,EAAIG,EAAQnG,cAAgBgG,EAAEQ,OAAO,IAGhCR,GAGF,SAAU3D,GACf,OAAOA,EAAMzC,OAAO7D,KAIxBC,EAAK0E,SAASG,iBAAiB7E,EAAKQ,QAAS;;;;IAmB7CR,EAAK8K,uBAAyB,SAAUC,GACtC,IAAIC,EAAQD,EAAUE,QAAO,SAAUjF,EAAMkF,GAE3C,OADAlF,EAAKkF,GAAYA,EACVlF,IACN,IAEH,OAAO,SAAUK,GACf,GAAIA,GAAS2E,EAAM3E,EAAMnF,cAAgBmF,EAAMnF,WAAY,OAAOmF,IAiBtErG,EAAKO,eAAiBP,EAAK8K,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,SAGF9K,EAAK0E,SAASG,iBAAiB7E,EAAKO,eAAgB;;;;IAqBpDP,EAAKM,QAAU,SAAU+F,GACvB,OAAOA,EAAMzC,QAAO,SAAU5G,GAC5B,OAAOA,EAAE2N,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,QAIjD3K,EAAK0E,SAASG,iBAAiB7E,EAAKM,QAAS;;;;IA2B7CN,EAAKmL,SAAW,WACd1N,KAAK2N,OAAQ,EACb3N,KAAK4N,MAAQ,GACb5N,KAAK6N,GAAKtL,EAAKmL,SAASI,QACxBvL,EAAKmL,SAASI,SAAW,GAW3BvL,EAAKmL,SAASI,QAAU,EASxBvL,EAAKmL,SAASK,UAAY,SAAUC,GAGlC,IAFA,IAAIvL,EAAU,IAAIF,EAAKmL,SAAShL,QAEvBjF,EAAI,EAAG+I,EAAMwH,EAAIpK,OAAQnG,EAAI+I,EAAK/I,IACzCgF,EAAQ+G,OAAOwE,EAAIvQ,IAIrB,OADAgF,EAAQwL,SACDxL,EAAQyL,MAYjB3L,EAAKmL,SAASS,WAAa,SAAUC,GACnC,MAAI,iBAAkBA,EACb7L,EAAKmL,SAASW,gBAAgBD,EAAOE,KAAMF,EAAOG,cAElDhM,EAAKmL,SAASnJ,WAAW6J,EAAOE,OAmB3C/L,EAAKmL,SAASW,gBAAkB,SAAUpI,EAAKsI,GAS7C,IARA,IAAIL,EAAO,IAAI3L,EAAKmL,SAEhBc,EAAQ,CAAC,CACXC,KAAMP,EACNQ,eAAgBH,EAChBtI,IAAKA,IAGAuI,EAAM5K,QAAQ,CACnB,IAAI+K,EAAQH,EAAMI,MAGlB,GAAID,EAAM1I,IAAIrC,OAAS,EAAG,CACxB,IACIiL,EADAC,EAAOH,EAAM1I,IAAIY,OAAO,GAGxBiI,KAAQH,EAAMF,KAAKb,MACrBiB,EAAaF,EAAMF,KAAKb,MAAMkB,IAE9BD,EAAa,IAAItM,EAAKmL,SACtBiB,EAAMF,KAAKb,MAAMkB,GAAQD,GAGH,GAApBF,EAAM1I,IAAIrC,SACZiL,EAAWlB,OAAQ,GAGrBa,EAAMjJ,KAAK,CACTkJ,KAAMI,EACNH,eAAgBC,EAAMD,eACtBzI,IAAK0I,EAAM1I,IAAIjC,MAAM,KAIzB,GAA4B,GAAxB2K,EAAMD,eAAV,CAKA,GAAI,MAAOC,EAAMF,KAAKb,MACpB,IAAImB,EAAgBJ,EAAMF,KAAKb,MAAM,SAChC,CACDmB,EAAgB,IAAIxM,EAAKmL,SAC7BiB,EAAMF,KAAKb,MAAM,KAAOmB,EAiC1B,GA9BwB,GAApBJ,EAAM1I,IAAIrC,SACZmL,EAAcpB,OAAQ,GAGxBa,EAAMjJ,KAAK,CACTkJ,KAAMM,EACNL,eAAgBC,EAAMD,eAAiB,EACvCzI,IAAK0I,EAAM1I,MAMT0I,EAAM1I,IAAIrC,OAAS,GACrB4K,EAAMjJ,KAAK,CACTkJ,KAAME,EAAMF,KACZC,eAAgBC,EAAMD,eAAiB,EACvCzI,IAAK0I,EAAM1I,IAAIjC,MAAM,KAMD,GAApB2K,EAAM1I,IAAIrC,SACZ+K,EAAMF,KAAKd,OAAQ,GAMjBgB,EAAM1I,IAAIrC,QAAU,EAAG,CACzB,GAAI,MAAO+K,EAAMF,KAAKb,MACpB,IAAIoB,EAAmBL,EAAMF,KAAKb,MAAM,SACnC,CACDoB,EAAmB,IAAIzM,EAAKmL,SAChCiB,EAAMF,KAAKb,MAAM,KAAOoB,EAGF,GAApBL,EAAM1I,IAAIrC,SACZoL,EAAiBrB,OAAQ,GAG3Ba,EAAMjJ,KAAK,CACTkJ,KAAMO,EACNN,eAAgBC,EAAMD,eAAiB,EACvCzI,IAAK0I,EAAM1I,IAAIjC,MAAM,KAOzB,GAAI2K,EAAM1I,IAAIrC,OAAS,EAAG,CACxB,IAEIqL,EAFAC,EAAQP,EAAM1I,IAAIY,OAAO,GACzBsI,EAAQR,EAAM1I,IAAIY,OAAO,GAGzBsI,KAASR,EAAMF,KAAKb,MACtBqB,EAAgBN,EAAMF,KAAKb,MAAMuB,IAEjCF,EAAgB,IAAI1M,EAAKmL,SACzBiB,EAAMF,KAAKb,MAAMuB,GAASF,GAGJ,GAApBN,EAAM1I,IAAIrC,SACZqL,EAActB,OAAQ,GAGxBa,EAAMjJ,KAAK,CACTkJ,KAAMQ,EACNP,eAAgBC,EAAMD,eAAiB,EACvCzI,IAAKiJ,EAAQP,EAAM1I,IAAIjC,MAAM,OAKnC,OAAOkK,GAaT3L,EAAKmL,SAASnJ,WAAa,SAAU0B,GAYnC,IAXA,IAAIwI,EAAO,IAAIlM,EAAKmL,SAChBQ,EAAOO,EAUFhR,EAAI,EAAG+I,EAAMP,EAAIrC,OAAQnG,EAAI+I,EAAK/I,IAAK,CAC9C,IAAIqR,EAAO7I,EAAIxI,GACXkQ,EAASlQ,GAAK+I,EAAM,EAExB,GAAY,KAARsI,EACFL,EAAKb,MAAMkB,GAAQL,EACnBA,EAAKd,MAAQA,MAER,CACL,IAAIyB,EAAO,IAAI7M,EAAKmL,SACpB0B,EAAKzB,MAAQA,EAEbc,EAAKb,MAAMkB,GAAQM,EACnBX,EAAOW,GAIX,OAAOlB,GAaT3L,EAAKmL,SAAStO,UAAUoL,QAAU,WAQhC,IAPA,IAAI+C,EAAQ,GAERiB,EAAQ,CAAC,CACXa,OAAQ,GACRZ,KAAMzO,OAGDwO,EAAM5K,QAAQ,CACnB,IAAI+K,EAAQH,EAAMI,MACdhB,EAAQ1P,OAAOyF,KAAKgL,EAAMF,KAAKb,OAC/BpH,EAAMoH,EAAMhK,OAEZ+K,EAAMF,KAAKd,QAKbgB,EAAMU,OAAOxI,OAAO,GACpB0G,EAAMhI,KAAKoJ,EAAMU,SAGnB,IAAK,IAAI5R,EAAI,EAAGA,EAAI+I,EAAK/I,IAAK,CAC5B,IAAI6R,EAAO1B,EAAMnQ,GAEjB+Q,EAAMjJ,KAAK,CACT8J,OAAQV,EAAMU,OAAO7J,OAAO8J,GAC5Bb,KAAME,EAAMF,KAAKb,MAAM0B,MAK7B,OAAO/B,GAaThL,EAAKmL,SAAStO,UAAUqE,SAAW,WASjC,GAAIzD,KAAKuP,KACP,OAAOvP,KAAKuP,KAOd,IAJA,IAAItJ,EAAMjG,KAAK2N,MAAQ,IAAM,IACzB6B,EAAStR,OAAOyF,KAAK3D,KAAK4N,OAAO6B,OACjCjJ,EAAMgJ,EAAO5L,OAERnG,EAAI,EAAGA,EAAI+I,EAAK/I,IAAK,CAC5B,IAAI4J,EAAQmI,EAAO/R,GAGnBwI,EAAMA,EAAMoB,EAFDrH,KAAK4N,MAAMvG,GAEGwG,GAG3B,OAAO5H,GAaT1D,EAAKmL,SAAStO,UAAU0F,UAAY,SAAUM,GAU5C,IATA,IAAIqF,EAAS,IAAIlI,EAAKmL,SAClBiB,OAAQjK,EAER8J,EAAQ,CAAC,CACXkB,MAAOtK,EACPqF,OAAQA,EACRgE,KAAMzO,OAGDwO,EAAM5K,QAAQ,CACnB+K,EAAQH,EAAMI,MAWd,IALA,IAAIe,EAASzR,OAAOyF,KAAKgL,EAAMe,MAAM9B,OACjCgC,EAAOD,EAAO/L,OACdiM,EAAS3R,OAAOyF,KAAKgL,EAAMF,KAAKb,OAChCkC,EAAOD,EAAOjM,OAETmM,EAAI,EAAGA,EAAIH,EAAMG,IAGxB,IAFA,IAAIC,EAAQL,EAAOI,GAEV9Q,EAAI,EAAGA,EAAI6Q,EAAM7Q,IAAK,CAC7B,IAAIgR,EAAQJ,EAAO5Q,GAEnB,GAAIgR,GAASD,GAAkB,KAATA,EAAc,CAClC,IAAIvB,EAAOE,EAAMF,KAAKb,MAAMqC,GACxBP,EAAQf,EAAMe,MAAM9B,MAAMoC,GAC1BrC,EAAQc,EAAKd,OAAS+B,EAAM/B,MAC5ByB,OAAO1K,EAEPuL,KAAStB,EAAMlE,OAAOmD,OAIxBwB,EAAOT,EAAMlE,OAAOmD,MAAMqC,IACrBtC,MAAQyB,EAAKzB,OAASA,IAM3ByB,EAAO,IAAI7M,EAAKmL,UACXC,MAAQA,EACbgB,EAAMlE,OAAOmD,MAAMqC,GAASb,GAG9BZ,EAAMjJ,KAAK,CACTmK,MAAOA,EACPjF,OAAQ2E,EACRX,KAAMA,MAOhB,OAAOhE,GAETlI,EAAKmL,SAAShL,QAAU,WACtB1C,KAAKkQ,aAAe,GACpBlQ,KAAKkO,KAAO,IAAI3L,EAAKmL,SACrB1N,KAAKmQ,eAAiB,GACtBnQ,KAAKoQ,eAAiB,IAGxB7N,EAAKmL,SAAShL,QAAQtD,UAAUoK,OAAS,SAAU6G,GACjD,IAAI5B,EACA6B,EAAe,EAEnB,GAAID,EAAOrQ,KAAKkQ,aACd,MAAM,IAAIvI,MAAO,+BAGnB,IAAK,IAAIlK,EAAI,EAAGA,EAAI4S,EAAKzM,QAAUnG,EAAIuC,KAAKkQ,aAAatM,QACnDyM,EAAK5S,IAAMuC,KAAKkQ,aAAazS,GAD8BA,IAE/D6S,IAGFtQ,KAAKuQ,SAASD,GAGZ7B,EADgC,GAA9BzO,KAAKmQ,eAAevM,OACf5D,KAAKkO,KAELlO,KAAKmQ,eAAenQ,KAAKmQ,eAAevM,OAAS,GAAG4M,MAG7D,IAAS/S,EAAI6S,EAAc7S,EAAI4S,EAAKzM,OAAQnG,IAAK,CAC/C,IAAIgT,EAAW,IAAIlO,EAAKmL,SACpBoB,EAAOuB,EAAK5S,GAEhBgR,EAAKb,MAAMkB,GAAQ2B,EAEnBzQ,KAAKmQ,eAAe5K,KAAK,CACvBmL,OAAQjC,EACRK,KAAMA,EACN0B,MAAOC,IAGThC,EAAOgC,EAGThC,EAAKd,OAAQ,EACb3N,KAAKkQ,aAAeG,GAGtB9N,EAAKmL,SAAShL,QAAQtD,UAAU6O,OAAS,WACvCjO,KAAKuQ,SAAS,IAGhBhO,EAAKmL,SAAShL,QAAQtD,UAAUmR,SAAW,SAAUI,GACnD,IAAK,IAAIlT,EAAIuC,KAAKmQ,eAAevM,OAAS,EAAGnG,GAAKkT,EAAQlT,IAAK,CAC7D,IAAIgR,EAAOzO,KAAKmQ,eAAe1S,GAC3BmT,EAAWnC,EAAK+B,MAAM/M,WAEtBmN,KAAY5Q,KAAKoQ,eACnB3B,EAAKiC,OAAO9C,MAAMa,EAAKK,MAAQ9O,KAAKoQ,eAAeQ,IAInDnC,EAAK+B,MAAMjB,KAAOqB,EAElB5Q,KAAKoQ,eAAeQ,GAAYnC,EAAK+B,OAGvCxQ,KAAKmQ,eAAevB;;;;IAwBxBrM,EAAKsO,MAAQ,SAAUC,GACrB9Q,KAAK+Q,cAAgBD,EAAMC,cAC3B/Q,KAAKgR,aAAeF,EAAME,aAC1BhR,KAAKiR,SAAWH,EAAMG,SACtBjR,KAAKkR,OAASJ,EAAMI,OACpBlR,KAAK2C,SAAWmO,EAAMnO,UA0ExBJ,EAAKsO,MAAMzR,UAAU+R,OAAS,SAAUC,GACtC,OAAOpR,KAAKqR,OAAM,SAAUA,GACb,IAAI9O,EAAK+O,YAAYF,EAAaC,GACxCE,YA6BXhP,EAAKsO,MAAMzR,UAAUiS,MAAQ,SAAUjL,GAoBrC,IAZA,IAAIiL,EAAQ,IAAI9O,EAAKiP,MAAMxR,KAAKkR,QAC5BO,EAAiBvT,OAAOY,OAAO,MAC/B4S,EAAexT,OAAOY,OAAO,MAC7B6S,EAAiBzT,OAAOY,OAAO,MAC/B8S,EAAkB1T,OAAOY,OAAO,MAChC+S,EAAoB3T,OAAOY,OAAO,MAO7BrB,EAAI,EAAGA,EAAIuC,KAAKkR,OAAOtN,OAAQnG,IACtCiU,EAAa1R,KAAKkR,OAAOzT,IAAM,IAAI8E,EAAKwG,OAG1C3C,EAAGzI,KAAK0T,EAAOA,GAEf,IAAS5T,EAAI,EAAGA,EAAI4T,EAAMS,QAAQlO,OAAQnG,IAAK,CAS7C,IAAI2Q,EAASiD,EAAMS,QAAQrU,GACvBsU,EAAQ,KACRC,EAAgBzP,EAAKoC,IAAIE,SAG3BkN,EADE3D,EAAO6D,YACDjS,KAAK2C,SAASgG,UAAUyF,EAAOE,KAAM,CAC3C4C,OAAQ9C,EAAO8C,SAGT,CAAC9C,EAAOE,MAGlB,IAAK,IAAI1Q,EAAI,EAAGA,EAAImU,EAAMnO,OAAQhG,IAAK,CACrC,IAAI0Q,EAAOyD,EAAMnU,GAQjBwQ,EAAOE,KAAOA,EAOd,IAAI4D,EAAe3P,EAAKmL,SAASS,WAAWC,GACxC+D,EAAgBnS,KAAKiR,SAASnM,UAAUoN,GAAc1H,UAQ1D,GAA6B,IAAzB2H,EAAcvO,QAAgBwK,EAAOgE,WAAa7P,EAAKiP,MAAMY,SAASC,SAAU,CAClF,IAAK,IAAI3J,EAAI,EAAGA,EAAI0F,EAAO8C,OAAOtN,OAAQ8E,IAAK,CAE7CkJ,EADIU,EAAQlE,EAAO8C,OAAOxI,IACDnG,EAAKoC,IAAIO,MAGpC,MAGF,IAAK,IAAIsD,EAAI,EAAGA,EAAI2J,EAAcvO,OAAQ4E,IAKxC,KAAI+J,EAAeJ,EAAc3J,GAC7B9C,EAAU1F,KAAK+Q,cAAcwB,GAC7BC,EAAY9M,EAAQ+M,OAExB,IAAS/J,EAAI,EAAGA,EAAI0F,EAAO8C,OAAOtN,OAAQ8E,IAAK,CAS7C,IACIgK,EAAehN,EADf4M,EAAQlE,EAAO8C,OAAOxI,IAEtBiK,EAAuBzU,OAAOyF,KAAK+O,GACnCE,EAAYL,EAAe,IAAMD,EACjCO,EAAuB,IAAItQ,EAAKoC,IAAIgO,GAoBxC,GAbIvE,EAAOgE,UAAY7P,EAAKiP,MAAMY,SAASC,WACzCL,EAAgBA,EAAchN,MAAM6N,QAELnO,IAA3BkN,EAAgBU,KAClBV,EAAgBU,GAAS/P,EAAKoC,IAAIE,WASlCuJ,EAAOgE,UAAY7P,EAAKiP,MAAMY,SAASU,YA4B3C,GANApB,EAAaY,GAAO5I,OAAO8I,EAAWpE,EAAO2E,OAAO,SAAU5N,EAAGC,GAAK,OAAOD,EAAIC,MAM7EuM,EAAeiB,GAAnB,CAIA,IAAK,IAAIlV,EAAI,EAAGA,EAAIiV,EAAqB/O,OAAQlG,IAAK,CAOpD,IAGIsV,EAHAC,EAAsBN,EAAqBjV,GAC3CwV,EAAmB,IAAI3Q,EAAK0B,SAAUgP,EAAqBX,GAC3DpM,EAAWwM,EAAaO,QAG4BvO,KAAnDsO,EAAavB,EAAeyB,IAC/BzB,EAAeyB,GAAoB,IAAI3Q,EAAK4Q,UAAWZ,EAAcD,EAAOpM,GAE5E8M,EAAWpQ,IAAI2P,EAAcD,EAAOpM,GAKxCyL,EAAeiB,IAAa,aAnDOlO,IAA7BmN,EAAkBS,KACpBT,EAAkBS,GAAS/P,EAAKoC,IAAIO,OAGtC2M,EAAkBS,GAAST,EAAkBS,GAAOtN,MAAM6N,KA0DlE,GAAIzE,EAAOgE,WAAa7P,EAAKiP,MAAMY,SAASC,SAC1C,IAAS3J,EAAI,EAAGA,EAAI0F,EAAO8C,OAAOtN,OAAQ8E,IAAK,CAE7CkJ,EADIU,EAAQlE,EAAO8C,OAAOxI,IACDkJ,EAAgBU,GAAOxN,UAAUkN,IAUhE,IAAIoB,EAAqB7Q,EAAKoC,IAAIE,SAC9BwO,EAAuB9Q,EAAKoC,IAAIO,MAEpC,IAASzH,EAAI,EAAGA,EAAIuC,KAAKkR,OAAOtN,OAAQnG,IAAK,CAC3C,IAAI6U,EAEAV,EAFAU,EAAQtS,KAAKkR,OAAOzT,MAGtB2V,EAAqBA,EAAmBtO,UAAU8M,EAAgBU,KAGhET,EAAkBS,KACpBe,EAAuBA,EAAqBrO,MAAM6M,EAAkBS,KAIxE,IAAIgB,EAAoBpV,OAAOyF,KAAK8N,GAChC8B,EAAU,GACVC,EAAUtV,OAAOY,OAAO,MAY5B,GAAIuS,EAAMoC,YAAa,CACrBH,EAAoBpV,OAAOyF,KAAK3D,KAAKgR,cAErC,IAASvT,EAAI,EAAGA,EAAI6V,EAAkB1P,OAAQnG,IAAK,CAC7CyV,EAAmBI,EAAkB7V,GAAzC,IACIgH,EAAWlC,EAAK0B,SAASM,WAAW2O,GACxCzB,EAAeyB,GAAoB,IAAI3Q,EAAK4Q,WAIhD,IAAS1V,EAAI,EAAGA,EAAI6V,EAAkB1P,OAAQnG,IAAK,CASjD,IACIyG,GADAO,EAAWlC,EAAK0B,SAASM,WAAW+O,EAAkB7V,KACpCyG,OAEtB,GAAKkP,EAAmBnO,SAASf,KAI7BmP,EAAqBpO,SAASf,GAAlC,CAIA,IAEIwP,EAFAC,EAAc3T,KAAKgR,aAAavM,GAChCmP,EAAQlC,EAAajN,EAASN,WAAWoG,WAAWoJ,GAGxD,QAAqCjP,KAAhCgP,EAAWF,EAAQtP,IACtBwP,EAASE,OAASA,EAClBF,EAASG,UAAUC,QAAQrC,EAAehN,QACrC,CACL,IAAIqC,EAAQ,CACViN,IAAK7P,EACL0P,MAAOA,EACPC,UAAWpC,EAAehN,IAE5B+O,EAAQtP,GAAU4C,EAClByM,EAAQhO,KAAKuB,KAOjB,OAAOyM,EAAQ9D,MAAK,SAAUtK,EAAGC,GAC/B,OAAOA,EAAEwO,MAAQzO,EAAEyO,UAYvBrR,EAAKsO,MAAMzR,UAAU0J,OAAS,WAC5B,IAAIiI,EAAgB7S,OAAOyF,KAAK3D,KAAK+Q,eAClCtB,OACAnJ,KAAI,SAAUgI,GACb,MAAO,CAACA,EAAMtO,KAAK+Q,cAAczC,MAChCtO,MAEDgR,EAAe9S,OAAOyF,KAAK3D,KAAKgR,cACjC1K,KAAI,SAAUyN,GACb,MAAO,CAACA,EAAK/T,KAAKgR,aAAa+C,GAAKjL,YACnC9I,MAEL,MAAO,CACLkD,QAASX,EAAKW,QACdgO,OAAQlR,KAAKkR,OACbF,aAAcA,EACdD,cAAeA,EACfpO,SAAU3C,KAAK2C,SAASmG,WAU5BvG,EAAKsO,MAAMtJ,KAAO,SAAUyM,GAC1B,IAAIlD,EAAQ,GACRE,EAAe,GACfiD,EAAoBD,EAAgBhD,aACpCD,EAAgB7S,OAAOY,OAAO,MAC9BoV,EAA0BF,EAAgBjD,cAC1CoD,EAAkB,IAAI5R,EAAKmL,SAAShL,QACpCC,EAAWJ,EAAK0E,SAASM,KAAKyM,EAAgBrR,UAE9CqR,EAAgB9Q,SAAWX,EAAKW,SAClCX,EAAKY,MAAMC,KAAK,4EAA8Eb,EAAKW,QAAU,sCAAwC8Q,EAAgB9Q,QAAU,KAGjL,IAAK,IAAIzF,EAAI,EAAGA,EAAIwW,EAAkBrQ,OAAQnG,IAAK,CACjD,IACIsW,GADAK,EAAQH,EAAkBxW,IACd,GACZmH,EAAWwP,EAAM,GAErBpD,EAAa+C,GAAO,IAAIxR,EAAKwG,OAAOnE,GAGtC,IAASnH,EAAI,EAAGA,EAAIyW,EAAwBtQ,OAAQnG,IAAK,CACvD,IAAI2W,EACA9F,GADA8F,EAAQF,EAAwBzW,IACnB,GACbiI,EAAU0O,EAAM,GAEpBD,EAAgB3K,OAAO8E,GACvByC,EAAczC,GAAQ5I,EAYxB,OATAyO,EAAgBlG,SAEhB6C,EAAMI,OAAS8C,EAAgB9C,OAE/BJ,EAAME,aAAeA,EACrBF,EAAMC,cAAgBA,EACtBD,EAAMG,SAAWkD,EAAgBjG,KACjC4C,EAAMnO,SAAWA,EAEV,IAAIJ,EAAKsO,MAAMC;;;;IA+BxBvO,EAAKG,QAAU,WACb1C,KAAKqU,KAAO,KACZrU,KAAKsU,QAAUpW,OAAOY,OAAO,MAC7BkB,KAAKuU,WAAarW,OAAOY,OAAO,MAChCkB,KAAK+Q,cAAgB7S,OAAOY,OAAO,MACnCkB,KAAKwU,qBAAuB,GAC5BxU,KAAKyU,aAAe,GACpBzU,KAAKqG,UAAY9D,EAAK8D,UACtBrG,KAAK2C,SAAW,IAAIJ,EAAK0E,SACzBjH,KAAKgD,eAAiB,IAAIT,EAAK0E,SAC/BjH,KAAK2F,cAAgB,EACrB3F,KAAK0U,GAAK,IACV1U,KAAK2U,IAAM,IACX3U,KAAKwS,UAAY,EACjBxS,KAAK4U,kBAAoB,IAe3BrS,EAAKG,QAAQtD,UAAU2U,IAAM,SAAUA,GACrC/T,KAAKqU,KAAON,GAmCdxR,EAAKG,QAAQtD,UAAUkT,MAAQ,SAAUnO,EAAW0Q,GAClD,GAAI,KAAK5H,KAAK9I,GACZ,MAAM,IAAI2Q,WAAY,UAAY3Q,EAAY,oCAGhDnE,KAAKsU,QAAQnQ,GAAa0Q,GAAc,IAW1CtS,EAAKG,QAAQtD,UAAUgG,EAAI,SAAU2P,GAEjC/U,KAAK0U,GADHK,EAAS,EACD,EACDA,EAAS,EACR,EAEAA,GAWdxS,EAAKG,QAAQtD,UAAU4V,GAAK,SAAUD,GACpC/U,KAAK2U,IAAMI,GAoBbxS,EAAKG,QAAQtD,UAAUwD,IAAM,SAAUqS,EAAKJ,GAC1C,IAAI3Q,EAAS+Q,EAAIjV,KAAKqU,MAClBnD,EAAShT,OAAOyF,KAAK3D,KAAKsU,SAE9BtU,KAAKuU,WAAWrQ,GAAU2Q,GAAc,GACxC7U,KAAK2F,eAAiB,EAEtB,IAAK,IAAIlI,EAAI,EAAGA,EAAIyT,EAAOtN,OAAQnG,IAAK,CACtC,IAAI0G,EAAY+M,EAAOzT,GACnByX,EAAYlV,KAAKsU,QAAQnQ,GAAW+Q,UACpC5C,EAAQ4C,EAAYA,EAAUD,GAAOA,EAAI9Q,GACzCsC,EAASzG,KAAKqG,UAAUiM,EAAO,CAC7BpB,OAAQ,CAAC/M,KAEX4N,EAAQ/R,KAAK2C,SAAS0F,IAAI5B,GAC1BhC,EAAW,IAAIlC,EAAK0B,SAAUC,EAAQC,GACtCgR,EAAajX,OAAOY,OAAO,MAE/BkB,KAAKwU,qBAAqB/P,GAAY0Q,EACtCnV,KAAKyU,aAAahQ,GAAY,EAG9BzE,KAAKyU,aAAahQ,IAAasN,EAAMnO,OAGrC,IAAK,IAAI4E,EAAI,EAAGA,EAAIuJ,EAAMnO,OAAQ4E,IAAK,CACrC,IAAI8F,EAAOyD,EAAMvJ,GAUjB,GARwB9D,MAApByQ,EAAW7G,KACb6G,EAAW7G,GAAQ,GAGrB6G,EAAW7G,IAAS,EAIY5J,MAA5B1E,KAAK+Q,cAAczC,GAAoB,CACzC,IAAI5I,EAAUxH,OAAOY,OAAO,MAC5B4G,EAAgB,OAAI1F,KAAKwS,UACzBxS,KAAKwS,WAAa,EAElB,IAAK,IAAI9J,EAAI,EAAGA,EAAIwI,EAAOtN,OAAQ8E,IACjChD,EAAQwL,EAAOxI,IAAMxK,OAAOY,OAAO,MAGrCkB,KAAK+Q,cAAczC,GAAQ5I,EAIsBhB,MAA/C1E,KAAK+Q,cAAczC,GAAMnK,GAAWD,KACtClE,KAAK+Q,cAAczC,GAAMnK,GAAWD,GAAUhG,OAAOY,OAAO,OAK9D,IAAK,IAAIpB,EAAI,EAAGA,EAAIsC,KAAK4U,kBAAkBhR,OAAQlG,IAAK,CACtD,IAAI0X,EAAcpV,KAAK4U,kBAAkBlX,GACrCwI,EAAWoI,EAAKpI,SAASkP,GAEmC1Q,MAA5D1E,KAAK+Q,cAAczC,GAAMnK,GAAWD,GAAQkR,KAC9CpV,KAAK+Q,cAAczC,GAAMnK,GAAWD,GAAQkR,GAAe,IAG7DpV,KAAK+Q,cAAczC,GAAMnK,GAAWD,GAAQkR,GAAa7P,KAAKW,OAYtE3D,EAAKG,QAAQtD,UAAUiW,6BAA+B,WAOpD,IALA,IAAIC,EAAYpX,OAAOyF,KAAK3D,KAAKyU,cAC7Bc,EAAiBD,EAAU1R,OAC3B4R,EAAc,GACdC,EAAqB,GAEhBhY,EAAI,EAAGA,EAAI8X,EAAgB9X,IAAK,CACvC,IAAIgH,EAAWlC,EAAK0B,SAASM,WAAW+Q,EAAU7X,IAC9C6U,EAAQ7N,EAASN,UAErBsR,EAAmBnD,KAAWmD,EAAmBnD,GAAS,GAC1DmD,EAAmBnD,IAAU,EAE7BkD,EAAYlD,KAAWkD,EAAYlD,GAAS,GAC5CkD,EAAYlD,IAAUtS,KAAKyU,aAAahQ,GAG1C,IAAIyM,EAAShT,OAAOyF,KAAK3D,KAAKsU,SAE9B,IAAS7W,EAAI,EAAGA,EAAIyT,EAAOtN,OAAQnG,IAAK,CACtC,IAAI0G,EAAY+M,EAAOzT,GACvB+X,EAAYrR,GAAaqR,EAAYrR,GAAasR,EAAmBtR,GAGvEnE,KAAK0V,mBAAqBF,GAQ5BjT,EAAKG,QAAQtD,UAAUuW,mBAAqB,WAM1C,IALA,IAAI3E,EAAe,GACfsE,EAAYpX,OAAOyF,KAAK3D,KAAKwU,sBAC7BoB,EAAkBN,EAAU1R,OAC5BiS,EAAe3X,OAAOY,OAAO,MAExBrB,EAAI,EAAGA,EAAImY,EAAiBnY,IAAK,CAaxC,IAZA,IAAIgH,EAAWlC,EAAK0B,SAASM,WAAW+Q,EAAU7X,IAC9C0G,EAAYM,EAASN,UACrB2R,EAAc9V,KAAKyU,aAAahQ,GAChCkP,EAAc,IAAIpR,EAAKwG,OACvBgN,EAAkB/V,KAAKwU,qBAAqB/P,GAC5CsN,EAAQ7T,OAAOyF,KAAKoS,GACpBC,EAAcjE,EAAMnO,OAGpBqS,EAAajW,KAAKsU,QAAQnQ,GAAW4O,OAAS,EAC9CmD,EAAWlW,KAAKuU,WAAW9P,EAASP,QAAQ6O,OAAS,EAEhDvK,EAAI,EAAGA,EAAIwN,EAAaxN,IAAK,CACpC,IAGI/C,EAAKmO,EAAOuC,EAHZ7H,EAAOyD,EAAMvJ,GACb4N,EAAKL,EAAgBzH,GACrBkE,EAAYxS,KAAK+Q,cAAczC,GAAMmE,YAGd/N,IAAvBmR,EAAavH,IACf7I,EAAMlD,EAAKkD,IAAIzF,KAAK+Q,cAAczC,GAAOtO,KAAK2F,eAC9CkQ,EAAavH,GAAQ7I,GAErBA,EAAMoQ,EAAavH,GAGrBsF,EAAQnO,IAAQzF,KAAK2U,IAAM,GAAKyB,IAAOpW,KAAK2U,KAAO,EAAI3U,KAAK0U,GAAK1U,KAAK0U,IAAMoB,EAAc9V,KAAK0V,mBAAmBvR,KAAeiS,GACjIxC,GAASqC,EACTrC,GAASsC,EACTC,EAAqBxW,KAAK0W,MAAc,IAARzC,GAAgB,IAQhDD,EAAYnK,OAAOgJ,EAAW2D,GAGhCnF,EAAavM,GAAYkP,EAG3B3T,KAAKgR,aAAeA,GAQtBzO,EAAKG,QAAQtD,UAAUkX,eAAiB,WACtCtW,KAAKiR,SAAW1O,EAAKmL,SAASK,UAC5B7P,OAAOyF,KAAK3D,KAAK+Q,eAAetB,SAYpClN,EAAKG,QAAQtD,UAAU6D,MAAQ,WAK7B,OAJAjD,KAAKqV,+BACLrV,KAAK2V,qBACL3V,KAAKsW,iBAEE,IAAI/T,EAAKsO,MAAM,CACpBE,cAAe/Q,KAAK+Q,cACpBC,aAAchR,KAAKgR,aACnBC,SAAUjR,KAAKiR,SACfC,OAAQhT,OAAOyF,KAAK3D,KAAKsU,SACzB3R,SAAU3C,KAAKgD,kBAkBnBT,EAAKG,QAAQtD,UAAUmX,IAAM,SAAUnQ,GACrC,IAAIoQ,EAAO1S,MAAM1E,UAAU4E,MAAMrG,KAAKkK,UAAW,GACjD2O,EAAKC,QAAQzW,MACboG,EAAGsQ,MAAM1W,KAAMwW,IAcjBjU,EAAK4Q,UAAY,SAAU7E,EAAMgE,EAAOpM,GAStC,IARA,IAAIyQ,EAAiBzY,OAAOY,OAAO,MAC/B8X,EAAe1Y,OAAOyF,KAAKuC,GAAY,IAOlCzI,EAAI,EAAGA,EAAImZ,EAAahT,OAAQnG,IAAK,CAC5C,IAAIsB,EAAM6X,EAAanZ,GACvBkZ,EAAe5X,GAAOmH,EAASnH,GAAKiF,QAGtChE,KAAKkG,SAAWhI,OAAOY,OAAO,WAEjB4F,IAAT4J,IACFtO,KAAKkG,SAASoI,GAAQpQ,OAAOY,OAAO,MACpCkB,KAAKkG,SAASoI,GAAMgE,GAASqE,IAajCpU,EAAK4Q,UAAU/T,UAAU0U,QAAU,SAAU+C,GAG3C,IAFA,IAAI9E,EAAQ7T,OAAOyF,KAAKkT,EAAe3Q,UAE9BzI,EAAI,EAAGA,EAAIsU,EAAMnO,OAAQnG,IAAK,CACrC,IAAI6Q,EAAOyD,EAAMtU,GACbyT,EAAShT,OAAOyF,KAAKkT,EAAe3Q,SAASoI,IAEtB5J,MAAvB1E,KAAKkG,SAASoI,KAChBtO,KAAKkG,SAASoI,GAAQpQ,OAAOY,OAAO,OAGtC,IAAK,IAAI0J,EAAI,EAAGA,EAAI0I,EAAOtN,OAAQ4E,IAAK,CACtC,IAAI8J,EAAQpB,EAAO1I,GACf7E,EAAOzF,OAAOyF,KAAKkT,EAAe3Q,SAASoI,GAAMgE,IAEnB5N,MAA9B1E,KAAKkG,SAASoI,GAAMgE,KACtBtS,KAAKkG,SAASoI,GAAMgE,GAASpU,OAAOY,OAAO,OAG7C,IAAK,IAAI4J,EAAI,EAAGA,EAAI/E,EAAKC,OAAQ8E,IAAK,CACpC,IAAI3J,EAAM4E,EAAK+E,GAEwBhE,MAAnC1E,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAC7BiB,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAAO8X,EAAe3Q,SAASoI,GAAMgE,GAAOvT,GAEvEiB,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAAOiB,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAAKyG,OAAOqR,EAAe3Q,SAASoI,GAAMgE,GAAOvT,QAexHwD,EAAK4Q,UAAU/T,UAAUwD,IAAM,SAAU0L,EAAMgE,EAAOpM,GACpD,KAAMoI,KAAQtO,KAAKkG,UAGjB,OAFAlG,KAAKkG,SAASoI,GAAQpQ,OAAOY,OAAO,WACpCkB,KAAKkG,SAASoI,GAAMgE,GAASpM,GAI/B,GAAMoM,KAAStS,KAAKkG,SAASoI,GAO7B,IAFA,IAAIsI,EAAe1Y,OAAOyF,KAAKuC,GAEtBzI,EAAI,EAAGA,EAAImZ,EAAahT,OAAQnG,IAAK,CAC5C,IAAIsB,EAAM6X,EAAanZ,GAEnBsB,KAAOiB,KAAKkG,SAASoI,GAAMgE,GAC7BtS,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAAOiB,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAAKyG,OAAOU,EAASnH,IAElFiB,KAAKkG,SAASoI,GAAMgE,GAAOvT,GAAOmH,EAASnH,QAZ7CiB,KAAKkG,SAASoI,GAAMgE,GAASpM,GA2BjC3D,EAAKiP,MAAQ,SAAUsF,GACrB9W,KAAK8R,QAAU,GACf9R,KAAK8W,UAAYA,GA2BnBvU,EAAKiP,MAAMuF,SAAW,IAAIpW,OAAQ,KAClC4B,EAAKiP,MAAMuF,SAASC,KAAO,EAC3BzU,EAAKiP,MAAMuF,SAASE,QAAU,EAC9B1U,EAAKiP,MAAMuF,SAASG,SAAW,EAa/B3U,EAAKiP,MAAMY,SAAW,CAIpB+E,SAAU,EAMV9E,SAAU,EAMVS,WAAY,GA0BdvQ,EAAKiP,MAAMpS,UAAUgP,OAAS,SAAUA,GA+BtC,MA9BM,WAAYA,IAChBA,EAAO8C,OAASlR,KAAK8W,WAGjB,UAAW1I,IACfA,EAAO2E,MAAQ,GAGX,gBAAiB3E,IACrBA,EAAO6D,aAAc,GAGjB,aAAc7D,IAClBA,EAAO2I,SAAWxU,EAAKiP,MAAMuF,SAASC,MAGnC5I,EAAO2I,SAAWxU,EAAKiP,MAAMuF,SAASE,SAAa7I,EAAOE,KAAKzH,OAAO,IAAMtE,EAAKiP,MAAMuF,WAC1F3I,EAAOE,KAAO,IAAMF,EAAOE,MAGxBF,EAAO2I,SAAWxU,EAAKiP,MAAMuF,SAASG,UAAc9I,EAAOE,KAAKtK,OAAO,IAAMzB,EAAKiP,MAAMuF,WAC3F3I,EAAOE,KAAYF,EAAOE,KAAO,KAG7B,aAAcF,IAClBA,EAAOgE,SAAW7P,EAAKiP,MAAMY,SAAS+E,UAGxCnX,KAAK8R,QAAQvM,KAAK6I,GAEXpO,MAUTuC,EAAKiP,MAAMpS,UAAUqU,UAAY,WAC/B,IAAK,IAAIhW,EAAI,EAAGA,EAAIuC,KAAK8R,QAAQlO,OAAQnG,IACvC,GAAIuC,KAAK8R,QAAQrU,GAAG2U,UAAY7P,EAAKiP,MAAMY,SAASU,WAClD,OAAO,EAIX,OAAO,GA6BTvQ,EAAKiP,MAAMpS,UAAUkP,KAAO,SAAUA,EAAM8I,GAC1C,GAAItT,MAAMC,QAAQuK,GAEhB,OADAA,EAAK7G,SAAQ,SAAU/I,GAAKsB,KAAKsO,KAAK5P,EAAG6D,EAAKY,MAAMO,MAAM0T,MAAapX,MAChEA,KAGT,IAAIoO,EAASgJ,GAAW,GAKxB,OAJAhJ,EAAOE,KAAOA,EAAK7K,WAEnBzD,KAAKoO,OAAOA,GAELpO,MAETuC,EAAK8U,gBAAkB,SAAUhU,EAAS8F,EAAOC,GAC/CpJ,KAAKjC,KAAO,kBACZiC,KAAKqD,QAAUA,EACfrD,KAAKmJ,MAAQA,EACbnJ,KAAKoJ,IAAMA,GAGb7G,EAAK8U,gBAAgBjY,UAAY,IAAIuI,MACrCpF,EAAK+U,WAAa,SAAUrR,GAC1BjG,KAAKuX,QAAU,GACfvX,KAAKiG,IAAMA,EACXjG,KAAK4D,OAASqC,EAAIrC,OAClB5D,KAAKiI,IAAM,EACXjI,KAAKmJ,MAAQ,EACbnJ,KAAKwX,oBAAsB,IAG7BjV,EAAK+U,WAAWlY,UAAUiJ,IAAM,WAG9B,IAFA,IAAIoP,EAAQlV,EAAK+U,WAAWI,QAErBD,GACLA,EAAQA,EAAMzX,OAIlBuC,EAAK+U,WAAWlY,UAAUuY,YAAc,WAKtC,IAJA,IAAIC,EAAY,GACZjR,EAAa3G,KAAKmJ,MAClBzC,EAAW1G,KAAKiI,IAEXxK,EAAI,EAAGA,EAAIuC,KAAKwX,oBAAoB5T,OAAQnG,IACnDiJ,EAAW1G,KAAKwX,oBAAoB/Z,GACpCma,EAAUrS,KAAKvF,KAAKiG,IAAIjC,MAAM2C,EAAYD,IAC1CC,EAAaD,EAAW,EAM1B,OAHAkR,EAAUrS,KAAKvF,KAAKiG,IAAIjC,MAAM2C,EAAY3G,KAAKiI,MAC/CjI,KAAKwX,oBAAoB5T,OAAS,EAE3BgU,EAAUC,KAAK,KAGxBtV,EAAK+U,WAAWlY,UAAU0Y,KAAO,SAAUC,GACzC/X,KAAKuX,QAAQhS,KAAK,CAChBwS,KAAMA,EACN9R,IAAKjG,KAAK2X,cACVxO,MAAOnJ,KAAKmJ,MACZC,IAAKpJ,KAAKiI,MAGZjI,KAAKmJ,MAAQnJ,KAAKiI,KAGpB1F,EAAK+U,WAAWlY,UAAU4Y,gBAAkB,WAC1ChY,KAAKwX,oBAAoBjS,KAAKvF,KAAKiI,IAAM,GACzCjI,KAAKiI,KAAO,GAGd1F,EAAK+U,WAAWlY,UAAUgQ,KAAO,WAC/B,GAAIpP,KAAKiI,KAAOjI,KAAK4D,OACnB,OAAOrB,EAAK+U,WAAWW,IAGzB,IAAInJ,EAAO9O,KAAKiG,IAAIY,OAAO7G,KAAKiI,KAEhC,OADAjI,KAAKiI,KAAO,EACL6G,GAGTvM,EAAK+U,WAAWlY,UAAU8Y,MAAQ,WAChC,OAAOlY,KAAKiI,IAAMjI,KAAKmJ,OAGzB5G,EAAK+U,WAAWlY,UAAU+Y,OAAS,WAC7BnY,KAAKmJ,OAASnJ,KAAKiI,MACrBjI,KAAKiI,KAAO,GAGdjI,KAAKmJ,MAAQnJ,KAAKiI,KAGpB1F,EAAK+U,WAAWlY,UAAUgZ,OAAS,WACjCpY,KAAKiI,KAAO,GAGd1F,EAAK+U,WAAWlY,UAAUiZ,eAAiB,WACzC,IAAIvJ,EAAMwJ,EAEV,GAEEA,GADAxJ,EAAO9O,KAAKoP,QACImJ,WAAW,SACpBD,EAAW,IAAMA,EAAW,IAEjCxJ,GAAQvM,EAAK+U,WAAWW,KAC1BjY,KAAKoY,UAIT7V,EAAK+U,WAAWlY,UAAUoZ,KAAO,WAC/B,OAAOxY,KAAKiI,IAAMjI,KAAK4D,QAGzBrB,EAAK+U,WAAWW,IAAM,MACtB1V,EAAK+U,WAAWmB,MAAQ,QACxBlW,EAAK+U,WAAWoB,KAAO,OACvBnW,EAAK+U,WAAWqB,cAAgB,gBAChCpW,EAAK+U,WAAWsB,MAAQ,QACxBrW,EAAK+U,WAAWuB,SAAW,WAE3BtW,EAAK+U,WAAWwB,SAAW,SAAUC,GAInC,OAHAA,EAAMX,SACNW,EAAMjB,KAAKvV,EAAK+U,WAAWmB,OAC3BM,EAAMZ,SACC5V,EAAK+U,WAAWI,SAGzBnV,EAAK+U,WAAW0B,QAAU,SAAUD,GAQlC,GAPIA,EAAMb,QAAU,IAClBa,EAAMX,SACNW,EAAMjB,KAAKvV,EAAK+U,WAAWoB,OAG7BK,EAAMZ,SAEFY,EAAMP,OACR,OAAOjW,EAAK+U,WAAWI,SAI3BnV,EAAK+U,WAAW2B,gBAAkB,SAAUF,GAI1C,OAHAA,EAAMZ,SACNY,EAAMV,iBACNU,EAAMjB,KAAKvV,EAAK+U,WAAWqB,eACpBpW,EAAK+U,WAAWI,SAGzBnV,EAAK+U,WAAW4B,SAAW,SAAUH,GAInC,OAHAA,EAAMZ,SACNY,EAAMV,iBACNU,EAAMjB,KAAKvV,EAAK+U,WAAWsB,OACpBrW,EAAK+U,WAAWI,SAGzBnV,EAAK+U,WAAW6B,OAAS,SAAUJ,GAC7BA,EAAMb,QAAU,GAClBa,EAAMjB,KAAKvV,EAAK+U,WAAWoB,OAe/BnW,EAAK+U,WAAW8B,cAAgB7W,EAAK8D,UAAUU,UAE/CxE,EAAK+U,WAAWI,QAAU,SAAUqB,GAClC,OAAa,CACX,IAAIjK,EAAOiK,EAAM3J,OAEjB,GAAIN,GAAQvM,EAAK+U,WAAWW,IAC1B,OAAO1V,EAAK+U,WAAW6B,OAIzB,GAA0B,IAAtBrK,EAAKyJ,WAAW,GAApB,CAKA,GAAY,KAARzJ,EACF,OAAOvM,EAAK+U,WAAWwB,SAGzB,GAAY,KAARhK,EAKF,OAJAiK,EAAMX,SACFW,EAAMb,QAAU,GAClBa,EAAMjB,KAAKvV,EAAK+U,WAAWoB,MAEtBnW,EAAK+U,WAAW2B,gBAGzB,GAAY,KAARnK,EAKF,OAJAiK,EAAMX,SACFW,EAAMb,QAAU,GAClBa,EAAMjB,KAAKvV,EAAK+U,WAAWoB,MAEtBnW,EAAK+U,WAAW4B,SAMzB,GAAY,KAARpK,GAAiC,IAAlBiK,EAAMb,QAEvB,OADAa,EAAMjB,KAAKvV,EAAK+U,WAAWuB,UACpBtW,EAAK+U,WAAWI,QAMzB,GAAY,KAAR5I,GAAiC,IAAlBiK,EAAMb,QAEvB,OADAa,EAAMjB,KAAKvV,EAAK+U,WAAWuB,UACpBtW,EAAK+U,WAAWI,QAGzB,GAAI5I,EAAKhI,MAAMvE,EAAK+U,WAAW8B,eAC7B,OAAO7W,EAAK+U,WAAW0B,aAzCvBD,EAAMf,oBA8CZzV,EAAK+O,YAAc,SAAUrL,EAAKoL,GAChCrR,KAAK+Y,MAAQ,IAAIxW,EAAK+U,WAAYrR,GAClCjG,KAAKqR,MAAQA,EACbrR,KAAKqZ,cAAgB,GACrBrZ,KAAKsZ,UAAY,GAGnB/W,EAAK+O,YAAYlS,UAAUmS,MAAQ,WACjCvR,KAAK+Y,MAAM1Q,MACXrI,KAAKuX,QAAUvX,KAAK+Y,MAAMxB,QAI1B,IAFA,IAAIE,EAAQlV,EAAK+O,YAAYiI,YAEtB9B,GACLA,EAAQA,EAAMzX,MAGhB,OAAOA,KAAKqR,OAGd9O,EAAK+O,YAAYlS,UAAUoa,WAAa,WACtC,OAAOxZ,KAAKuX,QAAQvX,KAAKsZ,YAG3B/W,EAAK+O,YAAYlS,UAAUqa,cAAgB,WACzC,IAAIC,EAAS1Z,KAAKwZ,aAElB,OADAxZ,KAAKsZ,WAAa,EACXI,GAGTnX,EAAK+O,YAAYlS,UAAUua,WAAa,WACtC,IAAIC,EAAkB5Z,KAAKqZ,cAC3BrZ,KAAKqR,MAAMjD,OAAOwL,GAClB5Z,KAAKqZ,cAAgB,IAGvB9W,EAAK+O,YAAYiI,YAAc,SAAUM,GACvC,IAAIH,EAASG,EAAOL,aAEpB,GAAc9U,MAAVgV,EAIJ,OAAQA,EAAO3B,MACb,KAAKxV,EAAK+U,WAAWuB,SACnB,OAAOtW,EAAK+O,YAAYwI,cAC1B,KAAKvX,EAAK+U,WAAWmB,MACnB,OAAOlW,EAAK+O,YAAYyI,WAC1B,KAAKxX,EAAK+U,WAAWoB,KACnB,OAAOnW,EAAK+O,YAAY0I,UAC1B,QACE,IAAIC,EAAe,4CAA8CP,EAAO3B,KAMxE,MAJI2B,EAAOzT,IAAIrC,QAAU,IACvBqW,GAAgB,gBAAkBP,EAAOzT,IAAM,KAG3C,IAAI1D,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,OAIzE7G,EAAK+O,YAAYwI,cAAgB,SAAUD,GACzC,IAAIH,EAASG,EAAOJ,gBAEpB,GAAc/U,MAAVgV,EAAJ,CAIA,OAAQA,EAAOzT,KACb,IAAK,IACH4T,EAAOR,cAAcjH,SAAW7P,EAAKiP,MAAMY,SAASU,WACpD,MACF,IAAK,IACH+G,EAAOR,cAAcjH,SAAW7P,EAAKiP,MAAMY,SAASC,SACpD,MACF,QACE,IAAI4H,EAAe,kCAAoCP,EAAOzT,IAAM,IACpE,MAAM,IAAI1D,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,KAGvE,IAAI8Q,EAAaL,EAAOL,aAExB,GAAkB9U,MAAdwV,EAAyB,CACvBD,EAAe,yCACnB,MAAM,IAAI1X,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,KAGrE,OAAQ8Q,EAAWnC,MACjB,KAAKxV,EAAK+U,WAAWmB,MACnB,OAAOlW,EAAK+O,YAAYyI,WAC1B,KAAKxX,EAAK+U,WAAWoB,KACnB,OAAOnW,EAAK+O,YAAY0I,UAC1B,QACMC,EAAe,mCAAqCC,EAAWnC,KAAO,IAC1E,MAAM,IAAIxV,EAAK8U,gBAAiB4C,EAAcC,EAAW/Q,MAAO+Q,EAAW9Q,QAIjF7G,EAAK+O,YAAYyI,WAAa,SAAUF,GACtC,IAAIH,EAASG,EAAOJ,gBAEpB,GAAc/U,MAAVgV,EAAJ,CAIA,IAAmD,GAA/CG,EAAOxI,MAAMyF,UAAUtS,QAAQkV,EAAOzT,KAAY,CACpD,IAAIkU,EAAiBN,EAAOxI,MAAMyF,UAAUxQ,KAAI,SAAU8T,GAAK,MAAO,IAAMA,EAAI,OAAOvC,KAAK,MACxFoC,EAAe,uBAAyBP,EAAOzT,IAAM,uBAAyBkU,EAElF,MAAM,IAAI5X,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,KAGrEyQ,EAAOR,cAAcnI,OAAS,CAACwI,EAAOzT,KAEtC,IAAIiU,EAAaL,EAAOL,aAExB,GAAkB9U,MAAdwV,EAAyB,CACvBD,EAAe,gCACnB,MAAM,IAAI1X,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,KAGrE,OAAQ8Q,EAAWnC,MACjB,KAAKxV,EAAK+U,WAAWoB,KACnB,OAAOnW,EAAK+O,YAAY0I,UAC1B,QACMC,EAAe,0BAA4BC,EAAWnC,KAAO,IACjE,MAAM,IAAIxV,EAAK8U,gBAAiB4C,EAAcC,EAAW/Q,MAAO+Q,EAAW9Q,QAIjF7G,EAAK+O,YAAY0I,UAAY,SAAUH,GACrC,IAAIH,EAASG,EAAOJ,gBAEpB,GAAc/U,MAAVgV,EAAJ,CAIAG,EAAOR,cAAc/K,KAAOoL,EAAOzT,IAAIM,eAEP,GAA5BmT,EAAOzT,IAAIzB,QAAQ,OACrBqV,EAAOR,cAAcpH,aAAc,GAGrC,IAAIiI,EAAaL,EAAOL,aAExB,GAAkB9U,MAAdwV,EAKJ,OAAQA,EAAWnC,MACjB,KAAKxV,EAAK+U,WAAWoB,KAEnB,OADAmB,EAAOF,aACApX,EAAK+O,YAAY0I,UAC1B,KAAKzX,EAAK+U,WAAWmB,MAEnB,OADAoB,EAAOF,aACApX,EAAK+O,YAAYyI,WAC1B,KAAKxX,EAAK+U,WAAWqB,cACnB,OAAOpW,EAAK+O,YAAY+I,kBAC1B,KAAK9X,EAAK+U,WAAWsB,MACnB,OAAOrW,EAAK+O,YAAYgJ,WAC1B,KAAK/X,EAAK+U,WAAWuB,SAEnB,OADAgB,EAAOF,aACApX,EAAK+O,YAAYwI,cAC1B,QACE,IAAIG,EAAe,2BAA6BC,EAAWnC,KAAO,IAClE,MAAM,IAAIxV,EAAK8U,gBAAiB4C,EAAcC,EAAW/Q,MAAO+Q,EAAW9Q,UApB7EyQ,EAAOF,eAwBXpX,EAAK+O,YAAY+I,kBAAoB,SAAUR,GAC7C,IAAIH,EAASG,EAAOJ,gBAEpB,GAAc/U,MAAVgV,EAAJ,CAIA,IAAInL,EAAegM,SAASb,EAAOzT,IAAK,IAExC,GAAIuU,MAAMjM,GAAe,CACvB,IAAI0L,EAAe,gCACnB,MAAM,IAAI1X,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,KAGrEyQ,EAAOR,cAAc9K,aAAeA,EAEpC,IAAI2L,EAAaL,EAAOL,aAExB,GAAkB9U,MAAdwV,EAKJ,OAAQA,EAAWnC,MACjB,KAAKxV,EAAK+U,WAAWoB,KAEnB,OADAmB,EAAOF,aACApX,EAAK+O,YAAY0I,UAC1B,KAAKzX,EAAK+U,WAAWmB,MAEnB,OADAoB,EAAOF,aACApX,EAAK+O,YAAYyI,WAC1B,KAAKxX,EAAK+U,WAAWqB,cACnB,OAAOpW,EAAK+O,YAAY+I,kBAC1B,KAAK9X,EAAK+U,WAAWsB,MACnB,OAAOrW,EAAK+O,YAAYgJ,WAC1B,KAAK/X,EAAK+U,WAAWuB,SAEnB,OADAgB,EAAOF,aACApX,EAAK+O,YAAYwI,cAC1B,QACMG,EAAe,2BAA6BC,EAAWnC,KAAO,IAClE,MAAM,IAAIxV,EAAK8U,gBAAiB4C,EAAcC,EAAW/Q,MAAO+Q,EAAW9Q,UApB7EyQ,EAAOF,eAwBXpX,EAAK+O,YAAYgJ,WAAa,SAAUT,GACtC,IAAIH,EAASG,EAAOJ,gBAEpB,GAAc/U,MAAVgV,EAAJ,CAIA,IAAI3G,EAAQwH,SAASb,EAAOzT,IAAK,IAEjC,GAAIuU,MAAMzH,GAAQ,CAChB,IAAIkH,EAAe,wBACnB,MAAM,IAAI1X,EAAK8U,gBAAiB4C,EAAcP,EAAOvQ,MAAOuQ,EAAOtQ,KAGrEyQ,EAAOR,cAActG,MAAQA,EAE7B,IAAImH,EAAaL,EAAOL,aAExB,GAAkB9U,MAAdwV,EAKJ,OAAQA,EAAWnC,MACjB,KAAKxV,EAAK+U,WAAWoB,KAEnB,OADAmB,EAAOF,aACApX,EAAK+O,YAAY0I,UAC1B,KAAKzX,EAAK+U,WAAWmB,MAEnB,OADAoB,EAAOF,aACApX,EAAK+O,YAAYyI,WAC1B,KAAKxX,EAAK+U,WAAWqB,cACnB,OAAOpW,EAAK+O,YAAY+I,kBAC1B,KAAK9X,EAAK+U,WAAWsB,MACnB,OAAOrW,EAAK+O,YAAYgJ,WAC1B,KAAK/X,EAAK+U,WAAWuB,SAEnB,OADAgB,EAAOF,aACApX,EAAK+O,YAAYwI,cAC1B,QACMG,EAAe,2BAA6BC,EAAWnC,KAAO,IAClE,MAAM,IAAIxV,EAAK8U,gBAAiB4C,EAAcC,EAAW/Q,MAAO+Q,EAAW9Q,UApB7EyQ,EAAOF,oBAmC2BjV,KAHlC7D,EAA2E,mBADvED,EAME,WAMN,OAAO2B,IAVN3B,EAA+BjD,KAAKJ,EAASF,EAAqBE,EAASC,GAC5EoD,KACgDpD,EAAOD,QAAUsD,GA53GpE,IA24GK,SAAUrD,EAAQD,GAExBC,EAAOD,QAAU,SAAU6P,GACzB,IACE,QAASA,IACT,MAAOqN,GACP,OAAO,KAOL,SAAUjd,EAAQD,EAASF,GAEjC,IAAIqd,EAAcrd,EAAoB,GAClCsd,EAAuBtd,EAAoB,GAC3Cud,EAA2Bvd,EAAoB,IAEnDG,EAAOD,QAAUmd,EAAc,SAAUxb,EAAQH,EAAKN,GACpD,OAAOkc,EAAqBP,EAAElb,EAAQH,EAAK6b,EAAyB,EAAGnc,KACrE,SAAUS,EAAQH,EAAKN,GAEzB,OADAS,EAAOH,GAAON,EACPS,IAMH,SAAU1B,EAAQD,GAExBC,EAAOD,QAAU,SAAUmC,GACzB,MAAqB,iBAAPA,EAAyB,OAAPA,EAA4B,mBAAPA,IAMjD,SAAUlC,EAAQD,EAASF,GAEjC,IAAIwd,EAAQxd,EAAoB,GAGhCG,EAAOD,SAAWsd,GAAM,WACtB,OAA8E,GAAvE3c,OAAOC,eAAe,GAAI,EAAG,CAAEE,IAAK,WAAc,OAAO,KAAQ,OAMpE,SAAUb,EAAQD,EAASF,GAEjC,IAAIqd,EAAcrd,EAAoB,GAClCyd,EAAiBzd,EAAoB,IACrC0d,EAAW1d,EAAoB,GAC/B2d,EAAc3d,EAAoB,IAElC4d,EAAuB/c,OAAOC,eAIlCZ,EAAQ6c,EAAIM,EAAcO,EAAuB,SAAwBC,EAAGC,EAAGC,GAI7E,GAHAL,EAASG,GACTC,EAAIH,EAAYG,GAAG,GACnBJ,EAASK,GACLN,EAAgB,IAClB,OAAOG,EAAqBC,EAAGC,EAAGC,GAClC,MAAOX,IACT,GAAI,QAASW,GAAc,QAASA,EAAY,MAAM1a,UAAU,2BAEhE,MADI,UAAW0a,IAAYF,EAAEC,GAAKC,EAAW3c,OACtCyc,IAMH,SAAU1d,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7Bge,EAA8Bhe,EAAoB,GAClD6C,EAAM7C,EAAoB,GAC1Bie,EAAYje,EAAoB,IAChCke,EAAgBle,EAAoB,IACpCme,EAAsBne,EAAoB,IAE1Coe,EAAmBD,EAAoBnd,IACvCqd,EAAuBF,EAAoBG,QAC3CC,EAAWjb,OAAOA,QAAQkb,MAAM,WAEnCre,EAAOD,QAAU,SAAU2d,EAAGnc,EAAKN,EAAO2Y,GACzC,IAAI0E,IAAS1E,KAAYA,EAAQ0E,OAC7BC,IAAS3E,KAAYA,EAAQhZ,WAC7B4d,IAAc5E,KAAYA,EAAQ4E,YAClB,mBAATvd,IACS,iBAAPM,GAAoBmB,EAAIzB,EAAO,SAAS4c,EAA4B5c,EAAO,OAAQM,GAC9F2c,EAAqBjd,GAAOwd,OAASL,EAAS/D,KAAmB,iBAAP9Y,EAAkBA,EAAM,KAEhFmc,IAAM1b,GAIEsc,GAEAE,GAAed,EAAEnc,KAC3Bgd,GAAS,UAFFb,EAAEnc,GAIPgd,EAAQb,EAAEnc,GAAON,EAChB4c,EAA4BH,EAAGnc,EAAKN,IATnCsd,EAAQb,EAAEnc,GAAON,EAChB6c,EAAUvc,EAAKN,KAUrBsB,SAASX,UAAW,YAAY,WACjC,MAAsB,mBAARY,MAAsByb,EAAiBzb,MAAMic,QAAUV,EAAcvb,UAM/E,SAAUxC,EAAQD,EAASF,GAEjC,IAAI6e,EAAO7e,EAAoB,IAC3BmC,EAASnC,EAAoB,GAE7B8e,EAAY,SAAUC,GACxB,MAA0B,mBAAZA,EAAyBA,OAAW1X,GAGpDlH,EAAOD,QAAU,SAAU8e,EAAWC,GACpC,OAAOzU,UAAUjE,OAAS,EAAIuY,EAAUD,EAAKG,KAAeF,EAAU3c,EAAO6c,IACzEH,EAAKG,IAAcH,EAAKG,GAAWC,IAAW9c,EAAO6c,IAAc7c,EAAO6c,GAAWC,KAMrF,SAAU9e,EAAQD,GAExBC,EAAOD,SAAU,GAKX,SAAUC,EAAQD,GAExB,IAAIkG,EAAW,GAAGA,SAElBjG,EAAOD,QAAU,SAAUmC,GACzB,OAAO+D,EAAS9F,KAAK+B,GAAIsE,MAAM,GAAI,KAM/B,SAAUxG,EAAQD,GAExBC,EAAOD,QAAU,IAKX,SAAUC,EAAQD,GAExBC,EAAOD,QAAU,SAAUmC,GACzB,GAAiB,mBAANA,EACT,MAAMgB,UAAUC,OAAOjB,GAAM,sBAC7B,OAAOA,IAML,SAAUlC,EAAQD,EAASF,GAEjC,IASIkf,EAAKle,EAAK6B,EATVsc,EAAkBnf,EAAoB,IACtCmC,EAASnC,EAAoB,GAC7BoD,EAAWpD,EAAoB,GAC/Bge,EAA8Bhe,EAAoB,GAClDof,EAAYpf,EAAoB,GAChCqf,EAAYrf,EAAoB,IAChCsf,EAAatf,EAAoB,IAEjCuf,EAAUpd,EAAOod,QAgBrB,GAAIJ,EAAiB,CACnB,IAAIK,EAAQ,IAAID,EACZE,EAAQD,EAAMxe,IACd0e,EAAQF,EAAM3c,IACd8c,EAAQH,EAAMN,IAClBA,EAAM,SAAU7c,EAAIwG,GAElB,OADA8W,EAAMrf,KAAKkf,EAAOnd,EAAIwG,GACfA,GAET7H,EAAM,SAAUqB,GACd,OAAOod,EAAMnf,KAAKkf,EAAOnd,IAAO,IAElCQ,EAAM,SAAUR,GACd,OAAOqd,EAAMpf,KAAKkf,EAAOnd,QAEtB,CACL,IAAIud,EAAQP,EAAU,SACtBC,EAAWM,IAAS,EACpBV,EAAM,SAAU7c,EAAIwG,GAElB,OADAmV,EAA4B3b,EAAIud,EAAO/W,GAChCA,GAET7H,EAAM,SAAUqB,GACd,OAAO+c,EAAU/c,EAAIud,GAASvd,EAAGud,GAAS,IAE5C/c,EAAM,SAAUR,GACd,OAAO+c,EAAU/c,EAAIud,IAIzBzf,EAAOD,QAAU,CACfgf,IAAKA,EACLle,IAAKA,EACL6B,IAAKA,EACLyb,QA/CY,SAAUjc,GACtB,OAAOQ,EAAIR,GAAMrB,EAAIqB,GAAM6c,EAAI7c,EAAI,KA+CnCwd,UA5Cc,SAAUC,GACxB,OAAO,SAAUzd,GACf,IAAI+X,EACJ,IAAKhX,EAASf,KAAQ+X,EAAQpZ,EAAIqB,IAAKqY,OAASoF,EAC9C,MAAMzc,UAAU,0BAA4Byc,EAAO,aACnD,OAAO1F,MA6CP,SAAUja,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7B+f,EAA2B/f,EAAoB,IAAI+c,EACnDiB,EAA8Bhe,EAAoB,GAClDggB,EAAWhgB,EAAoB,IAC/Bie,EAAYje,EAAoB,IAChCigB,EAA4BjgB,EAAoB,IAChDkgB,EAAWlgB,EAAoB,IAgBnCG,EAAOD,QAAU,SAAU6Z,EAAS6E,GAClC,IAGYuB,EAAQze,EAAK0e,EAAgBC,EAAgBC,EAHrDC,EAASxG,EAAQoG,OACjBK,EAASzG,EAAQ5X,OACjBse,EAAS1G,EAAQ2G,KASrB,GANEP,EADEK,EACOre,EACAse,EACAte,EAAOoe,IAAWtC,EAAUsC,EAAQ,KAEnCpe,EAAOoe,IAAW,IAAIxe,UAEtB,IAAKL,KAAOkd,EAAQ,CAQ9B,GAPAyB,EAAiBzB,EAAOld,GAGtB0e,EAFErG,EAAQ4E,aACV2B,EAAaP,EAAyBI,EAAQze,KACf4e,EAAWlf,MACpB+e,EAAOze,IACtBwe,EAASM,EAAS9e,EAAM6e,GAAUE,EAAS,IAAM,KAAO/e,EAAKqY,EAAQ4G,cAE5CtZ,IAAnB+Y,EAA8B,CAC3C,UAAWC,UAA0BD,EAAgB,SACrDH,EAA0BI,EAAgBD,IAGxCrG,EAAQ6G,MAASR,GAAkBA,EAAeQ,OACpD5C,EAA4BqC,EAAgB,QAAQ,GAGtDL,EAASG,EAAQze,EAAK2e,EAAgBtG,MAOpC,SAAU5Z,EAAQD,EAASF,GAGjC,IAAI6gB,EAAgB7gB,EAAoB,IACpC8gB,EAAyB9gB,EAAoB,IAEjDG,EAAOD,QAAU,SAAUmC,GACzB,OAAOwe,EAAcC,EAAuBze,MAMxC,SAAUlC,EAAQD,EAASF,GAEjC,IAGI4P,EAAO,GAEXA,EALsB5P,EAAoB,EAEtB+gB,CAAgB,gBAGd,IAEtB5gB,EAAOD,QAA2B,eAAjBoD,OAAOsM,IAKlB,SAAUzP,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7Bge,EAA8Bhe,EAAoB,GAEtDG,EAAOD,QAAU,SAAUwB,EAAKN,GAC9B,IACE4c,EAA4B7b,EAAQT,EAAKN,GACzC,MAAOgc,GACPjb,EAAOT,GAAON,EACd,OAAOA,IAML,SAAUjB,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7BoD,EAAWpD,EAAoB,GAE/BghB,EAAW7e,EAAO6e,SAElBC,EAAS7d,EAAS4d,IAAa5d,EAAS4d,EAASE,eAErD/gB,EAAOD,QAAU,SAAUmC,GACzB,OAAO4e,EAASD,EAASE,cAAc7e,GAAM,KAMzC,SAAUlC,EAAQD,GAExBC,EAAOD,QAAU,SAAUihB,EAAQ/f,GACjC,MAAO,CACLL,aAAuB,EAATogB,GACdC,eAAyB,EAATD,GAChBE,WAAqB,EAATF,GACZ/f,MAAOA,KAOL,SAAUjB,EAAQD,EAASF,GAEjC,IAAIwf,EAAQxf,EAAoB,IAE5BshB,EAAmB5e,SAAS0D,SAGE,mBAAvBoZ,EAAMtB,gBACfsB,EAAMtB,cAAgB,SAAU7b,GAC9B,OAAOif,EAAiBhhB,KAAK+B,KAIjClC,EAAOD,QAAUsf,EAAMtB,eAKjB,SAAU/d,EAAQD,EAASF,GAEjC,IAAI4C,EAAS5C,EAAoB,IAC7B8C,EAAM9C,EAAoB,IAE1BsG,EAAO1D,EAAO,QAElBzC,EAAOD,QAAU,SAAUwB,GACzB,OAAO4E,EAAK5E,KAAS4E,EAAK5E,GAAOoB,EAAIpB,MAMjC,SAAUvB,EAAQD,GAExBC,EAAOD,QAAU,IAKX,SAAUC,EAAQD,GAExB,IAAIqhB,EAAOjf,KAAKif,KACZtV,EAAQ3J,KAAK2J,MAIjB9L,EAAOD,QAAU,SAAUshB,GACzB,OAAOrE,MAAMqE,GAAYA,GAAY,GAAKA,EAAW,EAAIvV,EAAQsV,GAAMC,KAMnE,SAAUrhB,EAAQD,GAIxBC,EAAOD,QAAU,SAAUmC,GACzB,GAAUgF,MAANhF,EAAiB,MAAMgB,UAAU,wBAA0BhB,GAC/D,OAAOA,IAMH,SAAUlC,EAAQD,EAASF,GAEjC,IAAIqd,EAAcrd,EAAoB,GAClCyhB,EAA6BzhB,EAAoB,IACjDud,EAA2Bvd,EAAoB,IAC/C0hB,EAAkB1hB,EAAoB,IACtC2d,EAAc3d,EAAoB,IAClC6C,EAAM7C,EAAoB,GAC1Byd,EAAiBzd,EAAoB,IAErC2hB,EAAiC9gB,OAAOkf,yBAI5C7f,EAAQ6c,EAAIM,EAAcsE,EAAiC,SAAkC9D,EAAGC,GAG9F,GAFAD,EAAI6D,EAAgB7D,GACpBC,EAAIH,EAAYG,GAAG,GACfL,EAAgB,IAClB,OAAOkE,EAA+B9D,EAAGC,GACzC,MAAOV,IACT,GAAIva,EAAIgb,EAAGC,GAAI,OAAOP,GAA0BkE,EAA2B1E,EAAEzc,KAAKud,EAAGC,GAAID,EAAEC,MAMvF,SAAU3d,EAAQD,GAGxBC,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,YAMI,SAAUC,EAAQD,EAASF,GAEjC,IAAIc,EAAiBd,EAAoB,GAAG+c,EACxCla,EAAM7C,EAAoB,GAG1B4hB,EAFkB5hB,EAAoB,EAEtB+gB,CAAgB,eAEpC5gB,EAAOD,QAAU,SAAUmC,EAAIwf,EAAKpB,GAC9Bpe,IAAOQ,EAAIR,EAAKoe,EAASpe,EAAKA,EAAGN,UAAW6f,IAC9C9gB,EAAeuB,EAAIuf,EAAe,CAAER,cAAc,EAAMhgB,MAAOygB,MAO7D,SAAU1hB,EAAQD,EAASF,GAEjC,aAEA,IAAI8e,EAAY9e,EAAoB,IAEhC8hB,EAAoB,SAAUle,GAChC,IAAIme,EAASC,EACbrf,KAAKsf,QAAU,IAAIre,GAAE,SAAUse,EAAWC,GACxC,QAAgB9a,IAAZ0a,QAAoC1a,IAAX2a,EAAsB,MAAM3e,UAAU,2BACnE0e,EAAUG,EACVF,EAASG,KAEXxf,KAAKof,QAAUjD,EAAUiD,GACzBpf,KAAKqf,OAASlD,EAAUkD,IAI1B7hB,EAAOD,QAAQ6c,EAAI,SAAUnZ,GAC3B,OAAO,IAAIke,EAAkBle,KAMzB,SAAUzD,EAAQD,EAASF,GAEjC,IAAIoiB,EAAUpiB,EAAoB,IAC9Bwf,EAAQxf,EAAoB,KAE/BG,EAAOD,QAAU,SAAUwB,EAAKN,GAC/B,OAAOoe,EAAM9d,KAAS8d,EAAM9d,QAAiB2F,IAAVjG,EAAsBA,EAAQ,MAChE,WAAY,IAAI8G,KAAK,CACtBrC,QAAS,QACTvE,KAAM8gB,EAAU,OAAS,SACzBC,UAAW,0CAMP,SAAUliB,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7Bie,EAAYje,EAAoB,IAGhCwf,EAAQrd,EADC,uBACiB8b,EADjB,qBACmC,IAEhD9d,EAAOD,QAAUsf,GAKX,SAAUrf,EAAQD,EAASF,GAEjC,IAAIqd,EAAcrd,EAAoB,GAClCwd,EAAQxd,EAAoB,GAC5BkhB,EAAgBlhB,EAAoB,IAGxCG,EAAOD,SAAWmd,IAAgBG,GAAM,WACtC,OAEQ,GAFD3c,OAAOC,eAAeogB,EAAc,OAAQ,IAAK,CACtDlgB,IAAK,WAAc,OAAO,KACzB8G,MAMC,SAAU3H,EAAQD,EAASF,GAEjC,IAAIoD,EAAWpD,EAAoB,GAMnCG,EAAOD,QAAU,SAAUoiB,EAAOC,GAChC,IAAKnf,EAASkf,GAAQ,OAAOA,EAC7B,IAAIvZ,EAAIvC,EACR,GAAI+b,GAAoD,mBAAxBxZ,EAAKuZ,EAAMlc,YAA4BhD,EAASoD,EAAMuC,EAAGzI,KAAKgiB,IAAS,OAAO9b,EAC9G,GAAmC,mBAAvBuC,EAAKuZ,EAAME,WAA2Bpf,EAASoD,EAAMuC,EAAGzI,KAAKgiB,IAAS,OAAO9b,EACzF,IAAK+b,GAAoD,mBAAxBxZ,EAAKuZ,EAAMlc,YAA4BhD,EAASoD,EAAMuC,EAAGzI,KAAKgiB,IAAS,OAAO9b,EAC/G,MAAMnD,UAAU,6CAMZ,SAAUlD,EAAQD,GAExB,IAAIsQ,EAAK,EACLiS,EAAUngB,KAAKogB,SAEnBviB,EAAOD,QAAU,SAAUwB,GACzB,MAAO,UAAY4B,YAAe+D,IAAR3F,EAAoB,GAAKA,GAAO,QAAU8O,EAAKiS,GAASrc,SAAS,MAMvF,SAAUjG,EAAQD,EAASF,GAEjC,IAAIwd,EAAQxd,EAAoB,GAEhCG,EAAOD,UAAYW,OAAO8hB,wBAA0BnF,GAAM,WAGxD,OAAQla,OAAOpC,cAMX,SAAUf,EAAQD,EAASF,GAEjC,IAAI4iB,EAAwB5iB,EAAoB,IAC5C6iB,EAAa7iB,EAAoB,IAGjC4hB,EAFkB5hB,EAAoB,EAEtB+gB,CAAgB,eAEhC+B,EAAuE,aAAnDD,EAAW,WAAc,OAAOrY,UAArB,IAUnCrK,EAAOD,QAAU0iB,EAAwBC,EAAa,SAAUxgB,GAC9D,IAAIwb,EAAGkF,EAAK3X,EACZ,YAAc/D,IAAPhF,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhD0gB,EAXD,SAAU1gB,EAAIX,GACzB,IACE,OAAOW,EAAGX,GACV,MAAO0b,KAQS4F,CAAOnF,EAAIhd,OAAOwB,GAAKuf,IAA8BmB,EAEnED,EAAoBD,EAAWhF,GAEH,WAA3BzS,EAASyX,EAAWhF,KAAsC,mBAAZA,EAAEoF,OAAuB,YAAc7X,IAMtF,SAAUjL,EAAQD,EAASF,GAEjC,aAEA,IAAIkjB,EAAIljB,EAAoB,IACxBmjB,EAA4BnjB,EAAoB,IAChDojB,EAAiBpjB,EAAoB,IACrCqjB,EAAiBrjB,EAAoB,IACrCsjB,EAAiBtjB,EAAoB,IACrCge,EAA8Bhe,EAAoB,GAClDggB,EAAWhgB,EAAoB,IAC/B+gB,EAAkB/gB,EAAoB,GACtCoiB,EAAUpiB,EAAoB,IAC9BujB,EAAYvjB,EAAoB,IAChCwjB,EAAgBxjB,EAAoB,IAEpCyjB,EAAoBD,EAAcC,kBAClCC,EAAyBF,EAAcE,uBACvCC,EAAW5C,EAAgB,YAK3B6C,EAAa,WAAc,OAAOjhB,MAEtCxC,EAAOD,QAAU,SAAU2jB,EAAUC,EAAMC,EAAqBhS,EAAMiS,EAASC,EAAQC,GACrFf,EAA0BY,EAAqBD,EAAM/R,GAErD,IAkBIoS,EAA0BC,EAASC,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASP,GAAWQ,EAAiB,OAAOA,EAChD,IAAKd,GAA0Ba,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,IAbK,OAcL,IAbO,SAcP,IAbQ,UAaM,OAAO,WAAqB,OAAO,IAAIR,EAAoBphB,KAAM4hB,IAC/E,OAAO,WAAc,OAAO,IAAIR,EAAoBphB,QAGpDif,EAAgBkC,EAAO,YACvBY,GAAwB,EACxBD,EAAoBZ,EAAS9hB,UAC7B4iB,EAAiBF,EAAkBd,IAClCc,EAAkB,eAClBT,GAAWS,EAAkBT,GAC9BQ,GAAmBd,GAA0BiB,GAAkBL,EAAmBN,GAClFY,EAA4B,SAARd,GAAkBW,EAAkBI,SAA4BF,EAiCxF,GA7BIC,IACFT,EAA2Bf,EAAewB,EAAkBtkB,KAAK,IAAIujB,IACjEJ,IAAsB5iB,OAAOkB,WAAaoiB,EAAyBpS,OAChEqQ,GAAWgB,EAAee,KAA8BV,IACvDJ,EACFA,EAAec,EAA0BV,GACa,mBAAtCU,EAAyBR,IACzC3F,EAA4BmG,EAA0BR,EAAUC,IAIpEN,EAAea,EAA0BvC,GAAe,GAAM,GAC1DQ,IAASmB,EAAU3B,GAAiBgC,KAzCjC,UA8CPI,GAAqBW,GA9Cd,WA8CgCA,EAAejkB,OACxDgkB,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAerkB,KAAKqC,QAI7Dyf,IAAW8B,GAAWO,EAAkBd,KAAca,GAC1DxG,EAA4ByG,EAAmBd,EAAUa,GAE3DjB,EAAUO,GAAQU,EAGdR,EAMF,GALAI,EAAU,CACRU,OAAQR,EA5DD,UA6DPhe,KAAM2d,EAASO,EAAkBF,EA9D5B,QA+DLO,QAASP,EA7DD,YA+DNJ,EAAQ,IAAKG,KAAOD,GAClBV,GAA0BgB,KAA2BL,KAAOI,KAC9DzE,EAASyE,EAAmBJ,EAAKD,EAAQC,SAEtCnB,EAAE,CAAE/C,OAAQ2D,EAAMiB,OAAO,EAAMpE,OAAQ+C,GAA0BgB,GAAyBN,GAGnG,OAAOA,IAMH,SAAUjkB,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAEjCG,EAAOD,QAAUiC,GAKX,SAAUhC,EAAQD,EAASF,GAEjC,IAAI6C,EAAM7C,EAAoB,GAC1B0hB,EAAkB1hB,EAAoB,IACtCmH,EAAUnH,EAAoB,IAAImH,QAClCmY,EAAatf,EAAoB,IAErCG,EAAOD,QAAU,SAAU2B,EAAQmjB,GACjC,IAGItjB,EAHAmc,EAAI6D,EAAgB7f,GACpBzB,EAAI,EACJgL,EAAS,GAEb,IAAK1J,KAAOmc,GAAIhb,EAAIyc,EAAY5d,IAAQmB,EAAIgb,EAAGnc,IAAQ0J,EAAOlD,KAAKxG,GAEnE,KAAOsjB,EAAMze,OAASnG,GAAOyC,EAAIgb,EAAGnc,EAAMsjB,EAAM5kB,SAC7C+G,EAAQiE,EAAQ1J,IAAQ0J,EAAOlD,KAAKxG,IAEvC,OAAO0J,IAMH,SAAUjL,EAAQD,EAASF,GAEjC,IAAIilB,EAAYjlB,EAAoB,IAEhCklB,EAAM5iB,KAAK4iB,IAIf/kB,EAAOD,QAAU,SAAUshB,GACzB,OAAOA,EAAW,EAAI0D,EAAID,EAAUzD,GAAW,kBAAoB,IAM/D,SAAUrhB,EAAQD,EAASF,GAEjC,IAAIwd,EAAQxd,EAAoB,GAE5BmlB,EAAc,kBAEdjF,EAAW,SAAUkF,EAASC,GAChC,IAAIjkB,EAAQkkB,EAAKC,EAAUH,IAC3B,OAAOhkB,GAASokB,GACZpkB,GAASqkB,IACW,mBAAbJ,EAA0B7H,EAAM6H,KACrCA,IAGJE,EAAYrF,EAASqF,UAAY,SAAUG,GAC7C,OAAOpiB,OAAOoiB,GAAQ7V,QAAQsV,EAAa,KAAKjc,eAG9Coc,EAAOpF,EAASoF,KAAO,GACvBG,EAASvF,EAASuF,OAAS,IAC3BD,EAAWtF,EAASsF,SAAW,IAEnCrlB,EAAOD,QAAUggB,GAKX,SAAU/f,EAAQD,EAASF,GAEjC,aAEA,IAaIyjB,EAAmBkC,EAAmCC,EAbtDxC,EAAiBpjB,EAAoB,IACrCge,EAA8Bhe,EAAoB,GAClD6C,EAAM7C,EAAoB,GAC1B+gB,EAAkB/gB,EAAoB,GACtCoiB,EAAUpiB,EAAoB,IAE9B2jB,EAAW5C,EAAgB,YAC3B2C,GAAyB,EAQzB,GAAGpd,OAGC,SAFNsf,EAAgB,GAAGtf,SAIjBqf,EAAoCvC,EAAeA,EAAewC,OACxB/kB,OAAOkB,YAAW0hB,EAAoBkC,GAHlDjC,GAAyB,GAOlCrc,MAArBoc,IAAgCA,EAAoB,IAGnDrB,GAAYvf,EAAI4gB,EAAmBE,IACtC3F,EAA4ByF,EAAmBE,GApBhC,WAAc,OAAOhhB,QAuBtCxC,EAAOD,QAAU,CACfujB,kBAAmBA,EACnBC,uBAAwBA,IAMpB,SAAUvjB,EAAQD,EAASF,GAEjC,IAAI6C,EAAM7C,EAAoB,GAC1B6lB,EAAW7lB,EAAoB,IAC/Bqf,EAAYrf,EAAoB,IAChC8lB,EAA2B9lB,EAAoB,IAE/C+lB,EAAW1G,EAAU,YACrB2G,EAAkBnlB,OAAOkB,UAI7B5B,EAAOD,QAAU4lB,EAA2BjlB,OAAOuiB,eAAiB,SAAUvF,GAE5E,OADAA,EAAIgI,EAAShI,GACThb,EAAIgb,EAAGkI,GAAkBlI,EAAEkI,GACH,mBAAjBlI,EAAEoI,aAA6BpI,aAAaA,EAAEoI,YAChDpI,EAAEoI,YAAYlkB,UACd8b,aAAahd,OAASmlB,EAAkB,OAM7C,SAAU7lB,EAAQD,EAASF,GAEjC,IAmDIkmB,EAnDAxI,EAAW1d,EAAoB,GAC/BmmB,EAAmBnmB,EAAoB,IACvComB,EAAcpmB,EAAoB,IAClCsf,EAAatf,EAAoB,IACjCqmB,EAAOrmB,EAAoB,IAC3BsmB,EAAwBtmB,EAAoB,IAC5Cqf,EAAYrf,EAAoB,IAMhC+lB,EAAW1G,EAAU,YAErBkH,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,MAAOC,WAAmBD,EAAnBC,cAmCLC,EAAkB,WACpB,IAEET,EAAkBlF,SAAS4F,QAAU,IAAIC,cAAc,YACvD,MAAOzJ,IA1BoB,IAIzB0J,EAFAC,EAyBJJ,EAAkBT,EApCY,SAAUA,GACxCA,EAAgBc,MAAMR,EAAU,KAChCN,EAAgBe,QAChB,IAAIC,EAAOhB,EAAgBiB,aAAatmB,OAExC,OADAqlB,EAAkB,KACXgB,EA+B6BE,CAA0BlB,KAzB1Da,EAAST,EAAsB,WAG5Be,MAAMC,QAAU,OACvBjB,EAAKkB,YAAYR,GAEjBA,EAAOS,IAAMlkB,OALJ,gBAMTwjB,EAAiBC,EAAOU,cAAczG,UACvB0G,OACfZ,EAAeE,MAAMR,EAAU,sBAC/BM,EAAeG,QACRH,EAAea,GAgBtB,IADA,IAAIphB,EAAS6f,EAAY7f,OAClBA,YAAiBogB,EAAyB,UAAEP,EAAY7f,IAC/D,OAAOogB,KAGTrH,EAAWyG,IAAY,EAIvB5lB,EAAOD,QAAUW,OAAOY,QAAU,SAAgBoc,EAAG+J,GACnD,IAAIxc,EAQJ,OAPU,OAANyS,GACF0I,EAA0B,UAAI7I,EAASG,GACvCzS,EAAS,IAAImb,EACbA,EAA0B,UAAI,KAE9Bnb,EAAO2a,GAAYlI,GACdzS,EAASub,SACMtf,IAAfugB,EAA2Bxc,EAAS+a,EAAiB/a,EAAQwc,KAMhE,SAAUznB,EAAQD,EAASF,GAEjC,IAAI6nB,EAAa7nB,EAAoB,IAErCG,EAAOD,QAAU2nB,EAAW,WAAY,oBAKlC,SAAU1nB,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAEjCG,EAAOD,QAAUiC,EAAO2lB,SAKlB,SAAU3nB,EAAQD,EAASF,GAEjC,IAAI0d,EAAW1d,EAAoB,GAC/B+nB,EAAwB/nB,EAAoB,IAC5CgoB,EAAWhoB,EAAoB,IAC/B2B,EAAO3B,EAAoB,IAC3BioB,EAAoBjoB,EAAoB,IACxCkoB,EAA+BloB,EAAoB,IAEnDmoB,EAAS,SAAUC,EAAShd,GAC9BzI,KAAKylB,QAAUA,EACfzlB,KAAKyI,OAASA,IAGFjL,EAAOD,QAAU,SAAUmoB,EAAUtf,EAAIuf,EAAMC,EAAYC,GACvE,IACIC,EAAUC,EAAQ7c,EAAOtF,EAAQ6E,EAAQ2G,EAAM4W,EAD/CC,EAAgBjnB,EAAKoH,EAAIuf,EAAMC,EAAa,EAAI,GAGpD,GAAIC,EACFC,EAAWJ,MACN,CAEL,GAAqB,mBADrBK,EAAST,EAAkBI,IACM,MAAMhlB,UAAU,0BAEjD,GAAI0kB,EAAsBW,GAAS,CACjC,IAAK7c,EAAQ,EAAGtF,EAASyhB,EAASK,EAAS9hB,QAASA,EAASsF,EAAOA,IAIlE,IAHAT,EAASmd,EACLK,EAAclL,EAASiL,EAAON,EAASxc,IAAQ,GAAI8c,EAAK,IACxDC,EAAcP,EAASxc,MACbT,aAAkB+c,EAAQ,OAAO/c,EAC/C,OAAO,IAAI+c,GAAO,GAEtBM,EAAWC,EAAOpoB,KAAK+nB,GAIzB,IADAtW,EAAO0W,EAAS1W,OACP4W,EAAO5W,EAAKzR,KAAKmoB,IAAWI,MAEnC,GAAqB,iBADrBzd,EAAS8c,EAA6BO,EAAUG,EAAeD,EAAKvnB,MAAOmnB,KAC1Cnd,GAAUA,aAAkB+c,EAAQ,OAAO/c,EAC5E,OAAO,IAAI+c,GAAO,KAGdW,KAAO,SAAU1d,GACvB,OAAO,IAAI+c,GAAO,EAAM/c,KAMpB,SAAUjL,EAAQD,EAASF,GAEjC,IAAI8e,EAAY9e,EAAoB,IAGpCG,EAAOD,QAAU,SAAU6I,EAAIuf,EAAM/hB,GAEnC,GADAuY,EAAU/V,QACG1B,IAATihB,EAAoB,OAAOvf,EAC/B,OAAQxC,GACN,KAAK,EAAG,OAAO,WACb,OAAOwC,EAAGzI,KAAKgoB,IAEjB,KAAK,EAAG,OAAO,SAAUxgB,GACvB,OAAOiB,EAAGzI,KAAKgoB,EAAMxgB,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAOgB,EAAGzI,KAAKgoB,EAAMxgB,EAAGC,IAE1B,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGvH,GAC7B,OAAOuI,EAAGzI,KAAKgoB,EAAMxgB,EAAGC,EAAGvH,IAG/B,OAAO,WACL,OAAOuI,EAAGsQ,MAAMiP,EAAM9d,cAOpB,SAAUrK,EAAQD,EAASF,GAEjC,IAAI0d,EAAW1d,EAAoB,GAC/B8e,EAAY9e,EAAoB,IAGhC+oB,EAFkB/oB,EAAoB,EAE5B+gB,CAAgB,WAI9B5gB,EAAOD,QAAU,SAAU2d,EAAGmL,GAC5B,IACIC,EADArlB,EAAI8Z,EAASG,GAAGoI,YAEpB,YAAa5e,IAANzD,GAAiDyD,OAA7B4hB,EAAIvL,EAAS9Z,GAAGmlB,IAAyBC,EAAqBlK,EAAUmK,KAM/F,SAAU9oB,EAAQD,EAASF,GAEjC,IAiBIkpB,EAAOC,EAASC,EAjBhBjnB,EAASnC,EAAoB,GAC7Bwd,EAAQxd,EAAoB,GAC5BqpB,EAAUrpB,EAAoB,IAC9B2B,EAAO3B,EAAoB,IAC3BqmB,EAAOrmB,EAAoB,IAC3BkhB,EAAgBlhB,EAAoB,IACpCspB,EAAStpB,EAAoB,IAE7BupB,EAAWpnB,EAAOonB,SAClBrK,EAAM/c,EAAOqnB,aACbC,EAAQtnB,EAAOunB,eACfC,EAAUxnB,EAAOwnB,QACjBC,EAAiBznB,EAAOynB,eACxBC,EAAW1nB,EAAO0nB,SAClBC,EAAU,EACVC,EAAQ,GAIR/e,EAAM,SAAUwF,GAElB,GAAIuZ,EAAM/nB,eAAewO,GAAK,CAC5B,IAAIzH,EAAKghB,EAAMvZ,UACRuZ,EAAMvZ,GACbzH,MAIAihB,EAAS,SAAUxZ,GACrB,OAAO,WACLxF,EAAIwF,KAIJyZ,EAAW,SAAUC,GACvBlf,EAAIkf,EAAM5E,OAGR6E,EAAO,SAAU3Z,GAEnBrO,EAAOioB,YAAY5Z,EAAK,GAAI+Y,EAASc,SAAW,KAAOd,EAASe,OAI7DpL,GAAQuK,IACXvK,EAAM,SAAsBnW,GAG1B,IAFA,IAAIoQ,EAAO,GACP/Y,EAAI,EACDoK,UAAUjE,OAASnG,GAAG+Y,EAAKjR,KAAKsC,UAAUpK,MAMjD,OALA2pB,IAAQD,GAAW,YAEH,mBAAN/gB,EAAmBA,EAAKrG,SAASqG,IAAKsQ,WAAMhS,EAAW8R,IAEjE+P,EAAMY,GACCA,GAETL,EAAQ,SAAwBjZ,UACvBuZ,EAAMvZ,IAGS,WAApB6Y,EAAQM,GACVT,EAAQ,SAAU1Y,GAChBmZ,EAAQY,SAASP,EAAOxZ,KAGjBqZ,GAAYA,EAASW,IAC9BtB,EAAQ,SAAU1Y,GAChBqZ,EAASW,IAAIR,EAAOxZ,KAIboZ,IAAmBN,GAE5BF,GADAD,EAAU,IAAIS,GACCa,MACftB,EAAQuB,MAAMC,UAAYV,EAC1Bf,EAAQvnB,EAAKynB,EAAKgB,YAAahB,EAAM,KAIrCjnB,EAAOyoB,kBACe,mBAAfR,aACNjoB,EAAO0oB,eACPrN,EAAM2M,IACe,UAAtBZ,EAASc,SAMTnB,EAzEqB,uBAwEUhI,EAAc,UACrC,SAAU1Q,GAChB6V,EAAKkB,YAAYrG,EAAc,WAA6B,mBAAI,WAC9DmF,EAAKyE,YAAYnoB,MACjBqI,EAAIwF,KAKA,SAAUA,GAChBua,WAAWf,EAAOxZ,GAAK,KAbzB0Y,EAAQiB,EACRhoB,EAAOyoB,iBAAiB,UAAWX,GAAU,KAiBjD9pB,EAAOD,QAAU,CACfgf,IAAKA,EACLuK,MAAOA,IAMH,SAAUtpB,EAAQD,EAASF,GAEjC,IAAIgrB,EAAYhrB,EAAoB,IAEpCG,EAAOD,QAAU,mCAAmC0P,KAAKob,IAKnD,SAAU7qB,EAAQD,EAASF,GAEjC,IAAI6nB,EAAa7nB,EAAoB,IAErCG,EAAOD,QAAU2nB,EAAW,YAAa,cAAgB,IAKnD,SAAU1nB,EAAQD,EAASF,GAEjC,IAAI0d,EAAW1d,EAAoB,GAC/BoD,EAAWpD,EAAoB,GAC/BirB,EAAuBjrB,EAAoB,IAE/CG,EAAOD,QAAU,SAAU0D,EAAG4E,GAE5B,GADAkV,EAAS9Z,GACLR,EAASoF,IAAMA,EAAEyd,cAAgBriB,EAAG,OAAO4E,EAC/C,IAAI0iB,EAAoBD,EAAqBlO,EAAEnZ,GAG/C,OADAme,EADcmJ,EAAkBnJ,SACxBvZ,GACD0iB,EAAkBjJ,UAMrB,SAAU9hB,EAAQD,GAExBC,EAAOD,QAAU,SAAU6P,GACzB,IACE,MAAO,CAAEqN,OAAO,EAAOhc,MAAO2O,KAC9B,MAAOqN,GACP,MAAO,CAAEA,OAAO,EAAMhc,MAAOgc,MAO3B,SAAUjd,EAAQD,EAASF,GAEjCA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpB,IAAI6e,EAAO7e,EAAoB,IAE/BG,EAAOD,QAAU2e,EAAKiJ,SAKhB,SAAU3nB,EAAQD,EAASF,GAEjC,IAAI4iB,EAAwB5iB,EAAoB,IAC5CggB,EAAWhgB,EAAoB,IAC/BoG,EAAWpG,EAAoB,IAI9B4iB,GACH5C,EAASnf,OAAOkB,UAAW,WAAYqE,EAAU,CAAEqY,QAAQ,KAMvD,SAAUte,EAAQD,GAExB,IAAIirB,EAGJA,EAAI,WACH,OAAOxoB,KADJ,GAIJ,IAECwoB,EAAIA,GAAK,IAAIzoB,SAAS,cAAb,GACR,MAAO0oB,GAEc,iBAAX5oB,SAAqB2oB,EAAI3oB,QAOrCrC,EAAOD,QAAUirB,GAKX,SAAUhrB,EAAQD,EAASF,GAEjC,IAAI+C,EAAgB/C,EAAoB,IAExCG,EAAOD,QAAU6C,IAEX7B,OAAO0f,MAEkB,iBAAnB1f,OAAOunB,UAKb,SAAUtoB,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7Bke,EAAgBle,EAAoB,IAEpCuf,EAAUpd,EAAOod,QAErBpf,EAAOD,QAA6B,mBAAZqf,GAA0B,cAAc3P,KAAKsO,EAAcqB,KAK7E,SAAUpf,EAAQD,EAASF,GAEjC,aAEA,IAAI4iB,EAAwB5iB,EAAoB,IAC5CqpB,EAAUrpB,EAAoB,IAIlCG,EAAOD,QAAU0iB,EAAwB,GAAGxc,SAAW,WACrD,MAAO,WAAaijB,EAAQ1mB,MAAQ,MAMhC,SAAUxC,EAAQD,EAASF,GAEjC,aAEA,IAAIwJ,EAASxJ,EAAoB,IAAIwJ,OACjC2U,EAAsBne,EAAoB,IAC1CqrB,EAAiBrrB,EAAoB,IAGrCsrB,EAAmBnN,EAAoBe,IACvCd,EAAmBD,EAAoB0B,UAFrB,mBAMtBwL,EAAe/nB,OAAQ,UAAU,SAAUioB,GACzCD,EAAiB3oB,KAAM,CACrB+X,KARkB,kBASlBgL,OAAQpiB,OAAOioB,GACf1f,MAAO,OAIR,WACD,IAGI2f,EAHApR,EAAQgE,EAAiBzb,MACzB+iB,EAAStL,EAAMsL,OACf7Z,EAAQuO,EAAMvO,MAElB,OAAIA,GAAS6Z,EAAOnf,OAAe,CAAEnF,WAAOiG,EAAWwhB,MAAM,IAC7D2C,EAAQhiB,EAAOkc,EAAQ7Z,GACvBuO,EAAMvO,OAAS2f,EAAMjlB,OACd,CAAEnF,MAAOoqB,EAAO3C,MAAM,QAMzB,SAAU1oB,EAAQD,EAASF,GAEjC,IAAIilB,EAAYjlB,EAAoB,IAChC8gB,EAAyB9gB,EAAoB,IAG7CyrB,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAO/gB,GACtB,IAGIghB,EAAOC,EAHP5C,EAAI3lB,OAAOwd,EAAuB6K,IAClCrf,EAAW2Y,EAAUra,GACrBkhB,EAAO7C,EAAE1iB,OAEb,OAAI+F,EAAW,GAAKA,GAAYwf,EAAaJ,EAAoB,QAAKrkB,GACtEukB,EAAQ3C,EAAE/N,WAAW5O,IACN,OAAUsf,EAAQ,OAAUtf,EAAW,IAAMwf,IACtDD,EAAS5C,EAAE/N,WAAW5O,EAAW,IAAM,OAAUuf,EAAS,MAC1DH,EAAoBzC,EAAEzf,OAAO8C,GAAYsf,EACzCF,EAAoBzC,EAAEtiB,MAAM2F,EAAUA,EAAW,GAA+Buf,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,QAI7GzrB,EAAOD,QAAU,CAGf6rB,OAAQN,GAAa,GAGrBjiB,OAAQiiB,GAAa,KAMjB,SAAUtrB,EAAQD,EAASF,GAEjC,aAEA,IAAIgsB,EAA6B,GAAGC,qBAChClM,EAA2Blf,OAAOkf,yBAGlCmM,EAAcnM,IAA6BiM,EAA2B1rB,KAAK,CAAE6rB,EAAG,GAAK,GAIzFjsB,EAAQ6c,EAAImP,EAAc,SAA8BE,GACtD,IAAI9L,EAAaP,EAAyBpd,KAAMypB,GAChD,QAAS9L,GAAcA,EAAWvf,YAChCirB,GAKE,SAAU7rB,EAAQD,EAASF,GAEjC,IAAIwd,EAAQxd,EAAoB,GAC5BqpB,EAAUrpB,EAAoB,IAE9Bwe,EAAQ,GAAGA,MAGfre,EAAOD,QAAUsd,GAAM,WAGrB,OAAQ3c,OAAO,KAAKorB,qBAAqB,MACtC,SAAU5pB,GACb,MAAsB,UAAfgnB,EAAQhnB,GAAkBmc,EAAMle,KAAK+B,EAAI,IAAMxB,OAAOwB,IAC3DxB,QAKE,SAAUV,EAAQD,EAASF,GAEjC,IAAI6C,EAAM7C,EAAoB,GAC1BqsB,EAAUrsB,EAAoB,IAC9BssB,EAAiCtsB,EAAoB,IACrDsd,EAAuBtd,EAAoB,GAE/CG,EAAOD,QAAU,SAAUigB,EAAQvB,GAIjC,IAHA,IAAItY,EAAO+lB,EAAQzN,GACf9d,EAAiBwc,EAAqBP,EACtCgD,EAA2BuM,EAA+BvP,EACrD3c,EAAI,EAAGA,EAAIkG,EAAKC,OAAQnG,IAAK,CACpC,IAAIsB,EAAM4E,EAAKlG,GACVyC,EAAIsd,EAAQze,IAAMZ,EAAeqf,EAAQze,EAAKqe,EAAyBnB,EAAQld,OAOlF,SAAUvB,EAAQD,EAASF,GAEjC,IAAI6nB,EAAa7nB,EAAoB,IACjCusB,EAA4BvsB,EAAoB,IAChDwsB,EAA8BxsB,EAAoB,IAClD0d,EAAW1d,EAAoB,GAGnCG,EAAOD,QAAU2nB,EAAW,UAAW,YAAc,SAAiBxlB,GACpE,IAAIiE,EAAOimB,EAA0BxP,EAAEW,EAASrb,IAC5CsgB,EAAwB6J,EAA4BzP,EACxD,OAAO4F,EAAwBrc,EAAK6B,OAAOwa,EAAsBtgB,IAAOiE,IAMpE,SAAUnG,EAAQD,EAASF,GAEjC,IAAIysB,EAAqBzsB,EAAoB,IAGzCsf,EAFctf,EAAoB,IAETmI,OAAO,SAAU,aAI9CjI,EAAQ6c,EAAIlc,OAAO6rB,qBAAuB,SAA6B7O,GACrE,OAAO4O,EAAmB5O,EAAGyB,KAMzB,SAAUnf,EAAQD,EAASF,GAEjC,IAAI0hB,EAAkB1hB,EAAoB,IACtCgoB,EAAWhoB,EAAoB,IAC/B2sB,EAAkB3sB,EAAoB,IAGtCyrB,EAAe,SAAUmB,GAC3B,OAAO,SAAUjB,EAAOkB,EAAIC,GAC1B,IAGI1rB,EAHAyc,EAAI6D,EAAgBiK,GACpBplB,EAASyhB,EAASnK,EAAEtX,QACpBsF,EAAQ8gB,EAAgBG,EAAWvmB,GAIvC,GAAIqmB,GAAeC,GAAMA,GAAI,KAAOtmB,EAASsF,GAG3C,IAFAzK,EAAQyc,EAAEhS,OAEGzK,EAAO,OAAO,OAEtB,KAAMmF,EAASsF,EAAOA,IAC3B,IAAK+gB,GAAe/gB,KAASgS,IAAMA,EAAEhS,KAAWghB,EAAI,OAAOD,GAAe/gB,GAAS,EACnF,OAAQ+gB,IAAgB,IAI9BzsB,EAAOD,QAAU,CAGf6sB,SAAUtB,GAAa,GAGvBtkB,QAASskB,GAAa,KAMlB,SAAUtrB,EAAQD,EAASF,GAEjC,IAAIilB,EAAYjlB,EAAoB,IAEhCgtB,EAAM1qB,KAAK0qB,IACX9H,EAAM5iB,KAAK4iB,IAKf/kB,EAAOD,QAAU,SAAU2L,EAAOtF,GAChC,IAAI0mB,EAAUhI,EAAUpZ,GACxB,OAAOohB,EAAU,EAAID,EAAIC,EAAU1mB,EAAQ,GAAK2e,EAAI+H,EAAS1mB,KAMzD,SAAUpG,EAAQD,GAExBA,EAAQ6c,EAAIlc,OAAO8hB,uBAKb,SAAUxiB,EAAQD,EAASF,GAEjC,aAEA,IAAIyjB,EAAoBzjB,EAAoB,IAAIyjB,kBAC5ChiB,EAASzB,EAAoB,IAC7Bud,EAA2Bvd,EAAoB,IAC/CsjB,EAAiBtjB,EAAoB,IACrCujB,EAAYvjB,EAAoB,IAEhC4jB,EAAa,WAAc,OAAOjhB,MAEtCxC,EAAOD,QAAU,SAAU6jB,EAAqBD,EAAM/R,GACpD,IAAI6P,EAAgBkC,EAAO,YAI3B,OAHAC,EAAoBhiB,UAAYN,EAAOgiB,EAAmB,CAAE1R,KAAMwL,EAAyB,EAAGxL,KAC9FuR,EAAeS,EAAqBnC,GAAe,GAAO,GAC1D2B,EAAU3B,GAAiBgC,EACpBG,IAMH,SAAU5jB,EAAQD,EAASF,GAEjC,IAAI8gB,EAAyB9gB,EAAoB,IAIjDG,EAAOD,QAAU,SAAUshB,GACzB,OAAO3gB,OAAOigB,EAAuBU,MAMjC,SAAUrhB,EAAQD,EAASF,GAEjC,IAAIwd,EAAQxd,EAAoB,GAEhCG,EAAOD,SAAWsd,GAAM,WACtB,SAASmK,KAET,OADAA,EAAE5lB,UAAUkkB,YAAc,KACnBplB,OAAOuiB,eAAe,IAAIuE,KAASA,EAAE5lB,cAMxC,SAAU5B,EAAQD,EAASF,GAEjC,IAAIqd,EAAcrd,EAAoB,GAClCsd,EAAuBtd,EAAoB,GAC3C0d,EAAW1d,EAAoB,GAC/BktB,EAAaltB,EAAoB,IAIrCG,EAAOD,QAAUmd,EAAcxc,OAAOslB,iBAAmB,SAA0BtI,EAAG+J,GACpFlK,EAASG,GAKT,IAJA,IAGInc,EAHA4E,EAAO4mB,EAAWtF,GAClBrhB,EAASD,EAAKC,OACdsF,EAAQ,EAELtF,EAASsF,GAAOyR,EAAqBP,EAAEc,EAAGnc,EAAM4E,EAAKuF,KAAU+b,EAAWlmB,IACjF,OAAOmc,IAMH,SAAU1d,EAAQD,EAASF,GAEjC,IAAIysB,EAAqBzsB,EAAoB,IACzComB,EAAcpmB,EAAoB,IAItCG,EAAOD,QAAUW,OAAOyF,MAAQ,SAAcuX,GAC5C,OAAO4O,EAAmB5O,EAAGuI,KAMzB,SAAUjmB,EAAQD,EAASF,GAEjC,IAAI0d,EAAW1d,EAAoB,GAC/BmtB,EAAqBntB,EAAoB,IAM7CG,EAAOD,QAAUW,OAAOwiB,iBAAmB,aAAe,GAAK,WAC7D,IAEI+J,EAFAC,GAAiB,EACjBzd,EAAO,GAEX,KACEwd,EAASvsB,OAAOkf,yBAAyBlf,OAAOkB,UAAW,aAAamd,KACjE5e,KAAKsP,EAAM,IAClByd,EAAiBzd,aAAgBnJ,MACjC,MAAO2W,IACT,OAAO,SAAwBS,EAAGkH,GAKhC,OAJArH,EAASG,GACTsP,EAAmBpI,GACfsI,EAAgBD,EAAO9sB,KAAKud,EAAGkH,GAC9BlH,EAAEyP,UAAYvI,EACZlH,GAdoD,QAgBzDxW,IAKA,SAAUlH,EAAQD,EAASF,GAEjC,IAAIoD,EAAWpD,EAAoB,GAEnCG,EAAOD,QAAU,SAAUmC,GACzB,IAAKe,EAASf,IAAc,OAAPA,EACnB,MAAMgB,UAAU,aAAeC,OAAOjB,GAAM,mBAC5C,OAAOA,IAML,SAAUlC,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAC7ButB,EAAevtB,EAAoB,IACnCwtB,EAAuBxtB,EAAoB,IAC3Cge,EAA8Bhe,EAAoB,GAClD+gB,EAAkB/gB,EAAoB,GAEtC2jB,EAAW5C,EAAgB,YAC3Ba,EAAgBb,EAAgB,eAChC0M,EAAcD,EAAqB1I,OAEvC,IAAK,IAAI4I,KAAmBH,EAAc,CACxC,IAAII,EAAaxrB,EAAOurB,GACpBE,EAAsBD,GAAcA,EAAW5rB,UACnD,GAAI6rB,EAAqB,CAEvB,GAAIA,EAAoBjK,KAAc8J,EAAa,IACjDzP,EAA4B4P,EAAqBjK,EAAU8J,GAC3D,MAAOrQ,GACPwQ,EAAoBjK,GAAY8J,EAKlC,GAHKG,EAAoBhM,IACvB5D,EAA4B4P,EAAqBhM,EAAe8L,GAE9DH,EAAaG,GAAkB,IAAK,IAAIG,KAAeL,EAEzD,GAAII,EAAoBC,KAAiBL,EAAqBK,GAAc,IAC1E7P,EAA4B4P,EAAqBC,EAAaL,EAAqBK,IACnF,MAAOzQ,GACPwQ,EAAoBC,GAAeL,EAAqBK,OAS1D,SAAU1tB,EAAQD,GAIxBC,EAAOD,QAAU,CACf4tB,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,IAMP,SAAUzvB,EAAQD,EAASF,GAEjC,aAEA,IAAI0hB,EAAkB1hB,EAAoB,IACtC6vB,EAAmB7vB,EAAoB,IACvCujB,EAAYvjB,EAAoB,IAChCme,EAAsBne,EAAoB,IAC1CqrB,EAAiBrrB,EAAoB,IAGrCsrB,EAAmBnN,EAAoBe,IACvCd,EAAmBD,EAAoB0B,UAFtB,kBAcrB1f,EAAOD,QAAUmrB,EAAe5kB,MAAO,SAAS,SAAU8kB,EAAUuE,GAClExE,EAAiB3oB,KAAM,CACrB+X,KAhBiB,iBAiBjByF,OAAQuB,EAAgB6J,GACxB1f,MAAO,EACPikB,KAAMA,OAIP,WACD,IAAI1V,EAAQgE,EAAiBzb,MACzBwd,EAAS/F,EAAM+F,OACf2P,EAAO1V,EAAM0V,KACbjkB,EAAQuO,EAAMvO,QAClB,OAAKsU,GAAUtU,GAASsU,EAAO5Z,QAC7B6T,EAAM+F,YAAS9Y,EACR,CAAEjG,WAAOiG,EAAWwhB,MAAM,IAEvB,QAARiH,EAAuB,CAAE1uB,MAAOyK,EAAOgd,MAAM,GACrC,UAARiH,EAAyB,CAAE1uB,MAAO+e,EAAOtU,GAAQgd,MAAM,GACpD,CAAEznB,MAAO,CAACyK,EAAOsU,EAAOtU,IAASgd,MAAM,KAC7C,UAKHtF,EAAUwM,UAAYxM,EAAU9c,MAGhCopB,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAKX,SAAU1vB,EAAQD,EAASF,GAEjC,IAAI+gB,EAAkB/gB,EAAoB,GACtCyB,EAASzB,EAAoB,IAC7Bsd,EAAuBtd,EAAoB,GAE3CgwB,EAAcjP,EAAgB,eAC9BkP,EAAiBxpB,MAAM1E,UAIQsF,MAA/B4oB,EAAeD,IACjB1S,EAAqBP,EAAEkT,EAAgBD,EAAa,CAClD5O,cAAc,EACdhgB,MAAOK,EAAO,QAKlBtB,EAAOD,QAAU,SAAUwB,GACzBuuB,EAAeD,GAAatuB,IAAO,IAM/B,SAAUvB,EAAQD,EAASF,GAEjC,aAEA,IAiDIkwB,EAAUC,EAAsBC,EAAgBC,EAjDhDnN,EAAIljB,EAAoB,IACxBoiB,EAAUpiB,EAAoB,IAC9BmC,EAASnC,EAAoB,GAC7B6nB,EAAa7nB,EAAoB,IACjCswB,EAAgBtwB,EAAoB,IACpCggB,EAAWhgB,EAAoB,IAC/BuwB,EAAcvwB,EAAoB,IAClCsjB,EAAiBtjB,EAAoB,IACrCwwB,EAAaxwB,EAAoB,IACjCoD,EAAWpD,EAAoB,GAC/B8e,EAAY9e,EAAoB,IAChCywB,EAAazwB,EAAoB,IACjCqpB,EAAUrpB,EAAoB,IAC9Bke,EAAgBle,EAAoB,IACpC0wB,EAAU1wB,EAAoB,IAC9B2wB,EAA8B3wB,EAAoB,IAClD4wB,EAAqB5wB,EAAoB,IACzC6wB,EAAO7wB,EAAoB,IAAIkf,IAC/B4R,EAAY9wB,EAAoB,IAChC+wB,EAAiB/wB,EAAoB,IACrCgxB,EAAmBhxB,EAAoB,IACvCixB,EAA6BjxB,EAAoB,IACjDkxB,EAAUlxB,EAAoB,IAC9Bme,EAAsBne,EAAoB,IAC1CkgB,EAAWlgB,EAAoB,IAC/B+gB,EAAkB/gB,EAAoB,GACtCmxB,EAAanxB,EAAoB,IAEjC+oB,EAAUhI,EAAgB,WAC1BqQ,EAAU,UACVhT,EAAmBD,EAAoBnd,IACvCsqB,EAAmBnN,EAAoBe,IACvCmS,EAA0BlT,EAAoB0B,UAAUuR,GACxDE,EAAqBhB,EACrBjtB,EAAYlB,EAAOkB,UACnB2d,EAAW7e,EAAO6e,SAClB2I,EAAUxnB,EAAOwnB,QACjB4H,EAAS1J,EAAW,SACpBoD,EAAuBgG,EAA2BlU,EAClDyU,EAA8BvG,EAC9BwG,EAA8B,WAApBpI,EAAQM,GAClB+H,KAAoB1Q,GAAYA,EAAS2Q,aAAexvB,EAAOyvB,eAU/D1N,EAAShE,EAASkR,GAAS,WAE7B,KAD6BlT,EAAcoT,KAAwBhuB,OAAOguB,IAC7C,CAI3B,GAAmB,KAAfH,EAAmB,OAAO,EAE9B,IAAKM,GAA2C,mBAAzBI,sBAAqC,OAAO,EAGrE,GAAIzP,IAAYkP,EAAmBvvB,UAAmB,QAAG,OAAO,EAIhE,GAAIovB,GAAc,IAAM,cAAcvhB,KAAK0hB,GAAqB,OAAO,EAEvE,IAAIrP,EAAUqP,EAAmBvP,QAAQ,GACrC+P,EAAc,SAAU/hB,GAC1BA,GAAK,eAA6B,gBAIpC,OAFkBkS,EAAQgE,YAAc,IAC5B8C,GAAW+I,IACd7P,EAAQ8P,MAAK,yBAAwCD,MAG5DE,EAAsB9N,IAAWyM,GAA4B,SAAUtI,GACzEiJ,EAAmBW,IAAI5J,GAAiB,OAAE,kBAIxC6J,EAAa,SAAU7vB,GACzB,IAAI0vB,EACJ,SAAO3uB,EAASf,IAAkC,mBAAnB0vB,EAAO1vB,EAAG0vB,QAAsBA,GAG7DI,EAAS,SAAUlQ,EAAS7H,EAAOgY,GACrC,IAAIhY,EAAMiY,SAAV,CACAjY,EAAMiY,UAAW,EACjB,IAAIC,EAAQlY,EAAMmY,UAClBzB,GAAU,WAKR,IAJA,IAAI1vB,EAAQgZ,EAAMhZ,MACdoxB,EAhDQ,GAgDHpY,EAAMA,MACXvO,EAAQ,EAELymB,EAAM/rB,OAASsF,GAAO,CAC3B,IAKIT,EAAQ2mB,EAAMU,EALdC,EAAWJ,EAAMzmB,KACjB8mB,EAAUH,EAAKE,EAASF,GAAKE,EAASE,KACtC7Q,EAAU2Q,EAAS3Q,QACnBC,EAAS0Q,EAAS1Q,OAClB4E,EAAS8L,EAAS9L,OAEtB,IACM+L,GACGH,IAzDC,IA0DApY,EAAMyY,WAAyBC,GAAkB7Q,EAAS7H,GAC9DA,EAAMyY,UA5DJ,IA8DY,IAAZF,EAAkBvnB,EAAShK,GAEzBwlB,GAAQA,EAAOmM,QACnB3nB,EAASunB,EAAQvxB,GACbwlB,IACFA,EAAOoM,OACPP,GAAS,IAGTrnB,IAAWsnB,EAASzQ,QACtBD,EAAO3e,EAAU,yBACR0uB,EAAOG,EAAW9mB,IAC3B2mB,EAAKzxB,KAAK8K,EAAQ2W,EAASC,GACtBD,EAAQ3W,IACV4W,EAAO5gB,GACd,MAAOgc,GACHwJ,IAAW6L,GAAQ7L,EAAOoM,OAC9BhR,EAAO5E,IAGXhD,EAAMmY,UAAY,GAClBnY,EAAMiY,UAAW,EACbD,IAAahY,EAAMyY,WAAWI,EAAYhR,EAAS7H,QAIvDwX,EAAgB,SAAUlxB,EAAMuhB,EAASiR,GAC3C,IAAIhJ,EAAOyI,EACPjB,IACFxH,EAAQlJ,EAAS2Q,YAAY,UACvB1P,QAAUA,EAChBiI,EAAMgJ,OAASA,EACfhJ,EAAMiJ,UAAUzyB,GAAM,GAAO,GAC7ByB,EAAOyvB,cAAc1H,IAChBA,EAAQ,CAAEjI,QAASA,EAASiR,OAAQA,IACvCP,EAAUxwB,EAAO,KAAOzB,IAAOiyB,EAAQzI,GAtGnB,uBAuGfxpB,GAA8BswB,EAAiB,8BAA+BkC,IAGrFD,EAAc,SAAUhR,EAAS7H,GACnCyW,EAAKvwB,KAAK6B,GAAQ,WAChB,IAEIiJ,EAFAhK,EAAQgZ,EAAMhZ,MAGlB,GAFmBgyB,GAAYhZ,KAG7BhP,EAAS8lB,GAAQ,WACXO,EACF9H,EAAQlP,KAAK,qBAAsBrZ,EAAO6gB,GACrC2P,EAnHW,qBAmHwB3P,EAAS7gB,MAGrDgZ,EAAMyY,UAAYpB,GAAW2B,GAAYhZ,GAhH/B,EADF,EAkHJhP,EAAOgS,OAAO,MAAMhS,EAAOhK,UAKjCgyB,GAAc,SAAUhZ,GAC1B,OAxHY,IAwHLA,EAAMyY,YAA0BzY,EAAM/G,QAG3Cyf,GAAoB,SAAU7Q,EAAS7H,GACzCyW,EAAKvwB,KAAK6B,GAAQ,WACZsvB,EACF9H,EAAQlP,KAAK,mBAAoBwH,GAC5B2P,EAnIa,mBAmIoB3P,EAAS7H,EAAMhZ,WAIvDO,GAAO,SAAUoH,EAAIkZ,EAAS7H,EAAOiZ,GACvC,OAAO,SAAUjyB,GACf2H,EAAGkZ,EAAS7H,EAAOhZ,EAAOiyB,KAI1BC,GAAiB,SAAUrR,EAAS7H,EAAOhZ,EAAOiyB,GAChDjZ,EAAMyO,OACVzO,EAAMyO,MAAO,EACTwK,IAAQjZ,EAAQiZ,GACpBjZ,EAAMhZ,MAAQA,EACdgZ,EAAMA,MA/IO,EAgJb+X,EAAOlQ,EAAS7H,GAAO,KAGrBmZ,GAAkB,SAAUtR,EAAS7H,EAAOhZ,EAAOiyB,GACrD,IAAIjZ,EAAMyO,KAAV,CACAzO,EAAMyO,MAAO,EACTwK,IAAQjZ,EAAQiZ,GACpB,IACE,GAAIpR,IAAY7gB,EAAO,MAAMiC,EAAU,oCACvC,IAAI0uB,EAAOG,EAAW9wB,GAClB2wB,EACFjB,GAAU,WACR,IAAI0C,EAAU,CAAE3K,MAAM,GACtB,IACEkJ,EAAKzxB,KAAKc,EACRO,GAAK4xB,GAAiBtR,EAASuR,EAASpZ,GACxCzY,GAAK2xB,GAAgBrR,EAASuR,EAASpZ,IAEzC,MAAOgD,GACPkW,GAAerR,EAASuR,EAASpW,EAAOhD,QAI5CA,EAAMhZ,MAAQA,EACdgZ,EAAMA,MAzKI,EA0KV+X,EAAOlQ,EAAS7H,GAAO,IAEzB,MAAOgD,GACPkW,GAAerR,EAAS,CAAE4G,MAAM,GAASzL,EAAOhD,MAKhD8J,IAEFoN,EAAqB,SAAiBmC,GACpChD,EAAW9tB,KAAM2uB,EAAoBF,GACrCtS,EAAU2U,GACVvD,EAAS5vB,KAAKqC,MACd,IAAIyX,EAAQgE,EAAiBzb,MAC7B,IACE8wB,EAAS9xB,GAAK4xB,GAAiB5wB,KAAMyX,GAAQzY,GAAK2xB,GAAgB3wB,KAAMyX,IACxE,MAAOgD,GACPkW,GAAe3wB,KAAMyX,EAAOgD,MAIhC8S,EAAW,SAAiBuD,GAC1BnI,EAAiB3oB,KAAM,CACrB+X,KAAM0W,EACNvI,MAAM,EACNwJ,UAAU,EACVhf,QAAQ,EACRkf,UAAW,GACXM,WAAW,EACXzY,MAzMQ,EA0MRhZ,WAAOiG,MAGFtF,UAAYwuB,EAAYe,EAAmBvvB,UAAW,CAG7DgwB,KAAM,SAAc2B,EAAaC,GAC/B,IAAIvZ,EAAQiX,EAAwB1uB,MAChC+vB,EAAWzH,EAAqB2F,EAAmBjuB,KAAM2uB,IAO7D,OANAoB,EAASF,GAA2B,mBAAfkB,GAA4BA,EACjDhB,EAASE,KAA4B,mBAAde,GAA4BA,EACnDjB,EAAS9L,OAAS6K,EAAU9H,EAAQ/C,YAASvf,EAC7C+S,EAAM/G,QAAS,EACf+G,EAAMmY,UAAUrqB,KAAKwqB,GAvNb,GAwNJtY,EAAMA,OAAkB+X,EAAOxvB,KAAMyX,GAAO,GACzCsY,EAASzQ,SAIlB2R,MAAS,SAAUD,GACjB,OAAOhxB,KAAKovB,UAAK1qB,EAAWssB,MAGhCxD,EAAuB,WACrB,IAAIlO,EAAU,IAAIiO,EACd9V,EAAQgE,EAAiB6D,GAC7Btf,KAAKsf,QAAUA,EACftf,KAAKof,QAAUpgB,GAAK4xB,GAAiBtR,EAAS7H,GAC9CzX,KAAKqf,OAASrgB,GAAK2xB,GAAgBrR,EAAS7H,IAE9C6W,EAA2BlU,EAAIkO,EAAuB,SAAUrnB,GAC9D,OAAOA,IAAM0tB,GAAsB1tB,IAAMwsB,EACrC,IAAID,EAAqBvsB,GACzB4tB,EAA4B5tB,IAG7Bwe,GAAmC,mBAAjBkO,IACrBD,EAAaC,EAAcvuB,UAAUgwB,KAGrC/R,EAASsQ,EAAcvuB,UAAW,QAAQ,SAAc2xB,EAAaC,GACnE,IAAIrL,EAAO3lB,KACX,OAAO,IAAI2uB,GAAmB,SAAUvP,EAASC,GAC/CqO,EAAW/vB,KAAKgoB,EAAMvG,EAASC,MAC9B+P,KAAK2B,EAAaC,KAEpB,CAAElV,QAAQ,IAGQ,mBAAV8S,GAAsBrO,EAAE,CAAE/gB,QAAQ,EAAMpB,YAAY,EAAM4f,QAAQ,GAAQ,CAEnFkT,MAAO,SAAevR,GACpB,OAAOyO,EAAeO,EAAoBC,EAAOlY,MAAMlX,EAAQqI,iBAMvE0Y,EAAE,CAAE/gB,QAAQ,EAAM2xB,MAAM,EAAMnT,OAAQuD,GAAU,CAC9C4D,QAASwJ,IAGXhO,EAAegO,EAAoBF,GAAS,GAAO,GACnDZ,EAAWY,GAEXhB,EAAiBvI,EAAWuJ,GAG5BlO,EAAE,CAAE/C,OAAQiR,EAAS1Q,MAAM,EAAMC,OAAQuD,GAAU,CAGjDlC,OAAQ,SAAgB/gB,GACtB,IAAI8yB,EAAa9I,EAAqBtoB,MAEtC,OADAoxB,EAAW/R,OAAO1hB,UAAK+G,EAAWpG,GAC3B8yB,EAAW9R,WAItBiB,EAAE,CAAE/C,OAAQiR,EAAS1Q,MAAM,EAAMC,OAAQyB,GAAW8B,GAAU,CAG5DnC,QAAS,SAAiBvZ,GACxB,OAAOuoB,EAAe3O,GAAWzf,OAASytB,EAAiBkB,EAAqB3uB,KAAM6F,MAI1F0a,EAAE,CAAE/C,OAAQiR,EAAS1Q,MAAM,EAAMC,OAAQqR,GAAuB,CAG9DC,IAAK,SAAa5J,GAChB,IAAIzkB,EAAIjB,KACJoxB,EAAa9I,EAAqBrnB,GAClCme,EAAUgS,EAAWhS,QACrBC,EAAS+R,EAAW/R,OACpB5W,EAAS8lB,GAAQ,WACnB,IAAI8C,EAAkBlV,EAAUlb,EAAEme,SAC9B+C,EAAS,GACTgF,EAAU,EACVmK,EAAY,EAChBvD,EAAQrI,GAAU,SAAUpG,GAC1B,IAAIpW,EAAQie,IACRoK,GAAgB,EACpBpP,EAAO5c,UAAKb,GACZ4sB,IACAD,EAAgB1zB,KAAKsD,EAAGqe,GAAS8P,MAAK,SAAU3wB,GAC1C8yB,IACJA,GAAgB,EAChBpP,EAAOjZ,GAASzK,IACd6yB,GAAalS,EAAQ+C,MACtB9C,QAEHiS,GAAalS,EAAQ+C,MAGzB,OADI1Z,EAAOgS,OAAO4E,EAAO5W,EAAOhK,OACzB2yB,EAAW9R,SAIpBkS,KAAM,SAAc9L,GAClB,IAAIzkB,EAAIjB,KACJoxB,EAAa9I,EAAqBrnB,GAClCoe,EAAS+R,EAAW/R,OACpB5W,EAAS8lB,GAAQ,WACnB,IAAI8C,EAAkBlV,EAAUlb,EAAEme,SAClC2O,EAAQrI,GAAU,SAAUpG,GAC1B+R,EAAgB1zB,KAAKsD,EAAGqe,GAAS8P,KAAKgC,EAAWhS,QAASC,SAI9D,OADI5W,EAAOgS,OAAO4E,EAAO5W,EAAOhK,OACzB2yB,EAAW9R,YAOhB,SAAU9hB,EAAQD,EAASF,GAEjC,IAAIggB,EAAWhgB,EAAoB,IAEnCG,EAAOD,QAAU,SAAUigB,EAAQqH,EAAKzN,GACtC,IAAK,IAAIrY,KAAO8lB,EAAKxH,EAASG,EAAQze,EAAK8lB,EAAI9lB,GAAMqY,GACrD,OAAOoG,IAMH,SAAUhgB,EAAQD,EAASF,GAEjC,aAEA,IAAI6nB,EAAa7nB,EAAoB,IACjCsd,EAAuBtd,EAAoB,GAC3C+gB,EAAkB/gB,EAAoB,GACtCqd,EAAcrd,EAAoB,GAElC+oB,EAAUhI,EAAgB,WAE9B5gB,EAAOD,QAAU,SAAUk0B,GACzB,IAAIC,EAAcxM,EAAWuM,GACzBtzB,EAAiBwc,EAAqBP,EAEtCM,GAAegX,IAAgBA,EAAYtL,IAC7CjoB,EAAeuzB,EAAatL,EAAS,CACnC3H,cAAc,EACdpgB,IAAK,WAAc,OAAO2B,UAQ1B,SAAUxC,EAAQD,GAExBC,EAAOD,QAAU,SAAUmC,EAAIgyB,EAAa3zB,GAC1C,KAAM2B,aAAcgyB,GAClB,MAAMhxB,UAAU,cAAgB3C,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAO2B,IAML,SAAUlC,EAAQD,EAASF,GAEjC,IAAI+gB,EAAkB/gB,EAAoB,GACtCujB,EAAYvjB,EAAoB,IAEhC2jB,EAAW5C,EAAgB,YAC3BkP,EAAiBxpB,MAAM1E,UAG3B5B,EAAOD,QAAU,SAAUmC,GACzB,YAAcgF,IAAPhF,IAAqBkhB,EAAU9c,QAAUpE,GAAM4tB,EAAetM,KAActhB,KAM/E,SAAUlC,EAAQD,EAASF,GAEjC,IAAIqpB,EAAUrpB,EAAoB,IAC9BujB,EAAYvjB,EAAoB,IAGhC2jB,EAFkB3jB,EAAoB,EAE3B+gB,CAAgB,YAE/B5gB,EAAOD,QAAU,SAAUmC,GACzB,GAAUgF,MAANhF,EAAiB,OAAOA,EAAGshB,IAC1BthB,EAAG,eACHkhB,EAAU8F,EAAQhnB,MAMnB,SAAUlC,EAAQD,EAASF,GAEjC,IAAI0d,EAAW1d,EAAoB,GAGnCG,EAAOD,QAAU,SAAUuoB,EAAU1f,EAAI3H,EAAOkzB,GAC9C,IACE,OAAOA,EAAUvrB,EAAG2U,EAAStc,GAAO,GAAIA,EAAM,IAAM2H,EAAG3H,GAEvD,MAAOgc,GACP,IAAImX,EAAe9L,EAAiB,OAEpC,WADqBphB,IAAjBktB,GAA4B7W,EAAS6W,EAAaj0B,KAAKmoB,IACrDrL,KAOJ,SAAUjd,EAAQD,EAASF,GAEjC,IAEI2jB,EAFkB3jB,EAAoB,EAE3B+gB,CAAgB,YAC3ByT,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvB3iB,KAAM,WACJ,MAAO,CAAE8W,OAAQ4L,MAEnBE,OAAU,WACRH,GAAe,IAGnBE,EAAmB/Q,GAAY,WAC7B,OAAOhhB,MAGT8D,MAAMmuB,KAAKF,GAAoB,WAAc,MAAM,KACnD,MAAOtX,IAETjd,EAAOD,QAAU,SAAU6P,EAAM8kB,GAC/B,IAAKA,IAAiBL,EAAc,OAAO,EAC3C,IAAIM,GAAoB,EACxB,IACE,IAAIjzB,EAAS,GACbA,EAAO8hB,GAAY,WACjB,MAAO,CACL5R,KAAM,WACJ,MAAO,CAAE8W,KAAMiM,GAAoB,MAIzC/kB,EAAKlO,GACL,MAAOub,IACT,OAAO0X,IAMH,SAAU30B,EAAQD,EAASF,GAEjC,IAcI+0B,EAAOC,EAAMC,EAAM9C,EAAQ+C,EAAQ9jB,EAAM6Q,EAAS8P,EAdlD5vB,EAASnC,EAAoB,GAC7B+f,EAA2B/f,EAAoB,IAAI+c,EACnDsM,EAAUrpB,EAAoB,IAC9Bm1B,EAAYn1B,EAAoB,IAAIkf,IACpCoK,EAAStpB,EAAoB,IAE7Bo1B,EAAmBjzB,EAAOizB,kBAAoBjzB,EAAOkzB,uBACrD1L,EAAUxnB,EAAOwnB,QACjB7B,EAAU3lB,EAAO2lB,QACjB2J,EAA8B,WAApBpI,EAAQM,GAElB2L,EAA2BvV,EAAyB5d,EAAQ,kBAC5DozB,EAAiBD,GAA4BA,EAAyBl0B,MAKrEm0B,IACHR,EAAQ,WACN,IAAI1hB,EAAQtK,EAEZ,IADI0oB,IAAYpe,EAASsW,EAAQ/C,SAASvT,EAAO2f,OAC1CgC,GAAM,CACXjsB,EAAKisB,EAAKjsB,GACVisB,EAAOA,EAAKjjB,KACZ,IACEhJ,IACA,MAAOqU,GAGP,MAFI4X,EAAM7C,IACL8C,OAAO5tB,EACN+V,GAER6X,OAAO5tB,EACLgM,GAAQA,EAAO0f,SAIjBtB,EACFU,EAAS,WACPxI,EAAQY,SAASwK,IAGVK,IAAqB9L,GAC9B4L,GAAS,EACT9jB,EAAO4P,SAASwU,eAAe,IAC/B,IAAIJ,EAAiBL,GAAOU,QAAQrkB,EAAM,CAAEskB,eAAe,IAC3DvD,EAAS,WACP/gB,EAAKkU,KAAO4P,GAAUA,IAGfpN,GAAWA,EAAQ/F,SAE5BE,EAAU6F,EAAQ/F,aAAQ1a,GAC1B0qB,EAAO9P,EAAQ8P,KACfI,EAAS,WACPJ,EAAKzxB,KAAK2hB,EAAS8S,KASrB5C,EAAS,WAEPgD,EAAU70B,KAAK6B,EAAQ4yB,KAK7B50B,EAAOD,QAAUq1B,GAAkB,SAAUxsB,GAC3C,IAAI8nB,EAAO,CAAE9nB,GAAIA,EAAIgJ,UAAM1K,GACvB4tB,IAAMA,EAAKljB,KAAO8e,GACjBmE,IACHA,EAAOnE,EACPsB,KACA8C,EAAOpE,IAML,SAAU1wB,EAAQD,EAASF,GAEjC,IAAImC,EAASnC,EAAoB,GAEjCG,EAAOD,QAAU,SAAU4H,EAAGC,GAC5B,IAAI9B,EAAU9D,EAAO8D,QACjBA,GAAWA,EAAQmX,QACA,IAArB5S,UAAUjE,OAAeN,EAAQmX,MAAMtV,GAAK7B,EAAQmX,MAAMtV,EAAGC,MAO3D,SAAU5H,EAAQD,EAASF,GAEjC,IAMIyJ,EAAO5D,EANP1D,EAASnC,EAAoB,GAC7BgrB,EAAYhrB,EAAoB,IAEhC2pB,EAAUxnB,EAAOwnB,QACjBgM,EAAWhM,GAAWA,EAAQgM,SAC9BC,EAAKD,GAAYA,EAASC,GAG1BA,EAEF/vB,GADA4D,EAAQmsB,EAAGpX,MAAM,MACD,GAAK/U,EAAM,GAClBuhB,MACTvhB,EAAQuhB,EAAUvhB,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQuhB,EAAUvhB,MAAM,oBACb5D,EAAU4D,EAAM,IAI/BtJ,EAAOD,QAAU2F,IAAYA,GAKvB,SAAU1F,EAAQD,EAASF,GAEjC,aAEA,IAAIkjB,EAAIljB,EAAoB,IACxB8e,EAAY9e,EAAoB,IAChCixB,EAA6BjxB,EAAoB,IACjDkxB,EAAUlxB,EAAoB,IAC9B0wB,EAAU1wB,EAAoB,IAIlCkjB,EAAE,CAAE/C,OAAQ,UAAWO,MAAM,GAAQ,CACnCmV,WAAY,SAAoBxN,GAC9B,IAAIzkB,EAAIjB,KACJoxB,EAAa9C,EAA2BlU,EAAEnZ,GAC1Cme,EAAUgS,EAAWhS,QACrBC,EAAS+R,EAAW/R,OACpB5W,EAAS8lB,GAAQ,WACnB,IAAIH,EAAiBjS,EAAUlb,EAAEme,SAC7B+C,EAAS,GACTgF,EAAU,EACVmK,EAAY,EAChBvD,EAAQrI,GAAU,SAAUpG,GAC1B,IAAIpW,EAAQie,IACRoK,GAAgB,EACpBpP,EAAO5c,UAAKb,GACZ4sB,IACAlD,EAAezwB,KAAKsD,EAAGqe,GAAS8P,MAAK,SAAU3wB,GACzC8yB,IACJA,GAAgB,EAChBpP,EAAOjZ,GAAS,CAAEiqB,OAAQ,YAAa10B,MAAOA,KAC5C6yB,GAAalS,EAAQ+C,OACtB,SAAUsG,GACP8I,IACJA,GAAgB,EAChBpP,EAAOjZ,GAAS,CAAEiqB,OAAQ,WAAY5C,OAAQ9H,KAC5C6I,GAAalS,EAAQ+C,YAGzBmP,GAAalS,EAAQ+C,MAGzB,OADI1Z,EAAOgS,OAAO4E,EAAO5W,EAAOhK,OACzB2yB,EAAW9R,YAOhB,SAAU9hB,EAAQD,EAASF,GAEjC,aAEA,IAAIkjB,EAAIljB,EAAoB,IACxBoiB,EAAUpiB,EAAoB,IAC9BswB,EAAgBtwB,EAAoB,IACpCwd,EAAQxd,EAAoB,GAC5B6nB,EAAa7nB,EAAoB,IACjC4wB,EAAqB5wB,EAAoB,IACzC+wB,EAAiB/wB,EAAoB,IACrCggB,EAAWhgB,EAAoB,IASnCkjB,EAAE,CAAE/C,OAAQ,UAAW4E,OAAO,EAAMgR,MAAM,EAAMpV,SAN5B2P,GAAiB9S,GAAM,WACzC8S,EAAcvuB,UAAmB,QAAEzB,KAAK,CAAEyxB,KAAM,eAA+B,mBAKV,CACrEiE,QAAW,SAAUC,GACnB,IAAIryB,EAAIgtB,EAAmBjuB,KAAMklB,EAAW,YACxCqO,EAAiC,mBAAbD,EACxB,OAAOtzB,KAAKovB,KACVmE,EAAa,SAAU1tB,GACrB,OAAOuoB,EAAentB,EAAGqyB,KAAalE,MAAK,WAAc,OAAOvpB,MAC9DytB,EACJC,EAAa,SAAU9K,GACrB,OAAO2F,EAAentB,EAAGqyB,KAAalE,MAAK,WAAc,MAAM3G,MAC7D6K,MAML7T,GAAmC,mBAAjBkO,GAAgCA,EAAcvuB,UAAmB,SACtFie,EAASsQ,EAAcvuB,UAAW,UAAW8lB,EAAW,WAAW9lB,UAAmB,UAMlF,SAAU5B,EAAQg2B,EAAqBn2B,GAE7C,aAEAA,EAAoBiB,EAAEk1B,GAGtBn2B,EAAoBS,EAAE01B,EAAqB,OAAO,WAAa,OAAqB5wB,KACpFvF,EAAoBS,EAAE01B,EAAqB,QAAQ,WAAa,OAAqBtN,KACrF7oB,EAAoBS,EAAE01B,EAAqB,QAAQ,WAAa,OAAqBC,KACrFp2B,EAAoBS,EAAE01B,EAAqB,QAAQ,WAAa,OAAqBjsB,KACrFlK,EAAoBS,EAAE01B,EAAqB,WAAW,WAAa,OAAqBE,KACxFr2B,EAAoBS,EAAE01B,EAAqB,UAAU,WAAa,OAAqBriB,KAsEvF,SAASwiB,EAAUC,EAASC,EAAY1Y,EAAG2Y,GAEvC,OAAO,IAAK3Y,IAAMA,EAAIgK,WAAU,SAAU/F,EAASC,GAC/C,SAAS0U,EAAUt1B,GAAS,IAAMunB,EAAK8N,EAAU1kB,KAAK3Q,IAAW,MAAOgqB,GAAKpJ,EAAOoJ,IACpF,SAASuL,EAASv1B,GAAS,IAAMunB,EAAK8N,EAAiB,MAAEr1B,IAAW,MAAOgqB,GAAKpJ,EAAOoJ,IACvF,SAASzC,EAAKvd,GAJlB,IAAehK,EAIagK,EAAOyd,KAAO9G,EAAQ3W,EAAOhK,QAJ1CA,EAIyDgK,EAAOhK,MAJhDA,aAAiB0c,EAAI1c,EAAQ,IAAI0c,GAAE,SAAUiE,GAAWA,EAAQ3gB,OAIT2wB,KAAK2E,EAAWC,GAClGhO,GAAM8N,EAAYA,EAAUpd,MAAMkd,EAASC,GAAc,KAAKzkB,WAItE,SAAS6kB,EAAYL,EAASM,GAC1B,IAAsG9Z,EAAG+Z,EAAGz1B,EAAG8pB,EAA3G4L,EAAI,CAAE/sB,MAAO,EAAGgtB,KAAM,WAAa,GAAW,EAAP31B,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO41B,KAAM,GAAIC,IAAK,IAChG,OAAO/L,EAAI,CAAEpZ,KAAMolB,EAAK,GAAIC,MAASD,EAAK,GAAIxC,OAAUwC,EAAK,IAAwB,mBAAXj2B,SAA0BiqB,EAAEjqB,OAAOunB,UAAY,WAAa,OAAO9lB,OAAUwoB,EACvJ,SAASgM,EAAKv1B,GAAK,OAAO,SAAU+B,GAAK,OACzC,SAAc0zB,GACV,GAAIta,EAAG,MAAM,IAAI1Z,UAAU,mCAC3B,KAAO0zB,GAAG,IACN,GAAIha,EAAI,EAAG+Z,IAAMz1B,EAAY,EAARg2B,EAAG,GAASP,EAAU,OAAIO,EAAG,GAAKP,EAAS,SAAOz1B,EAAIy1B,EAAU,SAAMz1B,EAAEf,KAAKw2B,GAAI,GAAKA,EAAE/kB,SAAW1Q,EAAIA,EAAEf,KAAKw2B,EAAGO,EAAG,KAAKxO,KAAM,OAAOxnB,EAE3J,OADIy1B,EAAI,EAAGz1B,IAAGg2B,EAAK,CAAS,EAARA,EAAG,GAAQh2B,EAAED,QACzBi2B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGh2B,EAAIg2B,EAAI,MACxB,KAAK,EAAc,OAAXN,EAAE/sB,QAAgB,CAAE5I,MAAOi2B,EAAG,GAAIxO,MAAM,GAChD,KAAK,EAAGkO,EAAE/sB,QAAS8sB,EAAIO,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKN,EAAEG,IAAI3lB,MAAOwlB,EAAEE,KAAK1lB,MAAO,SACxC,QACI,KAAMlQ,EAAI01B,EAAEE,MAAM51B,EAAIA,EAAEkF,OAAS,GAAKlF,EAAEA,EAAEkF,OAAS,KAAkB,IAAV8wB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEN,EAAI,EAAG,SACjG,GAAc,IAAVM,EAAG,MAAch2B,GAAMg2B,EAAG,GAAKh2B,EAAE,IAAMg2B,EAAG,GAAKh2B,EAAE,IAAM,CAAE01B,EAAE/sB,MAAQqtB,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYN,EAAE/sB,MAAQ3I,EAAE,GAAI,CAAE01B,EAAE/sB,MAAQ3I,EAAE,GAAIA,EAAIg2B,EAAI,MAC7D,GAAIh2B,GAAK01B,EAAE/sB,MAAQ3I,EAAE,GAAI,CAAE01B,EAAE/sB,MAAQ3I,EAAE,GAAI01B,EAAEG,IAAIhvB,KAAKmvB,GAAK,MACvDh2B,EAAE,IAAI01B,EAAEG,IAAI3lB,MAChBwlB,EAAEE,KAAK1lB,MAAO,SAEtB8lB,EAAKR,EAAKv2B,KAAKi2B,EAASQ,GAC1B,MAAO3L,GAAKiM,EAAK,CAAC,EAAGjM,GAAI0L,EAAI,EAAK,QAAU/Z,EAAI1b,EAAI,EACtD,GAAY,EAARg2B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEj2B,MAAOi2B,EAAG,GAAKA,EAAG,QAAK,EAAQxO,MAAM,GArB9BF,CAAK,CAAC/mB,EAAG+B,MAyBvC9C,OAAOY,OA0FJZ,OAAOY,OAkChC,IAAIyD,EAAOlF,EAAoB,GAK/B,IAEIA,EAAoB,IAExB,MAAO+2B,IAGP,IAcI3xB,EACAkyB,EACAzrB,EAhBA0rB,EACA,WACI50B,KAAK4C,IAAMA,EACX5C,KAAKkmB,KAAOA,EACZlmB,KAAKmR,OAASA,EACdnR,KAAKyzB,KAAOA,EACZzzB,KAAKuH,KAAOA,EACZvH,KAAK0zB,QAAUA,GAKnB7W,GADmD2W,EAA6B,QAAI,EAC5E,IAKZ,SAASqB,KACLpyB,EAAU,IAAIF,EAAc,SACpB+P,MAAM,SACd7P,EAAQ6P,MAAM,eACd7P,EAAQsR,IAAI,OACZtR,EAAQE,SAASC,IAAIL,EAAc,QAAGA,EAAqB,eAAGA,EAAc,SAC5E2G,EAAQ,IAAIic,SAAQ,SAAU/F,GAC1BuV,EAAevV,KAXvB7c,EAAgB,UAAEwE,UAAY,MAc9B8tB,IAEA,SAASjyB,EAAIkyB,EAAOC,EAAaC,GAC7B,IAAIjhB,EAAM8I,EAAMtX,KAAKyvB,GAAQ,EACzBC,EAAO,CACPH,MAAOA,EAAMvuB,cACbwuB,YAAaA,EAAYxuB,cACzBwN,IAAKA,GAETtR,EAAQG,IAAIqyB,GAEhB,SAAS/O,IACL,OAAOyN,EAAU3zB,UAAM,OAAQ,GAAQ,WACnC,OAAOi0B,EAAYj0B,MAAM,SAAUk1B,GAE/B,OADAP,EAAalyB,EAAQQ,SACd,CAAC,SAIpB,SAASwwB,IACL,OAAOE,EAAU3zB,UAAM,OAAQ,GAAQ,WACnC,IAAIk1B,EACJ,OAAOjB,EAAYj0B,MAAM,SAAU0U,GAC/B,OAAQA,EAAGrN,OACP,KAAK,EAID,OAHA6tB,EAAK,CACDrY,MAAOA,GAEJ,CAAC,EAAa3T,GACzB,KAAK,EAAG,MAAO,CAAC,GAAegsB,EAAGhsB,MAASwL,EAAG2f,OAAQvrB,SAC9CosB,WAKxB,SAAS3tB,EAAKkQ,GACV,OAAOkc,EAAU3zB,UAAM,OAAQ,GAAQ,WACnC,OAAOi0B,EAAYj0B,MAAM,SAAUk1B,GAG/B,OAFArY,EAAQpF,EAAMoF,MACd8X,EAAapyB,EAAY,MAAEgF,KAAKkQ,EAAMvO,QAC/B,CAAC,SAIpB,SAASwqB,IACL,OAAOC,EAAU3zB,UAAM,OAAQ,GAAQ,WACnC,OAAOi0B,EAAYj0B,MAAM,SAAUk1B,GAG/B,OAFArY,EAAQ,GACRgY,IACO,CAAC,SAIpB,SAAS1jB,EAAOpB,EAAGolB,GAEf,YADc,IAAVA,IAAoBA,EAAQ,GACzBxB,EAAU3zB,UAAM,OAAQ,GAAQ,WACnC,IAAIo1B,EACJ,OAAOnB,EAAYj0B,MAAM,SAAUk1B,GAC/B,OAAQA,EAAG7tB,OACP,KAAK,EACD,OAAwB,IAApB0I,EAAEslB,OAAOzxB,OACF,CAAC,EAAc,IAEnB,CAAC,EAAasF,GACzB,KAAK,EAUD,OATAksB,EAAiBF,EAAGb,OAAQhjB,OAAM,SAAU3S,GACxCqR,EAAEslB,OAAO9uB,cAAcsV,MAAM,OAAOpU,SAAQ,SAAU6G,GAClD,IAAIgnB,EAlEf,SAAUhnB,GAAQ,MAAO,IAAM/L,EAAc,QAAE,IAAIA,EAAY,MAAE+L,EAAM,KAAO,IAkEzDinB,CAAWjnB,GACrB5P,EAAE4P,KAAKgnB,EAAK,UAGhBH,EAAQ,IACRC,EAAgBA,EAAcpxB,MAAM,EAAGmxB,IAEpC,CAAC,EAAcC,EAAc9uB,KAAI,SAAUkvB,GAAO,MAAO,CACxDR,KAAMnY,EAAM2Y,EAAIzhB,KAChBH,MAAO4hB,EAAI5hB,kBAOvCqU,iBAAiB,WAAW,SAAUQ,GAAI,IAAyGrO,EAArGqb,EAAUhN,EAAE9F,KAAK5K,EAAO0d,EAAQ1d,KAAKuE,EAASmZ,EAAQnZ,OAAOzO,EAAK4nB,EAAQ5nB,GAAG6nB,EAASD,EAAQC,OAAwB,QAAT3d,GAAkBuE,KAAalC,EAAIoZ,EAAoBlX,IAAc6I,QAAQ/F,UAAUgQ,MAAK,WAAa,OAAOhV,EAAE1D,MAAM8c,EAAqBkC,MAAuBvQ,QAAQ9F,OAAO,mBAAqB+P,MAAK,SAAU3mB,GAASgf,YAAY,CAAC1P,KAAM,MAAMlK,GAAIA,EAAGpF,OAAQA,OAAYwoB,OAAM,SAAUxI,GAAI,IAAIhO,EAAQ,CAACpX,QAASolB,GAAOA,EAAEja,QAAQiM,EAAMpX,QAAUolB,EAAEplB,QAAQoX,EAAMjM,MAAQia,EAAEja,MAAMiM,EAAM1c,KAAO0qB,EAAE1qB,MAAM0pB,YAAY,CAAC1P,KAAM,MAAMlK,GAAIA,EAAG4M,MAAOA,UAAegN,YAAY,CAAC1P,KAAM,MAAMuE,OAAQ","file":"6ab91c58bf337b7164c3.worker.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://Redoc/182649235cd683068b8d.worker.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","check","it","Math","globalThis","window","self","Function","this","shared","has","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","isObject","TypeError","String","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","step2list","step3list","v","C","re_mgr0","re_mgr1","re_meq1","re_s_v","re_1a","re2_1a","re_1b","re2_1b","re_1b_2","re2_1b_2","re3_1b_2","re4_1b_2","re_1c","re_2","re_3","re_4","re2_4","re_5","re_5_1","re3_5","porterStemmer","lunr","config","builder","Builder","pipeline","add","trimmer","stopWordFilter","stemmer","searchPipeline","build","version","utils","warn","message","console","asString","obj","toString","clone","keys","length","val","Array","isArray","slice","FieldRef","docRef","fieldName","stringValue","_stringValue","joiner","fromString","indexOf","fieldRef","undefined","Set","elements","complete","intersect","other","union","contains","empty","a","b","intersection","element","push","concat","idf","posting","documentCount","documentsWithTerm","x","log","abs","Token","str","metadata","update","fn","tokenizer","map","toLowerCase","len","tokens","sliceEnd","sliceStart","sliceLength","charAt","match","separator","tokenMetadata","Pipeline","_stack","registeredFunctions","registerFunction","label","warnIfFunctionNotRegistered","load","serialised","forEach","fnName","Error","fns","arguments","after","existingFn","newFn","pos","splice","before","remove","run","stackLength","memo","j","result","k","runString","token","reset","toJSON","Vector","_magnitude","positionForIndex","index","start","end","pivotPoint","floor","pivotIndex","insert","insertIdx","upsert","position","magnitude","sumOfSquares","elementsLength","sqrt","dot","otherVector","dotProduct","aLen","bLen","aVal","bVal","similarity","toArray","output","ational","tional","enci","anci","izer","bli","alli","entli","eli","ousli","ization","ation","ator","alism","iveness","fulness","ousness","aliti","iviti","biliti","logi","icate","ative","alize","iciti","ical","ful","ness","RegExp","w","stem","suffix","firstch","re","re2","re3","re4","substr","toUpperCase","test","replace","fp","exec","generateStopWordFilter","stopWords","words","reduce","stopWord","TokenSet","final","edges","id","_nextId","fromArray","arr","finish","root","fromClause","clause","fromFuzzyString","term","editDistance","stack","node","editsRemaining","frame","pop","noEditNode","char","insertionNode","substitutionNode","transposeNode","charA","charB","next","prefix","edge","_str","labels","sort","qNode","qEdges","qLen","nEdges","nLen","q","qEdge","nEdge","previousWord","uncheckedNodes","minimizedNodes","word","commonPrefix","minimize","child","nextNode","parent","downTo","childKey","Index","attrs","invertedIndex","fieldVectors","tokenSet","fields","search","queryString","query","QueryParser","parse","Query","matchingFields","queryVectors","termFieldCache","requiredMatches","prohibitedMatches","clauses","terms","clauseMatches","usePipeline","termTokenSet","expandedTerms","presence","REQUIRED","field","expandedTerm","termIndex","_index","fieldPosting","matchingDocumentRefs","termField","matchingDocumentsSet","PROHIBITED","boost","fieldMatch","matchingDocumentRef","matchingFieldRef","MatchData","allRequiredMatches","allProhibitedMatches","matchingFieldRefs","results","matches","isNegated","docMatch","fieldVector","score","matchData","combine","ref","serializedIndex","serializedVectors","serializedInvertedIndex","tokenSetBuilder","tuple","_ref","_fields","_documents","fieldTermFrequencies","fieldLengths","_b","_k1","metadataWhitelist","attributes","RangeError","number","k1","doc","extractor","fieldTerms","metadataKey","calculateAverageFieldLengths","fieldRefs","numberOfFields","accumulator","documentsWithField","averageFieldLength","createFieldVectors","fieldRefsLength","termIdfCache","fieldLength","termFrequencies","termsLength","fieldBoost","docBoost","scoreWithPrecision","tf","round","createTokenSet","use","args","unshift","apply","clonedMetadata","metadataKeys","otherMatchData","allFields","wildcard","NONE","LEADING","TRAILING","OPTIONAL","options","QueryParseError","QueryLexer","lexemes","escapeCharPositions","state","lexText","sliceString","subSlices","join","emit","type","escapeCharacter","EOS","width","ignore","backup","acceptDigitRun","charCode","charCodeAt","more","FIELD","TERM","EDIT_DISTANCE","BOOST","PRESENCE","lexField","lexer","lexTerm","lexEditDistance","lexBoost","lexEOS","termSeparator","currentClause","lexemeIdx","parseClause","peekLexeme","consumeLexeme","lexeme","nextClause","completedClause","parser","parsePresence","parseField","parseTerm","errorMessage","nextLexeme","possibleFields","f","parseEditDistance","parseBoost","parseInt","isNaN","error","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","fails","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","createNonEnumerableProperty","setGlobal","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","split","unsafe","simple","noTargetGet","source","path","aFunction","variable","namespace","method","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","STATE","getterFor","TYPE","getOwnPropertyDescriptor","redefine","copyConstructorProperties","isForced","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","forced","sham","IndexedObject","requireObjectCoercible","wellKnownSymbol","document","EXISTS","createElement","bitmap","configurable","writable","functionToString","ceil","argument","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","TO_STRING_TAG","TAG","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","IS_PURE","copyright","input","PREFERRED_STRING","valueOf","postfix","random","getOwnPropertySymbols","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","$","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","names","toInteger","min","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","constructor","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","Properties","getBuiltIn","Promise","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterable","that","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","step","boundFunction","done","stop","SPECIES","defaultConstructor","S","defer","channel","port","classof","IS_IOS","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","runner","listener","event","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","userAgent","newPromiseCapability","promiseCapability","g","e","defineIterator","setInternalState","iterated","point","createMethod","CONVERT_TO_STRING","$this","first","second","size","codeAt","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","V","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","getOwnPropertyNames","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","max","integer","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","addToUnscopables","kind","Arguments","UNSCOPABLES","ArrayPrototype","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","PromiseRejectionEvent","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","catch","fetch","wrap","capability","$promiseResolve","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","ENTRIES","returnMethod","SAFE_CLOSING","called","iteratorWithReturn","return","from","SKIP_CLOSING","ITERATION_SUPPORT","flush","head","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","versions","v8","allSettled","status","real","finally","onFinally","isFunction","__webpack_exports__","toJS","dispose","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","__generator","body","y","_","sent","trys","ops","verb","throw","op","resolveIndex","Worker","initEmpty","title","description","meta","item","_a","limit","searchResults","trim","exp","expandTerm","res","_e$data","params"],"mappings":"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,KAAKT,KAAWK,EAAII,KAAKT,MACjDD,EAAIC,IAKRI,EAAMzL,GADNwL,EAAKvK,GAEE6K,KAAKV,IAAMK,EAAIK,KAAKV,KACzBI,EAAKjL,EACL6K,EAAIA,EAAEW,QAAQP,EAAG,KAKJ,KAAXD,IACFH,EAAIG,EAAQnG,cAAgBgG,EAAEQ,OAAO,IAGhCR,GAGF,SAAU3D,GACf,OAAOA,EAAMzC,OAAO7D,KAIxBC,EAAK0E,SAASG,iBAAiB7E,EAAKQ,QAAS;;;;IAmB7CR,EAAK8K,uBAAyB,SAAUC,GACtC,IAAIC,EAAQD,EAAUE,QAAO,SAAUjF,EAAMkF,GAE3C,OADAlF,EAAKkF,GAAYA,EACVlF,IACN,IAEH,OAAO,SAAUK,GACf,GAAIA,GAAS2E,EAAM3E,EAAMnF,cAAgBmF,EAAMnF,WAAY,OAAOmF,IAiBtErG,EAAKO,eAAiBP,EAAK8K,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,SAGF9K,EAAK0E,SAASG,iBAAiB7E,EAAKO,eAAgB;;;;IAqBpDP,EAAKM,QAAU,SAAU+F,GACvB,OAAOA,EAAMzC,QAAO,SAAU5G,GAC5B,O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","file":"fb98e1ba53a1ba89d121.worker.js","sourceRoot":""} \ No newline at end of file diff --git a/bundles/redoc.lib.js b/bundles/redoc.lib.js index 655181ac..d26c4b4d 100644 --- a/bundles/redoc.lib.js +++ b/bundles/redoc.lib.js @@ -6516,7 +6516,7 @@ module.exports = require("prismjs/components/prism-swift.js"); var addMethods = __webpack_require__(80) var methods = ["add","done","toJS","load","dispose","search"] module.exports = function() { - var w = new Worker(URL.createObjectURL(new Blob(["/*!\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\n * -------------------------------------------------------------\n * Version: \"2.0.0-rc.37\"\n * Repo: https://github.com/Redocly/redoc\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 97);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar shared = __webpack_require__(32);\nvar has = __webpack_require__(3);\nvar uid = __webpack_require__(36);\nvar NATIVE_SYMBOL = __webpack_require__(37);\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar createPropertyDescriptor = __webpack_require__(22);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar anObject = __webpack_require__(2);\nvar toPrimitive = __webpack_require__(35);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar setGlobal = __webpack_require__(20);\nvar inspectSource = __webpack_require__(23);\nvar InternalStateModule = __webpack_require__(16);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(40);\nvar global = __webpack_require__(0);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar objectHas = __webpack_require__(3);\nvar sharedKey = __webpack_require__(24);\nvar hiddenKeys = __webpack_require__(25);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar setGlobal = __webpack_require__(20);\nvar copyConstructorProperties = __webpack_require__(67);\nvar isForced = __webpack_require__(43);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(66);\nvar requireObjectCoercible = __webpack_require__(27);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(33);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(32);\nvar uid = __webpack_require__(36);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar propertyIsEnumerableModule = __webpack_require__(65);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar toIndexedObject = __webpack_require__(18);\nvar toPrimitive = __webpack_require__(35);\nvar has = __webpack_require__(3);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(9).f;\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(15);\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(12);\nvar store = __webpack_require__(33);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar setGlobal = __webpack_require__(20);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar fails = __webpack_require__(5);\nvar createElement = __webpack_require__(21);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classofRaw = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar createIteratorConstructor = __webpack_require__(73);\nvar getPrototypeOf = __webpack_require__(45);\nvar setPrototypeOf = __webpack_require__(78);\nvar setToStringTag = __webpack_require__(30);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\nvar Iterators = __webpack_require__(14);\nvar IteratorsCore = __webpack_require__(44);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toIndexedObject = __webpack_require__(18);\nvar indexOf = __webpack_require__(70).indexOf;\nvar hiddenKeys = __webpack_require__(25);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(45);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toObject = __webpack_require__(74);\nvar sharedKey = __webpack_require__(24);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar defineProperties = __webpack_require__(76);\nvar enumBugKeys = __webpack_require__(29);\nvar hiddenKeys = __webpack_require__(25);\nvar html = __webpack_require__(47);\nvar documentCreateElement = __webpack_require__(21);\nvar sharedKey = __webpack_require__(24);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global.Promise;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isArrayIteratorMethod = __webpack_require__(88);\nvar toLength = __webpack_require__(42);\nvar bind = __webpack_require__(50);\nvar getIteratorMethod = __webpack_require__(89);\nvar callWithSafeIterationClosing = __webpack_require__(90);\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(15);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aFunction = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\nvar bind = __webpack_require__(50);\nvar html = __webpack_require__(47);\nvar createElement = __webpack_require__(21);\nvar IS_IOS = __webpack_require__(53);\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(54);\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isObject = __webpack_require__(7);\nvar newPromiseCapability = __webpack_require__(31);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(63);\n__webpack_require__(80);\n__webpack_require__(84);\n__webpack_require__(95);\n__webpack_require__(96);\nvar path = __webpack_require__(40);\n\nmodule.exports = path.Promise;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar redefine = __webpack_require__(10);\nvar toString = __webpack_require__(62);\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(37);\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar inspectSource = __webpack_require__(23);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classof = __webpack_require__(38);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(64).charAt;\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar ownKeys = __webpack_require__(68);\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\nvar definePropertyModule = __webpack_require__(9);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\nvar getOwnPropertyNamesModule = __webpack_require__(69);\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\nvar anObject = __webpack_require__(2);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(18);\nvar toLength = __webpack_require__(42);\nvar toAbsoluteIndex = __webpack_require__(71);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\nvar create = __webpack_require__(46);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(30);\nvar Iterators = __webpack_require__(14);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar anObject = __webpack_require__(2);\nvar objectKeys = __webpack_require__(77);\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aPossiblePrototype = __webpack_require__(79);\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar DOMIterables = __webpack_require__(81);\nvar ArrayIteratorMethods = __webpack_require__(82);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(18);\nvar addToUnscopables = __webpack_require__(83);\nvar Iterators = __webpack_require__(14);\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar create = __webpack_require__(46);\nvar definePropertyModule = __webpack_require__(9);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar global = __webpack_require__(0);\nvar getBuiltIn = __webpack_require__(11);\nvar NativePromise = __webpack_require__(48);\nvar redefine = __webpack_require__(10);\nvar redefineAll = __webpack_require__(85);\nvar setToStringTag = __webpack_require__(30);\nvar setSpecies = __webpack_require__(86);\nvar isObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(15);\nvar anInstance = __webpack_require__(87);\nvar classof = __webpack_require__(13);\nvar inspectSource = __webpack_require__(23);\nvar iterate = __webpack_require__(49);\nvar checkCorrectnessOfIteration = __webpack_require__(91);\nvar speciesConstructor = __webpack_require__(51);\nvar task = __webpack_require__(52).set;\nvar microtask = __webpack_require__(92);\nvar promiseResolve = __webpack_require__(55);\nvar hostReportErrors = __webpack_require__(93);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar InternalStateModule = __webpack_require__(16);\nvar isForced = __webpack_require__(43);\nvar wellKnownSymbol = __webpack_require__(1);\nvar V8_VERSION = __webpack_require__(94);\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(10);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(11);\nvar definePropertyModule = __webpack_require__(9);\nvar wellKnownSymbol = __webpack_require__(1);\nvar DESCRIPTORS = __webpack_require__(8);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar Iterators = __webpack_require__(14);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(38);\nvar Iterators = __webpack_require__(14);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar classof = __webpack_require__(13);\nvar macrotask = __webpack_require__(52).set;\nvar IS_IOS = __webpack_require__(53);\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar userAgent = __webpack_require__(54);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar aFunction = __webpack_require__(15);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar iterate = __webpack_require__(49);\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar NativePromise = __webpack_require__(48);\nvar fails = __webpack_require__(5);\nvar getBuiltIn = __webpack_require__(11);\nvar speciesConstructor = __webpack_require__(51);\nvar promiseResolve = __webpack_require__(55);\nvar redefine = __webpack_require__(10);\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"add\", function() { return /* binding */ add; });\n__webpack_require__.d(__webpack_exports__, \"done\", function() { return /* binding */ done; });\n__webpack_require__.d(__webpack_exports__, \"toJS\", function() { return /* binding */ toJS; });\n__webpack_require__.d(__webpack_exports__, \"load\", function() { return /* binding */ load; });\n__webpack_require__.d(__webpack_exports__, \"dispose\", function() { return /* binding */ dispose; });\n__webpack_require__.d(__webpack_exports__, \"search\", function() { return /* binding */ search; });\n\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\nvar lunr = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--5-0!./node_modules/babel-loader/lib??ref--5-1!./src/services/SearchWorker.worker.ts\n\n\ntry {\n // tslint:disable-next-line\n __webpack_require__(57); // bundle into worker\n}\ncatch (_) { // nope\n}\n/* just for better typings */\nvar Worker = /** @class */ (function () {\n function Worker() {\n this.add = add;\n this.done = done;\n this.search = search;\n this.toJS = toJS;\n this.load = load;\n this.dispose = dispose;\n }\n return Worker;\n}());\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\"default\"] = (Worker);\nvar store = [];\nlunr[\"tokenizer\"].separator = /\\s+/;\nvar builder;\nvar resolveIndex;\nvar index;\nfunction initEmpty() {\n builder = new lunr[\"Builder\"]();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr[\"trimmer\"], lunr[\"stopWordFilter\"], lunr[\"stemmer\"]);\n index = new Promise(function (resolve) {\n resolveIndex = resolve;\n });\n}\ninitEmpty();\nvar expandTerm = function (term) { return '*' + lunr[\"stemmer\"](new lunr[\"Token\"](term, {})) + '*'; };\nfunction add(title, description, meta) {\n var ref = store.push(meta) - 1;\n var item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref: ref\n };\n builder.add(item);\n}\nfunction done() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n resolveIndex(builder.build());\n return [2 /*return*/];\n });\n });\n}\nfunction toJS() {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = {\n store: store\n };\n return [4 /*yield*/, index];\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\n _a)];\n }\n });\n });\n}\nfunction load(state) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = state.store;\n resolveIndex(lunr[\"Index\"].load(state.index));\n return [2 /*return*/];\n });\n });\n}\nfunction dispose() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = [];\n initEmpty();\n return [2 /*return*/];\n });\n });\n}\nfunction search(q, limit) {\n if (limit === void 0) { limit = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var searchResults;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (q.trim().length === 0) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, index];\n case 1:\n searchResults = (_a.sent()).query(function (t) {\n q.trim().toLowerCase().split(/\\s+/).forEach(function (term) {\n var exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n return [2 /*return*/, searchResults.map(function (res) { return ({\n meta: store[res.ref],\n score: res.score\n }); })];\n }\n });\n });\n}\n\naddEventListener('message', function (e) {var _e$data = e.data,type = _e$data.type,method = _e$data.method,id = _e$data.id,params = _e$data.params,f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () {return f.apply(__webpack_exports__, params);});} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=95952f773ec942db46dc.worker.js.map"])), { name: "[hash].worker.js" }) + var w = new Worker(URL.createObjectURL(new Blob(["/*!\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\n * -------------------------------------------------------------\n * Version: \"2.0.0-rc.37\"\n * Repo: https://github.com/Redocly/redoc\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 97);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar shared = __webpack_require__(32);\nvar has = __webpack_require__(3);\nvar uid = __webpack_require__(36);\nvar NATIVE_SYMBOL = __webpack_require__(37);\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar createPropertyDescriptor = __webpack_require__(22);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar anObject = __webpack_require__(2);\nvar toPrimitive = __webpack_require__(35);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar setGlobal = __webpack_require__(20);\nvar inspectSource = __webpack_require__(23);\nvar InternalStateModule = __webpack_require__(16);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(40);\nvar global = __webpack_require__(0);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar objectHas = __webpack_require__(3);\nvar sharedKey = __webpack_require__(24);\nvar hiddenKeys = __webpack_require__(25);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar setGlobal = __webpack_require__(20);\nvar copyConstructorProperties = __webpack_require__(67);\nvar isForced = __webpack_require__(43);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(66);\nvar requireObjectCoercible = __webpack_require__(27);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(33);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(32);\nvar uid = __webpack_require__(36);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar propertyIsEnumerableModule = __webpack_require__(65);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar toIndexedObject = __webpack_require__(18);\nvar toPrimitive = __webpack_require__(35);\nvar has = __webpack_require__(3);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(9).f;\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(15);\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(12);\nvar store = __webpack_require__(33);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar setGlobal = __webpack_require__(20);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar fails = __webpack_require__(5);\nvar createElement = __webpack_require__(21);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classofRaw = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar createIteratorConstructor = __webpack_require__(73);\nvar getPrototypeOf = __webpack_require__(45);\nvar setPrototypeOf = __webpack_require__(78);\nvar setToStringTag = __webpack_require__(30);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\nvar Iterators = __webpack_require__(14);\nvar IteratorsCore = __webpack_require__(44);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toIndexedObject = __webpack_require__(18);\nvar indexOf = __webpack_require__(70).indexOf;\nvar hiddenKeys = __webpack_require__(25);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(45);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toObject = __webpack_require__(74);\nvar sharedKey = __webpack_require__(24);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar defineProperties = __webpack_require__(76);\nvar enumBugKeys = __webpack_require__(29);\nvar hiddenKeys = __webpack_require__(25);\nvar html = __webpack_require__(47);\nvar documentCreateElement = __webpack_require__(21);\nvar sharedKey = __webpack_require__(24);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global.Promise;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isArrayIteratorMethod = __webpack_require__(88);\nvar toLength = __webpack_require__(42);\nvar bind = __webpack_require__(50);\nvar getIteratorMethod = __webpack_require__(89);\nvar callWithSafeIterationClosing = __webpack_require__(90);\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(15);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aFunction = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\nvar bind = __webpack_require__(50);\nvar html = __webpack_require__(47);\nvar createElement = __webpack_require__(21);\nvar IS_IOS = __webpack_require__(53);\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(54);\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isObject = __webpack_require__(7);\nvar newPromiseCapability = __webpack_require__(31);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(63);\n__webpack_require__(80);\n__webpack_require__(84);\n__webpack_require__(95);\n__webpack_require__(96);\nvar path = __webpack_require__(40);\n\nmodule.exports = path.Promise;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar redefine = __webpack_require__(10);\nvar toString = __webpack_require__(62);\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(37);\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar inspectSource = __webpack_require__(23);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classof = __webpack_require__(38);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(64).charAt;\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar ownKeys = __webpack_require__(68);\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\nvar definePropertyModule = __webpack_require__(9);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\nvar getOwnPropertyNamesModule = __webpack_require__(69);\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\nvar anObject = __webpack_require__(2);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(18);\nvar toLength = __webpack_require__(42);\nvar toAbsoluteIndex = __webpack_require__(71);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\nvar create = __webpack_require__(46);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(30);\nvar Iterators = __webpack_require__(14);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar anObject = __webpack_require__(2);\nvar objectKeys = __webpack_require__(77);\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aPossiblePrototype = __webpack_require__(79);\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar DOMIterables = __webpack_require__(81);\nvar ArrayIteratorMethods = __webpack_require__(82);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(18);\nvar addToUnscopables = __webpack_require__(83);\nvar Iterators = __webpack_require__(14);\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar create = __webpack_require__(46);\nvar definePropertyModule = __webpack_require__(9);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar global = __webpack_require__(0);\nvar getBuiltIn = __webpack_require__(11);\nvar NativePromise = __webpack_require__(48);\nvar redefine = __webpack_require__(10);\nvar redefineAll = __webpack_require__(85);\nvar setToStringTag = __webpack_require__(30);\nvar setSpecies = __webpack_require__(86);\nvar isObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(15);\nvar anInstance = __webpack_require__(87);\nvar classof = __webpack_require__(13);\nvar inspectSource = __webpack_require__(23);\nvar iterate = __webpack_require__(49);\nvar checkCorrectnessOfIteration = __webpack_require__(91);\nvar speciesConstructor = __webpack_require__(51);\nvar task = __webpack_require__(52).set;\nvar microtask = __webpack_require__(92);\nvar promiseResolve = __webpack_require__(55);\nvar hostReportErrors = __webpack_require__(93);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar InternalStateModule = __webpack_require__(16);\nvar isForced = __webpack_require__(43);\nvar wellKnownSymbol = __webpack_require__(1);\nvar V8_VERSION = __webpack_require__(94);\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(10);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(11);\nvar definePropertyModule = __webpack_require__(9);\nvar wellKnownSymbol = __webpack_require__(1);\nvar DESCRIPTORS = __webpack_require__(8);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar Iterators = __webpack_require__(14);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(38);\nvar Iterators = __webpack_require__(14);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar classof = __webpack_require__(13);\nvar macrotask = __webpack_require__(52).set;\nvar IS_IOS = __webpack_require__(53);\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar userAgent = __webpack_require__(54);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar aFunction = __webpack_require__(15);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar iterate = __webpack_require__(49);\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar NativePromise = __webpack_require__(48);\nvar fails = __webpack_require__(5);\nvar getBuiltIn = __webpack_require__(11);\nvar speciesConstructor = __webpack_require__(51);\nvar promiseResolve = __webpack_require__(55);\nvar redefine = __webpack_require__(10);\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"add\", function() { return /* binding */ add; });\n__webpack_require__.d(__webpack_exports__, \"done\", function() { return /* binding */ done; });\n__webpack_require__.d(__webpack_exports__, \"toJS\", function() { return /* binding */ toJS; });\n__webpack_require__.d(__webpack_exports__, \"load\", function() { return /* binding */ load; });\n__webpack_require__.d(__webpack_exports__, \"dispose\", function() { return /* binding */ dispose; });\n__webpack_require__.d(__webpack_exports__, \"search\", function() { return /* binding */ search; });\n\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\nvar lunr = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--5-0!./node_modules/babel-loader/lib??ref--5-1!./src/services/SearchWorker.worker.ts\n\n\ntry {\n // tslint:disable-next-line\n __webpack_require__(57); // bundle into worker\n}\ncatch (_) { // nope\n}\n/* just for better typings */\nvar Worker = /** @class */ (function () {\n function Worker() {\n this.add = add;\n this.done = done;\n this.search = search;\n this.toJS = toJS;\n this.load = load;\n this.dispose = dispose;\n }\n return Worker;\n}());\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\"default\"] = (Worker);\nvar store = [];\nlunr[\"tokenizer\"].separator = /\\s+/;\nvar builder;\nvar resolveIndex;\nvar index;\nfunction initEmpty() {\n builder = new lunr[\"Builder\"]();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr[\"trimmer\"], lunr[\"stopWordFilter\"], lunr[\"stemmer\"]);\n index = new Promise(function (resolve) {\n resolveIndex = resolve;\n });\n}\ninitEmpty();\nvar expandTerm = function (term) { return '*' + lunr[\"stemmer\"](new lunr[\"Token\"](term, {})) + '*'; };\nfunction add(title, description, meta) {\n var ref = store.push(meta) - 1;\n var item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref: ref\n };\n builder.add(item);\n}\nfunction done() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n resolveIndex(builder.build());\n return [2 /*return*/];\n });\n });\n}\nfunction toJS() {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = {\n store: store\n };\n return [4 /*yield*/, index];\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\n _a)];\n }\n });\n });\n}\nfunction load(state) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = state.store;\n resolveIndex(lunr[\"Index\"].load(state.index));\n return [2 /*return*/];\n });\n });\n}\nfunction dispose() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = [];\n initEmpty();\n return [2 /*return*/];\n });\n });\n}\nfunction search(q, limit) {\n if (limit === void 0) { limit = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var searchResults;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (q.trim().length === 0) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, index];\n case 1:\n searchResults = (_a.sent()).query(function (t) {\n q.trim().toLowerCase().split(/\\s+/).forEach(function (term) {\n var exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n return [2 /*return*/, searchResults.map(function (res) { return ({\n meta: store[res.ref],\n score: res.score\n }); })];\n }\n });\n });\n}\n\naddEventListener('message', function (e) {var _e$data = e.data,type = _e$data.type,method = _e$data.method,id = _e$data.id,params = _e$data.params,f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () {return f.apply(__webpack_exports__, params);});} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=4a345b767c160cf4e5c0.worker.js.map"])), { name: "[hash].worker.js" }) addMethods(w, methods) return w @@ -7601,7 +7601,7 @@ var ErrorBoundary_ErrorBoundary = /** @class */ (function (_super) { external_react_["createElement"]("br", null), external_react_["createElement"]("small", null, " Commit: ", - "49f04d32")); + "422ec097")); } return external_react_["Children"].only(this.props.children); }; @@ -14583,7 +14583,6 @@ var external_prism_react_renderer_default = /*#__PURE__*/__webpack_require__.n(e var OverflowHighlighter = styled_components.pre(Highlighter_templateObject_1 || (Highlighter_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n overflow-x: scroll;\n"], ["\n overflow-x: scroll;\n"]))); var Highlighter = function (_a) { var children = _a.children, className = _a.className; - console.log('className', className); var language = className ? className.replace(/language-/, '').trim() : 'bash'; if (!children) { return null; @@ -14657,8 +14656,7 @@ var components_Wrapper = function (_a) { return result; }; var sections = getSections(children); - console.log('sections', sections); - return external_react_["createElement"](external_react_["Fragment"], null, sections.map(function (section) { return external_react_["createElement"](Section, { key: "resection-" + section.id, id: section.id }, + return external_react_["createElement"](external_react_["Fragment"], null, sections.map(function (section) { return external_react_["createElement"](Section, { key: "section-" + section.id, id: section.id }, external_react_["createElement"](Row, { id: section.id }, section.middle && external_react_["createElement"](MiddlePanel, null, section.middle), section.right && external_react_["createElement"](DarkRightPanel, null, section.right))); })); @@ -14702,7 +14700,6 @@ var Redoc_Redoc = /** @class */ (function (_super) { Redoc.prototype.render = function () { var _a = this.props.store, spec = _a.spec, menu = _a.menu, options = _a.options, search = _a.search, marker = _a.marker, markdownIndex = _a.markdownIndex; var store = this.props.store; - console.log('components', markdown_components); return external_react_["createElement"](ThemeProvider, { theme: options.theme }, external_react_["createElement"](Provider, { value: this.props.store }, external_react_["createElement"](OptionsProvider, { value: options }, @@ -14715,7 +14712,7 @@ var Redoc_Redoc = /** @class */ (function (_super) { external_react_["createElement"](ApiContentWrap, { className: "api-content" }, external_react_["createElement"](ApiInfo_ApiInfo, { store: store }), markdownIndex && markdownIndex.components.map(function (MDXComponent, idx) { - return external_react_["createElement"](MDXComponent, { key: "mdxsection-" + idx }); + return external_react_["createElement"](MDXComponent, { key: "mdx-" + idx }); }), external_react_["createElement"](ContentItems_ContentItems, { items: menu.items })), external_react_["createElement"](BackgroundStub, null)))))); diff --git a/bundles/redoc.lib.js.map b/bundles/redoc.lib.js.map index 5ead53f7..99e9cd4b 100644 --- a/bundles/redoc.lib.js.map +++ b/bundles/redoc.lib.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://Redoc/webpack/universalModuleDefinition","webpack://Redoc/webpack/bootstrap","webpack://Redoc/external \"react\"","webpack://Redoc/external \"tslib\"","webpack://Redoc/external \"polished\"","webpack://Redoc/external \"mobx-react\"","webpack://Redoc/external \"mobx\"","webpack://Redoc/external \"url\"","webpack://Redoc/external \"json-pointer\"","webpack://Redoc/external \"lunr\"","webpack://Redoc/external \"decko\"","webpack://Redoc/external \"react-tabs\"","webpack://Redoc/external \"prismjs\"","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/external \"prop-types\"","webpack://Redoc/external \"marked\"","webpack://Redoc/./node_modules/process/browser.js","webpack://Redoc/external \"undefined\"","webpack://Redoc/./node_modules/reftools/lib/jptr.js","webpack://Redoc/./node_modules/reftools/lib/clone.js","webpack://Redoc/./node_modules/path-browserify/index.js","webpack://Redoc/external \"eventemitter3\"","webpack://Redoc/external \"url-template\"","webpack://Redoc/./node_modules/reftools/lib/isref.js","webpack://Redoc/./node_modules/reftools/lib/recurse.js","webpack://Redoc/external \"mark.js\"","webpack://Redoc/external \"openapi-sampler\"","webpack://Redoc/external \"perfect-scrollbar\"","webpack://Redoc/external \"prism-react-renderer\"","webpack://Redoc/./node_modules/oas-kit-common/index.js","webpack://Redoc/./node_modules/buffer/index.js","webpack://Redoc/./node_modules/stream-http/lib/capability.js","webpack://Redoc/external \"inherits\"","webpack://Redoc/./node_modules/stream-http/lib/response.js","webpack://Redoc/external \"readable-stream\"","webpack://Redoc/./src/services/SearchWorker.worker.ts","webpack://Redoc/external \"slugify\"","webpack://Redoc/external \"styled-components\"","webpack://Redoc/external \"@mdx-js/react\"","webpack://Redoc/external \"json-schema-ref-parser\"","webpack://Redoc/./node_modules/swagger2openapi/index.js","webpack://Redoc/./node_modules/memoize-one/dist/memoize-one.cjs.js","webpack://Redoc/external \"react-dropdown-aria\"","webpack://Redoc/external \"dompurify\"","webpack://Redoc/external \"classnames\"","webpack://Redoc/external \"call-me-maybe\"","webpack://Redoc/./node_modules/oas-resolver/index.js","webpack://Redoc/./node_modules/reftools/lib/dereference.js","webpack://Redoc/external \"fast-safe-stringify\"","webpack://Redoc/./node_modules/oas-schema-walker/index.js","webpack://Redoc/./node_modules/swagger2openapi/lib/statusCodes.js","webpack://Redoc/./node_modules/stream-http/index.js","webpack://Redoc/./node_modules/stream-http/lib/request.js","webpack://Redoc/external \"base64-js\"","webpack://Redoc/external \"ieee754\"","webpack://Redoc/external \"isarray\"","webpack://Redoc/external \"to-arraybuffer\"","webpack://Redoc/external \"xtend\"","webpack://Redoc/external \"builtin-status-codes\"","webpack://Redoc/external \"prismjs/components/prism-bash.js\"","webpack://Redoc/external \"prismjs/components/prism-c.js\"","webpack://Redoc/external \"prismjs/components/prism-clike.js\"","webpack://Redoc/external \"prismjs/components/prism-coffeescript.js\"","webpack://Redoc/external \"prismjs/components/prism-cpp.js\"","webpack://Redoc/external \"prismjs/components/prism-csharp.js\"","webpack://Redoc/external \"prismjs/components/prism-go.js\"","webpack://Redoc/external \"prismjs/components/prism-http.js\"","webpack://Redoc/external \"prismjs/components/prism-java.js\"","webpack://Redoc/external \"prismjs/components/prism-lua.js\"","webpack://Redoc/external \"prismjs/components/prism-markup-templating.js\"","webpack://Redoc/external \"prismjs/components/prism-markup.js\"","webpack://Redoc/external \"prismjs/components/prism-objectivec.js\"","webpack://Redoc/external \"prismjs/components/prism-perl.js\"","webpack://Redoc/external \"prismjs/components/prism-php.js\"","webpack://Redoc/external \"prismjs/components/prism-python.js\"","webpack://Redoc/external \"prismjs/components/prism-ruby.js\"","webpack://Redoc/external \"prismjs/components/prism-scala.js\"","webpack://Redoc/external \"prismjs/components/prism-sql.js\"","webpack://Redoc/external \"prismjs/components/prism-swift.js\"","webpack://Redoc/./src/services/SearchWorker.worker.ts?cf07","webpack://Redoc/./node_modules/workerize-loader/src/rpc-wrapper.js","webpack://Redoc/external \"core-js/es/promise\"","webpack://Redoc/external \"stickyfill\"","webpack://Redoc/./src/markdown/plugins/export-toc.ts","webpack://Redoc/external \"unist-util-visit\"","webpack://Redoc/./src/theme.ts","webpack://Redoc/./src/utils/dom.ts","webpack://Redoc/./src/utils/helpers.ts","webpack://Redoc/./src/services/Labels.ts","webpack://Redoc/./src/services/RedocNormalizedOptions.ts","webpack://Redoc/./src/styled-components.ts","webpack://Redoc/./src/components/ErrorBoundary.tsx","webpack://Redoc/./src/components/Loading/Spinner.svg.tsx","webpack://Redoc/./src/components/Loading/Loading.tsx","webpack://Redoc/./src/components/OptionsProvider.ts","webpack://Redoc/./src/utils/loadAndBundleSpec.ts","webpack://Redoc/./src/utils/JsonPointer.ts","webpack://Redoc/./src/utils/openapi.ts","webpack://Redoc/./src/utils/highlight.ts","webpack://Redoc/./src/utils/decorators.ts","webpack://Redoc/./src/utils/debug.ts","webpack://Redoc/./src/utils/memoize.ts","webpack://Redoc/./src/utils/index.ts","webpack://Redoc/./src/services/HistoryService.ts","webpack://Redoc/./src/services/MarkerService.ts","webpack://Redoc/./src/services/MarkdownRenderer.ts","webpack://Redoc/./src/services/models/ApiInfo.ts","webpack://Redoc/./src/services/models/SecurityRequirement.ts","webpack://Redoc/./src/services/models/Callback.ts","webpack://Redoc/./src/services/models/Schema.ts","webpack://Redoc/./src/services/models/Field.ts","webpack://Redoc/./src/services/models/Example.ts","webpack://Redoc/./src/services/models/MediaType.ts","webpack://Redoc/./src/services/models/MediaContent.ts","webpack://Redoc/./src/services/models/RequestBody.ts","webpack://Redoc/./src/services/models/Response.ts","webpack://Redoc/./src/services/models/Operation.ts","webpack://Redoc/./src/services/models/Webhook.ts","webpack://Redoc/./src/services/models/SecuritySchemes.ts","webpack://Redoc/./src/services/OpenAPIParser.ts","webpack://Redoc/./src/services/SpecStore.ts","webpack://Redoc/./src/services/models/ExtraContent.ts","webpack://Redoc/./src/services/models/Group.model.ts","webpack://Redoc/./src/services/models/index.ts","webpack://Redoc/./src/services/MenuBuilder.ts","webpack://Redoc/./src/services/MenuStore.ts","webpack://Redoc/./src/services/ScrollService.ts","webpack://Redoc/./src/services/SearchStore.ts","webpack://Redoc/./src/common-elements/panels.ts","webpack://Redoc/./src/common-elements/headers.ts","webpack://Redoc/./src/components/StoreBuilder.ts","webpack://Redoc/./src/common-elements/linkify.tsx","webpack://Redoc/./src/common-elements/shelfs.tsx","webpack://Redoc/./src/common-elements/mixins.ts","webpack://Redoc/./src/common-elements/fields-layout.ts","webpack://Redoc/./src/common-elements/schema.ts","webpack://Redoc/./src/common-elements/dropdown.ts","webpack://Redoc/./src/common-elements/tabs.ts","webpack://Redoc/./src/common-elements/PrismDiv.tsx","webpack://Redoc/./src/common-elements/samples.tsx","webpack://Redoc/./src/common-elements/perfect-scrollbar.tsx","webpack://Redoc/./src/common-elements/flex.ts","webpack://Redoc/./src/common-elements/index.ts","webpack://Redoc/./src/components/DropdownOrLabel/DropdownOrLabel.tsx","webpack://Redoc/./src/components/Markdown/styled.elements.tsx","webpack://Redoc/./src/components/Markdown/SanitizedMdBlock.tsx","webpack://Redoc/./src/components/Markdown/Markdown.tsx","webpack://Redoc/./src/common-elements/Tooltip.tsx","webpack://Redoc/./src/services/ClipboardService.ts","webpack://Redoc/./src/common-elements/CopyButtonWrapper.tsx","webpack://Redoc/./src/utils/jsonToHtml.ts","webpack://Redoc/./src/components/JsonViewer/style.ts","webpack://Redoc/./src/components/JsonViewer/JsonViewer.tsx","webpack://Redoc/./src/components/SourceCode/SourceCode.tsx","webpack://Redoc/./src/components/PayloadSamples/ExampleValue.tsx","webpack://Redoc/./src/components/PayloadSamples/exernalExampleHook.ts","webpack://Redoc/./src/components/PayloadSamples/Example.tsx","webpack://Redoc/./src/components/PayloadSamples/styled.elements.ts","webpack://Redoc/./src/components/PayloadSamples/MediaTypeSamples.tsx","webpack://Redoc/./src/common-elements/fields.ts","webpack://Redoc/./src/components/ExternalDocumentation/ExternalDocumentation.tsx","webpack://Redoc/./src/components/Fields/EnumValues.tsx","webpack://Redoc/./src/components/Fields/Extensions.tsx","webpack://Redoc/./src/components/Fields/FieldContstraints.tsx","webpack://Redoc/./src/components/Fields/FieldDetail.tsx","webpack://Redoc/./src/components/Fields/FieldDetails.tsx","webpack://Redoc/./src/components/Schema/ArraySchema.tsx","webpack://Redoc/./src/components/Fields/Field.tsx","webpack://Redoc/./src/components/Schema/DiscriminatorDropdown.tsx","webpack://Redoc/./src/components/Schema/ObjectSchema.tsx","webpack://Redoc/./src/components/Schema/OneOfSchema.tsx","webpack://Redoc/./src/components/Schema/Schema.tsx","webpack://Redoc/./src/components/Schema/index.ts","webpack://Redoc/./src/components/SchemaDefinition/SchemaDefinition.tsx","webpack://Redoc/./src/components/SecuritySchemes/SecuritySchemes.tsx","webpack://Redoc/./src/services/AppStore.ts","webpack://Redoc/./src/services/index.ts","webpack://Redoc/./src/components/ApiInfo/styled.elements.ts","webpack://Redoc/./src/components/ApiInfo/ApiInfo.tsx","webpack://Redoc/./src/components/ApiInfo/index.ts","webpack://Redoc/./src/components/ApiLogo/styled.elements.tsx","webpack://Redoc/./src/components/ApiLogo/ApiLogo.tsx","webpack://Redoc/./src/components/Markdown/AdvancedMarkdown.tsx","webpack://Redoc/./src/components/SideMenu/styled.elements.ts","webpack://Redoc/./src/components/Callbacks/CallbackTitle.tsx","webpack://Redoc/./src/components/Callbacks/styled.elements.ts","webpack://Redoc/./src/components/SelectOnClick/SelectOnClick.tsx","webpack://Redoc/./src/components/Endpoint/styled.elements.ts","webpack://Redoc/./src/components/Endpoint/Endpoint.tsx","webpack://Redoc/./src/components/Parameters/ParametersGroup.tsx","webpack://Redoc/./src/components/MediaTypeSwitch/MediaTypesSwitch.tsx","webpack://Redoc/./src/components/Parameters/Parameters.tsx","webpack://Redoc/./src/components/Responses/ResponseTitle.tsx","webpack://Redoc/./src/components/Responses/styled.elements.ts","webpack://Redoc/./src/components/Responses/ResponseHeaders.tsx","webpack://Redoc/./src/components/Responses/ResponseDetails.tsx","webpack://Redoc/./src/components/Responses/Response.tsx","webpack://Redoc/./src/components/Responses/ResponsesList.tsx","webpack://Redoc/./src/components/SecurityRequirement/SecurityRequirement.tsx","webpack://Redoc/./src/components/Callbacks/CallbackDetails.tsx","webpack://Redoc/./src/components/Callbacks/CallbackOperation.tsx","webpack://Redoc/./src/components/Callbacks/CallbacksList.tsx","webpack://Redoc/./src/components/Callbacks/index.ts","webpack://Redoc/./src/components/GenericChildrenSwitcher/GenericChildrenSwitcher.tsx","webpack://Redoc/./src/components/PayloadSamples/PayloadSamples.tsx","webpack://Redoc/./src/components/CallbackSamples/CallbackReqSamples.tsx","webpack://Redoc/./src/components/CallbackSamples/CallbackSamples.tsx","webpack://Redoc/./src/components/RequestSamples/RequestSamples.tsx","webpack://Redoc/./src/components/ResponseSamples/ResponseSamples.tsx","webpack://Redoc/./src/components/Operation/Operation.tsx","webpack://Redoc/./src/components/ContentItems/ContentItems.tsx","webpack://Redoc/./src/components/SideMenu/MenuItem.tsx","webpack://Redoc/./src/components/SideMenu/MenuItems.tsx","webpack://Redoc/./src/components/SideMenu/SideMenu.tsx","webpack://Redoc/./src/components/StickySidebar/ChevronSvg.tsx","webpack://Redoc/./src/components/StickySidebar/StickyResponsiveSidebar.tsx","webpack://Redoc/./src/components/Redoc/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/SearchBox.tsx","webpack://Redoc/./src/markdown/code/Highlighter/index.tsx","webpack://Redoc/./src/markdown/components.tsx","webpack://Redoc/./src/components/Redoc/Redoc.tsx","webpack://Redoc/./src/components/RedocStandalone.tsx","webpack://Redoc/./src/components/JsonViewer/index.tsx","webpack://Redoc/./src/components/SideMenu/index.ts","webpack://Redoc/./src/components/index.ts","webpack://Redoc/./src/markdown/index.tsx","webpack://Redoc/./src/index.ts"],"names":["addMethods","worker","methods","c","callbacks","addEventListener","e","d","data","type","id","f","error","Object","assign","Error","message","result","evt","document","createEvent","initEvent","method","params","dispatchEvent","forEach","Promise","a","b","postMessage"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,kC;;;;;;ACAA,kC;;;;;;ACAA,qC;;;;;;ACAA,uC;;;;;;ACAA,iC;;;;;;ACAA,gC;;;;;;ACAA,yC;;;;;;ACAA,iC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,oC;;;;;;ACAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA,uC;;;;;;ACAA,mC;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AA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AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACxEA,qC;;;;;;ACAA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,aAAa,mBAAO,CAAC,EAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,wCAAwC,eAAe,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA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mBAAO,CAAC,EAAO;AAC5B,kBAAkB,mBAAO,CAAC,EAAsB;AAChD,UAAU,mBAAO,CAAC,CAAK;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;ACpFA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,eAAe,mBAAO,CAAC,EAAY;AACnC,aAAa,mBAAO,CAAC,EAAiB;AACtC,oBAAoB,mBAAO,CAAC,EAAgB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,2CAA2C;AAC3C,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtUA,sC;;;;;;ACAA,oC;;;;;;ACAA,oC;;;;;;ACAA,2C;;;;;;ACAA,kC;;;;;;ACAA,iD;;;;;;;;;;;;ACAA,6D;;;;;;ACAA,0D;;;;;;ACAA,8D;;;;;;ACAA,qE;;;;;;ACAA,4D;;;;;;ACAA,+D;;;;;;ACAA,2D;;;;;;ACAA,6D;;;;;;ACAA,6D;;;;;;ACAA,4D;;;;;;AC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","file":"redoc.lib.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Redoc\"] = factory();\n\telse\n\t\troot[\"Redoc\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 85);\n","module.exports = require(\"react\");","module.exports = require(\"tslib\");","module.exports = require(\"polished\");","module.exports = require(\"mobx-react\");","module.exports = require(\"mobx\");","module.exports = require(\"url\");","module.exports = require(\"json-pointer\");","module.exports = require(\"lunr\");","module.exports = require(\"decko\");","module.exports = require(\"react-tabs\");","module.exports = require(\"prismjs\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = require(\"prop-types\");","module.exports = require(\"marked\");","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = undefined;","'use strict';\n\n/**\n* escapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to escape\n* @return the escaped string\n*/\nfunction jpescape(s) {\n return s.replace(/\\~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n* unescapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to unescape\n* @return the unescaped string\n*/\nfunction jpunescape(s) {\n return s.replace(/\\~1/g, '/').replace(/~0/g, '~');\n}\n\n// JSON Pointer specification: http://tools.ietf.org/html/rfc6901\n\n/**\n* from obj, return the property with a JSON Pointer prop, optionally setting it\n* to newValue\n* @param obj the object to point into\n* @param prop the JSON Pointer or JSON Reference\n* @param newValue optional value to set the property to\n* @return the found property, or false\n*/\nfunction jptr(obj, prop, newValue) {\n if (typeof obj === 'undefined') return false;\n if (!prop || typeof prop !== 'string' || (prop === '#')) return (typeof newValue !== 'undefined' ? newValue : obj);\n\n if (prop.indexOf('#')>=0) {\n let parts = prop.split('#');\n let uri = parts[0];\n if (uri) return false; // we do internal resolution only\n prop = parts[1];\n prop = decodeURIComponent(prop.slice(1).split('+').join(' '));\n }\n if (prop.startsWith('/')) prop = prop.slice(1);\n\n let components = prop.split('/');\n for (let i=0;i 0) ? components[i-1] : ''; // backtrack to indexed property name\n }\n\n if ((index != -1) || obj.hasOwnProperty(components[i])) {\n if (index >= 0) {\n if (setAndLast) {\n obj[index] = newValue;\n }\n obj = obj[index];\n }\n else if (index === -2) {\n if (setAndLast) {\n if (Array.isArray(obj)) {\n obj.push(newValue);\n }\n return newValue;\n }\n else return undefined;\n }\n else {\n if (setAndLast) {\n obj[components[i]] = newValue;\n }\n obj = obj[components[i]];\n }\n }\n else {\n if ((typeof newValue !== 'undefined') && (typeof obj === 'object') &&\n (!Array.isArray(obj))) {\n obj[components[i]] = (setAndLast ? newValue : ((components[i+1] === '0' || components[i+1] === '-') ? [] : {}));\n obj = obj[components[i]];\n }\n else return false;\n }\n }\n return obj;\n}\n\nmodule.exports = {\n jptr : jptr,\n jpescape : jpescape,\n jpunescape : jpunescape\n};\n","'use strict';\n\n/**\n* a collection of cloning functions\n*/\n\n/**\n* a no-op placeholder which returns the given object unchanged\n* useful for when a clone function needs to be passed but cloning is not\n* required\n* @param obj the input object\n* @return the input object, unchanged\n*/\nfunction nop(obj) {\n return obj;\n}\n\n/**\n* clones the given object using JSON.parse and JSON.stringify\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n* clones the given object's properties shallowly, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction shallowClone(obj) {\n let result = {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p)) {\n result[p] = obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties deeply, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction deepClone(obj) {\n let result = Array.isArray(obj) ? [] : {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p) || Array.isArray(obj)) {\n result[p] = (typeof obj[p] === 'object') ? deepClone(obj[p]) : obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties shallowly, using Object.assign\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction fastClone(obj) {\n return Object.assign({},obj);\n}\n\n/**\n* Source: stackoverflow http://bit.ly/2A1Kha6\n*/\n\nfunction circularClone(obj, hash) {\n if (!hash) hash = new WeakMap();\n // Do not try to clone primitives or functions\n if (Object(obj) !== obj || obj instanceof Function) return obj;\n if (hash.has(obj)) return hash.get(obj); // Cyclic reference\n try { // Try to run constructor (without arguments, as we don't know them)\n var result = new obj.constructor();\n } catch(e) { // Constructor failed, create object without running the constructor\n result = Object.create(Object.getPrototypeOf(obj));\n }\n // Optional: support for some standard constructors (extend as desired)\n /*if (obj instanceof Map)\n Array.from(obj, ([key, val]) => result.set(circularClone(key, hash),\n circularClone(val, hash)) );\n else if (obj instanceof Set)\n Array.from(obj, (key) => result.add(circularClone(key, hash)) );\n */\n // Register in hash\n hash.set(obj, result);\n // Clone and assign enumerable own properties recursively\n return Object.assign(result, ...Object.keys(obj).map (\n key => ({ [key]: circularClone(obj[key], hash) }) ));\n}\n\nmodule.exports = {\n nop : nop,\n clone : clone,\n shallowClone : shallowClone,\n deepClone : deepClone,\n fastClone : fastClone,\n circularClone : circularClone\n};\n\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","module.exports = require(\"eventemitter3\");","module.exports = require(\"url-template\");","'use strict';\n\nfunction isRef(obj,key) {\n return ((key === '$ref') && (!!obj && typeof obj[key] === 'string'));\n}\n\nmodule.exports = {\n isRef: isRef\n};\n\n","'use strict';\n\nconst jpescape = require('./jptr.js').jpescape;\n\nfunction defaultState() {\n return {\n path: '#',\n depth: 0,\n pkey: '',\n parent: {},\n payload: {},\n seen: new WeakMap(),\n identity: false,\n identityDetection: false\n };\n}\n\n/**\n* recurses through the properties of an object, given an optional starting state\n* anything you pass in state.payload is passed to the callback each time\n* @param object the object to recurse through\n* @param state optional starting state, can be set to null or {}\n* @param callback the function which receives object,key,state on each property\n*/\nfunction recurse(object, state, callback) {\n if (!state) state = {depth:0};\n if (!state.depth) {\n state = Object.assign({},defaultState(),state);\n }\n if (typeof object !== 'object') return;\n let oPath = state.path;\n for (let key in object) {\n state.key = key;\n state.path = state.path + '/' + encodeURIComponent(jpescape(key));\n state.identityPath = state.seen.get(object[key]);\n state.identity = (typeof state.identityPath !== 'undefined');\n if (object.hasOwnProperty(key)) {\n callback(object, key, state);\n }\n if ((typeof object[key] === 'object') && (!state.identity)) {\n if (state.identityDetection && !Array.isArray(object[key]) && object[key] !== null) {\n state.seen.set(object[key],state.path);\n }\n let newState = {};\n newState.parent = object;\n newState.path = state.path;\n newState.depth = state.depth ? state.depth+1 : 1;\n newState.pkey = key;\n newState.payload = state.payload;\n newState.seen = state.seen;\n newState.identity = false;\n newState.identityDetection = state.identityDetection;\n recurse(object[key], newState, callback);\n }\n state.path = oPath;\n }\n}\n\nmodule.exports = {\n recurse : recurse\n};\n\n","module.exports = require(\"mark.js\");","module.exports = require(\"openapi-sampler\");","module.exports = require(\"perfect-scrollbar\");","module.exports = require(\"prism-react-renderer\");","'use strict';\n\nconst sjs = require('fast-safe-stringify');\n\nconst colour = process.env.NODE_DISABLE_COLORS ?\n { red: '', yellow: '', green: '', normal: '' } :\n { red: '\\x1b[31m', yellow: '\\x1b[33;1m', green: '\\x1b[32m', normal: '\\x1b[0m' };\n\nfunction uniqueOnly(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nfunction hasDuplicates(array) {\n return (new Set(array)).size !== array.length;\n}\n\nfunction allSame(array) {\n return (new Set(array)).size <= 1;\n}\n\nfunction deepEquals(obj1, obj2) {\n function _equals(obj1, obj2) {\n return sjs.stringify(obj1) === sjs.stringify(Object.assign({}, obj1, obj2));\n }\n return _equals(obj1, obj2) && _equals(obj2, obj1);\n}\n\nfunction compressArray(arr) {\n let result = [];\n for (let candidate of arr) {\n let dupe = result.find(function(e,i,a){\n return deepEquals(e,candidate);\n });\n if (!dupe) result.push(candidate);\n }\n return result;\n}\n\nfunction distinctArray(arr) {\n return (arr.length === compressArray(arr).length);\n}\n\nfunction firstDupe(arr) {\n return arr.find(function(e,i,a){\n return arr.indexOf(e)\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","module.exports = require(\"inherits\");","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","module.exports = require(\"readable-stream\");","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {// nope\n}\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n dispose = dispose;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\nlunr.tokenizer.separator = /\\s+/;\nlet builder: lunr.Builder;\nlet resolveIndex: (v: lunr.Index) => void;\nlet index: Promise;\n\nfunction initEmpty() {\n builder = new lunr.Builder();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n index = new Promise(resolve => {\n resolveIndex = resolve;\n });\n}\n\ninitEmpty();\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function dispose() {\n store = [];\n initEmpty();\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}","module.exports = require(\"slugify\");","module.exports = require(\"styled-components\");","module.exports = require(\"@mdx-js/react\");","module.exports = require(\"json-schema-ref-parser\");","// @ts-check\n'use strict';\n\nconst fs = require('fs');\nconst url = require('url');\nconst pathlib = require('path');\n\nconst maybe = require('call-me-maybe');\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js');\nconst resolveInternal = jptr.jptr;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst clone = require('reftools/lib/clone.js').clone;\nconst cclone = require('reftools/lib/clone.js').circularClone;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst resolver = require('oas-resolver');\nconst sw = require('oas-schema-walker');\nconst common = require('oas-kit-common');\n\nconst statusCodes = require('./lib/statusCodes.js').statusCodes;\n\nconst ourVersion = require('./package.json').version;\n\n// TODO handle specification-extensions with plugins?\n\nconst targetVersion = '3.0.0';\nlet componentNames; // initialised in main\n\nclass S2OError extends Error {\n constructor(message) {\n super(message);\n this.name = 'S2OError';\n }\n}\n\nfunction throwError(message, options) {\n let err = new S2OError(message);\n err.options = options;\n if (options.promise) {\n options.promise.reject(err);\n }\n else {\n throw err;\n }\n}\n\nfunction throwOrWarn(message, container, options) {\n if (options.warnOnly) {\n container[options.warnProperty||'x-s2o-warning'] = message;\n }\n else {\n throwError(message, options);\n }\n}\n\nfunction fixUpSubSchema(schema,parent,options) {\n if (schema.nullable) options.patches++;\n if (schema.discriminator && typeof schema.discriminator === 'string') {\n schema.discriminator = { propertyName: schema.discriminator };\n }\n if (schema.items && Array.isArray(schema.items)) {\n if (schema.items.length === 0) {\n schema.items = {};\n }\n else if (schema.items.length === 1) {\n schema.items = schema.items[0];\n }\n else schema.items = { anyOf: schema.items };\n }\n\n if (schema.type && Array.isArray(schema.type)) {\n if (options.patch) {\n options.patches++;\n if (schema.type.length === 0) {\n delete schema.type;\n }\n else {\n if (!schema.oneOf) schema.oneOf = [];\n for (let type of schema.type) {\n let newSchema = {};\n if (type === 'null') {\n schema.nullable = true;\n }\n else {\n newSchema.type = type;\n for (let prop of common.arrayProperties) {\n if (typeof schema.prop !== 'undefined') {\n newSchema[prop] = schema[prop];\n delete schema[prop];\n }\n }\n }\n if (newSchema.type) {\n schema.oneOf.push(newSchema);\n }\n }\n delete schema.type;\n if (schema.oneOf.length === 0) {\n delete schema.oneOf; // means was just null => nullable\n }\n else if (schema.oneOf.length < 2) {\n schema.type = schema.oneOf[0].type;\n if (Object.keys(schema.oneOf[0]).length > 1) {\n throwOrWarn('Lost properties from oneOf',schema,options);\n }\n delete schema.oneOf;\n }\n }\n // do not else this\n if (schema.type && Array.isArray(schema.type) && schema.type.length === 1) {\n schema.type = schema.type[0];\n }\n }\n else {\n throwError('(Patchable) schema type must not be an array', options);\n }\n }\n\n if (schema.type && schema.type === 'null') {\n delete schema.type;\n schema.nullable = true;\n }\n if ((schema.type === 'array') && (!schema.items)) {\n schema.items = {};\n }\n if (typeof schema.required === 'boolean') {\n if (schema.required && schema.name) {\n if (typeof parent.required === 'undefined') {\n parent.required = [];\n }\n if (Array.isArray(parent.required)) parent.required.push(schema.name);\n }\n delete schema.required;\n }\n\n // TODO if we have a nested properties (object inside an object) and the\n // *parent* type is not set, force it to object\n // TODO if default is set but type is not set, force type to typeof default\n\n if (schema.xml && typeof schema.xml.namespace === 'string') {\n if (!schema.xml.namespace) delete schema.xml.namespace;\n }\n}\n\nfunction fixUpSubSchemaExtensions(schema,parent) {\n if (schema[\"x-required\"] && Array.isArray(schema[\"x-required\"])) {\n if (!schema.required) schema.required = [];\n schema.required = schema.required.concat(schema[\"x-required\"]);\n delete schema[\"x-required\"];\n }\n if (schema[\"x-anyOf\"]) {\n schema.anyOf = schema[\"x-anyOf\"];\n delete schema[\"x-anyOf\"];\n }\n if (schema[\"x-oneOf\"]) {\n schema.oneOf = schema[\"x-oneOf\"];\n delete schema[\"x-oneOf\"];\n }\n if (schema[\"x-not\"]) {\n schema.not = schema[\"x-not\"];\n delete schema[\"x-not\"];\n }\n if (typeof schema[\"x-nullable\"] === 'boolean') {\n schema.nullable = schema[\"x-nullable\"];\n delete schema[\"x-nullable\"];\n }\n if ((typeof schema[\"x-discriminator\"] === 'object') && (typeof schema[\"x-discriminator\"].propertyName === 'string')) {\n schema.discriminator = schema[\"x-discriminator\"];\n delete schema[\"x-discriminator\"];\n for (let entry in schema.discriminator.mapping) {\n let schemaOrRef = schema.discriminator.mapping[entry];\n if (schemaOrRef.startsWith('#/definitions/')) {\n schema.discriminator.mapping[entry] = schemaOrRef.replace('#/definitions/','#/components/schemas/');\n }\n }\n }\n}\n\nfunction fixUpSchema(schema,options) {\n sw.walkSchema(schema,{},{},function(schema,parent,state){\n fixUpSubSchemaExtensions(schema,parent);\n fixUpSubSchema(schema,parent,options);\n });\n}\n\nfunction getMiroComponentName(ref) {\n if (ref.indexOf('#')>=0) {\n ref = ref.split('#')[1].split('/').pop();\n }\n else {\n ref = ref.split('/').pop().split('.')[0];\n }\n return encodeURIComponent(common.sanitise(ref));\n}\n\nfunction fixupRefs(obj, key, state) {\n let options = state.payload.options;\n if (isRef(obj,key)) {\n if (obj[key].startsWith('#/components/')) {\n // no-op\n }\n else if (obj[key] === '#/consumes') {\n // people are *so* creative\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.consumes);\n }\n else if (obj[key] === '#/produces') {\n // and by creative, I mean devious\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.produces);\n }\n else if (obj[key].startsWith('#/definitions/')) {\n //only the first part of a schema component name must be sanitised\n let keys = obj[key].replace('#/definitions/', '').split('/');\n const ref = jptr.jpunescape(keys[0]);\n\n let newKey = componentNames.schemas[decodeURIComponent(ref)]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n else if (obj[key].startsWith('#/parameters/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/parameters/' + common.sanitise(obj[key].replace('#/parameters/', ''));\n }\n else if (obj[key].startsWith('#/responses/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/responses/' + common.sanitise(obj[key].replace('#/responses/', ''));\n }\n else if (obj[key].startsWith('#')) {\n // fixes up direct $refs or those created by resolvers\n let target = clone(jptr.jptr(options.openapi,obj[key]));\n if (target === false) throwOrWarn('direct $ref not found '+obj[key],obj,options)\n else if (options.refmap[obj[key]]) {\n obj[key] = options.refmap[obj[key]];\n }\n else {\n // we use a heuristic to determine what kind of thing is being referenced\n let oldRef = obj[key];\n oldRef = oldRef.replace('/properties/headers/','');\n oldRef = oldRef.replace('/properties/responses/','');\n oldRef = oldRef.replace('/properties/parameters/','');\n oldRef = oldRef.replace('/properties/schemas/','');\n let type = 'schemas';\n let schemaIndex = oldRef.lastIndexOf('/schema');\n type = (oldRef.indexOf('/headers/')>schemaIndex) ? 'headers' :\n ((oldRef.indexOf('/responses/')>schemaIndex) ? 'responses' :\n ((oldRef.indexOf('/example')>schemaIndex) ? 'examples' :\n ((oldRef.indexOf('/x-')>schemaIndex) ? 'extensions' :\n ((oldRef.indexOf('/parameters/')>schemaIndex) ? 'parameters' : 'schemas'))));\n\n // non-body/form parameters have not moved in the overall structure (like responses)\n // but extracting the requestBodies can cause the *number* of parameters to change\n\n if (type === 'schemas') {\n fixUpSchema(target,options);\n }\n\n if ((type !== 'responses') && (type !== 'extensions')) {\n let prefix = type.substr(0,type.length-1);\n if ((prefix === 'parameter') && target.name && (target.name === common.sanitise(target.name))) {\n prefix = encodeURIComponent(target.name);\n }\n\n let suffix = 1;\n if (obj['x-miro']) {\n prefix = getMiroComponentName(obj['x-miro']);\n suffix = '';\n }\n\n while (jptr.jptr(options.openapi,'#/components/'+type+'/'+prefix+suffix)) {\n suffix = (suffix === '' ? 2 : ++suffix);\n }\n\n let newRef = '#/components/'+type+'/'+prefix+suffix;\n let refSuffix = '';\n\n if (type === 'examples') {\n target = { value: target };\n refSuffix = '/value';\n }\n\n jptr.jptr(options.openapi,newRef,target);\n options.refmap[obj[key]] = newRef+refSuffix;\n obj[key] = newRef+refSuffix;\n }\n }\n }\n\n delete obj['x-miro'];\n // do this last - rework cases where $ref object has sibling properties\n if (Object.keys(obj).length > 1) {\n const tmpRef = obj[key];\n const inSchema = state.path.indexOf('/schema') >= 0; // not perfect, but in the absence of a reasonably-sized and complete OAS 2.0 parser...\n if (options.refSiblings === 'preserve') {\n // no-op\n }\n else if (inSchema && (options.refSiblings === 'allOf')) {\n delete obj.$ref;\n state.parent[state.pkey] = { allOf: [ { $ref: tmpRef }, obj ]};\n }\n else { // remove, or not 'preserve' and not in a schema\n state.parent[state.pkey] = { $ref: tmpRef };\n }\n }\n\n }\n if ((key === 'x-ms-odata') && (typeof obj[key] === 'string') && (obj[key].startsWith('#/'))) {\n let keys = obj[key].replace('#/definitions/', '').replace('#/components/schemas/','').split('/');\n let newKey = componentNames.schemas[decodeURIComponent(keys[0])]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n}\n\n/*\n* This has to happen as a separate pass because multiple $refs may point\n* through elements of the same path\n*/\nfunction dedupeRefs(openapi, options) {\n for (let ref in options.refmap) {\n jptr.jptr(openapi,ref,{ $ref: options.refmap[ref] });\n }\n}\n\nfunction processSecurity(securityObject) {\n for (let s in securityObject) {\n for (let k in securityObject[s]) {\n let sname = common.sanitise(k);\n if (k != sname) {\n securityObject[s][sname] = securityObject[s][k];\n delete securityObject[s][k];\n }\n }\n }\n}\n\nfunction processSecurityScheme(scheme, options) {\n if (scheme.type === 'basic') {\n scheme.type = 'http';\n scheme.scheme = 'basic';\n }\n if (scheme.type === 'oauth2') {\n let flow = {};\n let flowName = scheme.flow;\n if (scheme.flow === 'application') flowName = 'clientCredentials';\n if (scheme.flow === 'accessCode') flowName = 'authorizationCode';\n if (typeof scheme.authorizationUrl !== 'undefined') flow.authorizationUrl = scheme.authorizationUrl.split('?')[0].trim() || '/';\n if (typeof scheme.tokenUrl === 'string') flow.tokenUrl = scheme.tokenUrl.split('?')[0].trim() || '/';\n flow.scopes = scheme.scopes || {};\n scheme.flows = {};\n scheme.flows[flowName] = flow;\n delete scheme.flow;\n delete scheme.authorizationUrl;\n delete scheme.tokenUrl;\n delete scheme.scopes;\n if (typeof scheme.name !== 'undefined') {\n if (options.patch) {\n options.patches++;\n delete scheme.name;\n }\n else {\n throwError('(Patchable) oauth2 securitySchemes should not have name property', options);\n }\n }\n }\n}\n\nfunction keepParameters(value) {\n return (value && !value[\"x-s2o-delete\"]);\n}\n\nfunction processHeader(header, options) {\n if (header.$ref) {\n header.$ref = header.$ref.replace('#/responses/', '#/components/responses/');\n }\n else {\n if (header.type && !header.schema) {\n header.schema = {};\n }\n if (header.type) header.schema.type = header.type;\n if (header.items && header.items.type !== 'array') {\n if (header.items.collectionFormat !== header.collectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', header, options);\n }\n delete header.items.collectionFormat;\n }\n if (header.type === 'array') {\n if (header.collectionFormat === 'ssv') {\n throwOrWarn('collectionFormat:ssv is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'pipes') {\n throwOrWarn('collectionFormat:pipes is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'multi') {\n header.explode = true;\n }\n else if (header.collectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', header, options); // not lossless\n header[\"x-collectionFormat\"] = 'tsv';\n }\n else { // 'csv'\n header.style = 'simple';\n }\n delete header.collectionFormat;\n }\n else if (header.collectionFormat) {\n if (options.patch) {\n options.patches++;\n delete header.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to header.type array', options);\n }\n }\n delete header.type;\n for (let prop of common.parameterTypeProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n for (let prop of common.arrayProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n }\n}\n\nfunction fixParamRef(param, options) {\n if (param.$ref.indexOf('#/parameters/') >= 0) {\n let refComponents = param.$ref.split('#/parameters/');\n param.$ref = refComponents[0] + '#/components/parameters/' + common.sanitise(refComponents[1]);\n }\n if (param.$ref.indexOf('#/definitions/') >= 0) {\n throwOrWarn('Definition used as parameter', param, options);\n }\n}\n\nfunction attachRequestBody(op,options) {\n let newOp = {};\n for (let key of Object.keys(op)) {\n newOp[key] = op[key];\n if (key === 'parameters') {\n newOp.requestBody = {};\n if (options.rbname) newOp[options.rbname] = '';\n }\n }\n newOp.requestBody = {}; // just in case there are no parameters\n return newOp;\n}\n\n/**\n * @returns op, as it may have changed\n */\nfunction processParameter(param, op, path, method, index, openapi, options) {\n let result = {};\n let singularRequestBody = true;\n let originalType;\n\n if (op && op.consumes && (typeof op.consumes === 'string')) {\n if (options.patch) {\n options.patches++;\n op.consumes = [op.consumes];\n }\n else {\n return throwError('(Patchable) operation.consumes must be an array', options);\n }\n }\n if (!Array.isArray(openapi.consumes)) delete openapi.consumes;\n let consumes = ((op ? op.consumes : null) || (openapi.consumes || [])).filter(common.uniqueOnly);\n\n if (param && param.$ref && (typeof param.$ref === 'string')) {\n // if we still have a ref here, it must be an internal one\n fixParamRef(param, options);\n let ptr = decodeURIComponent(param.$ref.replace('#/components/parameters/', ''));\n let rbody = false;\n let target = openapi.components.parameters[ptr]; // resolves a $ref, must have been sanitised already\n\n if (((!target) || (target[\"x-s2o-delete\"])) && param.$ref.startsWith('#/')) {\n // if it's gone, chances are it's a requestBody component now unless spec was broken\n param[\"x-s2o-delete\"] = true;\n rbody = true;\n }\n\n // shared formData parameters from swagger or path level could be used in any combination.\n // we dereference all op.requestBody's then hash them and pull out common ones later\n\n if (rbody) {\n let ref = param.$ref;\n let newParam = resolveInternal(openapi, param.$ref);\n if (!newParam && ref.startsWith('#/')) {\n throwOrWarn('Could not resolve reference ' + ref, param, options);\n }\n else {\n if (newParam) param = newParam; // preserve reference\n }\n }\n }\n\n if (param && (param.name || param.in)) { // if it's a real parameter OR we've dereferenced it\n\n if (typeof param['x-deprecated'] === 'boolean') {\n param.deprecated = param['x-deprecated'];\n delete param['x-deprecated'];\n }\n\n if (typeof param['x-example'] !== 'undefined') {\n param.example = param['x-example'];\n delete param['x-example'];\n }\n\n if ((param.in != 'body') && (!param.type)) {\n if (options.patch) {\n options.patches++;\n param.type = 'string';\n }\n else {\n throwError('(Patchable) parameter.type is mandatory for non-body parameters', options);\n }\n }\n if (param.type && typeof param.type === 'object' && param.type.$ref) {\n // $ref anywhere sensibility\n param.type = resolveInternal(openapi, param.type.$ref);\n }\n if (param.type === 'file') {\n param['x-s2o-originalType'] = param.type;\n originalType = param.type;\n }\n if (param.description && typeof param.description === 'object' && param.description.$ref) {\n // $ref anywhere sensibility\n param.description = resolveInternal(openapi, param.description.$ref);\n }\n if (param.description === null) delete param.description;\n\n let oldCollectionFormat = param.collectionFormat;\n if ((param.type === 'array') && !oldCollectionFormat) {\n oldCollectionFormat = 'csv';\n }\n if (oldCollectionFormat) {\n if (param.type != 'array') {\n if (options.patch) {\n options.patches++;\n delete param.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to param.type array', options);\n }\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'query') || (param.in === 'cookie'))) {\n param.style = 'form';\n param.explode = false;\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'path') || (param.in === 'header'))) {\n param.style = 'simple';\n }\n if (oldCollectionFormat === 'ssv') {\n if (param.in === 'query') {\n param.style = 'spaceDelimited';\n }\n else {\n throwOrWarn('collectionFormat:ssv is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'pipes') {\n if (param.in === 'query') {\n param.style = 'pipeDelimited';\n }\n else {\n throwOrWarn('collectionFormat:pipes is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'multi') {\n param.explode = true;\n }\n if (oldCollectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', param, options); // not lossless\n param[\"x-collectionFormat\"] = 'tsv';\n }\n delete param.collectionFormat;\n }\n\n if (param.type && (param.type != 'object') && (param.type != 'body') && (param.in != 'formData')) {\n if (param.items && param.schema) {\n throwOrWarn('parameter has array,items and schema', param, options);\n }\n else {\n if (param.schema) options.patches++; // already present\n if ((!param.schema) || (typeof param.schema !== 'object')) param.schema = {};\n param.schema.type = param.type;\n if (param.items) {\n param.schema.items = param.items;\n delete param.items;\n recurse(param.schema.items, null, function (obj, key, state) {\n if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) {\n if (oldCollectionFormat && obj[key] !== oldCollectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', param, options);\n }\n delete obj[key]; // not lossless\n }\n // items in 2.0 was a subset of the JSON-Schema items\n // object, it gets fixed up below\n });\n }\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') param.schema[prop] = param[prop];\n delete param[prop];\n }\n }\n }\n\n if (param.schema) {\n fixUpSchema(param.schema,options);\n }\n\n if (param[\"x-ms-skip-url-encoding\"]) {\n if (param.in === 'query') { // might be in:path, not allowed in OAS3\n param.allowReserved = true;\n delete param[\"x-ms-skip-url-encoding\"];\n }\n }\n }\n\n if (param && param.in === 'formData') {\n // convert to requestBody component\n singularRequestBody = false;\n result.content = {};\n let contentType = 'application/x-www-form-urlencoded';\n if ((consumes.length) && (consumes.indexOf('multipart/form-data') >= 0)) {\n contentType = 'multipart/form-data';\n }\n\n result.content[contentType] = {};\n if (param.schema) {\n result.content[contentType].schema = param.schema;\n if (param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n }\n else {\n result.content[contentType].schema = {};\n result.content[contentType].schema.type = 'object';\n result.content[contentType].schema.properties = {};\n result.content[contentType].schema.properties[param.name] = {};\n let schema = result.content[contentType].schema;\n let target = result.content[contentType].schema.properties[param.name];\n if (param.description) target.description = param.description;\n if (param.example) target.example = param.example;\n if (param.type) target.type = param.type;\n\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') target[prop] = param[prop];\n }\n if (param.required === true) {\n if (!schema.required) schema.required = [];\n schema.required.push(param.name);\n result.required = true;\n }\n if (typeof param.default !== 'undefined') target.default = param.default;\n if (target.properties) target.properties = param.properties;\n if (param.allOf) target.allOf = param.allOf; // new are anyOf, oneOf, not\n if ((param.type === 'array') && (param.items)) {\n target.items = param.items;\n if (target.items.collectionFormat) delete target.items.collectionFormat;\n }\n if ((originalType === 'file') || (param['x-s2o-originalType'] === 'file')) {\n target.type = 'string';\n target.format = 'binary';\n }\n\n // Copy any extensions on the form param to the target schema property.\n copyExtensions(param, target);\n }\n }\n else if (param && param.type === 'file') {\n // convert to requestBody\n if (param.required) result.required = param.required;\n result.content = {};\n result.content[\"application/octet-stream\"] = {};\n result.content[\"application/octet-stream\"].schema = {};\n result.content[\"application/octet-stream\"].schema.type = 'string';\n result.content[\"application/octet-stream\"].schema.format = 'binary';\n copyExtensions(param, result);\n }\n if (param && param.in === 'body') {\n result.content = {};\n if (param.name) result['x-s2o-name'] = (op && op.operationId ? common.sanitiseAll(op.operationId) : '') + ('_' + param.name).toCamelCase();\n if (param.description) result.description = param.description;\n if (param.required) result.required = param.required;\n\n // Set the \"request body name\" extension on the operation if requested.\n if (op && options.rbname && param.name) {\n op[options.rbname] = param.name;\n }\n if (param.schema && param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n else if (param.schema && (param.schema.type === 'array') && param.schema.items && param.schema.items.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.items.$ref.replace('#/components/schemas/', '')) + 'Array';\n }\n\n if (!consumes.length) {\n consumes.push('application/json'); // TODO verify default\n }\n\n for (let mimetype of consumes) {\n result.content[mimetype] = {};\n result.content[mimetype].schema = clone(param.schema || {});\n fixUpSchema(result.content[mimetype].schema,options);\n }\n\n // Copy any extensions from the original parameter to the new requestBody\n copyExtensions(param, result);\n }\n\n if (Object.keys(result).length > 0) {\n param[\"x-s2o-delete\"] = true;\n // work out where to attach the requestBody\n if (op) {\n if (op.requestBody && singularRequestBody) {\n op.requestBody[\"x-s2o-overloaded\"] = true;\n let opId = op.operationId || index;\n\n throwOrWarn('Operation ' + opId + ' has multiple requestBodies', op, options);\n }\n else {\n if (!op.requestBody) {\n op = path[method] = attachRequestBody(op,options); // make sure we have one\n }\n if ((op.requestBody.content && op.requestBody.content[\"multipart/form-data\"])\n && (op.requestBody.content[\"multipart/form-data\"].schema) && (op.requestBody.content[\"multipart/form-data\"].schema.properties) && (result.content[\"multipart/form-data\"]) && (result.content[\"multipart/form-data\"].schema) && (result.content[\"multipart/form-data\"].schema.properties)) {\n op.requestBody.content[\"multipart/form-data\"].schema.properties =\n Object.assign(op.requestBody.content[\"multipart/form-data\"].schema.properties, result.content[\"multipart/form-data\"].schema.properties);\n op.requestBody.content[\"multipart/form-data\"].schema.required = (op.requestBody.content[\"multipart/form-data\"].schema.required || []).concat(result.content[\"multipart/form-data\"].schema.required||[]);\n if (!op.requestBody.content[\"multipart/form-data\"].schema.required.length) {\n delete op.requestBody.content[\"multipart/form-data\"].schema.required;\n }\n }\n else if ((op.requestBody.content && op.requestBody.content[\"application/x-www-form-urlencoded\"] && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties)\n && result.content[\"application/x-www-form-urlencoded\"] && result.content[\"application/x-www-form-urlencoded\"].schema && result.content[\"application/x-www-form-urlencoded\"].schema.properties) {\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties =\n Object.assign(op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties, result.content[\"application/x-www-form-urlencoded\"].schema.properties);\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required = (op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required || []).concat(result.content[\"application/x-www-form-urlencoded\"].schema.required||[]);\n if (!op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required.length) {\n delete op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required;\n }\n }\n else {\n op.requestBody = Object.assign(op.requestBody, result);\n if (!op.requestBody['x-s2o-name']) {\n if (op.requestBody.schema && op.requestBody.schema.$ref) {\n op.requestBody['x-s2o-name'] = decodeURIComponent(op.requestBody.schema.$ref.replace('#/components/schemas/', '')).split('/').join('');\n }\n else if (op.operationId) {\n op.requestBody['x-s2o-name'] = common.sanitiseAll(op.operationId);\n }\n }\n }\n }\n }\n }\n\n // tidy up\n if (param && !param['x-s2o-delete']) {\n delete param.type;\n for (let prop of common.parameterTypeProperties) {\n delete param[prop];\n }\n\n if ((param.in === 'path') && ((typeof param.required === 'undefined') || (param.required !== true))) {\n if (options.patch) {\n options.patches++;\n param.required = true;\n }\n else {\n throwError('(Patchable) path parameters must be required:true ['+param.name+' in '+index+']', options);\n }\n }\n }\n\n return op;\n}\n\nfunction copyExtensions(src, tgt) {\n for (let prop in src) {\n if (prop.startsWith('x-') && !prop.startsWith('x-s2o')) {\n tgt[prop] = src[prop];\n }\n }\n}\n\nfunction processResponse(response, name, op, openapi, options) {\n if (!response) return false;\n if (response.$ref && (typeof response.$ref === 'string')) {\n if (response.$ref.indexOf('#/definitions/') >= 0) {\n //response.$ref = '#/components/schemas/'+common.sanitise(response.$ref.replace('#/definitions/',''));\n throwOrWarn('definition used as response: ' + response.$ref, response, options);\n }\n else {\n if (response.$ref.startsWith('#/responses/')) {\n response.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.$ref.replace('#/responses/', '')));\n }\n }\n }\n else {\n if ((typeof response.description === 'undefined') || (response.description === null)\n || ((response.description === '') && options.patch)) {\n if (options.patch) {\n if ((typeof response === 'object') && (!Array.isArray(response))) {\n options.patches++;\n response.description = (statusCodes[response] || '');\n }\n }\n else {\n throwError('(Patchable) response.description is mandatory', options);\n }\n }\n if (typeof response.schema !== 'undefined') {\n\n fixUpSchema(response.schema,options);\n\n if (response.schema.$ref && (typeof response.schema.$ref === 'string') && response.schema.$ref.startsWith('#/responses/')) {\n response.schema.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.schema.$ref.replace('#/responses/', '')));\n }\n\n if (op && op.produces && (typeof op.produces === 'string')) {\n if (options.patch) {\n options.patches++;\n op.produces = [op.produces];\n }\n else {\n return throwError('(Patchable) operation.produces must be an array', options);\n }\n }\n if (openapi.produces && !Array.isArray(openapi.produces)) delete openapi.produces;\n\n let produces = ((op ? op.produces : null) || (openapi.produces || [])).filter(common.uniqueOnly);\n if (!produces.length) produces.push('*/*'); // TODO verify default\n\n response.content = {};\n for (let mimetype of produces) {\n response.content[mimetype] = {};\n response.content[mimetype].schema = clone(response.schema);\n if (response.examples && response.examples[mimetype]) {\n let example = {};\n example.value = response.examples[mimetype];\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = example;\n delete response.examples[mimetype];\n }\n if (response.content[mimetype].schema.type === 'file') {\n response.content[mimetype].schema = { type: 'string', format: 'binary' };\n }\n }\n delete response.schema;\n }\n // examples for content-types not listed in produces\n for (let mimetype in response.examples) {\n if (!response.content) response.content = {};\n if (!response.content[mimetype]) response.content[mimetype] = {};\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = {};\n response.content[mimetype].examples.response.value = response.examples[mimetype];\n }\n delete response.examples;\n\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n options.patches++;\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n}\n\nfunction processPaths(container, containerName, options, requestBodyCache, openapi) {\n for (let p in container) {\n let path = container[p];\n // path.$ref is external only\n if (path && (path['x-trace']) && (typeof path['x-trace'] === 'object')) {\n path.trace = path['x-trace'];\n delete path['x-trace'];\n }\n if (path && (path['x-summary']) && (typeof path['x-summary'] === 'string')) {\n path.summary = path['x-summary'];\n delete path['x-summary'];\n }\n if (path && (path['x-description']) && (typeof path['x-description'] === 'string')) {\n path.description = path['x-description'];\n delete path['x-description'];\n }\n if (path && (path['x-servers']) && (Array.isArray(path['x-servers']))) {\n path.servers = path['x-servers'];\n delete path['x-servers'];\n }\n for (let method in path) {\n if ((common.httpMethods.indexOf(method) >= 0) || (method === 'x-amazon-apigateway-any-method')) {\n let op = path[method];\n\n if (op && op.parameters && Array.isArray(op.parameters)) {\n if (path.parameters) {\n for (let param of path.parameters) {\n if (typeof param.$ref === 'string') {\n fixParamRef(param, options);\n param = resolveInternal(openapi, param.$ref);\n }\n let match = op.parameters.find(function (e, i, a) {\n return ((e.name === param.name) && (e.in === param.in));\n });\n\n if (!match && ((param.in === 'formData') || (param.in === 'body') || (param.type === 'file'))) {\n op = processParameter(param, op, path, method, p, openapi, options);\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n }\n }\n }\n for (let param of op.parameters) {\n op = processParameter(param, op, path, method, method + ':' + p, openapi, options);\n }\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n if (!options.debug) {\n if (op.parameters) op.parameters = op.parameters.filter(keepParameters);\n }\n }\n\n if (op && op.security) processSecurity(op.security);\n\n //don't need to remove requestBody for non-supported ops as they \"SHALL be ignored\"\n\n // responses\n if (typeof op === 'object') {\n if (!op.responses) {\n let defaultResp = {};\n defaultResp.description = 'Default response';\n op.responses = { default: defaultResp };\n }\n for (let r in op.responses) {\n let response = op.responses[r];\n processResponse(response, r, op, openapi, options);\n }\n }\n\n if (op && (op['x-servers']) && (Array.isArray(op['x-servers']))) {\n op.servers = op['x-servers'];\n delete op['x-servers'];\n } else if (op && op.schemes && op.schemes.length) {\n for (let scheme of op.schemes) {\n if ((!openapi.schemes) || (openapi.schemes.indexOf(scheme) < 0)) {\n if (!op.servers) {\n op.servers = [];\n }\n if (Array.isArray(openapi.servers)) {\n for (let server of openapi.servers) {\n let newServer = clone(server);\n let serverUrl = url.parse(newServer.url);\n serverUrl.protocol = scheme;\n newServer.url = serverUrl.format();\n op.servers.push(newServer);\n }\n }\n }\n }\n }\n\n if (options.debug) {\n op[\"x-s2o-consumes\"] = op.consumes || [];\n op[\"x-s2o-produces\"] = op.produces || [];\n }\n if (op) {\n delete op.consumes;\n delete op.produces;\n delete op.schemes;\n\n if (op[\"x-ms-examples\"]) {\n for (let e in op[\"x-ms-examples\"]) {\n let example = op[\"x-ms-examples\"][e];\n let se = common.sanitiseAll(e);\n if (example.parameters) {\n for (let p in example.parameters) {\n let value = example.parameters[p];\n for (let param of (op.parameters||[]).concat(path.parameters||[])) {\n if (param.$ref) {\n param = jptr.jptr(openapi,param.$ref);\n }\n if ((param.name === p) && (!param.example)) {\n if (!param.examples) {\n param.examples = {};\n }\n param.examples[e] = {value: value};\n }\n }\n }\n }\n if (example.responses) {\n for (let r in example.responses) {\n if (example.responses[r].headers) {\n for (let h in example.responses[r].headers) {\n let value = example.responses[r].headers[h];\n for (let rh in op.responses[r].headers) {\n if (rh === h) {\n let header = op.responses[r].headers[rh];\n header.example = value;\n }\n }\n }\n }\n if (example.responses[r].body) {\n openapi.components.examples[se] = { value: clone(example.responses[r].body) };\n if (op.responses[r] && op.responses[r].content) {\n for (let ct in op.responses[r].content) {\n let contentType = op.responses[r].content[ct];\n if (!contentType.examples) {\n contentType.examples = {};\n }\n contentType.examples[e] = { $ref: '#/components/examples/'+se };\n }\n }\n }\n\n }\n }\n }\n delete op[\"x-ms-examples\"];\n }\n\n if (op.parameters && op.parameters.length === 0) delete op.parameters;\n if (op.requestBody) {\n let effectiveOperationId = op.operationId ? common.sanitiseAll(op.operationId) : common.sanitiseAll(method + p).toCamelCase();\n let rbName = common.sanitise(op.requestBody['x-s2o-name'] || effectiveOperationId || '');\n delete op.requestBody['x-s2o-name'];\n let rbStr = JSON.stringify(op.requestBody);\n let rbHash = common.hash(rbStr);\n if (!requestBodyCache[rbHash]) {\n let entry = {};\n entry.name = rbName;\n entry.body = op.requestBody;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n let ptr = '#/'+containerName+'/'+encodeURIComponent(jptr.jpescape(p))+'/'+method+'/requestBody';\n requestBodyCache[rbHash].refs.push(ptr);\n }\n }\n\n }\n }\n if (path && path.parameters) {\n for (let p2 in path.parameters) {\n let param = path.parameters[p2];\n processParameter(param, null, path, null, p, openapi, options); // index here is the path string\n }\n if (!options.debug && Array.isArray(path.parameters)) {\n path.parameters = path.parameters.filter(keepParameters);\n }\n }\n }\n}\n\nfunction main(openapi, options) {\n\n let requestBodyCache = {};\n componentNames = { schemas: {} };\n\n if (openapi.security) processSecurity(openapi.security);\n\n for (let s in openapi.components.securitySchemes) {\n let sname = common.sanitise(s);\n if (s != sname) {\n if (openapi.components.securitySchemes[sname]) {\n throwError('Duplicate sanitised securityScheme name ' + sname, options);\n }\n openapi.components.securitySchemes[sname] = openapi.components.securitySchemes[s];\n delete openapi.components.securitySchemes[s];\n }\n processSecurityScheme(openapi.components.securitySchemes[sname], options);\n }\n\n for (let s in openapi.components.schemas) {\n let sname = common.sanitiseAll(s);\n let suffix = '';\n if (s != sname) {\n while (openapi.components.schemas[sname + suffix]) {\n // @ts-ignore\n suffix = (suffix ? ++suffix : 2);\n }\n openapi.components.schemas[sname + suffix] = openapi.components.schemas[s];\n delete openapi.components.schemas[s];\n }\n componentNames.schemas[s] = sname + suffix;\n fixUpSchema(openapi.components.schemas[sname+suffix],options)\n }\n\n // fix all $refs to their new locations (and potentially new names)\n options.refmap = {};\n recurse(openapi, { payload: { options: options } }, fixupRefs);\n dedupeRefs(openapi,options);\n\n for (let p in openapi.components.parameters) {\n let sname = common.sanitise(p);\n if (p != sname) {\n if (openapi.components.parameters[sname]) {\n throwError('Duplicate sanitised parameter name ' + sname, options);\n }\n openapi.components.parameters[sname] = openapi.components.parameters[p];\n delete openapi.components.parameters[p];\n }\n let param = openapi.components.parameters[sname];\n processParameter(param, null, null, null, sname, openapi, options);\n }\n\n for (let r in openapi.components.responses) {\n let sname = common.sanitise(r);\n if (r != sname) {\n if (openapi.components.responses[sname]) {\n throwError('Duplicate sanitised response name ' + sname, options);\n }\n openapi.components.responses[sname] = openapi.components.responses[r];\n delete openapi.components.responses[r];\n }\n let response = openapi.components.responses[sname];\n processResponse(response, sname, null, openapi, options);\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n options.patches++;\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n\n for (let r in openapi.components.requestBodies) { // converted ones\n let rb = openapi.components.requestBodies[r];\n let rbStr = JSON.stringify(rb);\n let rbHash = common.hash(rbStr);\n let entry = {};\n entry.name = r;\n entry.body = rb;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n\n processPaths(openapi.paths, 'paths', options, requestBodyCache, openapi);\n if (openapi[\"x-ms-paths\"]) {\n processPaths(openapi[\"x-ms-paths\"], 'x-ms-paths', options, requestBodyCache, openapi);\n }\n\n if (!options.debug) {\n for (let p in openapi.components.parameters) {\n let param = openapi.components.parameters[p];\n if (param[\"x-s2o-delete\"]) {\n delete openapi.components.parameters[p];\n }\n }\n }\n\n if (options.debug) {\n openapi[\"x-s2o-consumes\"] = openapi.consumes || [];\n openapi[\"x-s2o-produces\"] = openapi.produces || [];\n }\n delete openapi.consumes;\n delete openapi.produces;\n delete openapi.schemes;\n\n let rbNamesGenerated = [];\n\n openapi.components.requestBodies = {}; // for now as we've dereffed them\n\n if (!options.resolveInternal) {\n let counter = 1;\n for (let e in requestBodyCache) {\n let entry = requestBodyCache[e];\n if (entry.refs.length > 1) {\n // create a shared requestBody\n let suffix = '';\n if (!entry.name) {\n entry.name = 'requestBody';\n // @ts-ignore\n suffix = counter++;\n }\n while (rbNamesGenerated.indexOf(entry.name + suffix) >= 0) {\n // @ts-ignore - this can happen if descriptions are not exactly the same (e.g. bitbucket)\n suffix = (suffix ? ++suffix : 2);\n }\n entry.name = entry.name + suffix;\n rbNamesGenerated.push(entry.name);\n openapi.components.requestBodies[entry.name] = clone(entry.body);\n for (let r in entry.refs) {\n let ref = {};\n ref.$ref = '#/components/requestBodies/' + entry.name;\n jptr.jptr(openapi,entry.refs[r],ref);\n }\n }\n }\n }\n\n if (openapi.components.responses && Object.keys(openapi.components.responses).length === 0) {\n delete openapi.components.responses;\n }\n if (openapi.components.parameters && Object.keys(openapi.components.parameters).length === 0) {\n delete openapi.components.parameters;\n }\n if (openapi.components.examples && Object.keys(openapi.components.examples).length === 0) {\n delete openapi.components.examples;\n }\n if (openapi.components.requestBodies && Object.keys(openapi.components.requestBodies).length === 0) {\n delete openapi.components.requestBodies;\n }\n if (openapi.components.securitySchemes && Object.keys(openapi.components.securitySchemes).length === 0) {\n delete openapi.components.securitySchemes;\n }\n if (openapi.components.headers && Object.keys(openapi.components.headers).length === 0) {\n delete openapi.components.headers;\n }\n if (openapi.components.schemas && Object.keys(openapi.components.schemas).length === 0) {\n delete openapi.components.schemas;\n }\n if (openapi.components && Object.keys(openapi.components).length === 0) {\n delete openapi.components;\n }\n\n return openapi;\n}\n\nfunction extractServerParameters(server) {\n if (!server || !server.url || (typeof server.url !== 'string')) return server;\n server.url = server.url.split('{{').join('{');\n server.url = server.url.split('}}').join('}');\n server.url.replace(/\\{(.+?)\\}/g, function (match, group1) { // TODO extend to :parameters (not port)?\n if (!server.variables) {\n server.variables = {};\n }\n server.variables[group1] = { default: 'unknown' };\n });\n return server;\n}\n\nfunction fixInfo(openapi, options, reject) {\n if ((typeof openapi.info === 'undefined') || (openapi.info === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info = { version: '', title: '' };\n }\n else {\n return reject(new S2OError('(Patchable) info object is mandatory'));\n }\n }\n if ((typeof openapi.info !== 'object') || (Array.isArray(openapi.info))) {\n return reject(new S2OError('info must be an object'));\n }\n if ((typeof openapi.info.title === 'undefined') || (openapi.info.title === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info.title = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.title cannot be null'));\n }\n }\n if ((typeof openapi.info.version === 'undefined') || (openapi.info.version === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info.version = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.version cannot be null'));\n }\n }\n if (typeof openapi.info.version !== 'string') {\n if (options.patch) {\n options.patches++;\n openapi.info.version = openapi.info.version.toString();\n }\n else {\n return reject(new S2OError('(Patchable) info.version must be a string'));\n }\n }\n if (typeof openapi.info.logo !== 'undefined') {\n if (options.patch) {\n options.patches++;\n openapi.info['x-logo'] = openapi.info.logo;\n delete openapi.info.logo;\n }\n else return reject(new S2OError('(Patchable) info should not have logo property'));\n }\n if (typeof openapi.info.termsOfService !== 'undefined') {\n if (openapi.info.termsOfService === null) {\n if (options.patch) {\n options.patches++;\n openapi.info.termsOfService = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.termsOfService cannot be null'));\n }\n }\n if (url.URL && options.whatwg) {\n try {\n url.URL.parse(openapi.info.termsOfService);\n }\n catch (ex) {\n if (options.patch) {\n options.patches++;\n delete openapi.info.termsOfService;\n }\n else return reject(new S2OError('(Patchable) info.termsOfService must be a URL'));\n }\n }\n }\n}\n\nfunction fixPaths(openapi, options, reject) {\n if (typeof openapi.paths === 'undefined') {\n if (options.patch) {\n options.patches++;\n openapi.paths = {};\n }\n else {\n return reject(new S2OError('(Patchable) paths object is mandatory'));\n }\n }\n}\n\nfunction detectObjectReferences(obj, options) {\n const seen = new WeakSet();\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if ((typeof obj[key] === 'object') && (obj[key] !== null)) {\n if (seen.has(obj[key])) {\n if (options.anchors) {\n obj[key] = clone(obj[key]);\n }\n else {\n throwError('YAML anchor or merge key at '+state.path, options);\n }\n }\n else {\n seen.add(obj[key]);\n }\n }\n });\n}\n\nfunction convertObj(swagger, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n if (!swagger) swagger = {};\n options.original = swagger;\n if (!options.text) options.text = yaml.stringify(swagger);\n options.externals = [];\n options.externalRefs = {};\n options.rewriteRefs = true; // avoids stack explosions\n options.preserveMiro = true;\n options.promise = {};\n options.promise.resolve = resolve;\n options.promise.reject = reject;\n options.patches = 0;\n if (!options.cache) options.cache = {};\n if (options.source) options.cache[options.source] = options.original;\n\n detectObjectReferences(swagger, options);\n\n if (swagger.openapi && (typeof swagger.openapi === 'string') && swagger.openapi.startsWith('3.')) {\n options.openapi = cclone(swagger);\n fixInfo(options.openapi, options, reject);\n fixPaths(options.openapi, options, reject);\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n if (options.direct) {\n return resolve(options.openapi);\n }\n else {\n return resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n return; // we should have resolved or rejected by now\n }\n\n if ((!swagger.swagger) || (swagger.swagger != \"2.0\")) {\n return reject(new S2OError('Unsupported swagger/OpenAPI version: ' + (swagger.openapi ? swagger.openapi : swagger.swagger)));\n }\n\n let openapi = options.openapi = {};\n openapi.openapi = (typeof options.targetVersion === 'string' && options.targetVersion.startsWith('3.')) ? options.targetVersion : targetVersion; // semver\n\n if (options.origin) {\n if (!openapi[\"x-origin\"]) {\n openapi[\"x-origin\"] = [];\n }\n let origin = {};\n origin.url = options.source||options.origin;\n origin.format = 'swagger';\n origin.version = swagger.swagger;\n origin.converter = {};\n origin.converter.url = 'https://github.com/mermade/oas-kit';\n origin.converter.version = ourVersion;\n openapi[\"x-origin\"].push(origin);\n }\n\n // we want the new and existing properties to appear in a sensible order. Not guaranteed\n openapi = Object.assign(openapi, cclone(swagger));\n delete openapi.swagger;\n recurse(openapi, {}, function(obj, key, state){\n if ((obj[key] === null) && (!key.startsWith('x-')) && key !== 'default' && (state.path.indexOf('/example') < 0)) delete obj[key]; // this saves *so* much grief later\n });\n\n if (swagger.host) {\n for (let s of (Array.isArray(swagger.schemes) ? swagger.schemes : [''])) {\n let server = {};\n server.url = (s ? s+':' : '') + '//' + swagger.host + (swagger.basePath ? swagger.basePath : '');\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n }\n else if (swagger.basePath) {\n let server = {};\n server.url = swagger.basePath;\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n delete openapi.host;\n delete openapi.basePath;\n\n if (openapi['x-servers'] && Array.isArray(openapi['x-servers'])) {\n openapi.servers = openapi['x-servers'];\n delete openapi['x-servers'];\n }\n\n // TODO APIMatic extensions (x-server-configuration) ?\n\n if (swagger['x-ms-parameterized-host']) {\n let xMsPHost = swagger['x-ms-parameterized-host'];\n let server = {};\n server.url = xMsPHost.hostTemplate + (swagger.basePath ? swagger.basePath : '');\n server.variables = {};\n for (let msp in xMsPHost.parameters) {\n let param = xMsPHost.parameters[msp];\n if (param.$ref) {\n param = clone(resolveInternal(openapi, param.$ref));\n }\n if (!msp.startsWith('x-')) {\n delete param.required; // all true\n delete param.type; // all strings\n delete param.in; // all 'host'\n if (typeof param.default === 'undefined') {\n if (param.enum) {\n param.default = param.enum[0];\n }\n else {\n param.default = '';\n }\n }\n server.variables[param.name] = param;\n delete param.name;\n }\n }\n if (!openapi.servers) openapi.servers = [];\n if (xMsPHost.useSchemePrefix === false) {\n // The server URL already includes a protocol scheme\n openapi.servers.push(server);\n } else {\n // Define this server once for each given protocol scheme\n swagger.schemes.forEach((scheme) => {\n openapi.servers.push(\n Object.assign({}, server, { url: scheme + '://' + server.url })\n )\n });\n }\n delete openapi['x-ms-parameterized-host'];\n }\n\n fixInfo(openapi, options, reject);\n fixPaths(openapi, options, reject);\n\n if (typeof openapi.consumes === 'string') {\n openapi.consumes = [openapi.consumes];\n }\n if (typeof openapi.produces === 'string') {\n openapi.produces = [openapi.produces];\n }\n\n openapi.components = {};\n if (openapi['x-callbacks']) {\n openapi.components.callbacks = openapi['x-callbacks'];\n delete openapi['x-callbacks'];\n }\n openapi.components.examples = {};\n openapi.components.headers = {};\n if (openapi['x-links']) {\n openapi.components.links = openapi['x-links'];\n delete openapi['x-links'];\n }\n openapi.components.parameters = openapi.parameters || {};\n openapi.components.responses = openapi.responses || {};\n openapi.components.requestBodies = {};\n openapi.components.securitySchemes = openapi.securityDefinitions || {};\n openapi.components.schemas = openapi.definitions || {};\n delete openapi.definitions;\n delete openapi.responses;\n delete openapi.parameters;\n delete openapi.securityDefinitions;\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n main(options.openapi, options);\n if (options.direct) {\n resolve(options.openapi);\n }\n else {\n resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n\n }));\n}\n\nfunction convertStr(str, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let obj = null;\n let error = null;\n try {\n obj = JSON.parse(str);\n options.text = JSON.stringify(obj,null,2);\n }\n catch (ex) {\n error = ex;\n try {\n obj = yaml.parse(str, { schema: 'core', prettyErrors: true });\n options.sourceYaml = true;\n options.text = str;\n }\n catch (ex) {\n error = ex;\n }\n }\n if (obj) {\n convertObj(obj, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n else {\n reject(new S2OError(error ? error.message : 'Could not parse string'));\n }\n }));\n}\n\nfunction convertUrl(url, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n options.origin = true;\n if (!options.source) {\n options.source = url;\n }\n if (options.verbose) {\n console.warn('GET ' + url);\n }\n if (!options.fetch) {\n options.fetch = fetch;\n }\n const fetchOptions = Object.assign({}, options.fetchOptions, {agent:options.agent});\n options.fetch(url, fetchOptions).then(function (res) {\n if (res.status !== 200) throw new S2OError(`Received status code ${res.status}: ${url}`);\n return res.text();\n }).then(function (body) {\n convertStr(body, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }).catch(function (err) {\n reject(err);\n });\n }));\n}\n\nfunction convertFile(filename, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n fs.readFile(filename, options.encoding || 'utf8', function (err, s) {\n if (err) {\n reject(err);\n }\n else {\n options.sourceFile = filename;\n convertStr(s, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n });\n }));\n}\n\nfunction convertStream(readable, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let data = '';\n readable.on('data', function (chunk) {\n data += chunk;\n })\n .on('end', function () {\n convertStr(data, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n });\n }));\n}\n\nmodule.exports = {\n S2OError: S2OError,\n targetVersion: targetVersion,\n convert: convertObj,\n convertObj: convertObj,\n convertUrl: convertUrl,\n convertStr: convertStr,\n convertFile: convertFile,\n convertStream: convertStream\n};\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","module.exports = require(\"react-dropdown-aria\");","module.exports = require(\"dompurify\");","module.exports = require(\"classnames\");","module.exports = require(\"call-me-maybe\");","'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst url = require('url');\n\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js').jptr;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst clone = require('reftools/lib/clone.js').clone;\nconst deRef = require('reftools/lib/dereference.js').dereference;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst common = require('oas-kit-common');\n\nfunction unique(arr) {\n return [... new Set(arr)];\n}\n\nfunction readFileAsync(filename, encoding) {\n return new Promise(function (resolve, reject) {\n fs.readFile(filename, encoding, function (err, data) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n });\n}\n\nfunction resolveAllFragment(obj, context, src, parentPath, base, options) {\n\n let attachPoint = options.externalRefs[src+parentPath].paths[0];\n\n let baseUrl = url.parse(base);\n let seen = {}; // seen is indexed by the $ref value and contains path replacements\n let changes = 1;\n while (changes) {\n changes = 0;\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if (isRef(obj, key)) {\n if (obj[key].startsWith('#')) {\n if (!seen[obj[key]] && !obj.$fixed) {\n let target = clone(jptr(context, obj[key]));\n if (options.verbose>1) console.warn((target === false ? common.colour.red : common.colour.green)+'Fragment resolution', obj[key], common.colour.normal);\n /*\n ResolutionCase:A is where there is a local reference in an externally\n referenced document, and we have not seen it before. The reference\n is replaced by a copy of the data pointed to, which may be outside this fragment\n but within the context of the external document\n */\n if (target === false) {\n state.parent[state.pkey] = {}; /* case:A(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Fragment $ref resolution failed '+obj[key]);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n else {\n changes++;\n state.parent[state.pkey] = target;\n seen[obj[key]] = state.path.replace('/%24ref','');\n }\n }\n else {\n if (!obj.$fixed) {\n let newRef = (attachPoint+'/'+seen[obj[key]]).split('/#/').join('/');\n state.parent[state.pkey] = { $ref: newRef, 'x-miro': obj[key], $fixed: true };\n if (options.verbose>1) console.warn('Replacing with',newRef);\n changes++;\n }\n /*\n ResolutionCase:B is where there is a local reference in an externally\n referenced document, and we have seen this reference before and resolved it.\n We create a new object containing the (immutable) $ref string\n */\n }\n }\n else if (baseUrl.protocol) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external url ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key];\n obj[key] = newRef;\n }\n else if (!obj['x-miro']) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key]; // we use x-miro as a flag so we don't do this > once\n obj[key] = newRef;\n }\n }\n });\n }\n\n recurse(obj,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (typeof obj.$fixed !== 'undefined') delete obj.$fixed;\n }\n });\n\n if (options.verbose>1) console.warn('Finished fragment resolution');\n return obj;\n}\n\nfunction filterData(data, options) {\n if (!options.filters || !options.filters.length) return data;\n for (let filter of options.filters) {\n data = filter(data, options);\n }\n return data;\n}\n\nfunction testProtocol(input, backup) {\n if (input && input.length > 2) return input;\n if (backup && backup.length > 2) return backup;\n return 'file:';\n}\n\nfunction resolveExternal(root, pointer, options, callback) {\n var u = url.parse(options.source);\n var base = options.source.split('\\\\').join('/').split('/');\n let doc = base.pop(); // drop the actual filename\n if (!doc) base.pop(); // in case it ended with a /\n let fragment = '';\n let fnComponents = pointer.split('#');\n if (fnComponents.length > 1) {\n fragment = '#' + fnComponents[1];\n pointer = fnComponents[0];\n }\n base = base.join('/');\n\n let u2 = url.parse(pointer);\n let effectiveProtocol = testProtocol(u2.protocol, u.protocol);\n\n let target;\n if (effectiveProtocol === 'file:') {\n target = path.resolve(base ? base + '/' : '', pointer);\n }\n else {\n target = url.resolve(base ? base + '/' : '', pointer);\n }\n\n if (options.cache[target]) {\n if (options.verbose) console.warn('CACHED', target, fragment);\n /*\n resolutionSource:A this is where we have cached the externally-referenced document from a\n file, http or custom handler\n */\n let context = clone(options.cache[target]);\n let data = options.externalRef = context;\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; // case:A(2) where the resolution fails\n if (options.fatal) {\n let ex = new Error('Cached $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n callback(clone(data), target, options);\n return Promise.resolve(data);\n }\n\n if (options.verbose) console.warn('GET', target, fragment);\n\n if (options.handlers && options.handlers[effectiveProtocol]) {\n return options.handlers[effectiveProtocol](base, pointer, fragment, options)\n .then(function (data) {\n options.externalRef = data;\n data = filterData(data, options);\n options.cache[target] = data;\n callback(data, target, options);\n return data;\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n throw(ex);\n });\n }\n else if (effectiveProtocol && effectiveProtocol.startsWith('http')) {\n const fetchOptions = Object.assign({}, options.fetchOptions, { agent: options.agent });\n return options.fetch(target, fetchOptions)\n .then(function (res) {\n if (res.status !== 200) throw new Error(`Received status code ${res.status}: ${target}`);\n return res.text();\n })\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n options.cache[target] = clone(data);\n /* resolutionSource:B, from the network, data is fresh, but we clone it into the cache */\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:B(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Remote $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function (err) {\n if (options.verbose) console.warn(err);\n options.cache[target] = {};\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n else {\n return readFileAsync(target, options.encoding || 'utf8')\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n /*\n resolutionSource:C from a file, data is fresh but we clone it into the cache\n */\n options.cache[target] = clone(data);\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:C(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('File $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function(err){\n if (options.verbose) console.warn(err);\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n}\n\nfunction scanExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n function inner(obj,key,state){\n if (obj[key] && isRef(obj[key],'$ref')) {\n let $ref = obj[key].$ref;\n if (!$ref.startsWith('#')) { // is external\n\n let $extra = '';\n\n if (!refs[$ref]) {\n let potential = Object.keys(refs).find(function(e,i,a){\n return $ref.startsWith(e+'/');\n });\n if (potential) {\n if (options.verbose) console.warn('Found potential subschema at',potential);\n $extra = '/'+($ref.split('#')[1]||'').replace(potential.split('#')[1]||'');\n $extra = $extra.split('/undefined').join(''); // FIXME\n $ref = potential;\n }\n }\n\n if (!refs[$ref]) {\n refs[$ref] = { resolved: false, paths: [], extras:{}, description: obj[key].description };\n }\n if (refs[$ref].resolved) {\n if (options.rewriteRefs) {\n // we've already seen it\n let newRef = refs[$ref].resolvedAt;\n if (options.verbose>1) console.warn('Rewriting ref', $ref, newRef);\n obj[key]['x-miro'] = $ref;\n obj[key].$ref = newRef+$extra; // resolutionCase:C (new string)\n }\n else {\n obj[key] = clone(refs[$ref].data); // resolutionCase:D (cloned:yes)\n }\n }\n else {\n refs[$ref].paths.push(state.path);\n refs[$ref].extras[state.path] = $extra;\n }\n }\n }\n }\n\n let refs = options.externalRefs;\n\n if ((options.resolver.depth>0) && (options.source === options.resolver.base)) {\n // we only need to do any of this when called directly on pass #1\n return res(refs);\n }\n\n recurse(options.openapi.definitions, {identityDetection: true, path: '#/definitions'}, inner);\n recurse(options.openapi.components, {identityDetection: true, path: '#/components'}, inner);\n recurse(options.openapi, {identityDetection: true}, inner);\n\n res(refs);\n });\n}\n\nfunction findExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n scanExternalRefs(options)\n .then(function (refs) {\n for (let ref in refs) {\n\n if (!refs[ref].resolved) {\n let depth = options.resolver.depth;\n if (depth>0) depth++;\n options.resolver.actions[depth].push(function () {\n return resolveExternal(options.openapi, ref, options, function (data, source, options) {\n if (!refs[ref].resolved) {\n let external = {};\n external.context = refs[ref];\n external.$ref = ref;\n external.original = clone(data);\n external.updated = data;\n external.source = source;\n options.externals.push(external);\n refs[ref].resolved = true;\n }\n\n let localOptions = Object.assign({}, options, { source: '',\n resolver: {actions: options.resolver.actions,\n depth: options.resolver.actions.length-1, base: options.resolver.base } });\n if (options.patch && refs[ref].description && !data.description &&\n (typeof data === 'object')) {\n data.description = refs[ref].description;\n }\n refs[ref].data = data;\n\n // sorting $refs by length causes bugs (due to overlapping regions?)\n let pointers = unique(refs[ref].paths);\n pointers = pointers.sort(function(a,b){\n const aComp = (a.startsWith('#/components/') || a.startsWith('#/definitions/'));\n const bComp = (b.startsWith('#/components/') || b.startsWith('#/definitions/'));\n if (aComp && !bComp) return -1;\n if (bComp && !aComp) return +1;\n return 0;\n });\n\n for (let ptr of pointers) {\n // shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js\n if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {\n if (options.verbose>1) console.warn('Creating pointer to data at', ptr);\n jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt+refs[ref].extras[ptr], 'x-miro': ref+refs[ref].extras[ptr] }); // resolutionCase:E (new object)\n }\n else {\n if (refs[ref].resolvedAt) {\n if (options.verbose>1) console.warn('Avoiding circular reference');\n }\n else {\n refs[ref].resolvedAt = ptr;\n if (options.verbose>1) console.warn('Creating initial clone of data at', ptr);\n }\n let cdata = clone(data);\n jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)\n }\n }\n if (options.resolver.actions[localOptions.resolver.depth].length === 0) {\n //options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });\n options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs\n }\n });\n });\n }\n }\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n\n let result = {options:options};\n result.actions = options.resolver.actions[options.resolver.depth];\n res(result);\n });\n}\n\nconst serial = funcs =>\n funcs.reduce((promise, func) =>\n promise.then(result => func().then(Array.prototype.concat.bind(result))), Promise.resolve([]));\n\nfunction loopReferences(options, res, rej) {\n options.resolver.actions.push([]);\n findExternalRefs(options)\n .then(function (data) {\n serial(data.actions)\n .then(function () {\n if (options.resolver.depth>=options.resolver.actions.length) {\n console.warn('Ran off the end of resolver actions');\n return res(true);\n } else {\n options.resolver.depth++;\n if (options.resolver.actions[options.resolver.depth].length) {\n setTimeout(function () {\n loopReferences(data.options, res, rej);\n }, 0);\n }\n else {\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished external resolution!',common.colour.normal);\n if (options.resolveInternal) {\n if (options.verbose>1) console.warn(common.colour.yellow+'Starting internal resolution!',common.colour.normal);\n options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);\n }\n recurse(options.openapi,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (!options.preserveMiro) delete obj['x-miro'];\n }\n });\n res(options);\n }\n }\n })\n .catch(function (ex) {\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n}\n\nfunction setupOptions(options) {\n if (!options.cache) options.cache = {};\n if (!options.fetch) options.fetch = fetch;\n\n if (options.source) {\n let srcUrl = url.parse(options.source);\n if (!srcUrl.protocol || srcUrl.protocol.length <= 2) { // windows drive-letters\n options.source = path.resolve(options.source);\n }\n }\n\n if (!options.externals) options.externals = [];\n if (!options.externalRefs) options.externalRefs = {};\n options.rewriteRefs = true;\n options.resolver = {};\n options.resolver.depth = 0;\n options.resolver.base = options.source;\n options.resolver.actions = [[]];\n}\n\n/** compatibility function for swagger2openapi */\nfunction optionalResolve(options) {\n setupOptions(options);\n return new Promise(function (res, rej) {\n if (options.resolve)\n loopReferences(options, res, rej)\n else\n res(options);\n });\n}\n\nfunction resolve(openapi,source,options) {\n if (!options) options = {};\n options.openapi = openapi;\n options.source = source;\n options.resolve = true;\n setupOptions(options);\n return new Promise(function (res, rej) {\n loopReferences(options, res, rej)\n });\n}\n\nmodule.exports = {\n optionalResolve: optionalResolve,\n resolve: resolve\n};\n\n","'use strict';\n\nconst recurse = require('./recurse.js').recurse;\nconst clone = require('./clone.js').shallowClone;\nconst jptr = require('./jptr.js').jptr;\nconst isRef = require('./isref.js').isRef;\n\nvar getLogger = function (options) {\n if (options && options.verbose) {\n return {\n warn: function() {\n var args = Array.prototype.slice.call(arguments);\n console.warn.apply(console, args);\n }\n }\n }\n else {\n return {\n warn: function() {\n //nop\n }\n }\n }\n}\n\n/**\n* dereferences the given object\n* @param o the object to dereference\n* @definitions a source of definitions to reference\n* @options optional settings (used recursively)\n* @return the dereferenced object\n*/\nfunction dereference(o,definitions,options) {\n if (!options) options = {};\n if (!options.cache) options.cache = {};\n if (!options.state) options.state = {};\n options.state.identityDetection = true;\n // options.depth allows us to limit cloning to the first invocation\n options.depth = (options.depth ? options.depth+1 : 1);\n let obj = (options.depth > 1 ? o : clone(o));\n let container = { data: obj };\n let defs = (options.depth > 1 ? definitions : clone(definitions));\n // options.master is the top level object, regardless of depth\n if (!options.master) options.master = obj;\n\n let logger = getLogger(options);\n\n let changes = 1;\n while (changes > 0) {\n changes = 0;\n recurse(container,options.state,function(obj,key,state){\n if (isRef(obj,key)) {\n let $ref = obj[key]; // immutable\n changes++;\n if (!options.cache[$ref]) {\n let entry = {};\n entry.path = state.path.split('/$ref')[0];\n entry.key = $ref;\n logger.warn('Dereffing %s at %s',$ref,entry.path);\n entry.source = defs;\n entry.data = jptr(entry.source,entry.key);\n if (entry.data === false) {\n entry.data = jptr(options.master,entry.key);\n entry.source = options.master;\n }\n if (entry.data === false) {\n logger.warn('Missing $ref target',entry.key);\n }\n options.cache[$ref] = entry;\n entry.data = state.parent[state.pkey] = dereference(jptr(entry.source,entry.key),entry.source,options);\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n entry.resolved = true;\n }\n else {\n let entry = options.cache[$ref];\n if (entry.resolved) {\n // we have already seen and resolved this reference\n logger.warn('Patching %s for %s',$ref,entry.path);\n state.parent[state.pkey] = entry.data;\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n }\n else if ($ref === entry.path) {\n // reference to itself, throw\n throw new Error(`Tight circle at ${entry.path}`);\n }\n else {\n // we're dealing with a circular reference here\n logger.warn('Unresolved ref');\n state.parent[state.pkey] = jptr(entry.source,entry.path);\n if (state.parent[state.pkey] === false) {\n state.parent[state.pkey] = jptr(entry.source,entry.key);\n }\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[options.$ref] = $ref;\n }\n }\n }\n });\n }\n return container.data;\n}\n\nmodule.exports = {\n dereference : dereference\n};\n\n","module.exports = require(\"fast-safe-stringify\");","'use strict';\n\n/**\n* functions to walk an OpenAPI schema object and traverse all subschemas\n* calling a callback function on each one\n*/\n\n/**\n* obtains the default starting state for the `state` object used\n* by walkSchema\n* @return the state object suitable for use in walkSchema\n*/\nfunction getDefaultState() {\n return { depth: 0, seen: new WeakMap(), top: true, combine: false, allowRefSiblings: false };\n}\n\n/**\n* begins the walk of a schema object\n* @param parent the parent schema, if any. Use empty object if none\n* @param state the initial starting state of the walker, usually obtained from `getDefaultState`. Use empty object to auto-initialise\n* @param callback a function taking a schema, parent and state to be called on this and all subschemas\n* @return the schema object\n*/\nfunction walkSchema(schema, parent, state, callback) {\n\n if (typeof state.depth === 'undefined') state = getDefaultState();\n if ((schema === null) || (typeof schema === 'undefined')) return schema;\n if (typeof schema.$ref !== 'undefined') {\n let temp = {$ref:schema.$ref};\n if (state.allowRefSiblings && schema.description) {\n temp.description = schema.description;\n }\n callback(temp,parent,state);\n return temp; // all other properties SHALL be ignored\n }\n\n if (state.combine) {\n if (schema.allOf && Array.isArray(schema.allOf) && schema.allOf.length === 1) {\n schema = Object.assign({},schema.allOf[0],schema);\n delete schema.allOf;\n }\n if (schema.anyOf && Array.isArray(schema.anyOf) && schema.anyOf.length === 1) {\n schema = Object.assign({},schema.anyOf[0],schema);\n delete schema.anyOf;\n }\n if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length === 1) {\n schema = Object.assign({},schema.oneOf[0],schema);\n delete schema.oneOf;\n }\n }\n\n callback(schema,parent,state);\n if (state.seen.has(schema)) {\n return schema;\n }\n //else\n if ((typeof schema === 'object') && (schema !== null)) state.seen.set(schema,true);\n state.top = false;\n state.depth++;\n\n if (typeof schema.items !== 'undefined') {\n state.property = 'items';\n walkSchema(schema.items,schema,state,callback);\n }\n if (schema.additionalItems) {\n if (typeof schema.additionalItems === 'object') {\n state.property = 'additionalItems';\n walkSchema(schema.additionalItems,schema,state,callback);\n }\n }\n if (schema.additionalProperties) {\n if (typeof schema.additionalProperties === 'object') {\n state.property = 'additionalProperties';\n walkSchema(schema.additionalProperties,schema,state,callback);\n }\n }\n if (schema.properties) {\n for (let prop in schema.properties) {\n let subSchema = schema.properties[prop];\n state.property = 'properties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.patternProperties) {\n for (let prop in schema.patternProperties) {\n let subSchema = schema.patternProperties[prop];\n state.property = 'patternProperties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.allOf) {\n for (let index in schema.allOf) {\n let subSchema = schema.allOf[index];\n state.property = 'allOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.anyOf) {\n for (let index in schema.anyOf) {\n let subSchema = schema.anyOf[index];\n state.property = 'anyOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.oneOf) {\n for (let index in schema.oneOf) {\n let subSchema = schema.oneOf[index];\n state.property = 'oneOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.not) {\n state.property = 'not';\n walkSchema(schema.not,schema,state,callback);\n }\n state.depth--;\n return schema;\n}\n\nmodule.exports = {\n getDefaultState: getDefaultState,\n walkSchema: walkSchema\n};\n\n","'use strict';\n\nconst http = require('http');\n\nconst ours = {\n \"default\": \"Default response\",\n \"1XX\": \"Informational\",\n \"103\": \"Early hints\", // not in Node < 10\n \"2XX\": \"Successful\",\n \"3XX\": \"Redirection\",\n \"4XX\": \"Client Error\",\n \"5XX\": \"Server Error\",\n \"7XX\": \"Developer Error\" // April fools RFC\n};\n\nmodule.exports = {\n statusCodes: Object.assign({},ours,http.STATUS_CODES)\n};\n\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","module.exports = require(\"to-arraybuffer\");","module.exports = require(\"xtend\");","module.exports = require(\"builtin-status-codes\");","module.exports = require(\"prismjs/components/prism-bash.js\");","module.exports = require(\"prismjs/components/prism-c.js\");","module.exports = require(\"prismjs/components/prism-clike.js\");","module.exports = require(\"prismjs/components/prism-coffeescript.js\");","module.exports = require(\"prismjs/components/prism-cpp.js\");","module.exports = require(\"prismjs/components/prism-csharp.js\");","module.exports = require(\"prismjs/components/prism-go.js\");","module.exports = require(\"prismjs/components/prism-http.js\");","module.exports = require(\"prismjs/components/prism-java.js\");","module.exports = require(\"prismjs/components/prism-lua.js\");","module.exports = require(\"prismjs/components/prism-markup-templating.js\");","module.exports = require(\"prismjs/components/prism-markup.js\");","module.exports = require(\"prismjs/components/prism-objectivec.js\");","module.exports = require(\"prismjs/components/prism-perl.js\");","module.exports = require(\"prismjs/components/prism-php.js\");","module.exports = require(\"prismjs/components/prism-python.js\");","module.exports = require(\"prismjs/components/prism-ruby.js\");","module.exports = require(\"prismjs/components/prism-scala.js\");","module.exports = require(\"prismjs/components/prism-sql.js\");","module.exports = require(\"prismjs/components/prism-swift.js\");","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"add\",\"done\",\"toJS\",\"load\",\"dispose\",\"search\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(URL.createObjectURL(new Blob([\"/*!\\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\\n * -------------------------------------------------------------\\n * Version: \\\"2.0.0-rc.37\\\"\\n * Repo: https://github.com/Redocly/redoc\\n */\\n/******/ (function(modules) { // webpackBootstrap\\n/******/ \\t// The module cache\\n/******/ \\tvar installedModules = {};\\n/******/\\n/******/ \\t// The require function\\n/******/ \\tfunction __webpack_require__(moduleId) {\\n/******/\\n/******/ \\t\\t// Check if module is in cache\\n/******/ \\t\\tif(installedModules[moduleId]) {\\n/******/ \\t\\t\\treturn installedModules[moduleId].exports;\\n/******/ \\t\\t}\\n/******/ \\t\\t// Create a new module (and put it into the cache)\\n/******/ \\t\\tvar module = installedModules[moduleId] = {\\n/******/ \\t\\t\\ti: moduleId,\\n/******/ \\t\\t\\tl: false,\\n/******/ \\t\\t\\texports: {}\\n/******/ \\t\\t};\\n/******/\\n/******/ \\t\\t// Execute the module function\\n/******/ \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n/******/\\n/******/ \\t\\t// Flag the module as loaded\\n/******/ \\t\\tmodule.l = true;\\n/******/\\n/******/ \\t\\t// Return the exports of the module\\n/******/ \\t\\treturn module.exports;\\n/******/ \\t}\\n/******/\\n/******/\\n/******/ \\t// expose the modules object (__webpack_modules__)\\n/******/ \\t__webpack_require__.m = modules;\\n/******/\\n/******/ \\t// expose the module cache\\n/******/ \\t__webpack_require__.c = installedModules;\\n/******/\\n/******/ \\t// define getter function for harmony exports\\n/******/ \\t__webpack_require__.d = function(exports, name, getter) {\\n/******/ \\t\\tif(!__webpack_require__.o(exports, name)) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n/******/ \\t\\t}\\n/******/ \\t};\\n/******/\\n/******/ \\t// define __esModule on exports\\n/******/ \\t__webpack_require__.r = function(exports) {\\n/******/ \\t\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\n/******/ \\t\\t}\\n/******/ \\t\\tObject.defineProperty(exports, '__esModule', { value: true });\\n/******/ \\t};\\n/******/\\n/******/ \\t// create a fake namespace object\\n/******/ \\t// mode & 1: value is a module id, require it\\n/******/ \\t// mode & 2: merge all properties of value into the ns\\n/******/ \\t// mode & 4: return value when already ns object\\n/******/ \\t// mode & 8|1: behave like require\\n/******/ \\t__webpack_require__.t = function(value, mode) {\\n/******/ \\t\\tif(mode & 1) value = __webpack_require__(value);\\n/******/ \\t\\tif(mode & 8) return value;\\n/******/ \\t\\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\\n/******/ \\t\\tvar ns = Object.create(null);\\n/******/ \\t\\t__webpack_require__.r(ns);\\n/******/ \\t\\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\\n/******/ \\t\\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n/******/ \\t\\treturn ns;\\n/******/ \\t};\\n/******/\\n/******/ \\t// getDefaultExport function for compatibility with non-harmony modules\\n/******/ \\t__webpack_require__.n = function(module) {\\n/******/ \\t\\tvar getter = module && module.__esModule ?\\n/******/ \\t\\t\\tfunction getDefault() { return module['default']; } :\\n/******/ \\t\\t\\tfunction getModuleExports() { return module; };\\n/******/ \\t\\t__webpack_require__.d(getter, 'a', getter);\\n/******/ \\t\\treturn getter;\\n/******/ \\t};\\n/******/\\n/******/ \\t// Object.prototype.hasOwnProperty.call\\n/******/ \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n/******/\\n/******/ \\t// __webpack_public_path__\\n/******/ \\t__webpack_require__.p = \\\"\\\";\\n/******/\\n/******/\\n/******/ \\t// Load entry module and return exports\\n/******/ \\treturn __webpack_require__(__webpack_require__.s = 97);\\n/******/ })\\n/************************************************************************/\\n/******/ ([\\n/* 0 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\\n return it && it.Math == Math && it;\\n};\\n\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nmodule.exports =\\n // eslint-disable-next-line no-undef\\n check(typeof globalThis == 'object' && globalThis) ||\\n check(typeof window == 'object' && window) ||\\n check(typeof self == 'object' && self) ||\\n check(typeof global == 'object' && global) ||\\n // eslint-disable-next-line no-new-func\\n Function('return this')();\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\\n\\n/***/ }),\\n/* 1 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar shared = __webpack_require__(32);\\nvar has = __webpack_require__(3);\\nvar uid = __webpack_require__(36);\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\\n\\nvar WellKnownSymbolsStore = shared('wks');\\nvar Symbol = global.Symbol;\\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\\n\\nmodule.exports = function (name) {\\n if (!has(WellKnownSymbolsStore, name)) {\\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\\n } return WellKnownSymbolsStore[name];\\n};\\n\\n\\n/***/ }),\\n/* 2 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it)) {\\n throw TypeError(String(it) + ' is not an object');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 3 */\\n/***/ (function(module, exports) {\\n\\nvar hasOwnProperty = {}.hasOwnProperty;\\n\\nmodule.exports = function (it, key) {\\n return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/***/ }),\\n/* 4 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\\n * Copyright (C) 2019 Oliver Nightingale\\n * @license MIT\\n */\\n\\n;(function(){\\n\\n/**\\n * A convenience function for configuring and constructing\\n * a new lunr Index.\\n *\\n * A lunr.Builder instance is created and the pipeline setup\\n * with a trimmer, stop word filter and stemmer.\\n *\\n * This builder object is yielded to the configuration function\\n * that is passed as a parameter, allowing the list of fields\\n * and other builder parameters to be customised.\\n *\\n * All documents _must_ be added within the passed config function.\\n *\\n * @example\\n * var idx = lunr(function () {\\n * this.field('title')\\n * this.field('body')\\n * this.ref('id')\\n *\\n * documents.forEach(function (doc) {\\n * this.add(doc)\\n * }, this)\\n * })\\n *\\n * @see {@link lunr.Builder}\\n * @see {@link lunr.Pipeline}\\n * @see {@link lunr.trimmer}\\n * @see {@link lunr.stopWordFilter}\\n * @see {@link lunr.stemmer}\\n * @namespace {function} lunr\\n */\\nvar lunr = function (config) {\\n var builder = new lunr.Builder\\n\\n builder.pipeline.add(\\n lunr.trimmer,\\n lunr.stopWordFilter,\\n lunr.stemmer\\n )\\n\\n builder.searchPipeline.add(\\n lunr.stemmer\\n )\\n\\n config.call(builder, builder)\\n return builder.build()\\n}\\n\\nlunr.version = \\\"2.3.8\\\"\\n/*!\\n * lunr.utils\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A namespace containing utils for the rest of the lunr library\\n * @namespace lunr.utils\\n */\\nlunr.utils = {}\\n\\n/**\\n * Print a warning message to the console.\\n *\\n * @param {String} message The message to be printed.\\n * @memberOf lunr.utils\\n * @function\\n */\\nlunr.utils.warn = (function (global) {\\n /* eslint-disable no-console */\\n return function (message) {\\n if (global.console && console.warn) {\\n console.warn(message)\\n }\\n }\\n /* eslint-enable no-console */\\n})(this)\\n\\n/**\\n * Convert an object to a string.\\n *\\n * In the case of `null` and `undefined` the function returns\\n * the empty string, in all other cases the result of calling\\n * `toString` on the passed object is returned.\\n *\\n * @param {Any} obj The object to convert to a string.\\n * @return {String} string representation of the passed object.\\n * @memberOf lunr.utils\\n */\\nlunr.utils.asString = function (obj) {\\n if (obj === void 0 || obj === null) {\\n return \\\"\\\"\\n } else {\\n return obj.toString()\\n }\\n}\\n\\n/**\\n * Clones an object.\\n *\\n * Will create a copy of an existing object such that any mutations\\n * on the copy cannot affect the original.\\n *\\n * Only shallow objects are supported, passing a nested object to this\\n * function will cause a TypeError.\\n *\\n * Objects with primitives, and arrays of primitives are supported.\\n *\\n * @param {Object} obj The object to clone.\\n * @return {Object} a clone of the passed object.\\n * @throws {TypeError} when a nested object is passed.\\n * @memberOf Utils\\n */\\nlunr.utils.clone = function (obj) {\\n if (obj === null || obj === undefined) {\\n return obj\\n }\\n\\n var clone = Object.create(null),\\n keys = Object.keys(obj)\\n\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i],\\n val = obj[key]\\n\\n if (Array.isArray(val)) {\\n clone[key] = val.slice()\\n continue\\n }\\n\\n if (typeof val === 'string' ||\\n typeof val === 'number' ||\\n typeof val === 'boolean') {\\n clone[key] = val\\n continue\\n }\\n\\n throw new TypeError(\\\"clone is not deep and does not support nested objects\\\")\\n }\\n\\n return clone\\n}\\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\\n this.docRef = docRef\\n this.fieldName = fieldName\\n this._stringValue = stringValue\\n}\\n\\nlunr.FieldRef.joiner = \\\"/\\\"\\n\\nlunr.FieldRef.fromString = function (s) {\\n var n = s.indexOf(lunr.FieldRef.joiner)\\n\\n if (n === -1) {\\n throw \\\"malformed field ref string\\\"\\n }\\n\\n var fieldRef = s.slice(0, n),\\n docRef = s.slice(n + 1)\\n\\n return new lunr.FieldRef (docRef, fieldRef, s)\\n}\\n\\nlunr.FieldRef.prototype.toString = function () {\\n if (this._stringValue == undefined) {\\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\\n }\\n\\n return this._stringValue\\n}\\n/*!\\n * lunr.Set\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A lunr set.\\n *\\n * @constructor\\n */\\nlunr.Set = function (elements) {\\n this.elements = Object.create(null)\\n\\n if (elements) {\\n this.length = elements.length\\n\\n for (var i = 0; i < this.length; i++) {\\n this.elements[elements[i]] = true\\n }\\n } else {\\n this.length = 0\\n }\\n}\\n\\n/**\\n * A complete set that contains all elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.complete = {\\n intersect: function (other) {\\n return other\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return true\\n }\\n}\\n\\n/**\\n * An empty set that contains no elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.empty = {\\n intersect: function () {\\n return this\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return false\\n }\\n}\\n\\n/**\\n * Returns true if this set contains the specified object.\\n *\\n * @param {object} object - Object whose presence in this set is to be tested.\\n * @returns {boolean} - True if this set contains the specified object.\\n */\\nlunr.Set.prototype.contains = function (object) {\\n return !!this.elements[object]\\n}\\n\\n/**\\n * Returns a new set containing only the elements that are present in both\\n * this set and the specified set.\\n *\\n * @param {lunr.Set} other - set to intersect with this set.\\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\\n */\\n\\nlunr.Set.prototype.intersect = function (other) {\\n var a, b, elements, intersection = []\\n\\n if (other === lunr.Set.complete) {\\n return this\\n }\\n\\n if (other === lunr.Set.empty) {\\n return other\\n }\\n\\n if (this.length < other.length) {\\n a = this\\n b = other\\n } else {\\n a = other\\n b = this\\n }\\n\\n elements = Object.keys(a.elements)\\n\\n for (var i = 0; i < elements.length; i++) {\\n var element = elements[i]\\n if (element in b.elements) {\\n intersection.push(element)\\n }\\n }\\n\\n return new lunr.Set (intersection)\\n}\\n\\n/**\\n * Returns a new set combining the elements of this and the specified set.\\n *\\n * @param {lunr.Set} other - set to union with this set.\\n * @return {lunr.Set} a new set that is the union of this and the specified set.\\n */\\n\\nlunr.Set.prototype.union = function (other) {\\n if (other === lunr.Set.complete) {\\n return lunr.Set.complete\\n }\\n\\n if (other === lunr.Set.empty) {\\n return this\\n }\\n\\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\\n}\\n/**\\n * A function to calculate the inverse document frequency for\\n * a posting. This is shared between the builder and the index\\n *\\n * @private\\n * @param {object} posting - The posting for a given term\\n * @param {number} documentCount - The total number of documents.\\n */\\nlunr.idf = function (posting, documentCount) {\\n var documentsWithTerm = 0\\n\\n for (var fieldName in posting) {\\n if (fieldName == '_index') continue // Ignore the term index, its not a field\\n documentsWithTerm += Object.keys(posting[fieldName]).length\\n }\\n\\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\\n\\n return Math.log(1 + Math.abs(x))\\n}\\n\\n/**\\n * A token wraps a string representation of a token\\n * as it is passed through the text processing pipeline.\\n *\\n * @constructor\\n * @param {string} [str=''] - The string token being wrapped.\\n * @param {object} [metadata={}] - Metadata associated with this token.\\n */\\nlunr.Token = function (str, metadata) {\\n this.str = str || \\\"\\\"\\n this.metadata = metadata || {}\\n}\\n\\n/**\\n * Returns the token string that is being wrapped by this object.\\n *\\n * @returns {string}\\n */\\nlunr.Token.prototype.toString = function () {\\n return this.str\\n}\\n\\n/**\\n * A token update function is used when updating or optionally\\n * when cloning a token.\\n *\\n * @callback lunr.Token~updateFunction\\n * @param {string} str - The string representation of the token.\\n * @param {Object} metadata - All metadata associated with this token.\\n */\\n\\n/**\\n * Applies the given function to the wrapped string token.\\n *\\n * @example\\n * token.update(function (str, metadata) {\\n * return str.toUpperCase()\\n * })\\n *\\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.update = function (fn) {\\n this.str = fn(this.str, this.metadata)\\n return this\\n}\\n\\n/**\\n * Creates a clone of this token. Optionally a function can be\\n * applied to the cloned token.\\n *\\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.clone = function (fn) {\\n fn = fn || function (s) { return s }\\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\\n}\\n/*!\\n * lunr.tokenizer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A function for splitting a string into tokens ready to be inserted into\\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\\n * the value of this property to change how strings are split into tokens.\\n *\\n * This tokenizer will convert its parameter to a string by calling `toString` and\\n * then will split this string on the character in `lunr.tokenizer.separator`.\\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\\n *\\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\\n * added as metadata to every token that is created from the object to be tokenized.\\n *\\n * @static\\n * @param {?(string|object|object[])} obj - The object to convert into tokens\\n * @param {?object} metadata - Optional metadata to associate with every token\\n * @returns {lunr.Token[]}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.tokenizer = function (obj, metadata) {\\n if (obj == null || obj == undefined) {\\n return []\\n }\\n\\n if (Array.isArray(obj)) {\\n return obj.map(function (t) {\\n return new lunr.Token(\\n lunr.utils.asString(t).toLowerCase(),\\n lunr.utils.clone(metadata)\\n )\\n })\\n }\\n\\n var str = obj.toString().toLowerCase(),\\n len = str.length,\\n tokens = []\\n\\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\\n var char = str.charAt(sliceEnd),\\n sliceLength = sliceEnd - sliceStart\\n\\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\\n\\n if (sliceLength > 0) {\\n var tokenMetadata = lunr.utils.clone(metadata) || {}\\n tokenMetadata[\\\"position\\\"] = [sliceStart, sliceLength]\\n tokenMetadata[\\\"index\\\"] = tokens.length\\n\\n tokens.push(\\n new lunr.Token (\\n str.slice(sliceStart, sliceEnd),\\n tokenMetadata\\n )\\n )\\n }\\n\\n sliceStart = sliceEnd + 1\\n }\\n\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * The separator used to split a string into tokens. Override this property to change the behaviour of\\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\\n *\\n * @static\\n * @see lunr.tokenizer\\n */\\nlunr.tokenizer.separator = /[\\\\s\\\\-]+/\\n/*!\\n * lunr.Pipeline\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\\n * tokens in documents entering the search index and queries being ran against\\n * the index.\\n *\\n * An instance of lunr.Index created with the lunr shortcut will contain a\\n * pipeline with a stop word filter and an English language stemmer. Extra\\n * functions can be added before or after either of these functions or these\\n * default functions can be removed.\\n *\\n * When run the pipeline will call each function in turn, passing a token, the\\n * index of that token in the original list of all tokens and finally a list of\\n * all the original tokens.\\n *\\n * The output of functions in the pipeline will be passed to the next function\\n * in the pipeline. To exclude a token from entering the index the function\\n * should return undefined, the rest of the pipeline will not be called with\\n * this token.\\n *\\n * For serialisation of pipelines to work, all functions used in an instance of\\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\\n * then be loaded. If trying to load a serialised pipeline that uses functions\\n * that are not registered an error will be thrown.\\n *\\n * If not planning on serialising the pipeline then registering pipeline functions\\n * is not necessary.\\n *\\n * @constructor\\n */\\nlunr.Pipeline = function () {\\n this._stack = []\\n}\\n\\nlunr.Pipeline.registeredFunctions = Object.create(null)\\n\\n/**\\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\\n * string as well as all known metadata. A pipeline function can mutate the token string\\n * or mutate (or add) metadata for a given token.\\n *\\n * A pipeline function can indicate that the passed token should be discarded by returning\\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\\n * functions and will not be added to the index.\\n *\\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\\n *\\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\\n *\\n * @interface lunr.PipelineFunction\\n * @param {lunr.Token} token - A token from the document being processed.\\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\\n * @returns {(?lunr.Token|lunr.Token[])}\\n */\\n\\n/**\\n * Register a function with the pipeline.\\n *\\n * Functions that are used in the pipeline should be registered if the pipeline\\n * needs to be serialised, or a serialised pipeline needs to be loaded.\\n *\\n * Registering a function does not add it to a pipeline, functions must still be\\n * added to instances of the pipeline for them to be used when running a pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @param {String} label - The label to register this function with\\n */\\nlunr.Pipeline.registerFunction = function (fn, label) {\\n if (label in this.registeredFunctions) {\\n lunr.utils.warn('Overwriting existing registered function: ' + label)\\n }\\n\\n fn.label = label\\n lunr.Pipeline.registeredFunctions[fn.label] = fn\\n}\\n\\n/**\\n * Warns if the function is not registered as a Pipeline function.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @private\\n */\\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\\n\\n if (!isRegistered) {\\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\\\n', fn)\\n }\\n}\\n\\n/**\\n * Loads a previously serialised pipeline.\\n *\\n * All functions to be loaded must already be registered with lunr.Pipeline.\\n * If any function from the serialised data has not been registered then an\\n * error will be thrown.\\n *\\n * @param {Object} serialised - The serialised pipeline to load.\\n * @returns {lunr.Pipeline}\\n */\\nlunr.Pipeline.load = function (serialised) {\\n var pipeline = new lunr.Pipeline\\n\\n serialised.forEach(function (fnName) {\\n var fn = lunr.Pipeline.registeredFunctions[fnName]\\n\\n if (fn) {\\n pipeline.add(fn)\\n } else {\\n throw new Error('Cannot load unregistered function: ' + fnName)\\n }\\n })\\n\\n return pipeline\\n}\\n\\n/**\\n * Adds new functions to the end of the pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.add = function () {\\n var fns = Array.prototype.slice.call(arguments)\\n\\n fns.forEach(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n this._stack.push(fn)\\n }, this)\\n}\\n\\n/**\\n * Adds a single function after a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n pos = pos + 1\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Adds a single function before a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Removes a function from the pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\\n */\\nlunr.Pipeline.prototype.remove = function (fn) {\\n var pos = this._stack.indexOf(fn)\\n if (pos == -1) {\\n return\\n }\\n\\n this._stack.splice(pos, 1)\\n}\\n\\n/**\\n * Runs the current list of functions that make up the pipeline against the\\n * passed tokens.\\n *\\n * @param {Array} tokens The tokens to run through the pipeline.\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.run = function (tokens) {\\n var stackLength = this._stack.length\\n\\n for (var i = 0; i < stackLength; i++) {\\n var fn = this._stack[i]\\n var memo = []\\n\\n for (var j = 0; j < tokens.length; j++) {\\n var result = fn(tokens[j], j, tokens)\\n\\n if (result === null || result === void 0 || result === '') continue\\n\\n if (Array.isArray(result)) {\\n for (var k = 0; k < result.length; k++) {\\n memo.push(result[k])\\n }\\n } else {\\n memo.push(result)\\n }\\n }\\n\\n tokens = memo\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * Convenience method for passing a string through a pipeline and getting\\n * strings out. This method takes care of wrapping the passed string in a\\n * token and mapping the resulting tokens back to strings.\\n *\\n * @param {string} str - The string to pass through the pipeline.\\n * @param {?object} metadata - Optional metadata to associate with the token\\n * passed to the pipeline.\\n * @returns {string[]}\\n */\\nlunr.Pipeline.prototype.runString = function (str, metadata) {\\n var token = new lunr.Token (str, metadata)\\n\\n return this.run([token]).map(function (t) {\\n return t.toString()\\n })\\n}\\n\\n/**\\n * Resets the pipeline by removing any existing processors.\\n *\\n */\\nlunr.Pipeline.prototype.reset = function () {\\n this._stack = []\\n}\\n\\n/**\\n * Returns a representation of the pipeline ready for serialisation.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.toJSON = function () {\\n return this._stack.map(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n\\n return fn.label\\n })\\n}\\n/*!\\n * lunr.Vector\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A vector is used to construct the vector space of documents and queries. These\\n * vectors support operations to determine the similarity between two documents or\\n * a document and a query.\\n *\\n * Normally no parameters are required for initializing a vector, but in the case of\\n * loading a previously dumped vector the raw elements can be provided to the constructor.\\n *\\n * For performance reasons vectors are implemented with a flat array, where an elements\\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\\n * allows the underlying array to be as sparse as possible and still offer decent\\n * performance when being used for vector calculations.\\n *\\n * @constructor\\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\\n */\\nlunr.Vector = function (elements) {\\n this._magnitude = 0\\n this.elements = elements || []\\n}\\n\\n\\n/**\\n * Calculates the position within the vector to insert a given index.\\n *\\n * This is used internally by insert and upsert. If there are duplicate indexes then\\n * the position is returned as if the value for that index were to be updated, but it\\n * is the callers responsibility to check whether there is a duplicate at that index\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.positionForIndex = function (index) {\\n // For an empty vector the tuple can be inserted at the beginning\\n if (this.elements.length == 0) {\\n return 0\\n }\\n\\n var start = 0,\\n end = this.elements.length / 2,\\n sliceLength = end - start,\\n pivotPoint = Math.floor(sliceLength / 2),\\n pivotIndex = this.elements[pivotPoint * 2]\\n\\n while (sliceLength > 1) {\\n if (pivotIndex < index) {\\n start = pivotPoint\\n }\\n\\n if (pivotIndex > index) {\\n end = pivotPoint\\n }\\n\\n if (pivotIndex == index) {\\n break\\n }\\n\\n sliceLength = end - start\\n pivotPoint = start + Math.floor(sliceLength / 2)\\n pivotIndex = this.elements[pivotPoint * 2]\\n }\\n\\n if (pivotIndex == index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex > index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex < index) {\\n return (pivotPoint + 1) * 2\\n }\\n}\\n\\n/**\\n * Inserts an element at an index within the vector.\\n *\\n * Does not allow duplicates, will throw an error if there is already an entry\\n * for this index.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n */\\nlunr.Vector.prototype.insert = function (insertIdx, val) {\\n this.upsert(insertIdx, val, function () {\\n throw \\\"duplicate index\\\"\\n })\\n}\\n\\n/**\\n * Inserts or updates an existing index within the vector.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n * @param {function} fn - A function that is called for updates, the existing value and the\\n * requested value are passed as arguments\\n */\\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\\n this._magnitude = 0\\n var position = this.positionForIndex(insertIdx)\\n\\n if (this.elements[position] == insertIdx) {\\n this.elements[position + 1] = fn(this.elements[position + 1], val)\\n } else {\\n this.elements.splice(position, 0, insertIdx, val)\\n }\\n}\\n\\n/**\\n * Calculates the magnitude of this vector.\\n *\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.magnitude = function () {\\n if (this._magnitude) return this._magnitude\\n\\n var sumOfSquares = 0,\\n elementsLength = this.elements.length\\n\\n for (var i = 1; i < elementsLength; i += 2) {\\n var val = this.elements[i]\\n sumOfSquares += val * val\\n }\\n\\n return this._magnitude = Math.sqrt(sumOfSquares)\\n}\\n\\n/**\\n * Calculates the dot product of this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.dot = function (otherVector) {\\n var dotProduct = 0,\\n a = this.elements, b = otherVector.elements,\\n aLen = a.length, bLen = b.length,\\n aVal = 0, bVal = 0,\\n i = 0, j = 0\\n\\n while (i < aLen && j < bLen) {\\n aVal = a[i], bVal = b[j]\\n if (aVal < bVal) {\\n i += 2\\n } else if (aVal > bVal) {\\n j += 2\\n } else if (aVal == bVal) {\\n dotProduct += a[i + 1] * b[j + 1]\\n i += 2\\n j += 2\\n }\\n }\\n\\n return dotProduct\\n}\\n\\n/**\\n * Calculates the similarity between this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The other vector to calculate the\\n * similarity with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.similarity = function (otherVector) {\\n return this.dot(otherVector) / this.magnitude() || 0\\n}\\n\\n/**\\n * Converts the vector to an array of the elements within the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toArray = function () {\\n var output = new Array (this.elements.length / 2)\\n\\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\\n output[j] = this.elements[i]\\n }\\n\\n return output\\n}\\n\\n/**\\n * A JSON serializable representation of the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toJSON = function () {\\n return this.elements\\n}\\n/* eslint-disable */\\n/*!\\n * lunr.stemmer\\n * Copyright (C) 2019 Oliver Nightingale\\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\\n */\\n\\n/**\\n * lunr.stemmer is an english language stemmer, this is a JavaScript\\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token - The string to stem\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n * @function\\n */\\nlunr.stemmer = (function(){\\n var step2list = {\\n \\\"ational\\\" : \\\"ate\\\",\\n \\\"tional\\\" : \\\"tion\\\",\\n \\\"enci\\\" : \\\"ence\\\",\\n \\\"anci\\\" : \\\"ance\\\",\\n \\\"izer\\\" : \\\"ize\\\",\\n \\\"bli\\\" : \\\"ble\\\",\\n \\\"alli\\\" : \\\"al\\\",\\n \\\"entli\\\" : \\\"ent\\\",\\n \\\"eli\\\" : \\\"e\\\",\\n \\\"ousli\\\" : \\\"ous\\\",\\n \\\"ization\\\" : \\\"ize\\\",\\n \\\"ation\\\" : \\\"ate\\\",\\n \\\"ator\\\" : \\\"ate\\\",\\n \\\"alism\\\" : \\\"al\\\",\\n \\\"iveness\\\" : \\\"ive\\\",\\n \\\"fulness\\\" : \\\"ful\\\",\\n \\\"ousness\\\" : \\\"ous\\\",\\n \\\"aliti\\\" : \\\"al\\\",\\n \\\"iviti\\\" : \\\"ive\\\",\\n \\\"biliti\\\" : \\\"ble\\\",\\n \\\"logi\\\" : \\\"log\\\"\\n },\\n\\n step3list = {\\n \\\"icate\\\" : \\\"ic\\\",\\n \\\"ative\\\" : \\\"\\\",\\n \\\"alize\\\" : \\\"al\\\",\\n \\\"iciti\\\" : \\\"ic\\\",\\n \\\"ical\\\" : \\\"ic\\\",\\n \\\"ful\\\" : \\\"\\\",\\n \\\"ness\\\" : \\\"\\\"\\n },\\n\\n c = \\\"[^aeiou]\\\", // consonant\\n v = \\\"[aeiouy]\\\", // vowel\\n C = c + \\\"[^aeiouy]*\\\", // consonant sequence\\n V = v + \\\"[aeiou]*\\\", // vowel sequence\\n\\n mgr0 = \\\"^(\\\" + C + \\\")?\\\" + V + C, // [C]VC... is m>0\\n meq1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + \\\"(\\\" + V + \\\")?$\\\", // [C]VC[V] is m=1\\n mgr1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + V + C, // [C]VCVC... is m>1\\n s_v = \\\"^(\\\" + C + \\\")?\\\" + v; // vowel in stem\\n\\n var re_mgr0 = new RegExp(mgr0);\\n var re_mgr1 = new RegExp(mgr1);\\n var re_meq1 = new RegExp(meq1);\\n var re_s_v = new RegExp(s_v);\\n\\n var re_1a = /^(.+?)(ss|i)es$/;\\n var re2_1a = /^(.+?)([^s])s$/;\\n var re_1b = /^(.+?)eed$/;\\n var re2_1b = /^(.+?)(ed|ing)$/;\\n var re_1b_2 = /.$/;\\n var re2_1b_2 = /(at|bl|iz)$/;\\n var re3_1b_2 = new RegExp(\\\"([^aeiouylsz])\\\\\\\\1$\\\");\\n var re4_1b_2 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var re_1c = /^(.+?[^aeiou])y$/;\\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\\n\\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\\n\\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\\n var re2_4 = /^(.+?)(s|t)(ion)$/;\\n\\n var re_5 = /^(.+?)e$/;\\n var re_5_1 = /ll$/;\\n var re3_5 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var porterStemmer = function porterStemmer(w) {\\n var stem,\\n suffix,\\n firstch,\\n re,\\n re2,\\n re3,\\n re4;\\n\\n if (w.length < 3) { return w; }\\n\\n firstch = w.substr(0,1);\\n if (firstch == \\\"y\\\") {\\n w = firstch.toUpperCase() + w.substr(1);\\n }\\n\\n // Step 1a\\n re = re_1a\\n re2 = re2_1a;\\n\\n if (re.test(w)) { w = w.replace(re,\\\"$1$2\\\"); }\\n else if (re2.test(w)) { w = w.replace(re2,\\\"$1$2\\\"); }\\n\\n // Step 1b\\n re = re_1b;\\n re2 = re2_1b;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n re = re_mgr0;\\n if (re.test(fp[1])) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1];\\n re2 = re_s_v;\\n if (re2.test(stem)) {\\n w = stem;\\n re2 = re2_1b_2;\\n re3 = re3_1b_2;\\n re4 = re4_1b_2;\\n if (re2.test(w)) { w = w + \\\"e\\\"; }\\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\\\"\\\"); }\\n else if (re4.test(w)) { w = w + \\\"e\\\"; }\\n }\\n }\\n\\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\\n re = re_1c;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n w = stem + \\\"i\\\";\\n }\\n\\n // Step 2\\n re = re_2;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step2list[suffix];\\n }\\n }\\n\\n // Step 3\\n re = re_3;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step3list[suffix];\\n }\\n }\\n\\n // Step 4\\n re = re_4;\\n re2 = re2_4;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n if (re.test(stem)) {\\n w = stem;\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1] + fp[2];\\n re2 = re_mgr1;\\n if (re2.test(stem)) {\\n w = stem;\\n }\\n }\\n\\n // Step 5\\n re = re_5;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n re2 = re_meq1;\\n re3 = re3_5;\\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\\n w = stem;\\n }\\n }\\n\\n re = re_5_1;\\n re2 = re_mgr1;\\n if (re.test(w) && re2.test(w)) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n\\n // and turn initial Y back to y\\n\\n if (firstch == \\\"y\\\") {\\n w = firstch.toLowerCase() + w.substr(1);\\n }\\n\\n return w;\\n };\\n\\n return function (token) {\\n return token.update(porterStemmer);\\n }\\n})();\\n\\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\\n/*!\\n * lunr.stopWordFilter\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\\n * list of stop words.\\n *\\n * The built in lunr.stopWordFilter is built using this generator and can be used\\n * to generate custom stopWordFilters for applications or non English languages.\\n *\\n * @function\\n * @param {Array} token The token to pass through the filter\\n * @returns {lunr.PipelineFunction}\\n * @see lunr.Pipeline\\n * @see lunr.stopWordFilter\\n */\\nlunr.generateStopWordFilter = function (stopWords) {\\n var words = stopWords.reduce(function (memo, stopWord) {\\n memo[stopWord] = stopWord\\n return memo\\n }, {})\\n\\n return function (token) {\\n if (token && words[token.toString()] !== token.toString()) return token\\n }\\n}\\n\\n/**\\n * lunr.stopWordFilter is an English language stop word list filter, any words\\n * contained in the list will not be passed through the filter.\\n *\\n * This is intended to be used in the Pipeline. If the token does not pass the\\n * filter then undefined will be returned.\\n *\\n * @function\\n * @implements {lunr.PipelineFunction}\\n * @params {lunr.Token} token - A token to check for being a stop word.\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.stopWordFilter = lunr.generateStopWordFilter([\\n 'a',\\n 'able',\\n 'about',\\n 'across',\\n 'after',\\n 'all',\\n 'almost',\\n 'also',\\n 'am',\\n 'among',\\n 'an',\\n 'and',\\n 'any',\\n 'are',\\n 'as',\\n 'at',\\n 'be',\\n 'because',\\n 'been',\\n 'but',\\n 'by',\\n 'can',\\n 'cannot',\\n 'could',\\n 'dear',\\n 'did',\\n 'do',\\n 'does',\\n 'either',\\n 'else',\\n 'ever',\\n 'every',\\n 'for',\\n 'from',\\n 'get',\\n 'got',\\n 'had',\\n 'has',\\n 'have',\\n 'he',\\n 'her',\\n 'hers',\\n 'him',\\n 'his',\\n 'how',\\n 'however',\\n 'i',\\n 'if',\\n 'in',\\n 'into',\\n 'is',\\n 'it',\\n 'its',\\n 'just',\\n 'least',\\n 'let',\\n 'like',\\n 'likely',\\n 'may',\\n 'me',\\n 'might',\\n 'most',\\n 'must',\\n 'my',\\n 'neither',\\n 'no',\\n 'nor',\\n 'not',\\n 'of',\\n 'off',\\n 'often',\\n 'on',\\n 'only',\\n 'or',\\n 'other',\\n 'our',\\n 'own',\\n 'rather',\\n 'said',\\n 'say',\\n 'says',\\n 'she',\\n 'should',\\n 'since',\\n 'so',\\n 'some',\\n 'than',\\n 'that',\\n 'the',\\n 'their',\\n 'them',\\n 'then',\\n 'there',\\n 'these',\\n 'they',\\n 'this',\\n 'tis',\\n 'to',\\n 'too',\\n 'twas',\\n 'us',\\n 'wants',\\n 'was',\\n 'we',\\n 'were',\\n 'what',\\n 'when',\\n 'where',\\n 'which',\\n 'while',\\n 'who',\\n 'whom',\\n 'why',\\n 'will',\\n 'with',\\n 'would',\\n 'yet',\\n 'you',\\n 'your'\\n])\\n\\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\\n/*!\\n * lunr.trimmer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.trimmer is a pipeline function for trimming non word\\n * characters from the beginning and end of tokens before they\\n * enter the index.\\n *\\n * This implementation may not work correctly for non latin\\n * characters and should either be removed or adapted for use\\n * with languages with non-latin characters.\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token The token to pass through the filter\\n * @returns {lunr.Token}\\n * @see lunr.Pipeline\\n */\\nlunr.trimmer = function (token) {\\n return token.update(function (s) {\\n return s.replace(/^\\\\W+/, '').replace(/\\\\W+$/, '')\\n })\\n}\\n\\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\\n/*!\\n * lunr.TokenSet\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A token set is used to store the unique list of all tokens\\n * within an index. Token sets are also used to represent an\\n * incoming query to the index, this query token set and index\\n * token set are then intersected to find which tokens to look\\n * up in the inverted index.\\n *\\n * A token set can hold multiple tokens, as in the case of the\\n * index token set, or it can hold a single token as in the\\n * case of a simple query token set.\\n *\\n * Additionally token sets are used to perform wildcard matching.\\n * Leading, contained and trailing wildcards are supported, and\\n * from this edit distance matching can also be provided.\\n *\\n * Token sets are implemented as a minimal finite state automata,\\n * where both common prefixes and suffixes are shared between tokens.\\n * This helps to reduce the space used for storing the token set.\\n *\\n * @constructor\\n */\\nlunr.TokenSet = function () {\\n this.final = false\\n this.edges = {}\\n this.id = lunr.TokenSet._nextId\\n lunr.TokenSet._nextId += 1\\n}\\n\\n/**\\n * Keeps track of the next, auto increment, identifier to assign\\n * to a new tokenSet.\\n *\\n * TokenSets require a unique identifier to be correctly minimised.\\n *\\n * @private\\n */\\nlunr.TokenSet._nextId = 1\\n\\n/**\\n * Creates a TokenSet instance from the given sorted array of words.\\n *\\n * @param {String[]} arr - A sorted array of strings to create the set from.\\n * @returns {lunr.TokenSet}\\n * @throws Will throw an error if the input array is not sorted.\\n */\\nlunr.TokenSet.fromArray = function (arr) {\\n var builder = new lunr.TokenSet.Builder\\n\\n for (var i = 0, len = arr.length; i < len; i++) {\\n builder.insert(arr[i])\\n }\\n\\n builder.finish()\\n return builder.root\\n}\\n\\n/**\\n * Creates a token set from a query clause.\\n *\\n * @private\\n * @param {Object} clause - A single clause from lunr.Query.\\n * @param {string} clause.term - The query clause term.\\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromClause = function (clause) {\\n if ('editDistance' in clause) {\\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\\n } else {\\n return lunr.TokenSet.fromString(clause.term)\\n }\\n}\\n\\n/**\\n * Creates a token set representing a single string with a specified\\n * edit distance.\\n *\\n * Insertions, deletions, substitutions and transpositions are each\\n * treated as an edit distance of 1.\\n *\\n * Increasing the allowed edit distance will have a dramatic impact\\n * on the performance of both creating and intersecting these TokenSets.\\n * It is advised to keep the edit distance less than 3.\\n *\\n * @param {string} str - The string to create the token set from.\\n * @param {number} editDistance - The allowed edit distance to match.\\n * @returns {lunr.Vector}\\n */\\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\\n var root = new lunr.TokenSet\\n\\n var stack = [{\\n node: root,\\n editsRemaining: editDistance,\\n str: str\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop()\\n\\n // no edit\\n if (frame.str.length > 0) {\\n var char = frame.str.charAt(0),\\n noEditNode\\n\\n if (char in frame.node.edges) {\\n noEditNode = frame.node.edges[char]\\n } else {\\n noEditNode = new lunr.TokenSet\\n frame.node.edges[char] = noEditNode\\n }\\n\\n if (frame.str.length == 1) {\\n noEditNode.final = true\\n }\\n\\n stack.push({\\n node: noEditNode,\\n editsRemaining: frame.editsRemaining,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n if (frame.editsRemaining == 0) {\\n continue\\n }\\n\\n // insertion\\n if (\\\"*\\\" in frame.node.edges) {\\n var insertionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var insertionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = insertionNode\\n }\\n\\n if (frame.str.length == 0) {\\n insertionNode.final = true\\n }\\n\\n stack.push({\\n node: insertionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str\\n })\\n\\n // deletion\\n // can only do a deletion if we have enough edits remaining\\n // and if there are characters left to delete in the string\\n if (frame.str.length > 1) {\\n stack.push({\\n node: frame.node,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // deletion\\n // just removing the last character from the str\\n if (frame.str.length == 1) {\\n frame.node.final = true\\n }\\n\\n // substitution\\n // can only do a substitution if we have enough edits remaining\\n // and if there are characters left to substitute\\n if (frame.str.length >= 1) {\\n if (\\\"*\\\" in frame.node.edges) {\\n var substitutionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var substitutionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = substitutionNode\\n }\\n\\n if (frame.str.length == 1) {\\n substitutionNode.final = true\\n }\\n\\n stack.push({\\n node: substitutionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // transposition\\n // can only do a transposition if there are edits remaining\\n // and there are enough characters to transpose\\n if (frame.str.length > 1) {\\n var charA = frame.str.charAt(0),\\n charB = frame.str.charAt(1),\\n transposeNode\\n\\n if (charB in frame.node.edges) {\\n transposeNode = frame.node.edges[charB]\\n } else {\\n transposeNode = new lunr.TokenSet\\n frame.node.edges[charB] = transposeNode\\n }\\n\\n if (frame.str.length == 1) {\\n transposeNode.final = true\\n }\\n\\n stack.push({\\n node: transposeNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: charA + frame.str.slice(2)\\n })\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Creates a TokenSet from a string.\\n *\\n * The string may contain one or more wildcard characters (*)\\n * that will allow wildcard matching when intersecting with\\n * another TokenSet.\\n *\\n * @param {string} str - The string to create a TokenSet from.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromString = function (str) {\\n var node = new lunr.TokenSet,\\n root = node\\n\\n /*\\n * Iterates through all characters within the passed string\\n * appending a node for each character.\\n *\\n * When a wildcard character is found then a self\\n * referencing edge is introduced to continually match\\n * any number of any characters.\\n */\\n for (var i = 0, len = str.length; i < len; i++) {\\n var char = str[i],\\n final = (i == len - 1)\\n\\n if (char == \\\"*\\\") {\\n node.edges[char] = node\\n node.final = final\\n\\n } else {\\n var next = new lunr.TokenSet\\n next.final = final\\n\\n node.edges[char] = next\\n node = next\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Converts this TokenSet into an array of strings\\n * contained within the TokenSet.\\n *\\n * This is not intended to be used on a TokenSet that\\n * contains wildcards, in these cases the results are\\n * undefined and are likely to cause an infinite loop.\\n *\\n * @returns {string[]}\\n */\\nlunr.TokenSet.prototype.toArray = function () {\\n var words = []\\n\\n var stack = [{\\n prefix: \\\"\\\",\\n node: this\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop(),\\n edges = Object.keys(frame.node.edges),\\n len = edges.length\\n\\n if (frame.node.final) {\\n /* In Safari, at this point the prefix is sometimes corrupted, see:\\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\\n * String.prototype method forces Safari to \\\"cast\\\" this string to what\\n * it's supposed to be, fixing the bug. */\\n frame.prefix.charAt(0)\\n words.push(frame.prefix)\\n }\\n\\n for (var i = 0; i < len; i++) {\\n var edge = edges[i]\\n\\n stack.push({\\n prefix: frame.prefix.concat(edge),\\n node: frame.node.edges[edge]\\n })\\n }\\n }\\n\\n return words\\n}\\n\\n/**\\n * Generates a string representation of a TokenSet.\\n *\\n * This is intended to allow TokenSets to be used as keys\\n * in objects, largely to aid the construction and minimisation\\n * of a TokenSet. As such it is not designed to be a human\\n * friendly representation of the TokenSet.\\n *\\n * @returns {string}\\n */\\nlunr.TokenSet.prototype.toString = function () {\\n // NOTE: Using Object.keys here as this.edges is very likely\\n // to enter 'hash-mode' with many keys being added\\n //\\n // avoiding a for-in loop here as it leads to the function\\n // being de-optimised (at least in V8). From some simple\\n // benchmarks the performance is comparable, but allowing\\n // V8 to optimize may mean easy performance wins in the future.\\n\\n if (this._str) {\\n return this._str\\n }\\n\\n var str = this.final ? '1' : '0',\\n labels = Object.keys(this.edges).sort(),\\n len = labels.length\\n\\n for (var i = 0; i < len; i++) {\\n var label = labels[i],\\n node = this.edges[label]\\n\\n str = str + label + node.id\\n }\\n\\n return str\\n}\\n\\n/**\\n * Returns a new TokenSet that is the intersection of\\n * this TokenSet and the passed TokenSet.\\n *\\n * This intersection will take into account any wildcards\\n * contained within the TokenSet.\\n *\\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.prototype.intersect = function (b) {\\n var output = new lunr.TokenSet,\\n frame = undefined\\n\\n var stack = [{\\n qNode: b,\\n output: output,\\n node: this\\n }]\\n\\n while (stack.length) {\\n frame = stack.pop()\\n\\n // NOTE: As with the #toString method, we are using\\n // Object.keys and a for loop instead of a for-in loop\\n // as both of these objects enter 'hash' mode, causing\\n // the function to be de-optimised in V8\\n var qEdges = Object.keys(frame.qNode.edges),\\n qLen = qEdges.length,\\n nEdges = Object.keys(frame.node.edges),\\n nLen = nEdges.length\\n\\n for (var q = 0; q < qLen; q++) {\\n var qEdge = qEdges[q]\\n\\n for (var n = 0; n < nLen; n++) {\\n var nEdge = nEdges[n]\\n\\n if (nEdge == qEdge || qEdge == '*') {\\n var node = frame.node.edges[nEdge],\\n qNode = frame.qNode.edges[qEdge],\\n final = node.final && qNode.final,\\n next = undefined\\n\\n if (nEdge in frame.output.edges) {\\n // an edge already exists for this character\\n // no need to create a new node, just set the finality\\n // bit unless this node is already final\\n next = frame.output.edges[nEdge]\\n next.final = next.final || final\\n\\n } else {\\n // no edge exists yet, must create one\\n // set the finality bit and insert it\\n // into the output\\n next = new lunr.TokenSet\\n next.final = final\\n frame.output.edges[nEdge] = next\\n }\\n\\n stack.push({\\n qNode: qNode,\\n output: next,\\n node: node\\n })\\n }\\n }\\n }\\n }\\n\\n return output\\n}\\nlunr.TokenSet.Builder = function () {\\n this.previousWord = \\\"\\\"\\n this.root = new lunr.TokenSet\\n this.uncheckedNodes = []\\n this.minimizedNodes = {}\\n}\\n\\nlunr.TokenSet.Builder.prototype.insert = function (word) {\\n var node,\\n commonPrefix = 0\\n\\n if (word < this.previousWord) {\\n throw new Error (\\\"Out of order word insertion\\\")\\n }\\n\\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\\n if (word[i] != this.previousWord[i]) break\\n commonPrefix++\\n }\\n\\n this.minimize(commonPrefix)\\n\\n if (this.uncheckedNodes.length == 0) {\\n node = this.root\\n } else {\\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\\n }\\n\\n for (var i = commonPrefix; i < word.length; i++) {\\n var nextNode = new lunr.TokenSet,\\n char = word[i]\\n\\n node.edges[char] = nextNode\\n\\n this.uncheckedNodes.push({\\n parent: node,\\n char: char,\\n child: nextNode\\n })\\n\\n node = nextNode\\n }\\n\\n node.final = true\\n this.previousWord = word\\n}\\n\\nlunr.TokenSet.Builder.prototype.finish = function () {\\n this.minimize(0)\\n}\\n\\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\\n var node = this.uncheckedNodes[i],\\n childKey = node.child.toString()\\n\\n if (childKey in this.minimizedNodes) {\\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\\n } else {\\n // Cache the key for this node since\\n // we know it can't change anymore\\n node.child._str = childKey\\n\\n this.minimizedNodes[childKey] = node.child\\n }\\n\\n this.uncheckedNodes.pop()\\n }\\n}\\n/*!\\n * lunr.Index\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * An index contains the built index of all documents and provides a query interface\\n * to the index.\\n *\\n * Usually instances of lunr.Index will not be created using this constructor, instead\\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\\n * used to load previously built and serialized indexes.\\n *\\n * @constructor\\n * @param {Object} attrs - The attributes of the built search index.\\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\\n * @param {Object} attrs.fieldVectors - Field vectors\\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\\n * @param {string[]} attrs.fields - The names of indexed document fields.\\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\\n */\\nlunr.Index = function (attrs) {\\n this.invertedIndex = attrs.invertedIndex\\n this.fieldVectors = attrs.fieldVectors\\n this.tokenSet = attrs.tokenSet\\n this.fields = attrs.fields\\n this.pipeline = attrs.pipeline\\n}\\n\\n/**\\n * A result contains details of a document matching a search query.\\n * @typedef {Object} lunr.Index~Result\\n * @property {string} ref - The reference of the document this result represents.\\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\\n */\\n\\n/**\\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\\n * query language which itself is parsed into an instance of lunr.Query.\\n *\\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\\n * is best used for human entered text rather than program generated text.\\n *\\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\\n * or 'world', though those that contain both will rank higher in the results.\\n *\\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\\n * wildcards will increase the number of documents that will be found but can also have a negative\\n * impact on query performance, especially with wildcards at the beginning of a term.\\n *\\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\\n * hello in the title field will match this query. Using a field not present in the index will lead\\n * to an error being thrown.\\n *\\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\\n * Avoid large values for edit distance to improve query performance.\\n *\\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\\n *\\n * To escape special characters the backslash character '\\\\' can be used, this allows searches to include\\n * characters that would normally be considered modifiers, e.g. `foo\\\\~2` will search for a term \\\"foo~2\\\" instead\\n * of attempting to apply a boost of 2 to the search term \\\"foo\\\".\\n *\\n * @typedef {string} lunr.Index~QueryString\\n * @example Simple single term query\\n * hello\\n * @example Multiple term query\\n * hello world\\n * @example term scoped to a field\\n * title:hello\\n * @example term with a boost of 10\\n * hello^10\\n * @example term with an edit distance of 2\\n * hello~2\\n * @example terms with presence modifiers\\n * -foo +bar baz\\n */\\n\\n/**\\n * Performs a search against the index using lunr query syntax.\\n *\\n * Results will be returned sorted by their score, the most relevant results\\n * will be returned first. For details on how the score is calculated, please see\\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\\n *\\n * For more programmatic querying use lunr.Index#query.\\n *\\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.search = function (queryString) {\\n return this.query(function (query) {\\n var parser = new lunr.QueryParser(queryString, query)\\n parser.parse()\\n })\\n}\\n\\n/**\\n * A query builder callback provides a query object to be used to express\\n * the query to perform on the index.\\n *\\n * @callback lunr.Index~queryBuilder\\n * @param {lunr.Query} query - The query object to build up.\\n * @this lunr.Query\\n */\\n\\n/**\\n * Performs a query against the index using the yielded lunr.Query object.\\n *\\n * If performing programmatic queries against the index, this method is preferred\\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\\n *\\n * A query object is yielded to the supplied function which should be used to\\n * express the query to be run against the index.\\n *\\n * Note that although this function takes a callback parameter it is _not_ an\\n * asynchronous operation, the callback is just yielded a query object to be\\n * customized.\\n *\\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.query = function (fn) {\\n // for each query clause\\n // * process terms\\n // * expand terms from token set\\n // * find matching documents and metadata\\n // * get document vectors\\n // * score documents\\n\\n var query = new lunr.Query(this.fields),\\n matchingFields = Object.create(null),\\n queryVectors = Object.create(null),\\n termFieldCache = Object.create(null),\\n requiredMatches = Object.create(null),\\n prohibitedMatches = Object.create(null)\\n\\n /*\\n * To support field level boosts a query vector is created per\\n * field. An empty vector is eagerly created to support negated\\n * queries.\\n */\\n for (var i = 0; i < this.fields.length; i++) {\\n queryVectors[this.fields[i]] = new lunr.Vector\\n }\\n\\n fn.call(query, query)\\n\\n for (var i = 0; i < query.clauses.length; i++) {\\n /*\\n * Unless the pipeline has been disabled for this term, which is\\n * the case for terms with wildcards, we need to pass the clause\\n * term through the search pipeline. A pipeline returns an array\\n * of processed terms. Pipeline functions may expand the passed\\n * term, which means we may end up performing multiple index lookups\\n * for a single query term.\\n */\\n var clause = query.clauses[i],\\n terms = null,\\n clauseMatches = lunr.Set.complete\\n\\n if (clause.usePipeline) {\\n terms = this.pipeline.runString(clause.term, {\\n fields: clause.fields\\n })\\n } else {\\n terms = [clause.term]\\n }\\n\\n for (var m = 0; m < terms.length; m++) {\\n var term = terms[m]\\n\\n /*\\n * Each term returned from the pipeline needs to use the same query\\n * clause object, e.g. the same boost and or edit distance. The\\n * simplest way to do this is to re-use the clause object but mutate\\n * its term property.\\n */\\n clause.term = term\\n\\n /*\\n * From the term in the clause we create a token set which will then\\n * be used to intersect the indexes token set to get a list of terms\\n * to lookup in the inverted index\\n */\\n var termTokenSet = lunr.TokenSet.fromClause(clause),\\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\\n\\n /*\\n * If a term marked as required does not exist in the tokenSet it is\\n * impossible for the search to return any matches. We set all the field\\n * scoped required matches set to empty and stop examining any further\\n * clauses.\\n */\\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = lunr.Set.empty\\n }\\n\\n break\\n }\\n\\n for (var j = 0; j < expandedTerms.length; j++) {\\n /*\\n * For each term get the posting and termIndex, this is required for\\n * building the query vector.\\n */\\n var expandedTerm = expandedTerms[j],\\n posting = this.invertedIndex[expandedTerm],\\n termIndex = posting._index\\n\\n for (var k = 0; k < clause.fields.length; k++) {\\n /*\\n * For each field that this query term is scoped by (by default\\n * all fields are in scope) we need to get all the document refs\\n * that have this term in that field.\\n *\\n * The posting is the entry in the invertedIndex for the matching\\n * term from above.\\n */\\n var field = clause.fields[k],\\n fieldPosting = posting[field],\\n matchingDocumentRefs = Object.keys(fieldPosting),\\n termField = expandedTerm + \\\"/\\\" + field,\\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\\n\\n /*\\n * if the presence of this term is required ensure that the matching\\n * documents are added to the set of required matches for this clause.\\n *\\n */\\n if (clause.presence == lunr.Query.presence.REQUIRED) {\\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\\n\\n if (requiredMatches[field] === undefined) {\\n requiredMatches[field] = lunr.Set.complete\\n }\\n }\\n\\n /*\\n * if the presence of this term is prohibited ensure that the matching\\n * documents are added to the set of prohibited matches for this field,\\n * creating that set if it does not yet exist.\\n */\\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\\n if (prohibitedMatches[field] === undefined) {\\n prohibitedMatches[field] = lunr.Set.empty\\n }\\n\\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\\n\\n /*\\n * Prohibited matches should not be part of the query vector used for\\n * similarity scoring and no metadata should be extracted so we continue\\n * to the next field\\n */\\n continue\\n }\\n\\n /*\\n * The query field vector is populated using the termIndex found for\\n * the term and a unit value with the appropriate boost applied.\\n * Using upsert because there could already be an entry in the vector\\n * for the term we are working with. In that case we just add the scores\\n * together.\\n */\\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\\n\\n /**\\n * If we've already seen this term, field combo then we've already collected\\n * the matching documents and metadata, no need to go through all that again\\n */\\n if (termFieldCache[termField]) {\\n continue\\n }\\n\\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\\n /*\\n * All metadata for this term/field/document triple\\n * are then extracted and collected into an instance\\n * of lunr.MatchData ready to be returned in the query\\n * results\\n */\\n var matchingDocumentRef = matchingDocumentRefs[l],\\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\\n metadata = fieldPosting[matchingDocumentRef],\\n fieldMatch\\n\\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\\n } else {\\n fieldMatch.add(expandedTerm, field, metadata)\\n }\\n\\n }\\n\\n termFieldCache[termField] = true\\n }\\n }\\n }\\n\\n /**\\n * If the presence was required we need to update the requiredMatches field sets.\\n * We do this after all fields for the term have collected their matches because\\n * the clause terms presence is required in _any_ of the fields not _all_ of the\\n * fields.\\n */\\n if (clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\\n }\\n }\\n }\\n\\n /**\\n * Need to combine the field scoped required and prohibited\\n * matching documents into a global set of required and prohibited\\n * matches\\n */\\n var allRequiredMatches = lunr.Set.complete,\\n allProhibitedMatches = lunr.Set.empty\\n\\n for (var i = 0; i < this.fields.length; i++) {\\n var field = this.fields[i]\\n\\n if (requiredMatches[field]) {\\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\\n }\\n\\n if (prohibitedMatches[field]) {\\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\\n }\\n }\\n\\n var matchingFieldRefs = Object.keys(matchingFields),\\n results = [],\\n matches = Object.create(null)\\n\\n /*\\n * If the query is negated (contains only prohibited terms)\\n * we need to get _all_ fieldRefs currently existing in the\\n * index. This is only done when we know that the query is\\n * entirely prohibited terms to avoid any cost of getting all\\n * fieldRefs unnecessarily.\\n *\\n * Additionally, blank MatchData must be created to correctly\\n * populate the results.\\n */\\n if (query.isNegated()) {\\n matchingFieldRefs = Object.keys(this.fieldVectors)\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n var matchingFieldRef = matchingFieldRefs[i]\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\\n matchingFields[matchingFieldRef] = new lunr.MatchData\\n }\\n }\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n /*\\n * Currently we have document fields that match the query, but we\\n * need to return documents. The matchData and scores are combined\\n * from multiple fields belonging to the same document.\\n *\\n * Scores are calculated by field, using the query vectors created\\n * above, and combined into a final document score using addition.\\n */\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\\n docRef = fieldRef.docRef\\n\\n if (!allRequiredMatches.contains(docRef)) {\\n continue\\n }\\n\\n if (allProhibitedMatches.contains(docRef)) {\\n continue\\n }\\n\\n var fieldVector = this.fieldVectors[fieldRef],\\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\\n docMatch\\n\\n if ((docMatch = matches[docRef]) !== undefined) {\\n docMatch.score += score\\n docMatch.matchData.combine(matchingFields[fieldRef])\\n } else {\\n var match = {\\n ref: docRef,\\n score: score,\\n matchData: matchingFields[fieldRef]\\n }\\n matches[docRef] = match\\n results.push(match)\\n }\\n }\\n\\n /*\\n * Sort the results objects by score, highest first.\\n */\\n return results.sort(function (a, b) {\\n return b.score - a.score\\n })\\n}\\n\\n/**\\n * Prepares the index for JSON serialization.\\n *\\n * The schema for this JSON blob will be described in a\\n * separate JSON schema file.\\n *\\n * @returns {Object}\\n */\\nlunr.Index.prototype.toJSON = function () {\\n var invertedIndex = Object.keys(this.invertedIndex)\\n .sort()\\n .map(function (term) {\\n return [term, this.invertedIndex[term]]\\n }, this)\\n\\n var fieldVectors = Object.keys(this.fieldVectors)\\n .map(function (ref) {\\n return [ref, this.fieldVectors[ref].toJSON()]\\n }, this)\\n\\n return {\\n version: lunr.version,\\n fields: this.fields,\\n fieldVectors: fieldVectors,\\n invertedIndex: invertedIndex,\\n pipeline: this.pipeline.toJSON()\\n }\\n}\\n\\n/**\\n * Loads a previously serialized lunr.Index\\n *\\n * @param {Object} serializedIndex - A previously serialized lunr.Index\\n * @returns {lunr.Index}\\n */\\nlunr.Index.load = function (serializedIndex) {\\n var attrs = {},\\n fieldVectors = {},\\n serializedVectors = serializedIndex.fieldVectors,\\n invertedIndex = Object.create(null),\\n serializedInvertedIndex = serializedIndex.invertedIndex,\\n tokenSetBuilder = new lunr.TokenSet.Builder,\\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\\n\\n if (serializedIndex.version != lunr.version) {\\n lunr.utils.warn(\\\"Version mismatch when loading serialised index. Current version of lunr '\\\" + lunr.version + \\\"' does not match serialized index '\\\" + serializedIndex.version + \\\"'\\\")\\n }\\n\\n for (var i = 0; i < serializedVectors.length; i++) {\\n var tuple = serializedVectors[i],\\n ref = tuple[0],\\n elements = tuple[1]\\n\\n fieldVectors[ref] = new lunr.Vector(elements)\\n }\\n\\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\\n var tuple = serializedInvertedIndex[i],\\n term = tuple[0],\\n posting = tuple[1]\\n\\n tokenSetBuilder.insert(term)\\n invertedIndex[term] = posting\\n }\\n\\n tokenSetBuilder.finish()\\n\\n attrs.fields = serializedIndex.fields\\n\\n attrs.fieldVectors = fieldVectors\\n attrs.invertedIndex = invertedIndex\\n attrs.tokenSet = tokenSetBuilder.root\\n attrs.pipeline = pipeline\\n\\n return new lunr.Index(attrs)\\n}\\n/*!\\n * lunr.Builder\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Builder performs indexing on a set of documents and\\n * returns instances of lunr.Index ready for querying.\\n *\\n * All configuration of the index is done via the builder, the\\n * fields to index, the document reference, the text processing\\n * pipeline and document scoring parameters are all set on the\\n * builder before indexing.\\n *\\n * @constructor\\n * @property {string} _ref - Internal reference to the document reference field.\\n * @property {string[]} _fields - Internal reference to the document fields to index.\\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\\n */\\nlunr.Builder = function () {\\n this._ref = \\\"id\\\"\\n this._fields = Object.create(null)\\n this._documents = Object.create(null)\\n this.invertedIndex = Object.create(null)\\n this.fieldTermFrequencies = {}\\n this.fieldLengths = {}\\n this.tokenizer = lunr.tokenizer\\n this.pipeline = new lunr.Pipeline\\n this.searchPipeline = new lunr.Pipeline\\n this.documentCount = 0\\n this._b = 0.75\\n this._k1 = 1.2\\n this.termIndex = 0\\n this.metadataWhitelist = []\\n}\\n\\n/**\\n * Sets the document field used as the document reference. Every document must have this field.\\n * The type of this field in the document should be a string, if it is not a string it will be\\n * coerced into a string by calling toString.\\n *\\n * The default ref is 'id'.\\n *\\n * The ref should _not_ be changed during indexing, it should be set before any documents are\\n * added to the index. Changing it during indexing can lead to inconsistent results.\\n *\\n * @param {string} ref - The name of the reference field in the document.\\n */\\nlunr.Builder.prototype.ref = function (ref) {\\n this._ref = ref\\n}\\n\\n/**\\n * A function that is used to extract a field from a document.\\n *\\n * Lunr expects a field to be at the top level of a document, if however the field\\n * is deeply nested within a document an extractor function can be used to extract\\n * the right field for indexing.\\n *\\n * @callback fieldExtractor\\n * @param {object} doc - The document being added to the index.\\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\\n * @example Extracting a nested field\\n * function (doc) { return doc.nested.field }\\n */\\n\\n/**\\n * Adds a field to the list of document fields that will be indexed. Every document being\\n * indexed should have this field. Null values for this field in indexed documents will\\n * not cause errors but will limit the chance of that document being retrieved by searches.\\n *\\n * All fields should be added before adding documents to the index. Adding fields after\\n * a document has been indexed will have no effect on already indexed documents.\\n *\\n * Fields can be boosted at build time. This allows terms within that field to have more\\n * importance when ranking search results. Use a field boost to specify that matches within\\n * one field are more important than other fields.\\n *\\n * @param {string} fieldName - The name of a field to index in all documents.\\n * @param {object} attributes - Optional attributes associated with this field.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\\n */\\nlunr.Builder.prototype.field = function (fieldName, attributes) {\\n if (/\\\\//.test(fieldName)) {\\n throw new RangeError (\\\"Field '\\\" + fieldName + \\\"' contains illegal character '/'\\\")\\n }\\n\\n this._fields[fieldName] = attributes || {}\\n}\\n\\n/**\\n * A parameter to tune the amount of field length normalisation that is applied when\\n * calculating relevance scores. A value of 0 will completely disable any normalisation\\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\\n * will be clamped to the range 0 - 1.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.b = function (number) {\\n if (number < 0) {\\n this._b = 0\\n } else if (number > 1) {\\n this._b = 1\\n } else {\\n this._b = number\\n }\\n}\\n\\n/**\\n * A parameter that controls the speed at which a rise in term frequency results in term\\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\\n * slower saturation levels, a lower value will result in quicker saturation.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.k1 = function (number) {\\n this._k1 = number\\n}\\n\\n/**\\n * Adds a document to the index.\\n *\\n * Before adding fields to the index the index should have been fully setup, with the document\\n * ref and all fields to index already having been specified.\\n *\\n * The document must have a field name as specified by the ref (by default this is 'id') and\\n * it should have all fields defined for indexing, though null or undefined values will not\\n * cause errors.\\n *\\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\\n * this document should rank higher in search results than other documents.\\n *\\n * @param {object} doc - The document to add to the index.\\n * @param {object} attributes - Optional attributes associated with this document.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\\n */\\nlunr.Builder.prototype.add = function (doc, attributes) {\\n var docRef = doc[this._ref],\\n fields = Object.keys(this._fields)\\n\\n this._documents[docRef] = attributes || {}\\n this.documentCount += 1\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i],\\n extractor = this._fields[fieldName].extractor,\\n field = extractor ? extractor(doc) : doc[fieldName],\\n tokens = this.tokenizer(field, {\\n fields: [fieldName]\\n }),\\n terms = this.pipeline.run(tokens),\\n fieldRef = new lunr.FieldRef (docRef, fieldName),\\n fieldTerms = Object.create(null)\\n\\n this.fieldTermFrequencies[fieldRef] = fieldTerms\\n this.fieldLengths[fieldRef] = 0\\n\\n // store the length of this field for this document\\n this.fieldLengths[fieldRef] += terms.length\\n\\n // calculate term frequencies for this field\\n for (var j = 0; j < terms.length; j++) {\\n var term = terms[j]\\n\\n if (fieldTerms[term] == undefined) {\\n fieldTerms[term] = 0\\n }\\n\\n fieldTerms[term] += 1\\n\\n // add to inverted index\\n // create an initial posting if one doesn't exist\\n if (this.invertedIndex[term] == undefined) {\\n var posting = Object.create(null)\\n posting[\\\"_index\\\"] = this.termIndex\\n this.termIndex += 1\\n\\n for (var k = 0; k < fields.length; k++) {\\n posting[fields[k]] = Object.create(null)\\n }\\n\\n this.invertedIndex[term] = posting\\n }\\n\\n // add an entry for this term/fieldName/docRef to the invertedIndex\\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\\n }\\n\\n // store all whitelisted metadata about this token in the\\n // inverted index\\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\\n var metadataKey = this.metadataWhitelist[l],\\n metadata = term.metadata[metadataKey]\\n\\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\\n }\\n\\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\\n }\\n }\\n\\n }\\n}\\n\\n/**\\n * Calculates the average document length for this index\\n *\\n * @private\\n */\\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\\n\\n var fieldRefs = Object.keys(this.fieldLengths),\\n numberOfFields = fieldRefs.length,\\n accumulator = {},\\n documentsWithField = {}\\n\\n for (var i = 0; i < numberOfFields; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n field = fieldRef.fieldName\\n\\n documentsWithField[field] || (documentsWithField[field] = 0)\\n documentsWithField[field] += 1\\n\\n accumulator[field] || (accumulator[field] = 0)\\n accumulator[field] += this.fieldLengths[fieldRef]\\n }\\n\\n var fields = Object.keys(this._fields)\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i]\\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\\n }\\n\\n this.averageFieldLength = accumulator\\n}\\n\\n/**\\n * Builds a vector space model of every document using lunr.Vector\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createFieldVectors = function () {\\n var fieldVectors = {},\\n fieldRefs = Object.keys(this.fieldTermFrequencies),\\n fieldRefsLength = fieldRefs.length,\\n termIdfCache = Object.create(null)\\n\\n for (var i = 0; i < fieldRefsLength; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n fieldName = fieldRef.fieldName,\\n fieldLength = this.fieldLengths[fieldRef],\\n fieldVector = new lunr.Vector,\\n termFrequencies = this.fieldTermFrequencies[fieldRef],\\n terms = Object.keys(termFrequencies),\\n termsLength = terms.length\\n\\n\\n var fieldBoost = this._fields[fieldName].boost || 1,\\n docBoost = this._documents[fieldRef.docRef].boost || 1\\n\\n for (var j = 0; j < termsLength; j++) {\\n var term = terms[j],\\n tf = termFrequencies[term],\\n termIndex = this.invertedIndex[term]._index,\\n idf, score, scoreWithPrecision\\n\\n if (termIdfCache[term] === undefined) {\\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\\n termIdfCache[term] = idf\\n } else {\\n idf = termIdfCache[term]\\n }\\n\\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\\n score *= fieldBoost\\n score *= docBoost\\n scoreWithPrecision = Math.round(score * 1000) / 1000\\n // Converts 1.23456789 to 1.234.\\n // Reducing the precision so that the vectors take up less\\n // space when serialised. Doing it now so that they behave\\n // the same before and after serialisation. Also, this is\\n // the fastest approach to reducing a number's precision in\\n // JavaScript.\\n\\n fieldVector.insert(termIndex, scoreWithPrecision)\\n }\\n\\n fieldVectors[fieldRef] = fieldVector\\n }\\n\\n this.fieldVectors = fieldVectors\\n}\\n\\n/**\\n * Creates a token set of all tokens in the index using lunr.TokenSet\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createTokenSet = function () {\\n this.tokenSet = lunr.TokenSet.fromArray(\\n Object.keys(this.invertedIndex).sort()\\n )\\n}\\n\\n/**\\n * Builds the index, creating an instance of lunr.Index.\\n *\\n * This completes the indexing process and should only be called\\n * once all documents have been added to the index.\\n *\\n * @returns {lunr.Index}\\n */\\nlunr.Builder.prototype.build = function () {\\n this.calculateAverageFieldLengths()\\n this.createFieldVectors()\\n this.createTokenSet()\\n\\n return new lunr.Index({\\n invertedIndex: this.invertedIndex,\\n fieldVectors: this.fieldVectors,\\n tokenSet: this.tokenSet,\\n fields: Object.keys(this._fields),\\n pipeline: this.searchPipeline\\n })\\n}\\n\\n/**\\n * Applies a plugin to the index builder.\\n *\\n * A plugin is a function that is called with the index builder as its context.\\n * Plugins can be used to customise or extend the behaviour of the index\\n * in some way. A plugin is just a function, that encapsulated the custom\\n * behaviour that should be applied when building the index.\\n *\\n * The plugin function will be called with the index builder as its argument, additional\\n * arguments can also be passed when calling use. The function will be called\\n * with the index builder as its context.\\n *\\n * @param {Function} plugin The plugin to apply.\\n */\\nlunr.Builder.prototype.use = function (fn) {\\n var args = Array.prototype.slice.call(arguments, 1)\\n args.unshift(this)\\n fn.apply(this, args)\\n}\\n/**\\n * Contains and collects metadata about a matching document.\\n * A single instance of lunr.MatchData is returned as part of every\\n * lunr.Index~Result.\\n *\\n * @constructor\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n * @property {object} metadata - A cloned collection of metadata associated with this document.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData = function (term, field, metadata) {\\n var clonedMetadata = Object.create(null),\\n metadataKeys = Object.keys(metadata || {})\\n\\n // Cloning the metadata to prevent the original\\n // being mutated during match data combination.\\n // Metadata is kept in an array within the inverted\\n // index so cloning the data can be done with\\n // Array#slice\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n clonedMetadata[key] = metadata[key].slice()\\n }\\n\\n this.metadata = Object.create(null)\\n\\n if (term !== undefined) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = clonedMetadata\\n }\\n}\\n\\n/**\\n * An instance of lunr.MatchData will be created for every term that matches a\\n * document. However only one instance is required in a lunr.Index~Result. This\\n * method combines metadata from another instance of lunr.MatchData with this\\n * objects metadata.\\n *\\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData.prototype.combine = function (otherMatchData) {\\n var terms = Object.keys(otherMatchData.metadata)\\n\\n for (var i = 0; i < terms.length; i++) {\\n var term = terms[i],\\n fields = Object.keys(otherMatchData.metadata[term])\\n\\n if (this.metadata[term] == undefined) {\\n this.metadata[term] = Object.create(null)\\n }\\n\\n for (var j = 0; j < fields.length; j++) {\\n var field = fields[j],\\n keys = Object.keys(otherMatchData.metadata[term][field])\\n\\n if (this.metadata[term][field] == undefined) {\\n this.metadata[term][field] = Object.create(null)\\n }\\n\\n for (var k = 0; k < keys.length; k++) {\\n var key = keys[k]\\n\\n if (this.metadata[term][field][key] == undefined) {\\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\\n } else {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\\n }\\n\\n }\\n }\\n }\\n}\\n\\n/**\\n * Add metadata for a term/field pair to this instance of match data.\\n *\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n */\\nlunr.MatchData.prototype.add = function (term, field, metadata) {\\n if (!(term in this.metadata)) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n if (!(field in this.metadata[term])) {\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n var metadataKeys = Object.keys(metadata)\\n\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n\\n if (key in this.metadata[term][field]) {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\\n } else {\\n this.metadata[term][field][key] = metadata[key]\\n }\\n }\\n}\\n/**\\n * A lunr.Query provides a programmatic way of defining queries to be performed\\n * against a {@link lunr.Index}.\\n *\\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\\n * so the query object is pre-initialized with the right index fields.\\n *\\n * @constructor\\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\\n */\\nlunr.Query = function (allFields) {\\n this.clauses = []\\n this.allFields = allFields\\n}\\n\\n/**\\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\\n *\\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\\n * concatenation.\\n *\\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\\n *\\n * @constant\\n * @default\\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with trailing wildcard\\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\\n * @example query term with leading and trailing wildcard\\n * query.term('foo', {\\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\\n * })\\n */\\n\\nlunr.Query.wildcard = new String (\\\"*\\\")\\nlunr.Query.wildcard.NONE = 0\\nlunr.Query.wildcard.LEADING = 1\\nlunr.Query.wildcard.TRAILING = 2\\n\\n/**\\n * Constants for indicating what kind of presence a term must have in matching documents.\\n *\\n * @constant\\n * @enum {number}\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with required presence\\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\\n */\\nlunr.Query.presence = {\\n /**\\n * Term's presence in a document is optional, this is the default value.\\n */\\n OPTIONAL: 1,\\n\\n /**\\n * Term's presence in a document is required, documents that do not contain\\n * this term will not be returned.\\n */\\n REQUIRED: 2,\\n\\n /**\\n * Term's presence in a document is prohibited, documents that do contain\\n * this term will not be returned.\\n */\\n PROHIBITED: 3\\n}\\n\\n/**\\n * A single clause in a {@link lunr.Query} contains a term and details on how to\\n * match that term against a {@link lunr.Index}.\\n *\\n * @typedef {Object} lunr.Query~Clause\\n * @property {string[]} fields - The fields in an index this clause should be matched against.\\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\\n */\\n\\n/**\\n * Adds a {@link lunr.Query~Clause} to this query.\\n *\\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\\n * a default boost of 1 is applied to the clause.\\n *\\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\\n * @see lunr.Query~Clause\\n * @returns {lunr.Query}\\n */\\nlunr.Query.prototype.clause = function (clause) {\\n if (!('fields' in clause)) {\\n clause.fields = this.allFields\\n }\\n\\n if (!('boost' in clause)) {\\n clause.boost = 1\\n }\\n\\n if (!('usePipeline' in clause)) {\\n clause.usePipeline = true\\n }\\n\\n if (!('wildcard' in clause)) {\\n clause.wildcard = lunr.Query.wildcard.NONE\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\\n clause.term = \\\"*\\\" + clause.term\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\\n clause.term = \\\"\\\" + clause.term + \\\"*\\\"\\n }\\n\\n if (!('presence' in clause)) {\\n clause.presence = lunr.Query.presence.OPTIONAL\\n }\\n\\n this.clauses.push(clause)\\n\\n return this\\n}\\n\\n/**\\n * A negated query is one in which every clause has a presence of\\n * prohibited. These queries require some special processing to return\\n * the expected results.\\n *\\n * @returns boolean\\n */\\nlunr.Query.prototype.isNegated = function () {\\n for (var i = 0; i < this.clauses.length; i++) {\\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\\n return false\\n }\\n }\\n\\n return true\\n}\\n\\n/**\\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\\n * to the list of clauses that make up this query.\\n *\\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\\n * to a token or token-like string should be done before calling this method.\\n *\\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\\n * array, each term in the array will share the same options.\\n *\\n * @param {object|object[]} term - The term(s) to add to the query.\\n * @param {object} [options] - Any additional properties to add to the query clause.\\n * @returns {lunr.Query}\\n * @see lunr.Query#clause\\n * @see lunr.Query~Clause\\n * @example adding a single term to a query\\n * query.term(\\\"foo\\\")\\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\\n * query.term(\\\"foo\\\", {\\n * fields: [\\\"title\\\"],\\n * boost: 10,\\n * wildcard: lunr.Query.wildcard.TRAILING\\n * })\\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\\n * query.term(lunr.tokenizer(\\\"foo bar\\\"))\\n */\\nlunr.Query.prototype.term = function (term, options) {\\n if (Array.isArray(term)) {\\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\\n return this\\n }\\n\\n var clause = options || {}\\n clause.term = term.toString()\\n\\n this.clause(clause)\\n\\n return this\\n}\\nlunr.QueryParseError = function (message, start, end) {\\n this.name = \\\"QueryParseError\\\"\\n this.message = message\\n this.start = start\\n this.end = end\\n}\\n\\nlunr.QueryParseError.prototype = new Error\\nlunr.QueryLexer = function (str) {\\n this.lexemes = []\\n this.str = str\\n this.length = str.length\\n this.pos = 0\\n this.start = 0\\n this.escapeCharPositions = []\\n}\\n\\nlunr.QueryLexer.prototype.run = function () {\\n var state = lunr.QueryLexer.lexText\\n\\n while (state) {\\n state = state(this)\\n }\\n}\\n\\nlunr.QueryLexer.prototype.sliceString = function () {\\n var subSlices = [],\\n sliceStart = this.start,\\n sliceEnd = this.pos\\n\\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\\n sliceEnd = this.escapeCharPositions[i]\\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\\n sliceStart = sliceEnd + 1\\n }\\n\\n subSlices.push(this.str.slice(sliceStart, this.pos))\\n this.escapeCharPositions.length = 0\\n\\n return subSlices.join('')\\n}\\n\\nlunr.QueryLexer.prototype.emit = function (type) {\\n this.lexemes.push({\\n type: type,\\n str: this.sliceString(),\\n start: this.start,\\n end: this.pos\\n })\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.escapeCharacter = function () {\\n this.escapeCharPositions.push(this.pos - 1)\\n this.pos += 1\\n}\\n\\nlunr.QueryLexer.prototype.next = function () {\\n if (this.pos >= this.length) {\\n return lunr.QueryLexer.EOS\\n }\\n\\n var char = this.str.charAt(this.pos)\\n this.pos += 1\\n return char\\n}\\n\\nlunr.QueryLexer.prototype.width = function () {\\n return this.pos - this.start\\n}\\n\\nlunr.QueryLexer.prototype.ignore = function () {\\n if (this.start == this.pos) {\\n this.pos += 1\\n }\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.backup = function () {\\n this.pos -= 1\\n}\\n\\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\\n var char, charCode\\n\\n do {\\n char = this.next()\\n charCode = char.charCodeAt(0)\\n } while (charCode > 47 && charCode < 58)\\n\\n if (char != lunr.QueryLexer.EOS) {\\n this.backup()\\n }\\n}\\n\\nlunr.QueryLexer.prototype.more = function () {\\n return this.pos < this.length\\n}\\n\\nlunr.QueryLexer.EOS = 'EOS'\\nlunr.QueryLexer.FIELD = 'FIELD'\\nlunr.QueryLexer.TERM = 'TERM'\\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\\nlunr.QueryLexer.BOOST = 'BOOST'\\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\\n\\nlunr.QueryLexer.lexField = function (lexer) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.FIELD)\\n lexer.ignore()\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexTerm = function (lexer) {\\n if (lexer.width() > 1) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n\\n lexer.ignore()\\n\\n if (lexer.more()) {\\n return lunr.QueryLexer.lexText\\n }\\n}\\n\\nlunr.QueryLexer.lexEditDistance = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexBoost = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.BOOST)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexEOS = function (lexer) {\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n}\\n\\n// This matches the separator used when tokenising fields\\n// within a document. These should match otherwise it is\\n// not possible to search for some tokens within a document.\\n//\\n// It is possible for the user to change the separator on the\\n// tokenizer so it _might_ clash with any other of the special\\n// characters already used within the search string, e.g. :.\\n//\\n// This means that it is possible to change the separator in\\n// such a way that makes some words unsearchable using a search\\n// string.\\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\\n\\nlunr.QueryLexer.lexText = function (lexer) {\\n while (true) {\\n var char = lexer.next()\\n\\n if (char == lunr.QueryLexer.EOS) {\\n return lunr.QueryLexer.lexEOS\\n }\\n\\n // Escape character is '\\\\'\\n if (char.charCodeAt(0) == 92) {\\n lexer.escapeCharacter()\\n continue\\n }\\n\\n if (char == \\\":\\\") {\\n return lunr.QueryLexer.lexField\\n }\\n\\n if (char == \\\"~\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexEditDistance\\n }\\n\\n if (char == \\\"^\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexBoost\\n }\\n\\n // \\\"+\\\" indicates term presence is required\\n // checking for length to ensure that only\\n // leading \\\"+\\\" are considered\\n if (char == \\\"+\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n // \\\"-\\\" indicates term presence is prohibited\\n // checking for length to ensure that only\\n // leading \\\"-\\\" are considered\\n if (char == \\\"-\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n if (char.match(lunr.QueryLexer.termSeparator)) {\\n return lunr.QueryLexer.lexTerm\\n }\\n }\\n}\\n\\nlunr.QueryParser = function (str, query) {\\n this.lexer = new lunr.QueryLexer (str)\\n this.query = query\\n this.currentClause = {}\\n this.lexemeIdx = 0\\n}\\n\\nlunr.QueryParser.prototype.parse = function () {\\n this.lexer.run()\\n this.lexemes = this.lexer.lexemes\\n\\n var state = lunr.QueryParser.parseClause\\n\\n while (state) {\\n state = state(this)\\n }\\n\\n return this.query\\n}\\n\\nlunr.QueryParser.prototype.peekLexeme = function () {\\n return this.lexemes[this.lexemeIdx]\\n}\\n\\nlunr.QueryParser.prototype.consumeLexeme = function () {\\n var lexeme = this.peekLexeme()\\n this.lexemeIdx += 1\\n return lexeme\\n}\\n\\nlunr.QueryParser.prototype.nextClause = function () {\\n var completedClause = this.currentClause\\n this.query.clause(completedClause)\\n this.currentClause = {}\\n}\\n\\nlunr.QueryParser.parseClause = function (parser) {\\n var lexeme = parser.peekLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.type) {\\n case lunr.QueryLexer.PRESENCE:\\n return lunr.QueryParser.parsePresence\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expected either a field or a term, found \\\" + lexeme.type\\n\\n if (lexeme.str.length >= 1) {\\n errorMessage += \\\" with value '\\\" + lexeme.str + \\\"'\\\"\\n }\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parsePresence = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.str) {\\n case \\\"-\\\":\\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\\n break\\n case \\\"+\\\":\\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\\n break\\n default:\\n var errorMessage = \\\"unrecognised presence operator'\\\" + lexeme.str + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term or field, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term or field, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseField = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\\n var possibleFields = parser.query.allFields.map(function (f) { return \\\"'\\\" + f + \\\"'\\\" }).join(', '),\\n errorMessage = \\\"unrecognised field '\\\" + lexeme.str + \\\"', possible fields: \\\" + possibleFields\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.fields = [lexeme.str]\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseTerm = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n parser.currentClause.term = lexeme.str.toLowerCase()\\n\\n if (lexeme.str.indexOf(\\\"*\\\") != -1) {\\n parser.currentClause.usePipeline = false\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseEditDistance = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var editDistance = parseInt(lexeme.str, 10)\\n\\n if (isNaN(editDistance)) {\\n var errorMessage = \\\"edit distance must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.editDistance = editDistance\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseBoost = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var boost = parseInt(lexeme.str, 10)\\n\\n if (isNaN(boost)) {\\n var errorMessage = \\\"boost must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.boost = boost\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\n /**\\n * export the module via AMD, CommonJS or as a browser global\\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\\n */\\n ;(function (root, factory) {\\n if (true) {\\n // AMD. Register as an anonymous module.\\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\\n\\t\\t\\t\\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_FACTORY__),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\\n } else {}\\n }(this, function () {\\n /**\\n * Just return a value to define the module export.\\n * This example returns an object, but the module\\n * can return a function as the exported value.\\n */\\n return lunr\\n }))\\n})();\\n\\n\\n/***/ }),\\n/* 5 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return !!exec();\\n } catch (error) {\\n return true;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 6 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar createPropertyDescriptor = __webpack_require__(22);\\n\\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\\n} : function (object, key, value) {\\n object[key] = value;\\n return object;\\n};\\n\\n\\n/***/ }),\\n/* 7 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n return typeof it === 'object' ? it !== null : typeof it === 'function';\\n};\\n\\n\\n/***/ }),\\n/* 8 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !fails(function () {\\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\\n});\\n\\n\\n/***/ }),\\n/* 9 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\nvar anObject = __webpack_require__(2);\\nvar toPrimitive = __webpack_require__(35);\\n\\nvar nativeDefineProperty = Object.defineProperty;\\n\\n// `Object.defineProperty` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\\n anObject(O);\\n P = toPrimitive(P, true);\\n anObject(Attributes);\\n if (IE8_DOM_DEFINE) try {\\n return nativeDefineProperty(O, P, Attributes);\\n } catch (error) { /* empty */ }\\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\\n if ('value' in Attributes) O[P] = Attributes.value;\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 10 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar setGlobal = __webpack_require__(20);\\nvar inspectSource = __webpack_require__(23);\\nvar InternalStateModule = __webpack_require__(16);\\n\\nvar getInternalState = InternalStateModule.get;\\nvar enforceInternalState = InternalStateModule.enforce;\\nvar TEMPLATE = String(String).split('String');\\n\\n(module.exports = function (O, key, value, options) {\\n var unsafe = options ? !!options.unsafe : false;\\n var simple = options ? !!options.enumerable : false;\\n var noTargetGet = options ? !!options.noTargetGet : false;\\n if (typeof value == 'function') {\\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\\n }\\n if (O === global) {\\n if (simple) O[key] = value;\\n else setGlobal(key, value);\\n return;\\n } else if (!unsafe) {\\n delete O[key];\\n } else if (!noTargetGet && O[key]) {\\n simple = true;\\n }\\n if (simple) O[key] = value;\\n else createNonEnumerableProperty(O, key, value);\\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\\n})(Function.prototype, 'toString', function toString() {\\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\\n});\\n\\n\\n/***/ }),\\n/* 11 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar path = __webpack_require__(40);\\nvar global = __webpack_require__(0);\\n\\nvar aFunction = function (variable) {\\n return typeof variable == 'function' ? variable : undefined;\\n};\\n\\nmodule.exports = function (namespace, method) {\\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\\n};\\n\\n\\n/***/ }),\\n/* 12 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = false;\\n\\n\\n/***/ }),\\n/* 13 */\\n/***/ (function(module, exports) {\\n\\nvar toString = {}.toString;\\n\\nmodule.exports = function (it) {\\n return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/***/ }),\\n/* 14 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 15 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n if (typeof it != 'function') {\\n throw TypeError(String(it) + ' is not a function');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 16 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar objectHas = __webpack_require__(3);\\nvar sharedKey = __webpack_require__(24);\\nvar hiddenKeys = __webpack_require__(25);\\n\\nvar WeakMap = global.WeakMap;\\nvar set, get, has;\\n\\nvar enforce = function (it) {\\n return has(it) ? get(it) : set(it, {});\\n};\\n\\nvar getterFor = function (TYPE) {\\n return function (it) {\\n var state;\\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\\n } return state;\\n };\\n};\\n\\nif (NATIVE_WEAK_MAP) {\\n var store = new WeakMap();\\n var wmget = store.get;\\n var wmhas = store.has;\\n var wmset = store.set;\\n set = function (it, metadata) {\\n wmset.call(store, it, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return wmget.call(store, it) || {};\\n };\\n has = function (it) {\\n return wmhas.call(store, it);\\n };\\n} else {\\n var STATE = sharedKey('state');\\n hiddenKeys[STATE] = true;\\n set = function (it, metadata) {\\n createNonEnumerableProperty(it, STATE, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return objectHas(it, STATE) ? it[STATE] : {};\\n };\\n has = function (it) {\\n return objectHas(it, STATE);\\n };\\n}\\n\\nmodule.exports = {\\n set: set,\\n get: get,\\n has: has,\\n enforce: enforce,\\n getterFor: getterFor\\n};\\n\\n\\n/***/ }),\\n/* 17 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar setGlobal = __webpack_require__(20);\\nvar copyConstructorProperties = __webpack_require__(67);\\nvar isForced = __webpack_require__(43);\\n\\n/*\\n options.target - name of the target object\\n options.global - target is the global object\\n options.stat - export as static methods of target\\n options.proto - export as prototype methods of target\\n options.real - real prototype method for the `pure` version\\n options.forced - export even if the native feature is available\\n options.bind - bind methods to the target, required for the `pure` version\\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\\n options.sham - add a flag to not completely full polyfills\\n options.enumerable - export as enumerable property\\n options.noTargetGet - prevent calling a getter on target\\n*/\\nmodule.exports = function (options, source) {\\n var TARGET = options.target;\\n var GLOBAL = options.global;\\n var STATIC = options.stat;\\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\\n if (GLOBAL) {\\n target = global;\\n } else if (STATIC) {\\n target = global[TARGET] || setGlobal(TARGET, {});\\n } else {\\n target = (global[TARGET] || {}).prototype;\\n }\\n if (target) for (key in source) {\\n sourceProperty = source[key];\\n if (options.noTargetGet) {\\n descriptor = getOwnPropertyDescriptor(target, key);\\n targetProperty = descriptor && descriptor.value;\\n } else targetProperty = target[key];\\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\\n // contained in target\\n if (!FORCED && targetProperty !== undefined) {\\n if (typeof sourceProperty === typeof targetProperty) continue;\\n copyConstructorProperties(sourceProperty, targetProperty);\\n }\\n // add a flag to not completely full polyfills\\n if (options.sham || (targetProperty && targetProperty.sham)) {\\n createNonEnumerableProperty(sourceProperty, 'sham', true);\\n }\\n // extend global\\n redefine(target, key, sourceProperty, options);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 18 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n// toObject with fallback for non-array-like ES3 strings\\nvar IndexedObject = __webpack_require__(66);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\nmodule.exports = function (it) {\\n return IndexedObject(requireObjectCoercible(it));\\n};\\n\\n\\n/***/ }),\\n/* 19 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar test = {};\\n\\ntest[TO_STRING_TAG] = 'z';\\n\\nmodule.exports = String(test) === '[object z]';\\n\\n\\n/***/ }),\\n/* 20 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\n\\nmodule.exports = function (key, value) {\\n try {\\n createNonEnumerableProperty(global, key, value);\\n } catch (error) {\\n global[key] = value;\\n } return value;\\n};\\n\\n\\n/***/ }),\\n/* 21 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\n\\nvar document = global.document;\\n// typeof document.createElement is 'object' in old IE\\nvar EXISTS = isObject(document) && isObject(document.createElement);\\n\\nmodule.exports = function (it) {\\n return EXISTS ? document.createElement(it) : {};\\n};\\n\\n\\n/***/ }),\\n/* 22 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (bitmap, value) {\\n return {\\n enumerable: !(bitmap & 1),\\n configurable: !(bitmap & 2),\\n writable: !(bitmap & 4),\\n value: value\\n };\\n};\\n\\n\\n/***/ }),\\n/* 23 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar store = __webpack_require__(33);\\n\\nvar functionToString = Function.toString;\\n\\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\\nif (typeof store.inspectSource != 'function') {\\n store.inspectSource = function (it) {\\n return functionToString.call(it);\\n };\\n}\\n\\nmodule.exports = store.inspectSource;\\n\\n\\n/***/ }),\\n/* 24 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar shared = __webpack_require__(32);\\nvar uid = __webpack_require__(36);\\n\\nvar keys = shared('keys');\\n\\nmodule.exports = function (key) {\\n return keys[key] || (keys[key] = uid(key));\\n};\\n\\n\\n/***/ }),\\n/* 25 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 26 */\\n/***/ (function(module, exports) {\\n\\nvar ceil = Math.ceil;\\nvar floor = Math.floor;\\n\\n// `ToInteger` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tointeger\\nmodule.exports = function (argument) {\\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\\n};\\n\\n\\n/***/ }),\\n/* 27 */\\n/***/ (function(module, exports) {\\n\\n// `RequireObjectCoercible` abstract operation\\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\\nmodule.exports = function (it) {\\n if (it == undefined) throw TypeError(\\\"Can't call method on \\\" + it);\\n return it;\\n};\\n\\n\\n/***/ }),\\n/* 28 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar propertyIsEnumerableModule = __webpack_require__(65);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar toIndexedObject = __webpack_require__(18);\\nvar toPrimitive = __webpack_require__(35);\\nvar has = __webpack_require__(3);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\n\\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// `Object.getOwnPropertyDescriptor` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\\n O = toIndexedObject(O);\\n P = toPrimitive(P, true);\\n if (IE8_DOM_DEFINE) try {\\n return nativeGetOwnPropertyDescriptor(O, P);\\n } catch (error) { /* empty */ }\\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\\n};\\n\\n\\n/***/ }),\\n/* 29 */\\n/***/ (function(module, exports) {\\n\\n// IE8- don't enum bug keys\\nmodule.exports = [\\n 'constructor',\\n 'hasOwnProperty',\\n 'isPrototypeOf',\\n 'propertyIsEnumerable',\\n 'toLocaleString',\\n 'toString',\\n 'valueOf'\\n];\\n\\n\\n/***/ }),\\n/* 30 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar defineProperty = __webpack_require__(9).f;\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n\\nmodule.exports = function (it, TAG, STATIC) {\\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 31 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar aFunction = __webpack_require__(15);\\n\\nvar PromiseCapability = function (C) {\\n var resolve, reject;\\n this.promise = new C(function ($$resolve, $$reject) {\\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\\n resolve = $$resolve;\\n reject = $$reject;\\n });\\n this.resolve = aFunction(resolve);\\n this.reject = aFunction(reject);\\n};\\n\\n// 25.4.1.5 NewPromiseCapability(C)\\nmodule.exports.f = function (C) {\\n return new PromiseCapability(C);\\n};\\n\\n\\n/***/ }),\\n/* 32 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar IS_PURE = __webpack_require__(12);\\nvar store = __webpack_require__(33);\\n\\n(module.exports = function (key, value) {\\n return store[key] || (store[key] = value !== undefined ? value : {});\\n})('versions', []).push({\\n version: '3.6.5',\\n mode: IS_PURE ? 'pure' : 'global',\\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\\n});\\n\\n\\n/***/ }),\\n/* 33 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar setGlobal = __webpack_require__(20);\\n\\nvar SHARED = '__core-js_shared__';\\nvar store = global[SHARED] || setGlobal(SHARED, {});\\n\\nmodule.exports = store;\\n\\n\\n/***/ }),\\n/* 34 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar fails = __webpack_require__(5);\\nvar createElement = __webpack_require__(21);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !DESCRIPTORS && !fails(function () {\\n return Object.defineProperty(createElement('div'), 'a', {\\n get: function () { return 7; }\\n }).a != 7;\\n});\\n\\n\\n/***/ }),\\n/* 35 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\n// `ToPrimitive` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toprimitive\\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\\n// and the second argument - flag - preferred type is a string\\nmodule.exports = function (input, PREFERRED_STRING) {\\n if (!isObject(input)) return input;\\n var fn, val;\\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n throw TypeError(\\\"Can't convert object to primitive value\\\");\\n};\\n\\n\\n/***/ }),\\n/* 36 */\\n/***/ (function(module, exports) {\\n\\nvar id = 0;\\nvar postfix = Math.random();\\n\\nmodule.exports = function (key) {\\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\\n};\\n\\n\\n/***/ }),\\n/* 37 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\\n // Chrome 38 Symbol has incorrect toString conversion\\n // eslint-disable-next-line no-undef\\n return !String(Symbol());\\n});\\n\\n\\n/***/ }),\\n/* 38 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classofRaw = __webpack_require__(13);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n// ES3 wrong here\\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\\n\\n// fallback for IE11 Script Access Denied error\\nvar tryGet = function (it, key) {\\n try {\\n return it[key];\\n } catch (error) { /* empty */ }\\n};\\n\\n// getting tag from ES6+ `Object.prototype.toString`\\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\\n var O, tag, result;\\n return it === undefined ? 'Undefined' : it === null ? 'Null'\\n // @@toStringTag case\\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\\n // builtinTag case\\n : CORRECT_ARGUMENTS ? classofRaw(O)\\n // ES3 arguments fallback\\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\\n};\\n\\n\\n/***/ }),\\n/* 39 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar createIteratorConstructor = __webpack_require__(73);\\nvar getPrototypeOf = __webpack_require__(45);\\nvar setPrototypeOf = __webpack_require__(78);\\nvar setToStringTag = __webpack_require__(30);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\nvar Iterators = __webpack_require__(14);\\nvar IteratorsCore = __webpack_require__(44);\\n\\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar KEYS = 'keys';\\nvar VALUES = 'values';\\nvar ENTRIES = 'entries';\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\\n createIteratorConstructor(IteratorConstructor, NAME, next);\\n\\n var getIterationMethod = function (KIND) {\\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\\n switch (KIND) {\\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\\n } return function () { return new IteratorConstructor(this); };\\n };\\n\\n var TO_STRING_TAG = NAME + ' Iterator';\\n var INCORRECT_VALUES_NAME = false;\\n var IterablePrototype = Iterable.prototype;\\n var nativeIterator = IterablePrototype[ITERATOR]\\n || IterablePrototype['@@iterator']\\n || DEFAULT && IterablePrototype[DEFAULT];\\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\\n var CurrentIteratorPrototype, methods, KEY;\\n\\n // fix native\\n if (anyNativeIterator) {\\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\\n if (setPrototypeOf) {\\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\\n }\\n }\\n // Set @@toStringTag to native iterators\\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\\n }\\n }\\n\\n // fix Array#{values, @@iterator}.name in V8 / FF\\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\\n INCORRECT_VALUES_NAME = true;\\n defaultIterator = function values() { return nativeIterator.call(this); };\\n }\\n\\n // define iterator\\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\\n }\\n Iterators[NAME] = defaultIterator;\\n\\n // export additional methods\\n if (DEFAULT) {\\n methods = {\\n values: getIterationMethod(VALUES),\\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\\n entries: getIterationMethod(ENTRIES)\\n };\\n if (FORCED) for (KEY in methods) {\\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\\n redefine(IterablePrototype, KEY, methods[KEY]);\\n }\\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\\n }\\n\\n return methods;\\n};\\n\\n\\n/***/ }),\\n/* 40 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global;\\n\\n\\n/***/ }),\\n/* 41 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toIndexedObject = __webpack_require__(18);\\nvar indexOf = __webpack_require__(70).indexOf;\\nvar hiddenKeys = __webpack_require__(25);\\n\\nmodule.exports = function (object, names) {\\n var O = toIndexedObject(object);\\n var i = 0;\\n var result = [];\\n var key;\\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\\n // Don't enum bug & hidden keys\\n while (names.length > i) if (has(O, key = names[i++])) {\\n ~indexOf(result, key) || result.push(key);\\n }\\n return result;\\n};\\n\\n\\n/***/ }),\\n/* 42 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar min = Math.min;\\n\\n// `ToLength` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tolength\\nmodule.exports = function (argument) {\\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\\n};\\n\\n\\n/***/ }),\\n/* 43 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nvar replacement = /#|\\\\.prototype\\\\./;\\n\\nvar isForced = function (feature, detection) {\\n var value = data[normalize(feature)];\\n return value == POLYFILL ? true\\n : value == NATIVE ? false\\n : typeof detection == 'function' ? fails(detection)\\n : !!detection;\\n};\\n\\nvar normalize = isForced.normalize = function (string) {\\n return String(string).replace(replacement, '.').toLowerCase();\\n};\\n\\nvar data = isForced.data = {};\\nvar NATIVE = isForced.NATIVE = 'N';\\nvar POLYFILL = isForced.POLYFILL = 'P';\\n\\nmodule.exports = isForced;\\n\\n\\n/***/ }),\\n/* 44 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getPrototypeOf = __webpack_require__(45);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar BUGGY_SAFARI_ITERATORS = false;\\n\\nvar returnThis = function () { return this; };\\n\\n// `%IteratorPrototype%` object\\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\\n\\nif ([].keys) {\\n arrayIterator = [].keys();\\n // Safari 8 has buggy iterators w/o `next`\\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\\n else {\\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\\n }\\n}\\n\\nif (IteratorPrototype == undefined) IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\\n}\\n\\nmodule.exports = {\\n IteratorPrototype: IteratorPrototype,\\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\\n};\\n\\n\\n/***/ }),\\n/* 45 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toObject = __webpack_require__(74);\\nvar sharedKey = __webpack_require__(24);\\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\\n\\nvar IE_PROTO = sharedKey('IE_PROTO');\\nvar ObjectPrototype = Object.prototype;\\n\\n// `Object.getPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\\n O = toObject(O);\\n if (has(O, IE_PROTO)) return O[IE_PROTO];\\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\\n return O.constructor.prototype;\\n } return O instanceof Object ? ObjectPrototype : null;\\n};\\n\\n\\n/***/ }),\\n/* 46 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar defineProperties = __webpack_require__(76);\\nvar enumBugKeys = __webpack_require__(29);\\nvar hiddenKeys = __webpack_require__(25);\\nvar html = __webpack_require__(47);\\nvar documentCreateElement = __webpack_require__(21);\\nvar sharedKey = __webpack_require__(24);\\n\\nvar GT = '>';\\nvar LT = '<';\\nvar PROTOTYPE = 'prototype';\\nvar SCRIPT = 'script';\\nvar IE_PROTO = sharedKey('IE_PROTO');\\n\\nvar EmptyConstructor = function () { /* empty */ };\\n\\nvar scriptTag = function (content) {\\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\\n};\\n\\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\\n activeXDocument.write(scriptTag(''));\\n activeXDocument.close();\\n var temp = activeXDocument.parentWindow.Object;\\n activeXDocument = null; // avoid memory leak\\n return temp;\\n};\\n\\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\\nvar NullProtoObjectViaIFrame = function () {\\n // Thrash, waste and sodomy: IE GC bug\\n var iframe = documentCreateElement('iframe');\\n var JS = 'java' + SCRIPT + ':';\\n var iframeDocument;\\n iframe.style.display = 'none';\\n html.appendChild(iframe);\\n // https://github.com/zloirock/core-js/issues/475\\n iframe.src = String(JS);\\n iframeDocument = iframe.contentWindow.document;\\n iframeDocument.open();\\n iframeDocument.write(scriptTag('document.F=Object'));\\n iframeDocument.close();\\n return iframeDocument.F;\\n};\\n\\n// Check for document.domain and active x support\\n// No need to use active x approach when document.domain is not set\\n// see https://github.com/es-shims/es5-shim/issues/150\\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\\n// avoid IE GC bug\\nvar activeXDocument;\\nvar NullProtoObject = function () {\\n try {\\n /* global ActiveXObject */\\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\\n } catch (error) { /* ignore */ }\\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\\n var length = enumBugKeys.length;\\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\\n return NullProtoObject();\\n};\\n\\nhiddenKeys[IE_PROTO] = true;\\n\\n// `Object.create` method\\n// https://tc39.github.io/ecma262/#sec-object.create\\nmodule.exports = Object.create || function create(O, Properties) {\\n var result;\\n if (O !== null) {\\n EmptyConstructor[PROTOTYPE] = anObject(O);\\n result = new EmptyConstructor();\\n EmptyConstructor[PROTOTYPE] = null;\\n // add \\\"__proto__\\\" for Object.getPrototypeOf polyfill\\n result[IE_PROTO] = O;\\n } else result = NullProtoObject();\\n return Properties === undefined ? result : defineProperties(result, Properties);\\n};\\n\\n\\n/***/ }),\\n/* 47 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('document', 'documentElement');\\n\\n\\n/***/ }),\\n/* 48 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global.Promise;\\n\\n\\n/***/ }),\\n/* 49 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isArrayIteratorMethod = __webpack_require__(88);\\nvar toLength = __webpack_require__(42);\\nvar bind = __webpack_require__(50);\\nvar getIteratorMethod = __webpack_require__(89);\\nvar callWithSafeIterationClosing = __webpack_require__(90);\\n\\nvar Result = function (stopped, result) {\\n this.stopped = stopped;\\n this.result = result;\\n};\\n\\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\\n var iterator, iterFn, index, length, result, next, step;\\n\\n if (IS_ITERATOR) {\\n iterator = iterable;\\n } else {\\n iterFn = getIteratorMethod(iterable);\\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\\n // optimisation for array iterators\\n if (isArrayIteratorMethod(iterFn)) {\\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\\n result = AS_ENTRIES\\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\\n : boundFunction(iterable[index]);\\n if (result && result instanceof Result) return result;\\n } return new Result(false);\\n }\\n iterator = iterFn.call(iterable);\\n }\\n\\n next = iterator.next;\\n while (!(step = next.call(iterator)).done) {\\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\\n if (typeof result == 'object' && result && result instanceof Result) return result;\\n } return new Result(false);\\n};\\n\\niterate.stop = function (result) {\\n return new Result(true, result);\\n};\\n\\n\\n/***/ }),\\n/* 50 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar aFunction = __webpack_require__(15);\\n\\n// optional / simple context binding\\nmodule.exports = function (fn, that, length) {\\n aFunction(fn);\\n if (that === undefined) return fn;\\n switch (length) {\\n case 0: return function () {\\n return fn.call(that);\\n };\\n case 1: return function (a) {\\n return fn.call(that, a);\\n };\\n case 2: return function (a, b) {\\n return fn.call(that, a, b);\\n };\\n case 3: return function (a, b, c) {\\n return fn.call(that, a, b, c);\\n };\\n }\\n return function (/* ...args */) {\\n return fn.apply(that, arguments);\\n };\\n};\\n\\n\\n/***/ }),\\n/* 51 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aFunction = __webpack_require__(15);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\n// `SpeciesConstructor` abstract operation\\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\\nmodule.exports = function (O, defaultConstructor) {\\n var C = anObject(O).constructor;\\n var S;\\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\\n};\\n\\n\\n/***/ }),\\n/* 52 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\nvar bind = __webpack_require__(50);\\nvar html = __webpack_require__(47);\\nvar createElement = __webpack_require__(21);\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar location = global.location;\\nvar set = global.setImmediate;\\nvar clear = global.clearImmediate;\\nvar process = global.process;\\nvar MessageChannel = global.MessageChannel;\\nvar Dispatch = global.Dispatch;\\nvar counter = 0;\\nvar queue = {};\\nvar ONREADYSTATECHANGE = 'onreadystatechange';\\nvar defer, channel, port;\\n\\nvar run = function (id) {\\n // eslint-disable-next-line no-prototype-builtins\\n if (queue.hasOwnProperty(id)) {\\n var fn = queue[id];\\n delete queue[id];\\n fn();\\n }\\n};\\n\\nvar runner = function (id) {\\n return function () {\\n run(id);\\n };\\n};\\n\\nvar listener = function (event) {\\n run(event.data);\\n};\\n\\nvar post = function (id) {\\n // old engines have not location.origin\\n global.postMessage(id + '', location.protocol + '//' + location.host);\\n};\\n\\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\\nif (!set || !clear) {\\n set = function setImmediate(fn) {\\n var args = [];\\n var i = 1;\\n while (arguments.length > i) args.push(arguments[i++]);\\n queue[++counter] = function () {\\n // eslint-disable-next-line no-new-func\\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\\n };\\n defer(counter);\\n return counter;\\n };\\n clear = function clearImmediate(id) {\\n delete queue[id];\\n };\\n // Node.js 0.8-\\n if (classof(process) == 'process') {\\n defer = function (id) {\\n process.nextTick(runner(id));\\n };\\n // Sphere (JS game engine) Dispatch API\\n } else if (Dispatch && Dispatch.now) {\\n defer = function (id) {\\n Dispatch.now(runner(id));\\n };\\n // Browsers with MessageChannel, includes WebWorkers\\n // except iOS - https://github.com/zloirock/core-js/issues/624\\n } else if (MessageChannel && !IS_IOS) {\\n channel = new MessageChannel();\\n port = channel.port2;\\n channel.port1.onmessage = listener;\\n defer = bind(port.postMessage, port, 1);\\n // Browsers with postMessage, skip WebWorkers\\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\\n } else if (\\n global.addEventListener &&\\n typeof postMessage == 'function' &&\\n !global.importScripts &&\\n !fails(post) &&\\n location.protocol !== 'file:'\\n ) {\\n defer = post;\\n global.addEventListener('message', listener, false);\\n // IE8-\\n } else if (ONREADYSTATECHANGE in createElement('script')) {\\n defer = function (id) {\\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\\n html.removeChild(this);\\n run(id);\\n };\\n };\\n // Rest old browsers\\n } else {\\n defer = function (id) {\\n setTimeout(runner(id), 0);\\n };\\n }\\n}\\n\\nmodule.exports = {\\n set: set,\\n clear: clear\\n};\\n\\n\\n/***/ }),\\n/* 53 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar userAgent = __webpack_require__(54);\\n\\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\\n\\n\\n/***/ }),\\n/* 54 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\\n\\n\\n/***/ }),\\n/* 55 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isObject = __webpack_require__(7);\\nvar newPromiseCapability = __webpack_require__(31);\\n\\nmodule.exports = function (C, x) {\\n anObject(C);\\n if (isObject(x) && x.constructor === C) return x;\\n var promiseCapability = newPromiseCapability.f(C);\\n var resolve = promiseCapability.resolve;\\n resolve(x);\\n return promiseCapability.promise;\\n};\\n\\n\\n/***/ }),\\n/* 56 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return { error: false, value: exec() };\\n } catch (error) {\\n return { error: true, value: error };\\n }\\n};\\n\\n\\n/***/ }),\\n/* 57 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n__webpack_require__(58);\\n__webpack_require__(63);\\n__webpack_require__(80);\\n__webpack_require__(84);\\n__webpack_require__(95);\\n__webpack_require__(96);\\nvar path = __webpack_require__(40);\\n\\nmodule.exports = path.Promise;\\n\\n\\n/***/ }),\\n/* 58 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar redefine = __webpack_require__(10);\\nvar toString = __webpack_require__(62);\\n\\n// `Object.prototype.toString` method\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nif (!TO_STRING_TAG_SUPPORT) {\\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\\n}\\n\\n\\n/***/ }),\\n/* 59 */\\n/***/ (function(module, exports) {\\n\\nvar g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n/***/ }),\\n/* 60 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\n\\nmodule.exports = NATIVE_SYMBOL\\n // eslint-disable-next-line no-undef\\n && !Symbol.sham\\n // eslint-disable-next-line no-undef\\n && typeof Symbol.iterator == 'symbol';\\n\\n\\n/***/ }),\\n/* 61 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar inspectSource = __webpack_require__(23);\\n\\nvar WeakMap = global.WeakMap;\\n\\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\\n\\n\\n/***/ }),\\n/* 62 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classof = __webpack_require__(38);\\n\\n// `Object.prototype.toString` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\\n return '[object ' + classof(this) + ']';\\n};\\n\\n\\n/***/ }),\\n/* 63 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar charAt = __webpack_require__(64).charAt;\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar STRING_ITERATOR = 'String Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\\n\\n// `String.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\\ndefineIterator(String, 'String', function (iterated) {\\n setInternalState(this, {\\n type: STRING_ITERATOR,\\n string: String(iterated),\\n index: 0\\n });\\n// `%StringIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\\n}, function next() {\\n var state = getInternalState(this);\\n var string = state.string;\\n var index = state.index;\\n var point;\\n if (index >= string.length) return { value: undefined, done: true };\\n point = charAt(string, index);\\n state.index += point.length;\\n return { value: point, done: false };\\n});\\n\\n\\n/***/ }),\\n/* 64 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `String.prototype.{ codePointAt, at }` methods implementation\\nvar createMethod = function (CONVERT_TO_STRING) {\\n return function ($this, pos) {\\n var S = String(requireObjectCoercible($this));\\n var position = toInteger(pos);\\n var size = S.length;\\n var first, second;\\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\\n first = S.charCodeAt(position);\\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\\n ? CONVERT_TO_STRING ? S.charAt(position) : first\\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\\n };\\n};\\n\\nmodule.exports = {\\n // `String.prototype.codePointAt` method\\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\\n codeAt: createMethod(false),\\n // `String.prototype.at` method\\n // https://github.com/mathiasbynens/String.prototype.at\\n charAt: createMethod(true)\\n};\\n\\n\\n/***/ }),\\n/* 65 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// Nashorn ~ JDK8 bug\\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\\n\\n// `Object.prototype.propertyIsEnumerable` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\\n var descriptor = getOwnPropertyDescriptor(this, V);\\n return !!descriptor && descriptor.enumerable;\\n} : nativePropertyIsEnumerable;\\n\\n\\n/***/ }),\\n/* 66 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\n\\nvar split = ''.split;\\n\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nmodule.exports = fails(function () {\\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\\n // eslint-disable-next-line no-prototype-builtins\\n return !Object('z').propertyIsEnumerable(0);\\n}) ? function (it) {\\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\\n} : Object;\\n\\n\\n/***/ }),\\n/* 67 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar ownKeys = __webpack_require__(68);\\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nmodule.exports = function (target, source) {\\n var keys = ownKeys(source);\\n var defineProperty = definePropertyModule.f;\\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i];\\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\\n }\\n};\\n\\n\\n/***/ }),\\n/* 68 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar getOwnPropertyNamesModule = __webpack_require__(69);\\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\\nvar anObject = __webpack_require__(2);\\n\\n// all object keys, includes non-enumerable and symbols\\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\\n var keys = getOwnPropertyNamesModule.f(anObject(it));\\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\\n};\\n\\n\\n/***/ }),\\n/* 69 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\\n\\n// `Object.getOwnPropertyNames` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\\n return internalObjectKeys(O, hiddenKeys);\\n};\\n\\n\\n/***/ }),\\n/* 70 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar toLength = __webpack_require__(42);\\nvar toAbsoluteIndex = __webpack_require__(71);\\n\\n// `Array.prototype.{ indexOf, includes }` methods implementation\\nvar createMethod = function (IS_INCLUDES) {\\n return function ($this, el, fromIndex) {\\n var O = toIndexedObject($this);\\n var length = toLength(O.length);\\n var index = toAbsoluteIndex(fromIndex, length);\\n var value;\\n // Array#includes uses SameValueZero equality algorithm\\n // eslint-disable-next-line no-self-compare\\n if (IS_INCLUDES && el != el) while (length > index) {\\n value = O[index++];\\n // eslint-disable-next-line no-self-compare\\n if (value != value) return true;\\n // Array#indexOf ignores holes, Array#includes - not\\n } else for (;length > index; index++) {\\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\\n } return !IS_INCLUDES && -1;\\n };\\n};\\n\\nmodule.exports = {\\n // `Array.prototype.includes` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\\n includes: createMethod(true),\\n // `Array.prototype.indexOf` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\\n indexOf: createMethod(false)\\n};\\n\\n\\n/***/ }),\\n/* 71 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar max = Math.max;\\nvar min = Math.min;\\n\\n// Helper for a popular repeating case of the spec:\\n// Let integer be ? ToInteger(index).\\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\\nmodule.exports = function (index, length) {\\n var integer = toInteger(index);\\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\\n};\\n\\n\\n/***/ }),\\n/* 72 */\\n/***/ (function(module, exports) {\\n\\nexports.f = Object.getOwnPropertySymbols;\\n\\n\\n/***/ }),\\n/* 73 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\\nvar create = __webpack_require__(46);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar setToStringTag = __webpack_require__(30);\\nvar Iterators = __webpack_require__(14);\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (IteratorConstructor, NAME, next) {\\n var TO_STRING_TAG = NAME + ' Iterator';\\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\\n Iterators[TO_STRING_TAG] = returnThis;\\n return IteratorConstructor;\\n};\\n\\n\\n/***/ }),\\n/* 74 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `ToObject` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toobject\\nmodule.exports = function (argument) {\\n return Object(requireObjectCoercible(argument));\\n};\\n\\n\\n/***/ }),\\n/* 75 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !fails(function () {\\n function F() { /* empty */ }\\n F.prototype.constructor = null;\\n return Object.getPrototypeOf(new F()) !== F.prototype;\\n});\\n\\n\\n/***/ }),\\n/* 76 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar anObject = __webpack_require__(2);\\nvar objectKeys = __webpack_require__(77);\\n\\n// `Object.defineProperties` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\\n anObject(O);\\n var keys = objectKeys(Properties);\\n var length = keys.length;\\n var index = 0;\\n var key;\\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 77 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\n// `Object.keys` method\\n// https://tc39.github.io/ecma262/#sec-object.keys\\nmodule.exports = Object.keys || function keys(O) {\\n return internalObjectKeys(O, enumBugKeys);\\n};\\n\\n\\n/***/ }),\\n/* 78 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aPossiblePrototype = __webpack_require__(79);\\n\\n// `Object.setPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\\n// Works with __proto__ only. Old v8 can't work with null proto objects.\\n/* eslint-disable no-proto */\\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\\n var CORRECT_SETTER = false;\\n var test = {};\\n var setter;\\n try {\\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\\n setter.call(test, []);\\n CORRECT_SETTER = test instanceof Array;\\n } catch (error) { /* empty */ }\\n return function setPrototypeOf(O, proto) {\\n anObject(O);\\n aPossiblePrototype(proto);\\n if (CORRECT_SETTER) setter.call(O, proto);\\n else O.__proto__ = proto;\\n return O;\\n };\\n}() : undefined);\\n\\n\\n/***/ }),\\n/* 79 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it) && it !== null) {\\n throw TypeError(\\\"Can't set \\\" + String(it) + ' as a prototype');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 80 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar DOMIterables = __webpack_require__(81);\\nvar ArrayIteratorMethods = __webpack_require__(82);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar ArrayValues = ArrayIteratorMethods.values;\\n\\nfor (var COLLECTION_NAME in DOMIterables) {\\n var Collection = global[COLLECTION_NAME];\\n var CollectionPrototype = Collection && Collection.prototype;\\n if (CollectionPrototype) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\\n } catch (error) {\\n CollectionPrototype[ITERATOR] = ArrayValues;\\n }\\n if (!CollectionPrototype[TO_STRING_TAG]) {\\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\\n }\\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\\n } catch (error) {\\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\\n }\\n }\\n }\\n}\\n\\n\\n/***/ }),\\n/* 81 */\\n/***/ (function(module, exports) {\\n\\n// iterable DOM collections\\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\\nmodule.exports = {\\n CSSRuleList: 0,\\n CSSStyleDeclaration: 0,\\n CSSValueList: 0,\\n ClientRectList: 0,\\n DOMRectList: 0,\\n DOMStringList: 0,\\n DOMTokenList: 1,\\n DataTransferItemList: 0,\\n FileList: 0,\\n HTMLAllCollection: 0,\\n HTMLCollection: 0,\\n HTMLFormElement: 0,\\n HTMLSelectElement: 0,\\n MediaList: 0,\\n MimeTypeArray: 0,\\n NamedNodeMap: 0,\\n NodeList: 1,\\n PaintRequestList: 0,\\n Plugin: 0,\\n PluginArray: 0,\\n SVGLengthList: 0,\\n SVGNumberList: 0,\\n SVGPathSegList: 0,\\n SVGPointList: 0,\\n SVGStringList: 0,\\n SVGTransformList: 0,\\n SourceBufferList: 0,\\n StyleSheetList: 0,\\n TextTrackCueList: 0,\\n TextTrackList: 0,\\n TouchList: 0\\n};\\n\\n\\n/***/ }),\\n/* 82 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar addToUnscopables = __webpack_require__(83);\\nvar Iterators = __webpack_require__(14);\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar ARRAY_ITERATOR = 'Array Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\\n\\n// `Array.prototype.entries` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\\n// `Array.prototype.keys` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\\n// `Array.prototype.values` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\\n// `Array.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\\n// `CreateArrayIterator` internal method\\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\\n setInternalState(this, {\\n type: ARRAY_ITERATOR,\\n target: toIndexedObject(iterated), // target\\n index: 0, // next index\\n kind: kind // kind\\n });\\n// `%ArrayIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\\n}, function () {\\n var state = getInternalState(this);\\n var target = state.target;\\n var kind = state.kind;\\n var index = state.index++;\\n if (!target || index >= target.length) {\\n state.target = undefined;\\n return { value: undefined, done: true };\\n }\\n if (kind == 'keys') return { value: index, done: false };\\n if (kind == 'values') return { value: target[index], done: false };\\n return { value: [index, target[index]], done: false };\\n}, 'values');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values%\\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\\nIterators.Arguments = Iterators.Array;\\n\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\naddToUnscopables('keys');\\naddToUnscopables('values');\\naddToUnscopables('entries');\\n\\n\\n/***/ }),\\n/* 83 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar create = __webpack_require__(46);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\\nvar ArrayPrototype = Array.prototype;\\n\\n// Array.prototype[@@unscopables]\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\\n configurable: true,\\n value: create(null)\\n });\\n}\\n\\n// add a key to Array.prototype[@@unscopables]\\nmodule.exports = function (key) {\\n ArrayPrototype[UNSCOPABLES][key] = true;\\n};\\n\\n\\n/***/ }),\\n/* 84 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar global = __webpack_require__(0);\\nvar getBuiltIn = __webpack_require__(11);\\nvar NativePromise = __webpack_require__(48);\\nvar redefine = __webpack_require__(10);\\nvar redefineAll = __webpack_require__(85);\\nvar setToStringTag = __webpack_require__(30);\\nvar setSpecies = __webpack_require__(86);\\nvar isObject = __webpack_require__(7);\\nvar aFunction = __webpack_require__(15);\\nvar anInstance = __webpack_require__(87);\\nvar classof = __webpack_require__(13);\\nvar inspectSource = __webpack_require__(23);\\nvar iterate = __webpack_require__(49);\\nvar checkCorrectnessOfIteration = __webpack_require__(91);\\nvar speciesConstructor = __webpack_require__(51);\\nvar task = __webpack_require__(52).set;\\nvar microtask = __webpack_require__(92);\\nvar promiseResolve = __webpack_require__(55);\\nvar hostReportErrors = __webpack_require__(93);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar InternalStateModule = __webpack_require__(16);\\nvar isForced = __webpack_require__(43);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar V8_VERSION = __webpack_require__(94);\\n\\nvar SPECIES = wellKnownSymbol('species');\\nvar PROMISE = 'Promise';\\nvar getInternalState = InternalStateModule.get;\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\\nvar PromiseConstructor = NativePromise;\\nvar TypeError = global.TypeError;\\nvar document = global.document;\\nvar process = global.process;\\nvar $fetch = getBuiltIn('fetch');\\nvar newPromiseCapability = newPromiseCapabilityModule.f;\\nvar newGenericPromiseCapability = newPromiseCapability;\\nvar IS_NODE = classof(process) == 'process';\\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\\nvar UNHANDLED_REJECTION = 'unhandledrejection';\\nvar REJECTION_HANDLED = 'rejectionhandled';\\nvar PENDING = 0;\\nvar FULFILLED = 1;\\nvar REJECTED = 2;\\nvar HANDLED = 1;\\nvar UNHANDLED = 2;\\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\\n\\nvar FORCED = isForced(PROMISE, function () {\\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\\n if (!GLOBAL_CORE_JS_PROMISE) {\\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\\n // We can't detect it synchronously, so just check versions\\n if (V8_VERSION === 66) return true;\\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\\n }\\n // We need Promise#finally in the pure version for preventing prototype pollution\\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\\n // We can't use @@species feature detection in V8 since it causes\\n // deoptimization and performance degradation\\n // https://github.com/zloirock/core-js/issues/679\\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\\n // Detect correctness of subclassing with @@species support\\n var promise = PromiseConstructor.resolve(1);\\n var FakePromise = function (exec) {\\n exec(function () { /* empty */ }, function () { /* empty */ });\\n };\\n var constructor = promise.constructor = {};\\n constructor[SPECIES] = FakePromise;\\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\\n});\\n\\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\\n});\\n\\n// helpers\\nvar isThenable = function (it) {\\n var then;\\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\\n};\\n\\nvar notify = function (promise, state, isReject) {\\n if (state.notified) return;\\n state.notified = true;\\n var chain = state.reactions;\\n microtask(function () {\\n var value = state.value;\\n var ok = state.state == FULFILLED;\\n var index = 0;\\n // variable length - can't use forEach\\n while (chain.length > index) {\\n var reaction = chain[index++];\\n var handler = ok ? reaction.ok : reaction.fail;\\n var resolve = reaction.resolve;\\n var reject = reaction.reject;\\n var domain = reaction.domain;\\n var result, then, exited;\\n try {\\n if (handler) {\\n if (!ok) {\\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\\n state.rejection = HANDLED;\\n }\\n if (handler === true) result = value;\\n else {\\n if (domain) domain.enter();\\n result = handler(value); // can throw\\n if (domain) {\\n domain.exit();\\n exited = true;\\n }\\n }\\n if (result === reaction.promise) {\\n reject(TypeError('Promise-chain cycle'));\\n } else if (then = isThenable(result)) {\\n then.call(result, resolve, reject);\\n } else resolve(result);\\n } else reject(value);\\n } catch (error) {\\n if (domain && !exited) domain.exit();\\n reject(error);\\n }\\n }\\n state.reactions = [];\\n state.notified = false;\\n if (isReject && !state.rejection) onUnhandled(promise, state);\\n });\\n};\\n\\nvar dispatchEvent = function (name, promise, reason) {\\n var event, handler;\\n if (DISPATCH_EVENT) {\\n event = document.createEvent('Event');\\n event.promise = promise;\\n event.reason = reason;\\n event.initEvent(name, false, true);\\n global.dispatchEvent(event);\\n } else event = { promise: promise, reason: reason };\\n if (handler = global['on' + name]) handler(event);\\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\\n};\\n\\nvar onUnhandled = function (promise, state) {\\n task.call(global, function () {\\n var value = state.value;\\n var IS_UNHANDLED = isUnhandled(state);\\n var result;\\n if (IS_UNHANDLED) {\\n result = perform(function () {\\n if (IS_NODE) {\\n process.emit('unhandledRejection', value, promise);\\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\\n });\\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\\n if (result.error) throw result.value;\\n }\\n });\\n};\\n\\nvar isUnhandled = function (state) {\\n return state.rejection !== HANDLED && !state.parent;\\n};\\n\\nvar onHandleUnhandled = function (promise, state) {\\n task.call(global, function () {\\n if (IS_NODE) {\\n process.emit('rejectionHandled', promise);\\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\\n });\\n};\\n\\nvar bind = function (fn, promise, state, unwrap) {\\n return function (value) {\\n fn(promise, state, value, unwrap);\\n };\\n};\\n\\nvar internalReject = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n state.value = value;\\n state.state = REJECTED;\\n notify(promise, state, true);\\n};\\n\\nvar internalResolve = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n try {\\n if (promise === value) throw TypeError(\\\"Promise can't be resolved itself\\\");\\n var then = isThenable(value);\\n if (then) {\\n microtask(function () {\\n var wrapper = { done: false };\\n try {\\n then.call(value,\\n bind(internalResolve, promise, wrapper, state),\\n bind(internalReject, promise, wrapper, state)\\n );\\n } catch (error) {\\n internalReject(promise, wrapper, error, state);\\n }\\n });\\n } else {\\n state.value = value;\\n state.state = FULFILLED;\\n notify(promise, state, false);\\n }\\n } catch (error) {\\n internalReject(promise, { done: false }, error, state);\\n }\\n};\\n\\n// constructor polyfill\\nif (FORCED) {\\n // 25.4.3.1 Promise(executor)\\n PromiseConstructor = function Promise(executor) {\\n anInstance(this, PromiseConstructor, PROMISE);\\n aFunction(executor);\\n Internal.call(this);\\n var state = getInternalState(this);\\n try {\\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\\n } catch (error) {\\n internalReject(this, state, error);\\n }\\n };\\n // eslint-disable-next-line no-unused-vars\\n Internal = function Promise(executor) {\\n setInternalState(this, {\\n type: PROMISE,\\n done: false,\\n notified: false,\\n parent: false,\\n reactions: [],\\n rejection: false,\\n state: PENDING,\\n value: undefined\\n });\\n };\\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\\n // `Promise.prototype.then` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\\n then: function then(onFulfilled, onRejected) {\\n var state = getInternalPromiseState(this);\\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\\n reaction.fail = typeof onRejected == 'function' && onRejected;\\n reaction.domain = IS_NODE ? process.domain : undefined;\\n state.parent = true;\\n state.reactions.push(reaction);\\n if (state.state != PENDING) notify(this, state, false);\\n return reaction.promise;\\n },\\n // `Promise.prototype.catch` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\\n 'catch': function (onRejected) {\\n return this.then(undefined, onRejected);\\n }\\n });\\n OwnPromiseCapability = function () {\\n var promise = new Internal();\\n var state = getInternalState(promise);\\n this.promise = promise;\\n this.resolve = bind(internalResolve, promise, state);\\n this.reject = bind(internalReject, promise, state);\\n };\\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\\n return C === PromiseConstructor || C === PromiseWrapper\\n ? new OwnPromiseCapability(C)\\n : newGenericPromiseCapability(C);\\n };\\n\\n if (!IS_PURE && typeof NativePromise == 'function') {\\n nativeThen = NativePromise.prototype.then;\\n\\n // wrap native Promise#then for native async functions\\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\\n var that = this;\\n return new PromiseConstructor(function (resolve, reject) {\\n nativeThen.call(that, resolve, reject);\\n }).then(onFulfilled, onRejected);\\n // https://github.com/zloirock/core-js/issues/640\\n }, { unsafe: true });\\n\\n // wrap fetch result\\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\\n // eslint-disable-next-line no-unused-vars\\n fetch: function fetch(input /* , init */) {\\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\\n }\\n });\\n }\\n}\\n\\n$({ global: true, wrap: true, forced: FORCED }, {\\n Promise: PromiseConstructor\\n});\\n\\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\\nsetSpecies(PROMISE);\\n\\nPromiseWrapper = getBuiltIn(PROMISE);\\n\\n// statics\\n$({ target: PROMISE, stat: true, forced: FORCED }, {\\n // `Promise.reject` method\\n // https://tc39.github.io/ecma262/#sec-promise.reject\\n reject: function reject(r) {\\n var capability = newPromiseCapability(this);\\n capability.reject.call(undefined, r);\\n return capability.promise;\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\\n // `Promise.resolve` method\\n // https://tc39.github.io/ecma262/#sec-promise.resolve\\n resolve: function resolve(x) {\\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\\n // `Promise.all` method\\n // https://tc39.github.io/ecma262/#sec-promise.all\\n all: function all(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n $promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = value;\\n --remaining || resolve(values);\\n }, reject);\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n },\\n // `Promise.race` method\\n // https://tc39.github.io/ecma262/#sec-promise.race\\n race: function race(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n iterate(iterable, function (promise) {\\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\\n });\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 85 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar redefine = __webpack_require__(10);\\n\\nmodule.exports = function (target, src, options) {\\n for (var key in src) redefine(target, key, src[key], options);\\n return target;\\n};\\n\\n\\n/***/ }),\\n/* 86 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar definePropertyModule = __webpack_require__(9);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar DESCRIPTORS = __webpack_require__(8);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\nmodule.exports = function (CONSTRUCTOR_NAME) {\\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\\n var defineProperty = definePropertyModule.f;\\n\\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\\n defineProperty(Constructor, SPECIES, {\\n configurable: true,\\n get: function () { return this; }\\n });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 87 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it, Constructor, name) {\\n if (!(it instanceof Constructor)) {\\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 88 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar Iterators = __webpack_require__(14);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar ArrayPrototype = Array.prototype;\\n\\n// check on default Array iterator\\nmodule.exports = function (it) {\\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\\n};\\n\\n\\n/***/ }),\\n/* 89 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar classof = __webpack_require__(38);\\nvar Iterators = __webpack_require__(14);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\n\\nmodule.exports = function (it) {\\n if (it != undefined) return it[ITERATOR]\\n || it['@@iterator']\\n || Iterators[classof(it)];\\n};\\n\\n\\n/***/ }),\\n/* 90 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\n\\n// call something on iterator step with safe closing on error\\nmodule.exports = function (iterator, fn, value, ENTRIES) {\\n try {\\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\\n // 7.4.6 IteratorClose(iterator, completion)\\n } catch (error) {\\n var returnMethod = iterator['return'];\\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\\n throw error;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 91 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar SAFE_CLOSING = false;\\n\\ntry {\\n var called = 0;\\n var iteratorWithReturn = {\\n next: function () {\\n return { done: !!called++ };\\n },\\n 'return': function () {\\n SAFE_CLOSING = true;\\n }\\n };\\n iteratorWithReturn[ITERATOR] = function () {\\n return this;\\n };\\n // eslint-disable-next-line no-throw-literal\\n Array.from(iteratorWithReturn, function () { throw 2; });\\n} catch (error) { /* empty */ }\\n\\nmodule.exports = function (exec, SKIP_CLOSING) {\\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\\n var ITERATION_SUPPORT = false;\\n try {\\n var object = {};\\n object[ITERATOR] = function () {\\n return {\\n next: function () {\\n return { done: ITERATION_SUPPORT = true };\\n }\\n };\\n };\\n exec(object);\\n } catch (error) { /* empty */ }\\n return ITERATION_SUPPORT;\\n};\\n\\n\\n/***/ }),\\n/* 92 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar classof = __webpack_require__(13);\\nvar macrotask = __webpack_require__(52).set;\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\\nvar process = global.process;\\nvar Promise = global.Promise;\\nvar IS_NODE = classof(process) == 'process';\\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\\n\\nvar flush, head, last, notify, toggle, node, promise, then;\\n\\n// modern engines have queueMicrotask method\\nif (!queueMicrotask) {\\n flush = function () {\\n var parent, fn;\\n if (IS_NODE && (parent = process.domain)) parent.exit();\\n while (head) {\\n fn = head.fn;\\n head = head.next;\\n try {\\n fn();\\n } catch (error) {\\n if (head) notify();\\n else last = undefined;\\n throw error;\\n }\\n } last = undefined;\\n if (parent) parent.enter();\\n };\\n\\n // Node.js\\n if (IS_NODE) {\\n notify = function () {\\n process.nextTick(flush);\\n };\\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\\n } else if (MutationObserver && !IS_IOS) {\\n toggle = true;\\n node = document.createTextNode('');\\n new MutationObserver(flush).observe(node, { characterData: true });\\n notify = function () {\\n node.data = toggle = !toggle;\\n };\\n // environments with maybe non-completely correct, but existent Promise\\n } else if (Promise && Promise.resolve) {\\n // Promise.resolve without an argument throws an error in LG WebOS 2\\n promise = Promise.resolve(undefined);\\n then = promise.then;\\n notify = function () {\\n then.call(promise, flush);\\n };\\n // for other environments - macrotask based on:\\n // - setImmediate\\n // - MessageChannel\\n // - window.postMessag\\n // - onreadystatechange\\n // - setTimeout\\n } else {\\n notify = function () {\\n // strange IE + webpack dev server bug - use .call(global)\\n macrotask.call(global, flush);\\n };\\n }\\n}\\n\\nmodule.exports = queueMicrotask || function (fn) {\\n var task = { fn: fn, next: undefined };\\n if (last) last.next = task;\\n if (!head) {\\n head = task;\\n notify();\\n } last = task;\\n};\\n\\n\\n/***/ }),\\n/* 93 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = function (a, b) {\\n var console = global.console;\\n if (console && console.error) {\\n arguments.length === 1 ? console.error(a) : console.error(a, b);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 94 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar userAgent = __webpack_require__(54);\\n\\nvar process = global.process;\\nvar versions = process && process.versions;\\nvar v8 = versions && versions.v8;\\nvar match, version;\\n\\nif (v8) {\\n match = v8.split('.');\\n version = match[0] + match[1];\\n} else if (userAgent) {\\n match = userAgent.match(/Edge\\\\/(\\\\d+)/);\\n if (!match || match[1] >= 74) {\\n match = userAgent.match(/Chrome\\\\/(\\\\d+)/);\\n if (match) version = match[1];\\n }\\n}\\n\\nmodule.exports = version && +version;\\n\\n\\n/***/ }),\\n/* 95 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar aFunction = __webpack_require__(15);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar iterate = __webpack_require__(49);\\n\\n// `Promise.allSettled` method\\n// https://github.com/tc39/proposal-promise-allSettled\\n$({ target: 'Promise', stat: true }, {\\n allSettled: function allSettled(iterable) {\\n var C = this;\\n var capability = newPromiseCapabilityModule.f(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'fulfilled', value: value };\\n --remaining || resolve(values);\\n }, function (e) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'rejected', reason: e };\\n --remaining || resolve(values);\\n });\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 96 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar NativePromise = __webpack_require__(48);\\nvar fails = __webpack_require__(5);\\nvar getBuiltIn = __webpack_require__(11);\\nvar speciesConstructor = __webpack_require__(51);\\nvar promiseResolve = __webpack_require__(55);\\nvar redefine = __webpack_require__(10);\\n\\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\\nvar NON_GENERIC = !!NativePromise && fails(function () {\\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\\n});\\n\\n// `Promise.prototype.finally` method\\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\\n 'finally': function (onFinally) {\\n var C = speciesConstructor(this, getBuiltIn('Promise'));\\n var isFunction = typeof onFinally == 'function';\\n return this.then(\\n isFunction ? function (x) {\\n return promiseResolve(C, onFinally()).then(function () { return x; });\\n } : onFinally,\\n isFunction ? function (e) {\\n return promiseResolve(C, onFinally()).then(function () { throw e; });\\n } : onFinally\\n );\\n }\\n});\\n\\n// patch native Promise.prototype for native async functions\\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\\n}\\n\\n\\n/***/ }),\\n/* 97 */\\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n// ESM COMPAT FLAG\\n__webpack_require__.r(__webpack_exports__);\\n\\n// EXPORTS\\n__webpack_require__.d(__webpack_exports__, \\\"add\\\", function() { return /* binding */ add; });\\n__webpack_require__.d(__webpack_exports__, \\\"done\\\", function() { return /* binding */ done; });\\n__webpack_require__.d(__webpack_exports__, \\\"toJS\\\", function() { return /* binding */ toJS; });\\n__webpack_require__.d(__webpack_exports__, \\\"load\\\", function() { return /* binding */ load; });\\n__webpack_require__.d(__webpack_exports__, \\\"dispose\\\", function() { return /* binding */ dispose; });\\n__webpack_require__.d(__webpack_exports__, \\\"search\\\", function() { return /* binding */ search; });\\n\\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\\n/*! *****************************************************************************\\r\\nCopyright (c) Microsoft Corporation.\\r\\n\\r\\nPermission to use, copy, modify, and/or distribute this software for any\\r\\npurpose with or without fee is hereby granted.\\r\\n\\r\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\\r\\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\\r\\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\\r\\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\\r\\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\\r\\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\\r\\nPERFORMANCE OF THIS SOFTWARE.\\r\\n***************************************************************************** */\\r\\n/* global Reflect, Promise */\\r\\n\\r\\nvar extendStatics = function(d, b) {\\r\\n extendStatics = Object.setPrototypeOf ||\\r\\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\r\\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\r\\n return extendStatics(d, b);\\r\\n};\\r\\n\\r\\nfunction __extends(d, b) {\\r\\n extendStatics(d, b);\\r\\n function __() { this.constructor = d; }\\r\\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\r\\n}\\r\\n\\r\\nvar __assign = function() {\\r\\n __assign = Object.assign || function __assign(t) {\\r\\n for (var s, i = 1, n = arguments.length; i < n; i++) {\\r\\n s = arguments[i];\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\\r\\n }\\r\\n return t;\\r\\n }\\r\\n return __assign.apply(this, arguments);\\r\\n}\\r\\n\\r\\nfunction __rest(s, e) {\\r\\n var t = {};\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\r\\n t[p] = s[p];\\r\\n if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\r\\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\r\\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\r\\n t[p[i]] = s[p[i]];\\r\\n }\\r\\n return t;\\r\\n}\\r\\n\\r\\nfunction __decorate(decorators, target, key, desc) {\\r\\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.decorate === \\\"function\\\") r = Reflect.decorate(decorators, target, key, desc);\\r\\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\r\\n return c > 3 && r && Object.defineProperty(target, key, r), r;\\r\\n}\\r\\n\\r\\nfunction __param(paramIndex, decorator) {\\r\\n return function (target, key) { decorator(target, key, paramIndex); }\\r\\n}\\r\\n\\r\\nfunction __metadata(metadataKey, metadataValue) {\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.metadata === \\\"function\\\") return Reflect.metadata(metadataKey, metadataValue);\\r\\n}\\r\\n\\r\\nfunction __awaiter(thisArg, _arguments, P, generator) {\\r\\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\r\\n return new (P || (P = Promise))(function (resolve, reject) {\\r\\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\r\\n function rejected(value) { try { step(generator[\\\"throw\\\"](value)); } catch (e) { reject(e); } }\\r\\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\r\\n step((generator = generator.apply(thisArg, _arguments || [])).next());\\r\\n });\\r\\n}\\r\\n\\r\\nfunction __generator(thisArg, body) {\\r\\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\r\\n return g = { next: verb(0), \\\"throw\\\": verb(1), \\\"return\\\": verb(2) }, typeof Symbol === \\\"function\\\" && (g[Symbol.iterator] = function() { return this; }), g;\\r\\n function verb(n) { return function (v) { return step([n, v]); }; }\\r\\n function step(op) {\\r\\n if (f) throw new TypeError(\\\"Generator is already executing.\\\");\\r\\n while (_) try {\\r\\n if (f = 1, y && (t = op[0] & 2 ? y[\\\"return\\\"] : op[0] ? y[\\\"throw\\\"] || ((t = y[\\\"return\\\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\r\\n if (y = 0, t) op = [op[0] & 2, t.value];\\r\\n switch (op[0]) {\\r\\n case 0: case 1: t = op; break;\\r\\n case 4: _.label++; return { value: op[1], done: false };\\r\\n case 5: _.label++; y = op[1]; op = [0]; continue;\\r\\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\\r\\n default:\\r\\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\r\\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\r\\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\r\\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\r\\n if (t[2]) _.ops.pop();\\r\\n _.trys.pop(); continue;\\r\\n }\\r\\n op = body.call(thisArg, _);\\r\\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\r\\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\r\\n }\\r\\n}\\r\\n\\r\\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\\r\\n if (k2 === undefined) k2 = k;\\r\\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\\r\\n}) : (function(o, m, k, k2) {\\r\\n if (k2 === undefined) k2 = k;\\r\\n o[k2] = m[k];\\r\\n});\\r\\n\\r\\nfunction __exportStar(m, exports) {\\r\\n for (var p in m) if (p !== \\\"default\\\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\\r\\n}\\r\\n\\r\\nfunction __values(o) {\\r\\n var s = typeof Symbol === \\\"function\\\" && Symbol.iterator, m = s && o[s], i = 0;\\r\\n if (m) return m.call(o);\\r\\n if (o && typeof o.length === \\\"number\\\") return {\\r\\n next: function () {\\r\\n if (o && i >= o.length) o = void 0;\\r\\n return { value: o && o[i++], done: !o };\\r\\n }\\r\\n };\\r\\n throw new TypeError(s ? \\\"Object is not iterable.\\\" : \\\"Symbol.iterator is not defined.\\\");\\r\\n}\\r\\n\\r\\nfunction __read(o, n) {\\r\\n var m = typeof Symbol === \\\"function\\\" && o[Symbol.iterator];\\r\\n if (!m) return o;\\r\\n var i = m.call(o), r, ar = [], e;\\r\\n try {\\r\\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\r\\n }\\r\\n catch (error) { e = { error: error }; }\\r\\n finally {\\r\\n try {\\r\\n if (r && !r.done && (m = i[\\\"return\\\"])) m.call(i);\\r\\n }\\r\\n finally { if (e) throw e.error; }\\r\\n }\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spread() {\\r\\n for (var ar = [], i = 0; i < arguments.length; i++)\\r\\n ar = ar.concat(__read(arguments[i]));\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spreadArrays() {\\r\\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\r\\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\\r\\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\r\\n r[k] = a[j];\\r\\n return r;\\r\\n};\\r\\n\\r\\nfunction __await(v) {\\r\\n return this instanceof __await ? (this.v = v, this) : new __await(v);\\r\\n}\\r\\n\\r\\nfunction __asyncGenerator(thisArg, _arguments, generator) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\r\\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\r\\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\r\\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\r\\n function fulfill(value) { resume(\\\"next\\\", value); }\\r\\n function reject(value) { resume(\\\"throw\\\", value); }\\r\\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\r\\n}\\r\\n\\r\\nfunction __asyncDelegator(o) {\\r\\n var i, p;\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\", function (e) { throw e; }), verb(\\\"return\\\"), i[Symbol.iterator] = function () { return this; }, i;\\r\\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \\\"return\\\" } : f ? f(v) : v; } : f; }\\r\\n}\\r\\n\\r\\nfunction __asyncValues(o) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var m = o[Symbol.asyncIterator], i;\\r\\n return m ? m.call(o) : (o = typeof __values === \\\"function\\\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\r\\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\r\\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\r\\n}\\r\\n\\r\\nfunction __makeTemplateObject(cooked, raw) {\\r\\n if (Object.defineProperty) { Object.defineProperty(cooked, \\\"raw\\\", { value: raw }); } else { cooked.raw = raw; }\\r\\n return cooked;\\r\\n};\\r\\n\\r\\nvar __setModuleDefault = Object.create ? (function(o, v) {\\r\\n Object.defineProperty(o, \\\"default\\\", { enumerable: true, value: v });\\r\\n}) : function(o, v) {\\r\\n o[\\\"default\\\"] = v;\\r\\n};\\r\\n\\r\\nfunction __importStar(mod) {\\r\\n if (mod && mod.__esModule) return mod;\\r\\n var result = {};\\r\\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\\r\\n __setModuleDefault(result, mod);\\r\\n return result;\\r\\n}\\r\\n\\r\\nfunction __importDefault(mod) {\\r\\n return (mod && mod.__esModule) ? mod : { default: mod };\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldGet(receiver, privateMap) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to get private field on non-instance\\\");\\r\\n }\\r\\n return privateMap.get(receiver);\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to set private field on non-instance\\\");\\r\\n }\\r\\n privateMap.set(receiver, value);\\r\\n return value;\\r\\n}\\r\\n\\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\\nvar lunr = __webpack_require__(4);\\n\\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--5-0!./node_modules/babel-loader/lib??ref--5-1!./src/services/SearchWorker.worker.ts\\n\\n\\ntry {\\n // tslint:disable-next-line\\n __webpack_require__(57); // bundle into worker\\n}\\ncatch (_) { // nope\\n}\\n/* just for better typings */\\nvar Worker = /** @class */ (function () {\\n function Worker() {\\n this.add = add;\\n this.done = done;\\n this.search = search;\\n this.toJS = toJS;\\n this.load = load;\\n this.dispose = dispose;\\n }\\n return Worker;\\n}());\\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\\\"default\\\"] = (Worker);\\nvar store = [];\\nlunr[\\\"tokenizer\\\"].separator = /\\\\s+/;\\nvar builder;\\nvar resolveIndex;\\nvar index;\\nfunction initEmpty() {\\n builder = new lunr[\\\"Builder\\\"]();\\n builder.field('title');\\n builder.field('description');\\n builder.ref('ref');\\n builder.pipeline.add(lunr[\\\"trimmer\\\"], lunr[\\\"stopWordFilter\\\"], lunr[\\\"stemmer\\\"]);\\n index = new Promise(function (resolve) {\\n resolveIndex = resolve;\\n });\\n}\\ninitEmpty();\\nvar expandTerm = function (term) { return '*' + lunr[\\\"stemmer\\\"](new lunr[\\\"Token\\\"](term, {})) + '*'; };\\nfunction add(title, description, meta) {\\n var ref = store.push(meta) - 1;\\n var item = {\\n title: title.toLowerCase(),\\n description: description.toLowerCase(),\\n ref: ref\\n };\\n builder.add(item);\\n}\\nfunction done() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n resolveIndex(builder.build());\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction toJS() {\\n return __awaiter(this, void 0, void 0, function () {\\n var _a;\\n return __generator(this, function (_b) {\\n switch (_b.label) {\\n case 0:\\n _a = {\\n store: store\\n };\\n return [4 /*yield*/, index];\\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\\n _a)];\\n }\\n });\\n });\\n}\\nfunction load(state) {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = state.store;\\n resolveIndex(lunr[\\\"Index\\\"].load(state.index));\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction dispose() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = [];\\n initEmpty();\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction search(q, limit) {\\n if (limit === void 0) { limit = 0; }\\n return __awaiter(this, void 0, void 0, function () {\\n var searchResults;\\n return __generator(this, function (_a) {\\n switch (_a.label) {\\n case 0:\\n if (q.trim().length === 0) {\\n return [2 /*return*/, []];\\n }\\n return [4 /*yield*/, index];\\n case 1:\\n searchResults = (_a.sent()).query(function (t) {\\n q.trim().toLowerCase().split(/\\\\s+/).forEach(function (term) {\\n var exp = expandTerm(term);\\n t.term(exp, {});\\n });\\n });\\n if (limit > 0) {\\n searchResults = searchResults.slice(0, limit);\\n }\\n return [2 /*return*/, searchResults.map(function (res) { return ({\\n meta: store[res.ref],\\n score: res.score\\n }); })];\\n }\\n });\\n });\\n}\\n\\naddEventListener('message', function (e) {var _e$data = e.data,type = _e$data.type,method = _e$data.method,id = _e$data.id,params = _e$data.params,f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () {return f.apply(__webpack_exports__, params);});} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\\n\\n/***/ })\\n/******/ ]);\\n//# sourceMappingURL=95952f773ec942db46dc.worker.js.map\"])), { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n","module.exports = require(\"core-js/es/promise\");","module.exports = require(\"stickyfill\");","'use strict';\n\nconst visit = require('unist-util-visit');\n\nmodule.exports = slug;\n\nfunction slug() {\n return transformer;\n} // Patch slugs on heading nodes.\n\n\nfunction transformer(ast) {\n const headlines: any[] = [];\n visit(ast, 'heading', visitor);\n\n function visitor(node) {\n const data = node.data || (node.data = {});\n const props = data.hProperties || (data.hProperties = {});\n const sectionId = `section/${data.id}`;\n data.id = sectionId;\n props.id = sectionId;\n visit(node, 'text', textNode => {\n headlines.push({\n depth: node.depth,\n id: data.id,\n text: textNode.value\n });\n });\n }\n\n const value = `export const headings = ${JSON.stringify(headlines)};`;\n const meta = {\n default: false,\n type: 'export',\n value\n };\n ast.children.splice(0, 0, meta);\n}","module.exports = require(\"unist-util-visit\");","import { darken, desaturate, lighten, readableColor, transparentize } from 'polished';\nconst defaultTheme: ThemeInterface = {\n spacing: {\n unit: 5,\n sectionHorizontal: ({\n spacing\n }) => spacing.unit * 8,\n sectionVertical: ({\n spacing\n }) => spacing.unit * 8\n },\n breakpoints: {\n small: '50rem',\n medium: '75rem',\n large: '105rem'\n },\n colors: {\n tonalOffset: 0.3,\n primary: {\n main: '#32329f',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.primary.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.primary.main),\n contrastText: ({\n colors\n }) => readableColor(colors.primary.main)\n },\n success: {\n main: '#1d8127',\n light: ({\n colors\n }) => lighten(colors.tonalOffset * 2, colors.success.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.success.main),\n contrastText: ({\n colors\n }) => readableColor(colors.success.main)\n },\n warning: {\n main: '#ffa500',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.warning.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.warning.main),\n contrastText: '#ffffff'\n },\n error: {\n main: '#d41f1c',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.error.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.error.main),\n contrastText: ({\n colors\n }) => readableColor(colors.error.main)\n },\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5'\n },\n text: {\n primary: '#333333',\n secondary: ({\n colors\n }) => lighten(colors.tonalOffset, colors.text.primary)\n },\n border: {\n dark: 'rgba(0,0,0, 0.1)',\n light: '#ffffff'\n },\n responses: {\n success: {\n color: ({\n colors\n }) => colors.success.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.93, colors.success.main)\n },\n error: {\n color: ({\n colors\n }) => colors.error.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.93, colors.error.main)\n },\n redirect: {\n color: ({\n colors\n }) => colors.warning.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.redirect.color)\n },\n info: {\n color: '#87ceeb',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.info.color)\n }\n },\n http: {\n get: '#6bbd5b',\n post: '#248fb2',\n put: '#9b708b',\n options: '#d3ca12',\n patch: '#e09d43',\n delete: '#e27a7a',\n basic: '#999',\n link: '#31bbb6',\n head: '#c167e4'\n }\n },\n schema: {\n linesColor: theme => lighten(theme.colors.tonalOffset, desaturate(theme.colors.tonalOffset, theme.colors.primary.main)),\n defaultDetailsWidth: '75%',\n typeNameColor: theme => theme.colors.text.secondary,\n typeTitleColor: theme => theme.schema.typeNameColor,\n requireLabelColor: theme => theme.colors.error.main,\n labelsTextSize: '0.9em',\n nestingSpacing: '1em',\n nestedBackground: '#fafafa',\n arrow: {\n size: '1.1em',\n color: theme => theme.colors.text.secondary\n }\n },\n typography: {\n fontSize: '14px',\n lineHeight: '1.5em',\n fontWeightRegular: '400',\n fontWeightBold: '600',\n fontWeightLight: '300',\n fontFamily: 'Roboto, sans-serif',\n smoothing: 'antialiased',\n optimizeSpeed: true,\n headings: {\n fontFamily: 'Montserrat, sans-serif',\n fontWeight: '400',\n lineHeight: '1.6em'\n },\n code: {\n fontSize: '13px',\n fontFamily: 'Courier, monospace',\n lineHeight: ({\n typography\n }) => typography.lineHeight,\n fontWeight: ({\n typography\n }) => typography.fontWeightRegular,\n color: '#e53935',\n backgroundColor: 'rgba(38, 50, 56, 0.05)',\n wrap: false\n },\n links: {\n color: ({\n colors\n }) => colors.primary.main,\n visited: ({\n typography\n }) => typography.links.color,\n hover: ({\n typography\n }) => lighten(0.2, typography.links.color)\n }\n },\n sidebar: {\n width: '260px',\n backgroundColor: '#fafafa',\n textColor: '#333333',\n activeTextColor: theme => theme.sidebar.textColor !== defaultTheme.sidebar!.textColor ? theme.sidebar.textColor : theme.colors.primary.main,\n groupItems: {\n textTransform: 'uppercase'\n },\n level1Items: {\n color: '#3C3C3C',\n textTransform: 'none',\n fw: 600,\n fontSize: '1rem'\n },\n level2Items: {\n fw: 500,\n color: '#3C3C3C',\n fontSize: '.95rem'\n },\n arrow: {\n size: '1.5em',\n color: theme => theme.sidebar.textColor\n }\n },\n logo: {\n maxHeight: ({\n sidebar\n }) => sidebar.width,\n maxWidth: ({\n sidebar\n }) => sidebar.width,\n gutter: '2px'\n },\n rightPanel: {\n backgroundColor: '#263238',\n width: '40%',\n textColor: '#ffffff'\n },\n codeBlock: {\n backgroundColor: ({\n rightPanel\n }) => darken(0.1, rightPanel.backgroundColor)\n }\n};\nexport default defaultTheme;\nexport function resolveTheme(theme: ThemeInterface): ResolvedThemeInterface {\n const resolvedValues = {};\n let counter = 0;\n\n const setProxy = (obj, path: string) => {\n Object.keys(obj).forEach(k => {\n const currentPath = (path ? path + '.' : '') + k;\n const val = obj[k];\n\n if (typeof val === 'function') {\n Object.defineProperty(obj, k, {\n get() {\n if (!resolvedValues[currentPath]) {\n counter++;\n\n if (counter > 1000) {\n throw new Error(`Theme probably contains circular dependency at ${currentPath}: ${val.toString()}`);\n }\n\n resolvedValues[currentPath] = val(theme);\n }\n\n return resolvedValues[currentPath];\n },\n\n enumerable: true\n });\n } else if (typeof val === 'object') {\n setProxy(val, currentPath);\n }\n });\n };\n\n setProxy(theme, '');\n return JSON.parse(JSON.stringify(theme));\n}\nexport interface ColorSetting {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\nexport interface HTTPResponseColos {\n color: string;\n backgroundColor: string;\n}\nexport interface FontSettings {\n fontSize: string;\n fontWeight: string;\n fontFamily: string;\n lineHeight: string;\n color: string;\n}\nexport interface ResolvedThemeInterface {\n spacing: {\n unit: number;\n sectionHorizontal: number;\n sectionVertical: number;\n };\n breakpoints: {\n small: string;\n medium: string;\n large: string;\n };\n colors: {\n tonalOffset: number;\n primary: ColorSetting;\n success: ColorSetting;\n warning: ColorSetting;\n error: ColorSetting;\n gray: {\n 50: string;\n 100: string;\n };\n border: {\n light: string;\n dark: string;\n };\n text: {\n primary: string;\n secondary: string;\n };\n responses: {\n success: HTTPResponseColos;\n error: HTTPResponseColos;\n redirect: HTTPResponseColos;\n info: HTTPResponseColos;\n };\n http: {\n get: string;\n post: string;\n put: string;\n options: string;\n patch: string;\n delete: string;\n basic: string;\n link: string;\n head: string;\n };\n };\n schema: {\n linesColor: string;\n defaultDetailsWidth: string;\n typeNameColor: string;\n typeTitleColor: string;\n requireLabelColor: string;\n labelsTextSize: string;\n nestingSpacing: string;\n nestedBackground: string;\n arrow: {\n size: string;\n color: string;\n };\n };\n typography: {\n fontSize: string;\n lineHeight: string;\n fontWeightLight: string;\n fontWeightRegular: string;\n fontWeightBold: string;\n fontFamily: string;\n smoothing: string;\n optimizeSpeed: boolean;\n code: FontSettings & {\n backgroundColor: string;\n wrap: boolean;\n };\n headings: {\n fontFamily: string;\n fontWeight: string;\n lineHeight: string;\n };\n links: {\n color: string;\n visited: string;\n hover: string;\n };\n };\n sidebar: {\n width: string;\n backgroundColor: string;\n textColor: string;\n activeTextColor: string;\n groupItems: {\n textTransform: string;\n };\n level1Items: {\n color: string;\n fw: number;\n textTransform: string;\n fontSize: string;\n };\n level2Items: {\n color: string;\n fw: number;\n textTransform: string;\n fontSize: string;\n };\n arrow: {\n size: string;\n color: string;\n };\n };\n logo: {\n maxHeight: string;\n maxWidth: string;\n gutter: string;\n };\n rightPanel: {\n backgroundColor: string;\n textColor: string;\n width: string;\n };\n codeBlock: {\n backgroundColor: string;\n };\n extensionsHook?: (name: string, props: any) => string;\n}\nexport type primitive = string | number | boolean | undefined | null;\nexport type AdvancedThemeDeep = T extends primitive ? T | ((theme: ResolvedThemeInterface) => T) : AdvancedThemeObject;\nexport type AdvancedThemeObject = { [P in keyof T]?: AdvancedThemeDeep };\nexport type ThemeInterface = AdvancedThemeObject;","export const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nexport function querySelector(selector: string): Element | null {\n if (typeof document !== 'undefined') {\n return document.querySelector(selector);\n }\n\n return null;\n}\n/**\n * Drop everything inside <...> (i.e., tags/elements), and keep the text.\n * Unlike browser innerText, this removes newlines; it also doesn't handle\n * un-encoded `<` or `>` characters very well, so don't feed it malformed HTML\n */\n\nexport function html2Str(html: string): string {\n return html.split(/<[^>]+>/).map(chunk => {\n return chunk.trim();\n }).filter(trimmedChunk => {\n return trimmedChunk.length > 0;\n }).join(' ');\n} // scrollIntoViewIfNeeded polyfill\n\nif (typeof Element !== 'undefined' && !(Element as any).prototype.scrollIntoViewIfNeeded) {\n (Element as any).prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {\n centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;\n const parent = this.parentNode;\n const parentComputedStyle = window.getComputedStyle(parent, undefined);\n const parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width'), 10);\n const parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width'), 10);\n const overTop = this.offsetTop - parent.offsetTop < parent.scrollTop;\n const overBottom = this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight;\n const overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft;\n const overRight = this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth;\n const alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n this.scrollIntoView(alignWithTop);\n }\n };\n}","import slugify from 'slugify';\nimport { format, parse } from 'url';\n/**\n * Maps over array passing `isLast` bool to iterator as the second argument\n */\n\nexport function mapWithLast(array: T[], iteratee: (item: T, isLast: boolean) => P) {\n const res: P[] = [];\n\n for (let i = 0; i < array.length - 1; i++) {\n res.push(iteratee(array[i], false));\n }\n\n if (array.length !== 0) {\n res.push(iteratee(array[array.length - 1], true));\n }\n\n return res;\n}\n/**\n * Creates an object with the same keys as object and values generated by running each\n * own enumerable string keyed property of object thru iteratee.\n * The iteratee is invoked with three arguments: (value, key, object).\n *\n * @param object the object to iterate over\n * @param iteratee the function invoked per iteration.\n */\n\nexport function mapValues(object: Record, iteratee: (val: T, key: string, obj: Record) => P): Record {\n const res: {\n [key: string]: P;\n } = {};\n\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n res[key] = iteratee(object[key], key, object);\n }\n }\n\n return res;\n}\n/**\n * flattens collection using `prop` field as a children\n * @param collectionItems collection items\n * @param prop item property with child elements\n */\n\nexport function flattenByProp(collectionItems: T[], prop: P): T[] {\n const res: T[] = [];\n\n const iterate = (items: T[]) => {\n for (const item of items) {\n res.push(item);\n\n if (item[prop]) {\n iterate(((item[prop] as any) as T[]));\n }\n }\n };\n\n iterate(collectionItems);\n return res;\n}\nexport function stripTrailingSlash(path: string): string {\n if (path.endsWith('/')) {\n return path.substring(0, path.length - 1);\n }\n\n return path;\n}\nexport function isNumeric(n: any): n is number {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nexport function appendToMdHeading(md: string, heading: string, content: string) {\n // if heading is already in md and append to the end of it\n const testRegex = new RegExp(`(^|\\\\n)#\\\\s?${heading}\\\\s*\\\\n`, 'i');\n const replaceRegex = new RegExp(`((\\\\n|^)#\\\\s*${heading}\\\\s*(\\\\n|$)(?:.|\\\\n)*?)(\\\\n#|$)`, 'i');\n\n if (testRegex.test(md)) {\n return md.replace(replaceRegex, `$1\\n\\n${content}\\n$4`);\n } else {\n // else append heading itself\n const br = md === '' || md.endsWith('\\n\\n') ? '' : md.endsWith('\\n') ? '\\n' : '\\n\\n';\n return `${md}${br}# ${heading}\\n\\n${content}`;\n }\n} // credits https://stackoverflow.com/a/46973278/1749888\n\nexport const mergeObjects = (target: any, ...sources: any[]): any => {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (source === undefined) {\n return target;\n }\n\n if (isMergebleObject(target) && isMergebleObject(source)) {\n Object.keys(source).forEach((key: string) => {\n if (isMergebleObject(source[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n\n mergeObjects(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n });\n }\n\n return mergeObjects(target, ...sources);\n};\n\nconst isObject = (item: any): boolean => {\n return item !== null && typeof item === 'object';\n};\n\nconst isMergebleObject = (item): boolean => {\n return isObject(item) && !Array.isArray(item);\n};\n/**\n * slugify() returns empty string when failed to slugify.\n * so try to return minimum slugified-string with failed one which keeps original value\n * the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286\n */\n\n\nexport function safeSlugify(value: string): string {\n return slugify(value) || value.toString().toLowerCase().replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/\\--+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n}\nexport function isAbsoluteUrl(url: string) {\n return /(?:^[a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url);\n}\n/**\n * simple resolve URL which doesn't break on strings with url fragments\n * e.g. resolveUrl('http://test.com:{port}', 'path') results in http://test.com:{port}/path\n */\n\nexport function resolveUrl(url: string, to: string) {\n let res;\n\n if (to.startsWith('//')) {\n const {\n protocol: specProtocol\n } = parse(url);\n res = `${specProtocol || 'https:'}${to}`;\n } else if (isAbsoluteUrl(to)) {\n res = to;\n } else if (!to.startsWith('/')) {\n res = stripTrailingSlash(url) + '/' + to;\n } else {\n const urlObj = parse(url);\n res = format({ ...urlObj,\n pathname: to\n });\n }\n\n return stripTrailingSlash(res);\n}\nexport function getBasePath(serverUrl: string): string {\n try {\n return parseURL(serverUrl).pathname;\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\nexport function titleize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\nexport function removeQueryString(serverUrl: string): string {\n try {\n const url = parseURL(serverUrl);\n url.search = '';\n return url.toString();\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\n\nfunction parseURL(url: string) {\n if (typeof URL === 'undefined') {\n // node\n return new (require('url').URL)(url);\n } else {\n return new URL(url);\n }\n}\n\nexport function unescapeHTMLChars(str: string): string {\n return str.replace(/&#(\\d+);/g, (_m, code) => String.fromCharCode(parseInt(code, 10))).replace(/&/g, '&');\n}","export interface LabelsConfig {\n enum: string;\n enumSingleValue: string;\n enumArray: string;\n default: string;\n deprecated: string;\n example: string;\n nullable: string;\n recursive: string;\n arrayOf: string;\n webhook: string;\n}\nexport type LabelsConfigRaw = Partial;\nconst labels: LabelsConfig = {\n enum: 'Enum',\n enumSingleValue: 'Value',\n enumArray: 'Items',\n default: 'Default',\n deprecated: 'Deprecated',\n example: 'Example',\n nullable: 'Nullable',\n recursive: 'Recursive',\n arrayOf: 'Array of ',\n webhook: 'Event'\n};\nexport function setRedocLabels(_labels?: LabelsConfigRaw) {\n Object.assign(labels, _labels);\n}\nexport function l(key: keyof LabelsConfig, idx?: number): string {\n const label = labels[key];\n\n if (idx !== undefined) {\n return label[idx];\n }\n\n return label;\n}","import defaultTheme, { ResolvedThemeInterface, resolveTheme, ThemeInterface } from '../theme';\nimport { querySelector } from '../utils/dom';\nimport { isNumeric, mergeObjects } from '../utils/helpers';\nimport { LabelsConfigRaw, setRedocLabels } from './Labels';\nimport { MDXComponentMeta } from './MarkdownRenderer';\nexport interface RedocRawOptions {\n theme?: ThemeInterface;\n scrollYOffset?: number | string | (() => number);\n hideHostname?: boolean | string;\n expandResponses?: string | 'all';\n requiredPropsFirst?: boolean | string;\n sortPropsAlphabetically?: boolean | string;\n sortEnumValuesAlphabetically?: boolean | string;\n noAutoAuth?: boolean | string;\n nativeScrollbars?: boolean | string;\n pathInMiddlePanel?: boolean | string;\n untrustedSpec?: boolean | string;\n hideLoading?: boolean | string;\n hideDownloadButton?: boolean | string;\n disableSearch?: boolean | string;\n onlyRequiredInSamples?: boolean | string;\n showExtensions?: boolean | string | string[];\n hideSingleRequestSampleTab?: boolean | string;\n menuToggle?: boolean | string;\n jsonSampleExpandLevel?: number | string | 'all';\n hideSchemaTitles?: boolean | string;\n simpleOneOfTypeLabel?: boolean | string;\n payloadSampleIdx?: number;\n expandSingleSchemaField?: boolean | string;\n expandAllSchemaFields?: boolean | string;\n hideShelfIcon?: boolean | string;\n hideHttpVerbs?: boolean | string;\n unstable_ignoreMimeParameters?: boolean;\n allowedMdComponents?: Record;\n labels?: LabelsConfigRaw;\n enumSkipQuotes?: boolean | string;\n expandDefaultServerVariables?: boolean;\n maxDisplayedEnumValues?: number;\n}\n\nfunction argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean {\n if (val === undefined) {\n return defaultValue || false;\n }\n\n if (typeof val === 'string') {\n return val === 'false' ? false : true;\n }\n\n return val;\n}\n\nfunction argValueToNumber(value: number | string | undefined): number | undefined {\n if (typeof value === 'string') {\n return parseInt(value, 10);\n }\n\n if (typeof value === 'number') {\n return value;\n }\n}\n\nexport class RedocNormalizedOptions {\n static normalizeExpandResponses(value: RedocRawOptions['expandResponses']) {\n if (value === 'all') {\n return 'all';\n }\n\n if (typeof value === 'string') {\n const res = {};\n value.split(',').forEach(code => {\n res[code.trim()] = true;\n });\n return res;\n } else if (value !== undefined) {\n console.warn(`expandResponses must be a string but received value \"${value}\" of type ${typeof value}`);\n }\n\n return {};\n }\n\n static normalizeHideHostname(value: RedocRawOptions['hideHostname']): boolean {\n return !!value;\n }\n\n static normalizeScrollYOffset(value: RedocRawOptions['scrollYOffset']): () => number {\n // just number is not valid selector and leads to crash so checking if isNumeric here\n if (typeof value === 'string' && !isNumeric(value)) {\n const el = querySelector(value);\n\n if (!el) {\n console.warn('scrollYOffset value is a selector to non-existing element. Using offset 0 by default');\n }\n\n const bottom = el && el.getBoundingClientRect().bottom || 0;\n return () => bottom;\n } else if (typeof value === 'number' || isNumeric(value)) {\n return () => typeof value === 'number' ? value : parseFloat(value);\n } else if (typeof value === 'function') {\n return () => {\n const res = value();\n\n if (typeof res !== 'number') {\n console.warn(`scrollYOffset should return number but returned value \"${res}\" of type ${typeof res}`);\n }\n\n return res;\n };\n } else if (value !== undefined) {\n console.warn('Wrong value for scrollYOffset ReDoc option: should be string, number or function');\n }\n\n return () => 0;\n }\n\n static normalizeShowExtensions(value: RedocRawOptions['showExtensions']): string[] | boolean {\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (value === '') {\n return true;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n switch (value) {\n case 'true':\n return true;\n\n case 'false':\n return false;\n\n default:\n return value.split(',').map(ext => ext.trim());\n }\n }\n\n static normalizePayloadSampleIdx(value: RedocRawOptions['payloadSampleIdx']): number {\n if (typeof value === 'number') {\n return Math.max(0, value); // always greater or equal than 0\n }\n\n if (typeof value === 'string') {\n return isFinite(value) ? parseInt(value, 10) : 0;\n }\n\n return 0;\n }\n\n private static normalizeJsonSampleExpandLevel(level?: number | string | 'all'): number {\n if (level === 'all') {\n return +Infinity;\n }\n\n if (!isNaN(Number(level))) {\n return Math.ceil(Number(level));\n }\n\n return 2;\n }\n\n theme: ResolvedThemeInterface;\n scrollYOffset: () => number;\n hideHostname: boolean;\n expandResponses: {\n [code: string]: boolean;\n } | 'all';\n requiredPropsFirst: boolean;\n sortPropsAlphabetically: boolean;\n sortEnumValuesAlphabetically: boolean;\n noAutoAuth: boolean;\n nativeScrollbars: boolean;\n pathInMiddlePanel: boolean;\n untrustedSpec: boolean;\n hideDownloadButton: boolean;\n disableSearch: boolean;\n onlyRequiredInSamples: boolean;\n showExtensions: boolean | string[];\n hideSingleRequestSampleTab: boolean;\n menuToggle: boolean;\n jsonSampleExpandLevel: number;\n enumSkipQuotes: boolean;\n hideSchemaTitles: boolean;\n simpleOneOfTypeLabel: boolean;\n payloadSampleIdx: number;\n expandSingleSchemaField: boolean;\n expandAllSchemaFields: boolean;\n hideShelfIcon: boolean;\n hideHttpVerbs: boolean;\n /* tslint:disable-next-line */\n\n unstable_ignoreMimeParameters: boolean;\n allowedMdComponents: Record;\n expandDefaultServerVariables: boolean;\n maxDisplayedEnumValues?: number;\n\n constructor(raw: RedocRawOptions, defaults: RedocRawOptions = {}) {\n raw = { ...defaults,\n ...raw\n };\n const hook = raw.theme && raw.theme.extensionsHook; // migrate from old theme\n\n if ((raw.theme as any)?.menu && !raw.theme?.sidebar) {\n console.warn('Theme setting \"menu\" is deprecated. Rename to \"sidebar\"');\n raw.theme!.sidebar = (raw.theme as any).menu;\n }\n\n if ((raw.theme as any)?.codeSample && !raw.theme?.codeBlock) {\n console.warn('Theme setting \"codeSample\" is deprecated. Rename to \"codeBlock\"');\n raw.theme!.codeBlock = (raw.theme as any).codeSample;\n }\n\n this.theme = resolveTheme(mergeObjects(({} as any), defaultTheme, { ...raw.theme,\n extensionsHook: undefined\n }));\n this.theme.extensionsHook = (hook as any); // do not support dynamic labels changes. Labels should be configured before\n\n setRedocLabels(raw.labels);\n this.scrollYOffset = RedocNormalizedOptions.normalizeScrollYOffset(raw.scrollYOffset);\n this.hideHostname = RedocNormalizedOptions.normalizeHideHostname(raw.hideHostname);\n this.expandResponses = RedocNormalizedOptions.normalizeExpandResponses(raw.expandResponses);\n this.requiredPropsFirst = argValueToBoolean(raw.requiredPropsFirst);\n this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically);\n this.sortEnumValuesAlphabetically = argValueToBoolean(raw.sortEnumValuesAlphabetically);\n this.noAutoAuth = argValueToBoolean(raw.noAutoAuth);\n this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);\n this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);\n this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);\n this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton);\n this.disableSearch = argValueToBoolean(raw.disableSearch);\n this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples);\n this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions);\n this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab);\n this.menuToggle = argValueToBoolean(raw.menuToggle, true);\n this.jsonSampleExpandLevel = RedocNormalizedOptions.normalizeJsonSampleExpandLevel(raw.jsonSampleExpandLevel);\n this.enumSkipQuotes = argValueToBoolean(raw.enumSkipQuotes);\n this.hideSchemaTitles = argValueToBoolean(raw.hideSchemaTitles);\n this.simpleOneOfTypeLabel = argValueToBoolean(raw.simpleOneOfTypeLabel);\n this.payloadSampleIdx = RedocNormalizedOptions.normalizePayloadSampleIdx(raw.payloadSampleIdx);\n this.expandSingleSchemaField = argValueToBoolean(raw.expandSingleSchemaField);\n this.expandAllSchemaFields = argValueToBoolean(raw.expandAllSchemaFields);\n this.hideShelfIcon = argValueToBoolean(raw.hideShelfIcon);\n this.hideHttpVerbs = argValueToBoolean(raw.hideHttpVerbs);\n this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);\n this.allowedMdComponents = raw.allowedMdComponents || {};\n this.expandDefaultServerVariables = argValueToBoolean(raw.expandDefaultServerVariables);\n this.maxDisplayedEnumValues = argValueToNumber(raw.maxDisplayedEnumValues);\n }\n\n}","import * as styledComponents from 'styled-components';\nimport { ResolvedThemeInterface } from './theme';\nexport { ResolvedThemeInterface };\nconst {\n default: styled,\n css,\n createGlobalStyle,\n keyframes,\n ThemeProvider\n} = (styledComponents as styledComponents.ThemedStyledComponentsModule);\nexport const media = {\n lessThan(breakpoint, print?: boolean) {\n return (...args) => css`\n @media ${print ? 'print, ' : ''} screen and (max-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n greaterThan(breakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n between(firstBreakpoint, secondBreakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[firstBreakpoint]}) and (max-width: ${props => props.theme.breakpoints[secondBreakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n }\n\n};\nexport { css, createGlobalStyle, keyframes, ThemeProvider };\nexport default styled;\nexport function extensionsHook(styledName: string) {\n return props => {\n if (!props.theme.extensionsHook) {\n return;\n }\n\n return props.theme.extensionsHook(styledName, props);\n };\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst ErrorWrapper = styled.div`\n padding: 20px;\n color: red;\n`;\nexport class ErrorBoundary extends React.Component, {\n error?: Error;\n}> {\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n\n componentDidCatch(error) {\n this.setState({\n error\n });\n return false;\n }\n\n render() {\n if (this.state.error) {\n return \n

Something went wrong...

\n {this.state.error.message} \n

\n

\n Stack trace\n
{this.state.error.stack}
\n
\n

\n ReDoc Version: {__REDOC_VERSION__}
\n Commit: {__REDOC_REVISION__}\n
;\n }\n\n return React.Children.only(this.props.children);\n }\n\n}","import * as React from 'react';\nimport styled, { keyframes } from '../../styled-components';\n\nconst _Spinner = (props: {\n className?: string;\n color: string;\n}) => \n \n \n \n \n \n \n \n \n ;\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n`;\nexport const Spinner = styled(_Spinner)`\n animation: 2s ${rotate} linear infinite;\n width: 50px;\n height: 50px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path {\n fill: ${props => props.color};\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { Spinner } from './Spinner.svg';\nconst LoadingMessage = styled.div<{\n color: string;\n}>`\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ${props => props.color};\n`;\nexport interface LoadingProps {\n color: string;\n}\nexport class Loading extends React.PureComponent {\n render() {\n return
\n Loading ...\n \n
;\n }\n\n}","import * as React from 'react';\nimport { RedocNormalizedOptions } from '../services/RedocNormalizedOptions';\nexport const OptionsContext = React.createContext(new RedocNormalizedOptions({}));\nexport const OptionsProvider = OptionsContext.Provider;\nexport const OptionsConsumer = OptionsContext.Consumer;","import * as JsonSchemaRefParser from 'json-schema-ref-parser';\n/* tslint:disable-next-line:no-implicit-dependencies */\n\nimport { convertObj } from 'swagger2openapi';\nimport { OpenAPISpec } from '../types';\nexport async function loadAndBundleSpec(specUrlOrObject: object | string): Promise {\n const parser = new JsonSchemaRefParser();\n const spec = (await parser.bundle(specUrlOrObject, ({\n resolve: {\n http: {\n withCredentials: false\n }\n }\n } as object)) as any);\n\n if (spec.swagger !== undefined) {\n return convertSwagger2OpenAPI(spec);\n } else {\n return spec;\n }\n}\nexport function convertSwagger2OpenAPI(spec: any): Promise {\n console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0');\n return new Promise((resolve, reject) => convertObj(spec, {\n patch: true,\n warnOnly: true,\n text: '{}',\n anchors: true\n }, (err, res) => {\n // TODO: log any warnings\n if (err) {\n return reject(err);\n }\n\n resolve(res && (res.openapi as any));\n }));\n}","'use strict';\n\nimport * as JsonPointerLib from 'json-pointer';\nconst origParse = JsonPointerLib.parse;\n/**\n * Wrapper for JsonPointer. Provides common operations\n */\n\nexport class JsonPointer {\n /**\n * returns last JsonPointer token\n * if level > 1 returns levels last (second last/third last)\n * @example\n * // returns subpath\n * JsonPointerHelper.baseName('/path/0/subpath')\n * // returns foo\n * JsonPointerHelper.baseName('/path/foo/subpath', 2)\n */\n static baseName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return tokens[tokens.length - level];\n }\n /**\n * returns dirname of pointer\n * if level > 1 returns corresponding dirname in the hierarchy\n * @example\n * // returns /path/0\n * JsonPointerHelper.dirName('/path/0/subpath')\n * // returns /path\n * JsonPointerHelper.dirName('/path/foo/subpath', 2)\n */\n\n\n static dirName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return JsonPointerLib.compile(tokens.slice(0, tokens.length - level));\n }\n /**\n * returns relative path tokens\n * @example\n * // returns ['subpath']\n * JsonPointerHelper.relative('/path/0', '/path/0/subpath')\n * // returns ['foo', 'subpath']\n * JsonPointerHelper.relative('/path', '/path/foo/subpath')\n */\n\n\n static relative(from, to): string[] {\n const fromTokens = JsonPointer.parse(from);\n const toTokens = JsonPointer.parse(to);\n return toTokens.slice(fromTokens.length);\n }\n /**\n * overridden JsonPointer original parse to take care of prefixing '#' symbol\n * that is not valid JsonPointer\n */\n\n\n static parse(pointer) {\n let ptr = pointer;\n\n if (ptr.charAt(0) === '#') {\n ptr = ptr.substring(1);\n }\n\n return origParse(ptr);\n }\n /**\n * Creates a JSON pointer path, by joining one or more tokens to a base path.\n *\n * @param {string} base - The base path\n * @param {string|string[]} tokens - The token(s) to append (e.g. [\"name\", \"first\"])\n * @returns {string}\n */\n\n\n static join(base, tokens) {\n // TODO: optimize\n const baseTokens = JsonPointer.parse(base);\n const resTokens = baseTokens.concat(tokens);\n return JsonPointerLib.compile(resTokens);\n }\n\n static get(object: object, pointer: string) {\n return JsonPointerLib.get(object, pointer);\n }\n\n static compile(tokens: string[]) {\n return JsonPointerLib.compile(tokens);\n }\n\n static escape(pointer: string) {\n return JsonPointerLib.escape(pointer);\n }\n\n}\n(JsonPointerLib as any).parse = JsonPointer.parse;\nObject.assign(JsonPointer, JsonPointerLib);\nexport default JsonPointer;","import { dirname } from 'path';\nimport * as URLtemplate from 'url-template';\nimport { FieldModel } from '../services/models';\nimport { OpenAPIParser } from '../services/OpenAPIParser';\nimport { OpenAPIEncoding, OpenAPIMediaType, OpenAPIOperation, OpenAPIParameter, OpenAPIParameterStyle, OpenAPISchema, OpenAPIServer, Referenced } from '../types';\nimport { isNumeric, removeQueryString, resolveUrl } from './helpers';\n\nfunction isWildcardStatusCode(statusCode: string | number): statusCode is string {\n return typeof statusCode === 'string' && /\\dxx/i.test(statusCode);\n}\n\nexport function isStatusCode(statusCode: string) {\n return statusCode === 'default' || isNumeric(statusCode) || isWildcardStatusCode(statusCode);\n}\nexport function getStatusCodeType(statusCode: string | number, defaultAsError = false): string {\n if (statusCode === 'default') {\n return defaultAsError ? 'error' : 'success';\n }\n\n let code = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode;\n\n if (isWildcardStatusCode(statusCode)) {\n code *= 100; // parseInt('2xx') parses to 2\n }\n\n if (code < 100 || code > 599) {\n throw new Error('invalid HTTP code');\n }\n\n let res = 'success';\n\n if (code >= 300 && code < 400) {\n res = 'redirect';\n } else if (code >= 400) {\n res = 'error';\n } else if (code < 200) {\n res = 'info';\n }\n\n return res;\n}\nconst operationNames = {\n get: true,\n post: true,\n put: true,\n head: true,\n patch: true,\n delete: true,\n options: true\n};\nexport function isOperationName(key: string): boolean {\n return key in operationNames;\n}\nexport function getOperationSummary(operation: OpenAPIOperation): string {\n return operation.summary || operation.operationId || operation.description && operation.description.substring(0, 50) || '';\n}\nconst schemaKeywordTypes = {\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n additionalProperties: 'object',\n properties: 'object'\n};\nexport function detectType(schema: OpenAPISchema): string {\n if (schema.type !== undefined) {\n return schema.type;\n }\n\n const keywords = Object.keys(schemaKeywordTypes);\n\n for (const keyword of keywords) {\n const type = schemaKeywordTypes[keyword];\n\n if (schema[keyword] !== undefined) {\n return type;\n }\n }\n\n return 'any';\n}\nexport function isPrimitiveType(schema: OpenAPISchema, type: string | undefined = schema.type) {\n if (schema.oneOf !== undefined || schema.anyOf !== undefined) {\n return false;\n }\n\n if (type === 'object') {\n return schema.properties !== undefined ? Object.keys(schema.properties).length === 0 : schema.additionalProperties === undefined;\n }\n\n if (type === 'array') {\n if (schema.items === undefined) {\n return true;\n }\n\n return false;\n }\n\n return true;\n}\nexport function isJsonLike(contentType: string): boolean {\n return contentType.search(/json/i) !== -1;\n}\nexport function isFormUrlEncoded(contentType: string): boolean {\n return contentType === 'application/x-www-form-urlencoded';\n}\n\nfunction delimitedEncodeField(fieldVal: any, fieldName: string, delimiter: string): string {\n if (Array.isArray(fieldVal)) {\n return fieldVal.map(v => v.toString()).join(delimiter);\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${k}${delimiter}${fieldVal[k]}`).join(delimiter);\n } else {\n return fieldName + '=' + fieldVal.toString();\n }\n}\n\nfunction deepObjectEncodeField(fieldVal: any, fieldName: string): string {\n if (Array.isArray(fieldVal)) {\n console.warn('deepObject style cannot be used with array value:' + fieldVal.toString());\n return '';\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${fieldName}[${k}]=${fieldVal[k]}`).join('&');\n } else {\n console.warn('deepObject style cannot be used with non-object value:' + fieldVal.toString());\n return '';\n }\n}\n\nfunction serializeFormValue(name: string, explode: boolean, value: any) {\n // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n const safeName = '__redoc_param_name__';\n const suffix = explode ? '*' : '';\n const template = URLtemplate.parse(`{?${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).substring(1).replace(/__redoc_param_name__/g, name);\n}\n/*\n * Should be used only for url-form-encoded body payloads\n * To be used for parameters should be extended with other style values\n */\n\n\nexport function urlFormEncodePayload(payload: object, encoding: {\n [field: string]: OpenAPIEncoding;\n} = {}) {\n if (Array.isArray(payload)) {\n throw new Error('Payload must have fields: ' + payload.toString());\n } else {\n return Object.keys(payload).map(fieldName => {\n const fieldVal = payload[fieldName];\n const {\n style = 'form',\n explode = true\n } = encoding[fieldName] || {};\n\n switch (style) {\n case 'form':\n return serializeFormValue(fieldName, explode, fieldVal);\n\n case 'spaceDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '%20');\n\n case 'pipeDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '|');\n\n case 'deepObject':\n return deepObjectEncodeField(fieldVal, fieldName);\n\n default:\n // TODO implement rest of styles for path parameters\n console.warn('Incorrect or unsupported encoding style: ' + style);\n return '';\n }\n }).join('&');\n }\n}\n\nfunction serializePathParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n const suffix = explode ? '*' : '';\n let prefix = '';\n\n if (style === 'label') {\n prefix = '.';\n } else if (style === 'matrix') {\n prefix = ';';\n } // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n\n\n const safeName = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${prefix}${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).replace(/__redoc_param_name__/g, name);\n}\n\nfunction serializeQueryParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n case 'spaceDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style spaceDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('%20')}`;\n\n case 'pipeDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style pipeDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('|')}`;\n\n case 'deepObject':\n if (!explode || Array.isArray(value) || typeof value !== 'object') {\n console.warn('The style deepObject is only applicable for objects with explode=true');\n return '';\n }\n\n return deepObjectEncodeField(value, name);\n\n default:\n console.warn('Unexpected style for query: ' + style);\n return '';\n }\n}\n\nfunction serializeHeaderParameter(style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'simple':\n const suffix = explode ? '*' : ''; // name is not important here, so use RFC6570 safe name ([a-zA-Z0-9_])\n\n const name = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${name}${suffix}}`);\n return decodeURIComponent(template.expand({\n [name]: value\n }));\n\n default:\n console.warn('Unexpected style for header: ' + style);\n return '';\n }\n}\n\nfunction serializeCookieParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n default:\n console.warn('Unexpected style for cookie: ' + style);\n return '';\n }\n}\n\nexport function serializeParameterValueWithMime(value: any, mime: string): string {\n if (isJsonLike(mime)) {\n return JSON.stringify(value);\n } else {\n console.warn(`Parameter serialization as ${mime} is not supported`);\n return '';\n }\n}\nexport function serializeParameterValue(parameter: OpenAPIParameter & {\n serializationMime?: string;\n}, value: any): string {\n const {\n name,\n style,\n explode = false,\n serializationMime\n } = parameter;\n\n if (serializationMime) {\n switch (parameter.in) {\n case 'path':\n case 'header':\n return serializeParameterValueWithMime(value, serializationMime);\n\n case 'cookie':\n case 'query':\n return `${name}=${serializeParameterValueWithMime(value, serializationMime)}`;\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n }\n\n if (!style) {\n console.warn(`Missing style attribute or content for parameter ${name}`);\n return '';\n }\n\n switch (parameter.in) {\n case 'path':\n return serializePathParameter(name, style, explode, value);\n\n case 'query':\n return serializeQueryParameter(name, style, explode, value);\n\n case 'header':\n return serializeHeaderParameter(style, explode, value);\n\n case 'cookie':\n return serializeCookieParameter(name, style, explode, value);\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n}\nexport function langFromMime(contentType: string): string {\n if (contentType.search(/xml/i) !== -1) {\n return 'xml';\n }\n\n return 'clike';\n}\nexport function isNamedDefinition(pointer?: string): boolean {\n return /^#\\/components\\/schemas\\/[^\\/]+$/.test(pointer || '');\n}\n\nfunction humanizeMultipleOfConstraint(multipleOf: number | undefined): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n\n const strigifiedMultipleOf = multipleOf.toString(10);\n\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n}\n\nfunction humanizeRangeConstraint(description: string, min: number | undefined, max: number | undefined): string | undefined {\n let stringRange;\n\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n\n return stringRange;\n}\n\nexport function humanizeConstraints(schema: OpenAPISchema): string[] {\n const res: string[] = [];\n const stringRange = humanizeRangeConstraint('characters', schema.minLength, schema.maxLength);\n\n if (stringRange !== undefined) {\n res.push(stringRange);\n }\n\n const arrayRange = humanizeRangeConstraint('items', schema.minItems, schema.maxItems);\n\n if (arrayRange !== undefined) {\n res.push(arrayRange);\n }\n\n const multipleOfConstraint = humanizeMultipleOfConstraint(schema.multipleOf);\n\n if (multipleOfConstraint !== undefined) {\n res.push(multipleOfConstraint);\n }\n\n let numberRange;\n\n if (schema.minimum !== undefined && schema.maximum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '( ' : '[ ';\n numberRange += schema.minimum;\n numberRange += ' .. ';\n numberRange += schema.maximum;\n numberRange += schema.exclusiveMaximum ? ' )' : ' ]';\n } else if (schema.maximum !== undefined) {\n numberRange = schema.exclusiveMaximum ? '< ' : '<= ';\n numberRange += schema.maximum;\n } else if (schema.minimum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '> ' : '>= ';\n numberRange += schema.minimum;\n }\n\n if (numberRange !== undefined) {\n res.push(numberRange);\n }\n\n return res;\n}\nexport function sortByRequired(fields: FieldModel[], order: string[] = []) {\n const unrequiredFields: FieldModel[] = [];\n const orderedFields: FieldModel[] = [];\n const unorderedFields: FieldModel[] = [];\n fields.forEach(field => {\n if (field.required) {\n order.includes(field.name) ? orderedFields.push(field) : unorderedFields.push(field);\n } else {\n unrequiredFields.push(field);\n }\n });\n orderedFields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n return [...orderedFields, ...unorderedFields, ...unrequiredFields];\n}\nexport function sortByField(fields: FieldModel[], param: keyof Pick) {\n return [...fields].sort((a, b) => {\n return a[param].localeCompare(b[param]);\n });\n}\nexport function mergeParams(parser: OpenAPIParser, pathParams: Array> = [], operationParams: Array> = []): Array> {\n const operationParamNames = {};\n operationParams.forEach(param => {\n param = parser.shalowDeref(param);\n operationParamNames[param.name + '_' + param.in] = true;\n }); // filter out path params overridden by operation ones with the same name\n\n pathParams = pathParams.filter(param => {\n param = parser.shalowDeref(param);\n return !operationParamNames[param.name + '_' + param.in];\n });\n return pathParams.concat(operationParams);\n}\nexport function mergeSimilarMediaTypes(types: Record): Record {\n const mergedTypes = {};\n Object.keys(types).forEach(name => {\n const mime = types[name]; // ignore content type parameters (e.g. charset) and merge\n\n const normalizedMimeName = name.split(';')[0].trim();\n\n if (!mergedTypes[normalizedMimeName]) {\n mergedTypes[normalizedMimeName] = mime;\n return;\n }\n\n mergedTypes[normalizedMimeName] = { ...mergedTypes[normalizedMimeName],\n ...mime\n };\n });\n return mergedTypes;\n}\nexport function expandDefaultServerVariables(url: string, variables: object = {}) {\n return url.replace(/(?:{)([\\w-.]+)(?:})/g, (match, name) => variables[name] && variables[name].default || match);\n}\nexport function normalizeServers(specUrl: string | undefined | null, servers: OpenAPIServer[]): OpenAPIServer[] {\n const getHref = () => {\n return '';\n };\n\n const baseUrl = !specUrl ? removeQueryString(getHref()) : dirname(specUrl);\n\n if (servers.length === 0) {\n // Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object\n servers = [{\n url: '/'\n }];\n }\n\n function normalizeUrl(url: string): string {\n return resolveUrl(baseUrl, url);\n }\n\n return servers.map(server => {\n return { ...server,\n url: normalizeUrl(server.url),\n description: server.description || ''\n };\n });\n}\nexport const SECURITY_DEFINITIONS_COMPONENT_NAME = 'security-definitions';\nexport const SECURITY_DEFINITIONS_JSX_NAME = 'SecurityDefinitions';\nexport const SCHEMA_DEFINITION_JSX_NAME = 'SchemaDefinition';\nexport let SECURITY_SCHEMES_SECTION_PREFIX = 'section/Authentication/';\nexport function setSecuritySchemePrefix(prefix: string) {\n SECURITY_SCHEMES_SECTION_PREFIX = prefix;\n}\nexport const shortenHTTPVerb = verb => ({\n delete: 'del',\n options: 'opts'\n})[verb] || verb;\nexport function isRedocExtension(key: string): boolean {\n const redocExtensions = {\n 'x-circular-ref': true,\n 'x-code-samples': true,\n // deprecated\n 'x-codeSamples': true,\n 'x-displayName': true,\n 'x-examples': true,\n 'x-ignoredHeaderParameters': true,\n 'x-logo': true,\n 'x-nullable': true,\n 'x-servers': true,\n 'x-tagGroups': true,\n 'x-traitTag': true,\n 'x-additionalPropertiesName': true,\n 'x-explicitMappingOnly': true\n };\n return key in redocExtensions;\n}\nexport function extractExtensions(obj: object, showExtensions: string[] | true): Record {\n return Object.keys(obj).filter(key => {\n if (showExtensions === true) {\n return key.startsWith('x-') && !isRedocExtension(key);\n }\n\n return key.startsWith('x-') && showExtensions.indexOf(key) > -1;\n }).reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n}\nexport function pluralizeType(displayType: string): string {\n return displayType.split(' or ').map(type => type.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/, '$1s$2')).join(' or ');\n}","import * as Prism from 'prismjs';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-c.js';\nimport 'prismjs/components/prism-clike.js';\nimport 'prismjs/components/prism-coffeescript.js';\nimport 'prismjs/components/prism-cpp.js';\nimport 'prismjs/components/prism-csharp.js';\nimport 'prismjs/components/prism-go.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/components/prism-java.js';\nimport 'prismjs/components/prism-lua.js';\nimport 'prismjs/components/prism-markup-templating.js'; // dep of php\n\nimport 'prismjs/components/prism-markup.js'; // xml\n\nimport 'prismjs/components/prism-objectivec.js';\nimport 'prismjs/components/prism-perl.js';\nimport 'prismjs/components/prism-php.js';\nimport 'prismjs/components/prism-python.js';\nimport 'prismjs/components/prism-ruby.js';\nimport 'prismjs/components/prism-scala.js';\nimport 'prismjs/components/prism-sql.js';\nimport 'prismjs/components/prism-swift.js';\nconst DEFAULT_LANG = 'clike';\nPrism.languages.insertBefore('javascript', 'string', ({\n 'property string': {\n pattern: /([{,]\\s*)\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,\n lookbehind: true\n }\n} as any), (undefined as any));\nPrism.languages.insertBefore('javascript', 'punctuation', {\n property: {\n pattern: /([{,]\\s*)[a-z]\\w*(?=\\s*:)/i,\n lookbehind: true\n }\n}, (undefined as any));\n/**\n * map language names to Prism.js names\n */\n\nexport function mapLang(lang: string): string {\n return {\n json: 'js',\n 'c++': 'cpp',\n 'c#': 'csharp',\n 'objective-c': 'objectivec',\n shell: 'bash',\n viml: 'vim'\n }[lang] || DEFAULT_LANG;\n}\n/**\n * Highlight source code string using Prism.js\n * @param source source code to highlight\n * @param lang highlight language\n * @return highlighted source code as **html string**\n */\n\nexport function highlight(source: string, lang: string = DEFAULT_LANG): string {\n lang = lang.toLowerCase();\n let grammar = Prism.languages[lang];\n\n if (!grammar) {\n grammar = Prism.languages[mapLang(lang)];\n }\n\n return Prism.highlight(source, grammar, lang);\n}","function throttle(func, wait) {\n let context;\n let args;\n let result;\n let timeout: any = null;\n let previous = 0;\n\n const later = () => {\n previous = new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n return function () {\n const now = new Date().getTime();\n const remaining = wait - (now - previous);\n context = this; // eslint-disable-next-line prefer-rest-params\n\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nexport function Throttle(delay: number) {\n return (_, _2, desc: PropertyDescriptor) => {\n desc.value = throttle(desc.value, delay);\n };\n}","export function debugTime(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.time(label);\n }\n}\nexport function debugTimeEnd(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.timeEnd(label);\n }\n}","// source: https://github.com/andreypopp/memoize-decorator\nconst SENTINEL = {};\nexport function memoize(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (typeof descriptor.value === 'function') {\n return ((_memoizeMethod(target, name, descriptor) as any) as TypedPropertyDescriptor);\n } else if (typeof descriptor.get === 'function') {\n return (_memoizeGetter(target, name, descriptor) as TypedPropertyDescriptor);\n } else {\n throw new Error('@memoize decorator can be applied to methods or getters, got ' + String(descriptor.value) + ' instead');\n }\n}\n\nfunction _memoizeGetter(target: any, name: string, descriptor: PropertyDescriptor) {\n const memoizedName = `_memoized_${name}`;\n const get = descriptor.get!;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n get() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = get.call(this);\n }\n\n return this[memoizedName];\n }\n\n };\n}\n\nfunction _memoizeMethod(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (!descriptor.value || (descriptor.value as any).length > 0) {\n throw new Error('@memoize decorator can only be applied to methods of zero arguments');\n }\n\n const memoizedName = `_memoized_${name}`;\n const value = descriptor.value;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n value() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = (value as any).call(this);\n }\n\n return (this[memoizedName] as any);\n }\n\n };\n}","export * from './JsonPointer';\nexport * from './openapi';\nexport * from './helpers';\nexport * from './highlight';\nexport * from './loadAndBundleSpec';\nexport * from './dom';\nexport * from './decorators';\nexport * from './debug';\nexport * from './memoize';","import { bind, debounce } from 'decko';\nimport { EventEmitter } from 'eventemitter3';\nimport { IS_BROWSER } from '../utils/';\nconst EVENT = 'hashchange';\nexport class HistoryService {\n private _emiter;\n\n constructor() {\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n get currentId(): string {\n return IS_BROWSER ? decodeURIComponent(window.location.hash.substring(1)) : '';\n }\n\n linkForId(id: string) {\n if (!id) {\n return '';\n }\n\n return '#' + id;\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n emit = () => {\n this._emiter.emit(EVENT, this.currentId);\n };\n\n bind() {\n if (IS_BROWSER) {\n window.addEventListener('hashchange', this.emit, false);\n }\n }\n\n dispose() {\n if (IS_BROWSER) {\n window.removeEventListener('hashchange', this.emit);\n }\n }\n\n @bind\n @debounce\n replace(id: string | null, rewriteHistory: boolean = false) {\n if (!IS_BROWSER) {\n return;\n }\n\n if (id == null || id === this.currentId) {\n return;\n }\n\n if (rewriteHistory) {\n window.history.replaceState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n return;\n }\n\n window.history.pushState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n this.emit();\n }\n\n}\nexport const history = new HistoryService();\n\nif (module.hot) {\n module.hot.dispose(() => {\n history.dispose();\n });\n}","import * as Mark from 'mark.js';\nexport class MarkerService {\n map: Map = new Map();\n private prevTerm: string = '';\n\n add(el: HTMLElement) {\n this.map.set(el, new Mark(el));\n }\n\n delete(el: Element) {\n this.map.delete(el);\n }\n\n addOnly(elements: Element[]) {\n this.map.forEach((inst, elem) => {\n if (elements.indexOf(elem) === -1) {\n inst.unmark();\n this.map.delete(elem);\n }\n });\n\n for (const el of elements) {\n if (!this.map.has(el)) {\n this.map.set(el, new Mark((el as HTMLElement)));\n }\n }\n }\n\n clearAll() {\n this.unmark();\n this.map.clear();\n }\n\n mark(term?: string) {\n if (!term && !this.prevTerm) {\n return;\n }\n\n this.map.forEach(val => {\n val.unmark();\n val.mark(term || this.prevTerm);\n });\n this.prevTerm = term || this.prevTerm;\n }\n\n unmark() {\n this.map.forEach(val => val.unmark());\n this.prevTerm = '';\n }\n\n}","import * as marked from 'marked';\nimport { highlight, safeSlugify, unescapeHTMLChars } from '../utils';\nimport { AppStore } from './AppStore';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst renderer = new marked.Renderer();\nmarked.setOptions({\n renderer,\n highlight: (str, lang) => {\n return highlight(str, lang);\n }\n});\nexport const LEGACY_REGEXP = '^ {0,3}\\\\s*$'; // prettier-ignore\n\nexport const MDX_COMPONENT_REGEXP = '(?:^ {0,3}<({component})([\\\\s\\\\S]*?)>([\\\\s\\\\S]*?)' // with children\n+ '|^ {0,3}<({component})([\\\\s\\\\S]*?)(?:/>|\\\\n{2,}))'; // self-closing\n\nexport const COMPONENT_REGEXP = '(?:' + LEGACY_REGEXP + '|' + MDX_COMPONENT_REGEXP + ')';\nexport interface MDXComponentMeta {\n component: React.ComponentType;\n propsSelector: (store?: AppStore) => any;\n props?: object;\n}\nexport interface MarkdownHeading {\n id: string;\n name: string;\n level: number;\n items?: MarkdownHeading[];\n description?: string;\n}\nexport function buildComponentComment(name: string) {\n return ``;\n}\nexport class MarkdownRenderer {\n static containsComponent(rawText: string, componentName: string) {\n const compRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, componentName), 'gmi');\n return compRegexp.test(rawText);\n }\n\n static getTextBeforeHading(md: string, heading: string): string {\n const headingLinePos = md.search(new RegExp(`^##?\\\\s+${heading}`, 'm'));\n\n if (headingLinePos > -1) {\n return md.substring(0, headingLinePos);\n }\n\n return md;\n }\n\n headings: MarkdownHeading[] = [];\n currentTopHeading: MarkdownHeading;\n private headingEnhanceRenderer: marked.Renderer;\n private originalHeadingRule: typeof marked.Renderer.prototype.heading;\n\n constructor(public options?: RedocNormalizedOptions) {\n this.headingEnhanceRenderer = new marked.Renderer();\n this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(this.headingEnhanceRenderer);\n this.headingEnhanceRenderer.heading = this.headingRule;\n }\n\n saveHeading(name: string, level: number, container: MarkdownHeading[] = this.headings, parentId?: string): MarkdownHeading {\n name = unescapeHTMLChars(name);\n const item = {\n id: parentId ? `${parentId}/${safeSlugify(name)}` : `section/${safeSlugify(name)}`,\n name,\n level,\n items: []\n };\n container.push(item);\n return item;\n }\n\n flattenHeadings(container?: MarkdownHeading[]): MarkdownHeading[] {\n if (container === undefined) {\n return [];\n }\n\n const res: MarkdownHeading[] = [];\n\n for (const heading of container) {\n res.push(heading);\n res.push(...this.flattenHeadings(heading.items));\n }\n\n return res;\n }\n\n attachHeadingsDescriptions(rawText: string) {\n const buildRegexp = (heading: MarkdownHeading) => {\n return new RegExp(`##?\\\\s+${heading.name.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')}`);\n };\n\n const flatHeadings = this.flattenHeadings(this.headings);\n\n if (flatHeadings.length < 1) {\n return;\n }\n\n let prevHeading = flatHeadings[0];\n let prevRegexp = buildRegexp(prevHeading);\n let prevPos = rawText.search(prevRegexp);\n\n for (let i = 1; i < flatHeadings.length; i++) {\n const heading = flatHeadings[i];\n const regexp = buildRegexp(heading);\n const currentPos = rawText.substr(prevPos + 1).search(regexp) + prevPos + 1;\n prevHeading.description = rawText.substring(prevPos, currentPos).replace(prevRegexp, '').trim();\n prevHeading = heading;\n prevRegexp = regexp;\n prevPos = currentPos;\n }\n\n prevHeading.description = rawText.substring(prevPos).replace(prevRegexp, '').trim();\n }\n\n headingRule = (text: string, level: 1 | 2 | 3 | 4 | 5 | 6, raw: string, slugger: marked.Slugger) => {\n if (level === 1) {\n this.currentTopHeading = this.saveHeading(text, level);\n } else if (level === 2) {\n this.saveHeading(text, level, this.currentTopHeading && this.currentTopHeading.items, this.currentTopHeading && this.currentTopHeading.id);\n }\n\n return this.originalHeadingRule(text, level, raw, slugger);\n };\n\n renderMd(rawText: string, extractHeadings: boolean = false): string {\n const opts = extractHeadings ? {\n renderer: this.headingEnhanceRenderer\n } : undefined;\n const res = marked(rawText.toString(), opts);\n return res;\n }\n\n extractHeadings(rawText: string): MarkdownHeading[] {\n this.renderMd(rawText, true);\n this.attachHeadingsDescriptions(rawText);\n const res = this.headings;\n this.headings = [];\n return res;\n } // regexp-based 👎: remark is slow and too big so for now using marked + regexps soup\n\n\n renderMdWithComponents(rawText: string): Array {\n const components = this.options && this.options.allowedMdComponents;\n\n if (!components || Object.keys(components).length === 0) {\n return [this.renderMd(rawText)];\n }\n\n const names = Object.keys(components).join('|');\n const componentsRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, names), 'mig');\n const htmlParts: string[] = [];\n const componentDefs: MDXComponentMeta[] = [];\n let match = componentsRegexp.exec(rawText);\n let lasxtIdx = 0;\n\n while (match) {\n htmlParts.push(rawText.substring(lasxtIdx, match.index));\n lasxtIdx = componentsRegexp.lastIndex;\n const compName = match[1] || match[2] || match[5];\n const componentMeta = components[compName];\n const props = match[3] || match[6];\n const children = match[4];\n\n if (componentMeta) {\n componentDefs.push({\n component: componentMeta.component,\n propsSelector: componentMeta.propsSelector,\n props: { ...parseProps(props),\n ...componentMeta.props,\n children\n }\n });\n }\n\n match = componentsRegexp.exec(rawText);\n }\n\n htmlParts.push(rawText.substring(lasxtIdx));\n const res: any[] = [];\n\n for (let i = 0; i < htmlParts.length; i++) {\n const htmlPart = htmlParts[i];\n\n if (htmlPart) {\n res.push(this.renderMd(htmlPart));\n }\n\n if (componentDefs[i]) {\n res.push(componentDefs[i]);\n }\n }\n\n return res;\n }\n\n}\n\nfunction parseProps(props: string): object {\n if (!props) {\n return {};\n }\n\n const regex = /([\\w-]+)\\s*=\\s*(?:{([^}]+?)}|\"([^\"]+?)\")/gim;\n const parsed = {};\n let match; // tslint:disable-next-line\n\n while ((match = regex.exec(props)) !== null) {\n if (match[3]) {\n // string prop match (in double quotes)\n parsed[match[1]] = match[3];\n } else if (match[2]) {\n // jsx prop match (in curly braces)\n let val;\n\n try {\n val = JSON.parse(match[2]);\n } catch (e) {\n /* noop */\n }\n\n parsed[match[1]] = val;\n }\n }\n\n return parsed;\n}","import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';\nimport { IS_BROWSER } from '../../utils/';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class ApiInfoModel implements OpenAPIInfo {\n title: string;\n version: string;\n description: string;\n termsOfService?: string;\n contact?: OpenAPIContact;\n license?: OpenAPILicense;\n downloadLink?: string;\n downloadFileName?: string;\n\n constructor(private parser: OpenAPIParser) {\n Object.assign(this, parser.spec.info);\n this.description = parser.spec.info.description || '';\n const firstHeadingLinePos = this.description.search(/^##?\\s+/m);\n\n if (firstHeadingLinePos > -1) {\n this.description = this.description.substring(0, firstHeadingLinePos);\n }\n\n this.downloadLink = this.getDownloadLink();\n this.downloadFileName = this.getDownloadFileName();\n }\n\n private getDownloadLink(): string | undefined {\n if (this.parser.specUrl) {\n return this.parser.specUrl;\n }\n\n if (IS_BROWSER && window.Blob && window.URL && window.URL.createObjectURL) {\n const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {\n type: 'application/json'\n });\n return window.URL.createObjectURL(blob);\n }\n }\n\n private getDownloadFileName(): string | undefined {\n if (!this.parser.specUrl) {\n return 'swagger.json';\n }\n\n return undefined;\n }\n\n}","import { OpenAPISecurityRequirement, OpenAPISecurityScheme } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport interface SecurityScheme extends OpenAPISecurityScheme {\n id: string;\n sectionId: string;\n scopes: string[];\n}\nexport class SecurityRequirementModel {\n schemes: SecurityScheme[];\n\n constructor(requirement: OpenAPISecurityRequirement, parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = (Object.keys(requirement || {}).map(id => {\n const scheme = parser.deref(schemes[id]);\n const scopes = requirement[id] || [];\n\n if (!scheme) {\n console.warn(`Non existing security scheme referenced: ${id}. Skipping`);\n return undefined;\n }\n\n return { ...scheme,\n id,\n sectionId: SECURITY_SCHEMES_SECTION_PREFIX + id,\n scopes\n };\n }).filter(scheme => scheme !== undefined) as SecurityScheme[]);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPICallback, Referenced } from '../../types';\nimport { isOperationName, JsonPointer } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { OperationModel } from './Operation';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nexport class CallbackModel {\n @observable\n expanded: boolean;\n name: string;\n operations: OperationModel[] = [];\n\n constructor(parser: OpenAPIParser, name: string, infoOrRef: Referenced, pointer: string, options: RedocNormalizedOptions) {\n this.name = name;\n const paths = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n const operation = new OperationModel(parser, { ...operationInfo,\n pathName,\n pointer: JsonPointer.compile([pointer, name, pathName, operationName]),\n httpVerb: operationName,\n pathParameters: path.parameters || [],\n pathServers: path.servers\n }, undefined, options, true);\n this.operations.push(operation);\n }\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPISchema, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MergedOpenAPISchema } from '../';\nimport { detectType, extractExtensions, humanizeConstraints, isNamedDefinition, isPrimitiveType, JsonPointer, pluralizeType, sortByField, sortByRequired } from '../../utils/';\nimport { l } from '../Labels'; // TODO: refactor this model, maybe use getters instead of copying all the values\n\nexport class SchemaModel {\n pointer: string;\n type: string;\n displayType: string;\n typePrefix: string = '';\n title: string;\n description: string;\n externalDocs?: OpenAPIExternalDocumentation;\n isPrimitive: boolean;\n isCircular: boolean = false;\n format?: string;\n displayFormat?: string;\n nullable: boolean;\n deprecated: boolean;\n pattern?: string;\n example?: any;\n enum: any[];\n default?: any;\n readOnly: boolean;\n writeOnly: boolean;\n constraints: string[];\n fields?: FieldModel[];\n items?: SchemaModel;\n oneOf?: SchemaModel[];\n oneOfType: string;\n discriminatorProp: string;\n @observable\n activeOneOf: number = 0;\n rawSchema: OpenAPISchema;\n schema: MergedOpenAPISchema;\n extensions?: Record;\n /**\n * @param isChild if schema discriminator Child\n * When true forces dereferencing in allOfs even if circular\n */\n\n constructor(parser: OpenAPIParser, schemaOrRef: Referenced, pointer: string, private options: RedocNormalizedOptions, isChild: boolean = false) {\n this.pointer = schemaOrRef.$ref || pointer || '';\n this.rawSchema = parser.deref(schemaOrRef);\n this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild);\n this.init(parser, isChild);\n parser.exitRef(schemaOrRef);\n parser.exitParents(this.schema);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(this.schema, options.showExtensions);\n }\n }\n /**\n * Set specified alternative schema as active\n * @param idx oneOf index\n */\n\n\n @action\n activateOneOf(idx: number) {\n this.activeOneOf = idx;\n }\n\n init(parser: OpenAPIParser, isChild: boolean) {\n const schema = this.schema;\n this.isCircular = schema['x-circular-ref'];\n this.title = schema.title || isNamedDefinition(this.pointer) && JsonPointer.baseName(this.pointer) || '';\n this.description = schema.description || '';\n this.type = schema.type || detectType(schema);\n this.format = schema.format;\n this.nullable = !!schema.nullable;\n this.enum = schema.enum || [];\n this.example = schema.example;\n this.deprecated = !!schema.deprecated;\n this.pattern = schema.pattern;\n this.externalDocs = schema.externalDocs;\n this.constraints = humanizeConstraints(schema);\n this.displayType = this.type;\n this.displayFormat = this.format;\n this.isPrimitive = isPrimitiveType(schema, this.type);\n this.default = schema.default;\n this.readOnly = !!schema.readOnly;\n this.writeOnly = !!schema.writeOnly;\n\n if (this.isCircular) {\n return;\n }\n\n if (!isChild && getDiscriminator(schema) !== undefined) {\n this.initDiscriminator(schema, parser);\n return;\n } else if (isChild && Array.isArray(schema.oneOf) && schema.oneOf.find(s => s.$ref === this.pointer)) {\n // we hit allOf of the schema with the parent discriminator\n delete schema.oneOf;\n }\n\n if (schema.oneOf !== undefined) {\n this.initOneOf(schema.oneOf, parser);\n this.oneOfType = 'One of';\n\n if (schema.anyOf !== undefined) {\n console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${this.pointer}`);\n }\n\n return;\n }\n\n if (schema.anyOf !== undefined) {\n this.initOneOf(schema.anyOf, parser);\n this.oneOfType = 'Any of';\n return;\n }\n\n if (this.type === 'object') {\n this.fields = buildFields(parser, schema, this.pointer, this.options);\n } else if (this.type === 'array' && schema.items) {\n this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options);\n this.displayType = pluralizeType(this.items.displayType);\n this.displayFormat = this.items.format;\n this.typePrefix = this.items.typePrefix + l('arrayOf');\n this.title = this.title || this.items.title;\n this.isPrimitive = this.items.isPrimitive;\n\n if (this.example === undefined && this.items.example !== undefined) {\n this.example = [this.items.example];\n }\n\n if (this.items.isPrimitive) {\n this.enum = this.items.enum;\n }\n }\n\n if (this.enum.length && this.options.sortEnumValuesAlphabetically) {\n this.enum.sort();\n }\n }\n\n private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser) {\n this.oneOf = oneOf!.map((variant, idx) => {\n const derefVariant = parser.deref(variant);\n const merged = parser.mergeAllOf(derefVariant, this.pointer + '/oneOf/' + idx); // try to infer title\n\n const title = isNamedDefinition(variant.$ref) && !merged.title ? JsonPointer.baseName(variant.$ref) : merged.title;\n const schema = new SchemaModel(parser, ( // merge base schema into each of oneOf's subschemas\n { // variant may already have allOf so merge it to not get overwritten\n ...merged,\n title,\n allOf: [{ ...this.schema,\n oneOf: undefined,\n anyOf: undefined\n }]\n } as OpenAPISchema), this.pointer + '/oneOf/' + idx, this.options);\n parser.exitRef(variant); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n parser.exitParents(merged);\n return schema;\n });\n\n if (this.options.simpleOneOfTypeLabel) {\n const types = collectUniqueOneOfTypesDeep(this);\n this.displayType = types.join(' or ');\n } else {\n this.displayType = this.oneOf.map(schema => {\n let name = schema.typePrefix + (schema.title ? `${schema.title} (${schema.displayType})` : schema.displayType);\n\n if (name.indexOf(' or ') > -1) {\n name = `(${name})`;\n }\n\n return name;\n }).join(' or ');\n }\n }\n\n private initDiscriminator(schema: OpenAPISchema & {\n parentRefs?: string[];\n }, parser: OpenAPIParser) {\n const discriminator = getDiscriminator(schema)!;\n this.discriminatorProp = discriminator.propertyName;\n const implicitInversedMapping = parser.findDerived([...(schema.parentRefs || []), this.pointer]);\n\n if (schema.oneOf) {\n for (const variant of schema.oneOf) {\n if (variant.$ref === undefined) {\n continue;\n }\n\n const name = JsonPointer.baseName(variant.$ref);\n implicitInversedMapping[variant.$ref] = name;\n }\n }\n\n const mapping = discriminator.mapping || {}; // Defines if the mapping is exhaustive. This avoids having references\n // that overlap with the mapping entries\n\n let isLimitedToMapping = discriminator['x-explicitMappingOnly'] || false; // if there are no mappings, assume non-exhaustive\n\n if (Object.keys(mapping).length === 0) {\n isLimitedToMapping = false;\n }\n\n const explicitInversedMapping = {};\n\n for (const name in mapping) {\n const $ref = mapping[name];\n\n if (Array.isArray(explicitInversedMapping[$ref])) {\n explicitInversedMapping[$ref].push(name);\n } else {\n // overrides implicit mapping here\n explicitInversedMapping[$ref] = [name];\n }\n }\n\n const inversedMapping = isLimitedToMapping ? { ...explicitInversedMapping\n } : { ...implicitInversedMapping,\n ...explicitInversedMapping\n };\n let refs: Array<{\n $ref;\n name;\n }> = [];\n\n for (const $ref of Object.keys(inversedMapping)) {\n const names = inversedMapping[$ref];\n\n if (Array.isArray(names)) {\n for (const name of names) {\n refs.push({\n $ref,\n name\n });\n }\n } else {\n refs.push({\n $ref,\n name: names\n });\n }\n } // Make the listing respects the mapping\n // in case a mapping is defined, the user usually wants to have the order shown\n // as it was defined in the yaml. This will sort the names given the provided\n // mapping (if provided).\n // The logic is:\n // - If a name is among the mapping, promote it to first\n // - Names among the mapping are sorted by their order in the mapping\n // - Names outside the mapping are sorted alphabetically\n\n\n const names = Object.keys(mapping);\n\n if (names.length !== 0) {\n refs = refs.sort((left, right) => {\n const indexLeft = names.indexOf(left.name);\n const indexRight = names.indexOf(right.name);\n\n if (indexLeft < 0 && indexRight < 0) {\n // out of mapping, order by name\n return left.name.localeCompare(right.name);\n } else if (indexLeft < 0) {\n // the right is found, so mapping wins\n return 1;\n } else if (indexRight < 0) {\n // left wins as it's in mapping\n return -1;\n } else {\n return indexLeft - indexRight;\n }\n });\n }\n\n this.oneOf = refs.map(({\n $ref,\n name\n }) => {\n const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true);\n innerSchema.title = name;\n return innerSchema;\n });\n }\n\n}\n\nfunction buildFields(parser: OpenAPIParser, schema: OpenAPISchema, $ref: string, options: RedocNormalizedOptions): FieldModel[] {\n const props = schema.properties || {};\n const additionalProps = schema.additionalProperties;\n const defaults = schema.default || {};\n let fields = Object.keys(props || []).map(fieldName => {\n let field = props[fieldName];\n\n if (!field) {\n console.warn(`Field \"${fieldName}\" is invalid, skipping.\\n Field must be an object but got ${typeof field} at \"${$ref}\"`);\n field = {};\n }\n\n const required = schema.required === undefined ? false : schema.required.indexOf(fieldName) > -1;\n return new FieldModel(parser, {\n name: fieldName,\n required,\n schema: { ...field,\n default: field.default === undefined ? defaults[fieldName] : field.default\n }\n }, $ref + '/properties/' + fieldName, options);\n });\n\n if (options.sortPropsAlphabetically) {\n fields = sortByField(fields, 'name');\n }\n\n if (options.requiredPropsFirst) {\n // if not sort alphabetically sort in the order from required keyword\n fields = sortByRequired(fields, !options.sortPropsAlphabetically ? schema.required : undefined);\n }\n\n if (typeof additionalProps === 'object' || additionalProps === true) {\n fields.push(new FieldModel(parser, {\n name: (typeof additionalProps === 'object' ? additionalProps['x-additionalPropertiesName'] || 'property name' : 'property name').concat('*'),\n required: false,\n schema: additionalProps === true ? {} : additionalProps,\n kind: 'additionalProperties'\n }, $ref + '/additionalProperties', options));\n }\n\n return fields;\n}\n\nfunction getDiscriminator(schema: OpenAPISchema): OpenAPISchema['discriminator'] {\n return schema.discriminator || schema['x-discriminator'];\n}\n\nfunction collectUniqueOneOfTypesDeep(schema: SchemaModel) {\n const uniqueTypes = new Set();\n\n function crawl(schema: SchemaModel) {\n for (const oneOfType of schema.oneOf || []) {\n if (oneOfType.oneOf) {\n crawl(oneOfType);\n continue;\n }\n\n if (oneOfType.type) {\n uniqueTypes.add(oneOfType.type);\n }\n }\n }\n\n crawl(schema);\n return Array.from(uniqueTypes.values());\n}","import { action, observable } from 'mobx';\nimport { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle, Referenced } from '../../types';\nimport { extractExtensions } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nconst DEFAULT_SERIALIZATION: Record = {\n path: {\n style: 'simple',\n explode: false\n },\n query: {\n style: 'form',\n explode: true\n },\n header: {\n style: 'simple',\n explode: false\n },\n cookie: {\n style: 'form',\n explode: true\n }\n};\n/**\n * Field or Parameter model ready to be used by components\n */\n\nexport class FieldModel {\n @observable\n expanded: boolean | undefined;\n schema: SchemaModel;\n name: string;\n required: boolean;\n description: string;\n example?: string;\n deprecated: boolean;\n in?: OpenAPIParameterLocation;\n kind: string;\n extensions?: Record;\n explode: boolean;\n expandAll: boolean;\n style?: OpenAPIParameterStyle;\n serializationMime?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced & {\n name?: string;\n kind?: string;\n }, pointer: string, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.kind = infoOrRef.kind || 'field';\n this.name = infoOrRef.name || info.name;\n this.in = info.in;\n this.required = !!info.required;\n let fieldSchema = info.schema;\n let serializationMime = '';\n\n if (!fieldSchema && info.in && info.content) {\n serializationMime = Object.keys(info.content)[0];\n fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema;\n }\n\n this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options);\n this.description = info.description === undefined ? this.schema.description || '' : info.description;\n this.example = info.example || this.schema.example;\n\n if (serializationMime) {\n this.serializationMime = serializationMime;\n } else if (info.style) {\n this.style = info.style;\n } else if (this.in) {\n this.style = DEFAULT_SERIALIZATION[this.in].style;\n }\n\n if (info.explode === undefined && this.in) {\n this.explode = DEFAULT_SERIALIZATION[this.in].explode;\n } else {\n this.explode = !!info.explode;\n }\n\n this.deprecated = info.deprecated === undefined ? !!this.schema.deprecated : info.deprecated;\n parser.exitRef(infoOrRef);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(info, options.showExtensions);\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIEncoding, OpenAPIExample, Referenced } from '../../types';\nimport { isFormUrlEncoded, isJsonLike, urlFormEncodePayload } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nconst externalExamplesCache: {\n [url: string]: Promise;\n} = {};\nexport class ExampleModel {\n value: any;\n summary?: string;\n description?: string;\n externalValueUrl?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, public mime: string, encoding?: {\n [field: string]: OpenAPIEncoding;\n }) {\n const example = parser.deref(infoOrRef);\n this.value = example.value;\n this.summary = example.summary;\n this.description = example.description;\n\n if (example.externalValue) {\n this.externalValueUrl = urlResolve(parser.specUrl || '', example.externalValue);\n }\n\n parser.exitRef(infoOrRef);\n\n if (isFormUrlEncoded(mime) && this.value && typeof this.value === 'object') {\n this.value = urlFormEncodePayload(this.value, encoding);\n }\n }\n\n getExternalValue(mimeType: string): Promise {\n if (!this.externalValueUrl) {\n return Promise.resolve(undefined);\n }\n\n if (externalExamplesCache[this.externalValueUrl]) {\n return externalExamplesCache[this.externalValueUrl];\n }\n\n externalExamplesCache[this.externalValueUrl] = fetch(this.externalValueUrl).then(res => {\n return res.text().then(txt => {\n if (!res.ok) {\n return Promise.reject(new Error(txt));\n }\n\n if (isJsonLike(mimeType)) {\n try {\n return JSON.parse(txt);\n } catch (e) {\n return txt;\n }\n } else {\n return txt;\n }\n });\n });\n return externalExamplesCache[this.externalValueUrl];\n }\n\n}","import * as Sampler from 'openapi-sampler';\nimport { OpenAPIMediaType } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nimport { isJsonLike, mapValues } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { ExampleModel } from './Example';\nexport class MediaTypeModel {\n examples?: {\n [name: string]: ExampleModel;\n };\n schema?: SchemaModel;\n name: string;\n isRequestType: boolean;\n onlyRequiredInSamples: boolean;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: RedocNormalizedOptions) {\n this.name = name;\n this.isRequestType = isRequestType;\n this.schema = info.schema && new SchemaModel(parser, info.schema, '', options);\n this.onlyRequiredInSamples = options.onlyRequiredInSamples;\n\n if (info.examples !== undefined) {\n this.examples = mapValues(info.examples, example => new ExampleModel(parser, example, name, info.encoding));\n } else if (info.example !== undefined) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: parser.shalowDeref(info.example)\n }, name, info.encoding)\n };\n } else if (isJsonLike(name)) {\n this.generateExample(parser, info);\n }\n }\n\n generateExample(parser: OpenAPIParser, info: OpenAPIMediaType) {\n const samplerOptions = {\n skipReadOnly: this.isRequestType,\n skipNonRequired: this.isRequestType && this.onlyRequiredInSamples,\n skipWriteOnly: !this.isRequestType\n };\n\n if (this.schema && this.schema.oneOf) {\n this.examples = {};\n\n for (const subSchema of this.schema.oneOf) {\n const sample = Sampler.sample(subSchema.rawSchema, samplerOptions, parser.spec);\n\n if (this.schema.discriminatorProp && typeof sample === 'object' && sample) {\n sample[this.schema.discriminatorProp] = subSchema.title;\n }\n\n this.examples[subSchema.title] = new ExampleModel(parser, {\n value: sample\n }, this.name, info.encoding);\n }\n } else if (this.schema) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: Sampler.sample(info.schema, samplerOptions, parser.spec)\n }, this.name, info.encoding)\n };\n }\n }\n\n}","import { action, computed, observable } from 'mobx';\nimport { OpenAPIMediaType } from '../../types';\nimport { MediaTypeModel } from './MediaType';\nimport { mergeSimilarMediaTypes } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\n/**\n * MediaContent model ready to be sued by React components\n * Contains multiple MediaTypes and keeps track of the currently active one\n */\n\nexport class MediaContentModel {\n mediaTypes: MediaTypeModel[];\n @observable\n activeMimeIdx = 0;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, info: Record, public isRequestType: boolean, options: RedocNormalizedOptions) {\n if (options.unstable_ignoreMimeParameters) {\n info = mergeSimilarMediaTypes(info);\n }\n\n this.mediaTypes = Object.keys(info).map(name => {\n const mime = info[name]; // reset deref cache just in case something is left there\n\n parser.resetVisited();\n return new MediaTypeModel(parser, name, isRequestType, mime, options);\n });\n }\n /**\n * Set active media type by index\n * @param idx media type index\n */\n\n\n @action\n activate(idx: number) {\n this.activeMimeIdx = idx;\n }\n\n @computed\n get active() {\n return this.mediaTypes[this.activeMimeIdx];\n }\n\n get hasSample(): boolean {\n return this.mediaTypes.filter(mime => !!mime.examples).length > 0;\n }\n\n}","import { OpenAPIRequestBody, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { MediaContentModel } from './MediaContent';\nexport class RequestBodyModel {\n description: string;\n required: boolean;\n content?: MediaContentModel;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.description = info.description || '';\n this.required = !!info.required;\n parser.exitRef(infoOrRef);\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, true, options);\n }\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIResponse, Referenced } from '../../types';\nimport { getStatusCodeType } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nexport class ResponseModel {\n @observable\n expanded: boolean;\n content?: MediaContentModel;\n code: string;\n summary: string;\n description: string;\n type: string;\n headers: FieldModel[] = [];\n\n constructor(parser: OpenAPIParser, code: string, defaultAsError: boolean, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n this.expanded = options.expandResponses === 'all' || options.expandResponses[code];\n const info = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n this.code = code;\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, false, options);\n }\n\n if (info['x-summary'] !== undefined) {\n this.summary = info['x-summary'];\n this.description = info.description || '';\n } else {\n this.summary = info.description || '';\n this.description = '';\n }\n\n this.type = getStatusCodeType(code, defaultAsError);\n const headers = info.headers;\n\n if (headers !== undefined) {\n this.headers = Object.keys(headers).map(name => {\n const header = headers[name];\n return new FieldModel(parser, { ...header,\n name\n }, '', options);\n });\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { IMenuItem } from '../MenuStore';\nimport { GroupModel } from './Group.model';\nimport { SecurityRequirementModel } from './SecurityRequirement';\nimport { OpenAPIExternalDocumentation, OpenAPIServer, OpenAPIXCodeSample } from '../../types';\nimport { extractExtensions, getOperationSummary, getStatusCodeType, isStatusCode, memoize, mergeParams, normalizeServers, sortByField, sortByRequired } from '../../utils';\nimport { ContentItemModel, ExtendedOpenAPIOperation } from '../MenuBuilder';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { CallbackModel } from './Callback';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nimport { RequestBodyModel } from './RequestBody';\nimport { ResponseModel } from './Response';\nexport interface XPayloadSample {\n lang: 'payload';\n label: string;\n requestBodyContent: MediaContentModel;\n source: string;\n}\nexport function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample): sample is XPayloadSample {\n return sample.lang === 'payload' && (sample as any).requestBodyContent;\n}\nlet isCodeSamplesWarningPrinted = false;\n/**\n * Operation model ready to be used by components\n */\n\nexport class OperationModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('operation' as const);\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n items: ContentItemModel[] = [];\n depth: number;\n @observable\n ready?: boolean = true;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false; //#endregion\n\n pointer: string;\n operationId?: string;\n httpVerb: string;\n deprecated: boolean;\n path: string;\n servers: OpenAPIServer[];\n security: SecurityRequirementModel[];\n extensions: Record;\n isCallback: boolean;\n isWebhook: boolean;\n\n constructor(private parser: OpenAPIParser, private operationSpec: ExtendedOpenAPIOperation, parent: GroupModel | undefined, private options: RedocNormalizedOptions, isCallback: boolean = false) {\n this.pointer = operationSpec.pointer;\n this.description = operationSpec.description;\n this.parent = parent;\n this.externalDocs = operationSpec.externalDocs;\n this.deprecated = !!operationSpec.deprecated;\n this.httpVerb = operationSpec.httpVerb;\n this.deprecated = !!operationSpec.deprecated;\n this.operationId = operationSpec.operationId;\n this.path = operationSpec.pathName;\n this.isCallback = isCallback;\n this.isWebhook = !!operationSpec.isWebhook;\n this.name = getOperationSummary(operationSpec);\n\n if (this.isCallback) {\n // NOTE: Callbacks by default should not inherit the specification's global `security` definition.\n // Can be defined individually per-callback in the specification. Defaults to none.\n this.security = (operationSpec.security || []).map(security => new SecurityRequirementModel(security, parser)); // TODO: update getting pathInfo for overriding servers on path level\n\n this.servers = normalizeServers('', operationSpec.servers || operationSpec.pathServers || []);\n } else {\n this.id = operationSpec.operationId !== undefined ? 'operation/' + operationSpec.operationId : parent !== undefined ? parent.id + this.pointer : this.pointer;\n this.security = (operationSpec.security || parser.spec.security || []).map(security => new SecurityRequirementModel(security, parser));\n this.servers = normalizeServers(parser.specUrl, operationSpec.servers || operationSpec.pathServers || parser.spec.servers || []);\n }\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(operationSpec, options.showExtensions);\n }\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n /**\n * Toggle expansion in middle panel (for callbacks, which are operations)\n */\n\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n @memoize\n get requestBody() {\n return this.operationSpec.requestBody && new RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options);\n }\n\n @memoize\n get codeSamples() {\n let samples: Array = this.operationSpec['x-codeSamples'] || this.operationSpec['x-code-samples'] || [];\n\n if (this.operationSpec['x-code-samples'] && !isCodeSamplesWarningPrinted) {\n isCodeSamplesWarningPrinted = true;\n console.warn('\"x-code-samples\" is deprecated. Use \"x-codeSamples\" instead');\n }\n\n const requestBodyContent = this.requestBody && this.requestBody.content;\n\n if (requestBodyContent && requestBodyContent.hasSample) {\n const insertInx = Math.min(samples.length, this.options.payloadSampleIdx);\n samples = [...samples.slice(0, insertInx), {\n lang: 'payload',\n label: 'Payload',\n source: '',\n requestBodyContent\n }, ...samples.slice(insertInx)];\n }\n\n return samples;\n }\n\n @memoize\n get parameters() {\n const _parameters = mergeParams(this.parser, this.operationSpec.pathParameters, this.operationSpec.parameters // TODO: fix pointer\n ).map(paramOrRef => new FieldModel(this.parser, paramOrRef, this.pointer, this.options));\n\n if (this.options.sortPropsAlphabetically) {\n return sortByField(_parameters, 'name');\n }\n\n if (this.options.requiredPropsFirst) {\n return sortByRequired(_parameters);\n }\n\n return _parameters;\n }\n\n @memoize\n get responses() {\n let hasSuccessResponses = false;\n return Object.keys(this.operationSpec.responses || []).filter(code => {\n if (code === 'default') {\n return true;\n }\n\n if (getStatusCodeType(code) === 'success') {\n hasSuccessResponses = true;\n }\n\n return isStatusCode(code);\n }) // filter out other props (e.g. x-props)\n .map(code => {\n return new ResponseModel(this.parser, code, hasSuccessResponses, this.operationSpec.responses[code], this.options);\n });\n }\n\n @memoize\n get callbacks() {\n return Object.keys(this.operationSpec.callbacks || []).map(callbackEventName => {\n return new CallbackModel(this.parser, callbackEventName, this.operationSpec.callbacks![callbackEventName], this.pointer, this.options);\n });\n }\n\n}","import { OpenAPIPath, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { OperationModel } from './Operation';\nimport { isOperationName } from '../..';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nexport class WebhookModel {\n operations: OperationModel[] = [];\n\n constructor(parser: OpenAPIParser, options: RedocNormalizedOptions, infoOrRef?: Referenced) {\n const webhooks = parser.deref(infoOrRef || {});\n parser.exitRef(infoOrRef);\n\n for (const webhookName of Object.keys(webhooks)) {\n const webhook = webhooks[webhookName];\n const operations = Object.keys(webhook).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = webhook[operationName];\n const operation = new OperationModel(parser, { ...operationInfo,\n httpVerb: operationName\n }, undefined, options, false);\n this.operations.push(operation);\n }\n }\n }\n\n}","import { OpenAPISecurityScheme, Referenced } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class SecuritySchemeModel {\n id: string;\n sectionId: string;\n type: OpenAPISecurityScheme['type'];\n description: string;\n apiKey?: {\n name: string;\n in: OpenAPISecurityScheme['in'];\n };\n http?: {\n scheme: string;\n bearerFormat?: string;\n };\n flows: OpenAPISecurityScheme['flows'];\n openId?: {\n connectUrl: string;\n };\n\n constructor(parser: OpenAPIParser, id: string, scheme: Referenced) {\n const info = parser.deref(scheme);\n this.id = id;\n this.sectionId = SECURITY_SCHEMES_SECTION_PREFIX + id;\n this.type = info.type;\n this.description = info.description || '';\n\n if (info.type === 'apiKey') {\n this.apiKey = {\n name: info.name!,\n in: info.in\n };\n }\n\n if (info.type === 'http') {\n this.http = {\n scheme: info.scheme!,\n bearerFormat: info.bearerFormat\n };\n }\n\n if (info.type === 'openIdConnect') {\n this.openId = {\n connectUrl: info.openIdConnectUrl!\n };\n }\n\n if (info.type === 'oauth2' && info.flows) {\n this.flows = info.flows;\n }\n }\n\n}\nexport class SecuritySchemesModel {\n schemes: SecuritySchemeModel[];\n\n constructor(parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = Object.keys(schemes).map(name => new SecuritySchemeModel(parser, name, schemes[name]));\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIRef, OpenAPISchema, OpenAPISpec, Referenced } from '../types';\nimport { appendToMdHeading } from '../utils/';\nimport { JsonPointer } from '../utils/JsonPointer';\nimport { isNamedDefinition, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { buildComponentComment, MarkdownRenderer } from './MarkdownRenderer';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type MergedOpenAPISchema = OpenAPISchema & {\n parentRefs?: string[];\n};\n/**\n * Helper class to keep track of visited references to avoid\n * endless recursion because of circular refs\n */\n\nclass RefCounter {\n _counter = {};\n\n reset(): void {\n this._counter = {};\n }\n\n visit(ref: string): void {\n this._counter[ref] = this._counter[ref] ? this._counter[ref] + 1 : 1;\n }\n\n exit(ref: string): void {\n this._counter[ref] = this._counter[ref] && this._counter[ref] - 1;\n }\n\n visited(ref: string): boolean {\n return !!this._counter[ref];\n }\n\n}\n/**\n * Loads and keeps spec. Provides raw spec operations\n */\n\n\nexport class OpenAPIParser {\n specUrl?: string | null;\n spec: OpenAPISpec;\n mergeRefs: Set;\n private _refCounter: RefCounter = new RefCounter();\n\n constructor(spec: OpenAPISpec, specUrl?: string | null, private options: RedocNormalizedOptions = new RedocNormalizedOptions({})) {\n this.validate(spec);\n this.preprocess(spec);\n this.spec = spec;\n this.mergeRefs = new Set();\n const href = '';\n\n if (typeof specUrl === 'string') {\n this.specUrl = urlResolve(href, specUrl);\n }\n }\n\n validate(spec: any) {\n if (spec.openapi === undefined) {\n throw new Error('Document must be valid OpenAPI 3.0.0 definition');\n }\n }\n\n preprocess(spec: OpenAPISpec) {\n if (!this.options.noAutoAuth && spec.info && spec.components && spec.components.securitySchemes) {\n // Automatically inject Authentication section with SecurityDefinitions component\n const description = spec.info.description || '';\n\n if (!MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_COMPONENT_NAME) && !MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_JSX_NAME)) {\n const comment = buildComponentComment(SECURITY_DEFINITIONS_COMPONENT_NAME);\n spec.info.description = appendToMdHeading(description, 'Authentication', comment);\n }\n }\n }\n /**\n * get spec part by JsonPointer ($ref)\n */\n\n\n byRef = (ref: string): T | undefined => {\n let res;\n\n if (!this.spec) {\n return;\n }\n\n if (ref.charAt(0) !== '#') {\n ref = '#' + ref;\n }\n\n ref = decodeURIComponent(ref);\n\n try {\n res = JsonPointer.get(this.spec, ref);\n } catch (e) {// do nothing\n }\n\n return res || {};\n };\n /**\n * checks if the object is OpenAPI reference (contains $ref property)\n */\n\n isRef(obj: any): obj is OpenAPIRef {\n if (!obj) {\n return false;\n }\n\n return obj.$ref !== undefined && obj.$ref !== null;\n }\n /**\n * resets visited endpoints. should be run after\n */\n\n\n resetVisited() {\n if (process.env.NODE_ENV !== 'production') {\n // check in dev mode\n for (const k in this._refCounter._counter) {\n if (this._refCounter._counter[k] > 0) {\n console.warn('Not exited reference: ' + k);\n }\n }\n }\n\n this._refCounter = new RefCounter();\n }\n\n exitRef(ref: Referenced) {\n if (!this.isRef(ref)) {\n return;\n }\n\n this._refCounter.exit(ref.$ref);\n }\n /**\n * Resolve given reference object or return as is if it is not a reference\n * @param obj object to dereference\n * @param forceCircular whether to dereference even if it is circular ref\n */\n\n\n deref(obj: OpenAPIRef | T, forceCircular = false): T {\n if (this.isRef(obj)) {\n const resolved = this.byRef(obj.$ref)!;\n\n const visited = this._refCounter.visited(obj.$ref);\n\n this._refCounter.visit(obj.$ref);\n\n if (visited && !forceCircular) {\n // circular reference detected\n // tslint:disable-next-line\n return Object.assign({}, resolved, {\n 'x-circular-ref': true\n });\n } // deref again in case one more $ref is here\n\n\n if (this.isRef(resolved)) {\n const res = this.deref(resolved);\n this.exitRef(resolved);\n return res;\n }\n\n return resolved;\n }\n\n return obj;\n }\n\n shalowDeref(obj: OpenAPIRef | T): T {\n if (this.isRef(obj)) {\n return this.byRef(obj.$ref)!;\n }\n\n return obj;\n }\n /**\n * Merge allOf constraints.\n * @param schema schema with allOF\n * @param $ref pointer of the schema\n * @param forceCircular whether to dereference children even if it is a circular ref\n */\n\n\n mergeAllOf(schema: OpenAPISchema, $ref?: string, forceCircular: boolean = false, used$Refs = new Set()): MergedOpenAPISchema {\n if ($ref) {\n used$Refs.add($ref);\n }\n\n schema = this.hoistOneOfs(schema);\n\n if (schema.allOf === undefined) {\n return schema;\n }\n\n let receiver: MergedOpenAPISchema = { ...schema,\n allOf: undefined,\n parentRefs: [],\n title: schema.title || (isNamedDefinition($ref) ? JsonPointer.baseName($ref) : undefined)\n }; // avoid mutating inner objects\n\n if (receiver.properties !== undefined && typeof receiver.properties === 'object') {\n receiver.properties = { ...receiver.properties\n };\n }\n\n if (receiver.items !== undefined && typeof receiver.items === 'object') {\n receiver.items = { ...receiver.items\n };\n }\n\n const allOfSchemas = (schema.allOf.map(subSchema => {\n if (subSchema && subSchema.$ref && used$Refs.has(subSchema.$ref)) {\n return undefined;\n }\n\n const resolved = this.deref(subSchema, forceCircular);\n const subRef = subSchema.$ref || undefined;\n const subMerged = this.mergeAllOf(resolved, subRef, forceCircular, used$Refs);\n receiver.parentRefs!.push(...(subMerged.parentRefs || []));\n return {\n $ref: subRef,\n schema: subMerged\n };\n }).filter(child => child !== undefined) as Array<{\n $ref: string | undefined;\n schema: MergedOpenAPISchema;\n }>);\n\n for (const {\n $ref: subSchemaRef,\n schema: subSchema\n } of allOfSchemas) {\n if (receiver.type !== subSchema.type && receiver.type !== undefined && subSchema.type !== undefined) {\n console.warn(`Incompatible types in allOf at \"${$ref}\": \"${receiver.type}\" and \"${subSchema.type}\"`);\n }\n\n if (subSchema.type !== undefined) {\n receiver.type = subSchema.type;\n }\n\n if (subSchema.properties !== undefined) {\n receiver.properties = receiver.properties || {};\n\n for (const prop in subSchema.properties) {\n if (!receiver.properties[prop]) {\n receiver.properties[prop] = subSchema.properties[prop];\n } else {\n // merge inner properties\n receiver.properties[prop] = this.mergeAllOf({\n allOf: [receiver.properties[prop], subSchema.properties[prop]]\n }, $ref + '/properties/' + prop);\n }\n }\n }\n\n if (subSchema.items !== undefined) {\n receiver.items = receiver.items || {}; // merge inner properties\n\n receiver.items = this.mergeAllOf({\n allOf: [receiver.items, subSchema.items]\n }, $ref + '/items');\n }\n\n if (subSchema.required !== undefined) {\n receiver.required = (receiver.required || []).concat(subSchema.required);\n } // merge rest of constraints\n // TODO: do more intelligent merge\n\n\n receiver = { ...subSchema,\n ...receiver\n };\n\n if (subSchemaRef) {\n receiver.parentRefs!.push(subSchemaRef);\n\n if (receiver.title === undefined && isNamedDefinition(subSchemaRef)) {// this is not so correct behaviour. commented out for now\n // ref: https://github.com/Redocly/redoc/issues/601\n // receiver.title = JsonPointer.baseName(subSchemaRef);\n }\n }\n }\n\n return receiver;\n }\n /**\n * Find all derived definitions among #/components/schemas from any of $refs\n * returns map of definition pointer to definition name\n * @param $refs array of references to find derived from\n */\n\n\n findDerived($refs: string[]): Record {\n const res: Record = {};\n const schemas = this.spec.components && this.spec.components.schemas || {};\n\n for (const defName in schemas) {\n const def = this.deref(schemas[defName]);\n\n if (def.allOf !== undefined && def.allOf.find(obj => obj.$ref !== undefined && $refs.indexOf(obj.$ref) > -1)) {\n res['#/components/schemas/' + defName] = [def['x-discriminator-value'] || defName];\n }\n }\n\n return res;\n }\n\n exitParents(shema: MergedOpenAPISchema) {\n for (const parent$ref of shema.parentRefs || []) {\n this.exitRef({\n $ref: parent$ref\n });\n }\n }\n\n private hoistOneOfs(schema: OpenAPISchema) {\n if (schema.allOf === undefined) {\n return schema;\n }\n\n const allOf = schema.allOf;\n\n for (let i = 0; i < allOf.length; i++) {\n const sub = allOf[i];\n\n if (Array.isArray(sub.oneOf)) {\n const beforeAllOf = allOf.slice(0, i);\n const afterAllOf = allOf.slice(i + 1);\n return {\n oneOf: sub.oneOf.map(part => {\n const merged = this.mergeAllOf({\n allOf: [...beforeAllOf, part, ...afterAllOf]\n }); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n this.exitParents(merged);\n return merged;\n })\n };\n }\n }\n\n return schema;\n }\n\n}","import { OpenAPIExternalDocumentation, OpenAPISpec } from '../types';\nimport { ContentItemModel, MenuBuilder } from './MenuBuilder';\nimport { ApiInfoModel } from './models/ApiInfo';\nimport { WebhookModel } from './models/Webhook';\nimport { SecuritySchemesModel } from './models/SecuritySchemes';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\n/**\n * Store that contains all the specification related information in the form of tree\n */\n\nexport class SpecStore {\n parser: OpenAPIParser;\n info: ApiInfoModel;\n externalDocs?: OpenAPIExternalDocumentation;\n contentItems: ContentItemModel[];\n securitySchemes: SecuritySchemesModel;\n webhooks?: WebhookModel;\n\n constructor(spec: OpenAPISpec, specUrl: string | undefined | null, private options: RedocNormalizedOptions) {\n this.parser = new OpenAPIParser(spec, specUrl, options);\n this.info = new ApiInfoModel(this.parser);\n this.externalDocs = this.parser.spec.externalDocs;\n this.contentItems = MenuBuilder.buildStructure(this.parser, this.options);\n this.securitySchemes = new SecuritySchemesModel(this.parser);\n this.webhooks = new WebhookModel(this.parser, options, this.parser.spec['x-webhooks']);\n }\n\n}","import { action, observable } from 'mobx';\nimport { ContentItemModel } from '..';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { IMenuItem } from '../MenuStore';\nexport class ExtraContent implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('extra' as const);\n content: JSX.Element;\n items: ContentItemModel[] = [];\n parent?: ExtraContent;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number;\n\n constructor({\n id,\n name,\n depth\n }) {\n this.id = id;\n this.name = name;\n this.depth = depth;\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPITag } from '../../types';\nimport { safeSlugify } from '../../utils';\nimport { MarkdownHeading, MarkdownRenderer } from '../MarkdownRenderer';\nimport { ContentItemModel } from '../MenuBuilder';\nimport { IMenuItem, MenuItemGroupType } from '../MenuStore';\n/**\n * Operations Group model ready to be used by components\n */\n\nexport class GroupModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type: MenuItemGroupType;\n items: ContentItemModel[] = [];\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number; //#endregion\n\n constructor(type: MenuItemGroupType, tagOrGroup: OpenAPITag | MarkdownHeading, parent?: GroupModel) {\n // markdown headings already have ids calculated as they are needed for heading anchors\n this.id = (tagOrGroup as MarkdownHeading).id || type + '/' + safeSlugify(tagOrGroup.name);\n this.type = type;\n this.name = tagOrGroup['x-displayName'] || tagOrGroup.name;\n this.level = (tagOrGroup as MarkdownHeading).level || 1; // remove sections from markdown, same as in ApiInfo\n\n this.description = tagOrGroup.description || '';\n const items = (tagOrGroup as MarkdownHeading).items;\n\n if (items && items.length) {\n this.description = MarkdownRenderer.getTextBeforeHading(this.description, items[0].name);\n }\n\n this.parent = parent;\n this.externalDocs = (tagOrGroup as OpenAPITag).externalDocs; // groups are active (expanded) by default\n\n if (this.type === 'group') {\n this.expanded = true;\n }\n }\n\n @action\n activate() {\n this.active = true;\n }\n\n @action\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n\n this.expanded = true;\n }\n\n @action\n collapse() {\n // disallow collapsing groups\n if (this.type === 'group') {\n return;\n }\n\n this.expanded = false;\n }\n\n @action\n deactivate() {\n this.active = false;\n }\n\n}","export * from '../SpecStore';\nexport * from './ApiInfo';\nexport * from './Callback';\nexport * from './Example';\nexport * from './ExtraContent';\nexport * from './Field';\nexport * from './Group.model';\nexport * from './MediaContent';\nexport * from './MediaType';\nexport * from './Operation';\nexport * from './RequestBody';\nexport * from './Response';\nexport * from './Schema';\nexport * from './SecuritySchemes';","import { OpenAPIOperation, OpenAPIParameter, OpenAPISpec, OpenAPITag, Referenced, OpenAPIServer, OpenAPIPaths } from '../types';\nimport { isOperationName, SECURITY_DEFINITIONS_COMPONENT_NAME, setSecuritySchemePrefix, JsonPointer } from '../utils';\nimport { MarkdownRenderer } from './MarkdownRenderer';\nimport { GroupModel, OperationModel } from './models';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type TagInfo = OpenAPITag & {\n operations: ExtendedOpenAPIOperation[];\n used?: boolean;\n};\nexport type ExtendedOpenAPIOperation = {\n pointer: string;\n pathName: string;\n httpVerb: string;\n pathParameters: Array>;\n pathServers: Array | undefined;\n isWebhook: boolean;\n} & OpenAPIOperation;\nexport type TagsInfoMap = Record;\nexport interface TagGroup {\n name: string;\n tags: string[];\n}\nexport const GROUP_DEPTH = 0;\nexport type ContentItemModel = GroupModel | OperationModel;\nexport class MenuBuilder {\n /**\n * Builds page content structure based on tags\n */\n static buildStructure(parser: OpenAPIParser, options: RedocNormalizedOptions): ContentItemModel[] {\n const spec = parser.spec;\n const items: ContentItemModel[] = [];\n const tagsMap = MenuBuilder.getTagsWithOperations(spec);\n items.push(...MenuBuilder.addMarkdownItems(spec.info.description || '', undefined, 1, options));\n\n if (spec['x-tagGroups'] && spec['x-tagGroups'].length > 0) {\n items.push(...MenuBuilder.getTagGroupsItems(parser, undefined, spec['x-tagGroups'], tagsMap, options));\n } else {\n items.push(...MenuBuilder.getTagsItems(parser, tagsMap, undefined, undefined, options));\n }\n\n return items;\n }\n /**\n * extracts items from markdown description\n * @param description - markdown source\n */\n\n\n static addMarkdownItems(description: string, parent: GroupModel | undefined, initialDepth: number, options: RedocNormalizedOptions): ContentItemModel[] {\n const renderer = new MarkdownRenderer(options);\n const headings = renderer.extractHeadings(description || '');\n\n if (headings.length && parent && parent.description) {\n parent.description = MarkdownRenderer.getTextBeforeHading(parent.description, headings[0].name);\n }\n\n const mapHeadingsDeep = (_parent, items, depth = 1) => items.map(heading => {\n const group = new GroupModel('section', heading, _parent);\n group.depth = depth;\n\n if (heading.items) {\n group.items = mapHeadingsDeep(group, heading.items, depth + 1);\n }\n\n if (MarkdownRenderer.containsComponent(group.description || '', SECURITY_DEFINITIONS_COMPONENT_NAME)) {\n setSecuritySchemePrefix(group.id + '/');\n }\n\n return group;\n });\n\n return mapHeadingsDeep(parent, headings, initialDepth);\n }\n /**\n * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension)\n * @param tags value of `x-tagGroups` vendor extension\n */\n\n\n static getTagGroupsItems(parser: OpenAPIParser, parent: GroupModel | undefined, groups: TagGroup[], tags: TagsInfoMap, options: RedocNormalizedOptions): GroupModel[] {\n const res: GroupModel[] = [];\n\n for (const group of groups) {\n const item = new GroupModel('group', group, parent);\n item.depth = GROUP_DEPTH;\n item.items = MenuBuilder.getTagsItems(parser, tags, item, group, options);\n res.push(item);\n } // TODO checkAllTagsUsedInGroups\n\n\n return res;\n }\n /**\n * Returns array of OperationsGroup items for the tags of the group or for all tags\n * @param tagsMap tags info returned from `getTagsWithOperations`\n * @param parent parent item\n * @param group group which this tag belongs to. if not provided gets all tags\n */\n\n\n static getTagsItems(parser: OpenAPIParser, tagsMap: TagsInfoMap, parent: GroupModel | undefined, group: TagGroup | undefined, options: RedocNormalizedOptions): ContentItemModel[] {\n let tagNames;\n\n if (group === undefined) {\n tagNames = Object.keys(tagsMap); // all tags\n } else {\n tagNames = group.tags;\n }\n\n const tags = tagNames.map(tagName => {\n if (!tagsMap[tagName]) {\n console.warn(`Non-existing tag \"${tagName}\" is added to the group \"${group!.name}\"`);\n return null;\n }\n\n tagsMap[tagName].used = true;\n return tagsMap[tagName];\n });\n const res: Array = [];\n\n for (const tag of tags) {\n if (!tag) {\n continue;\n }\n\n const item = new GroupModel('tag', tag, parent);\n item.depth = GROUP_DEPTH + 1; // don't put empty tag into content, instead put its operations\n\n if (tag.name === '') {\n const items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, undefined, tag, item.depth + 1, options)];\n res.push(...items);\n continue;\n }\n\n item.items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, item, tag, item.depth + 1, options)];\n res.push(item);\n }\n\n return res;\n }\n /**\n * Returns array of Operation items for the tag\n * @param parent parent OperationsGroup\n * @param tag tag info returned from `getTagsWithOperations`\n * @param depth items depth\n */\n\n\n static getOperationsItems(parser: OpenAPIParser, parent: GroupModel | undefined, tag: TagInfo, depth: number, options: RedocNormalizedOptions): OperationModel[] {\n if (tag.operations.length === 0) {\n return [];\n }\n\n const res: OperationModel[] = [];\n\n for (const operationInfo of tag.operations) {\n const operation = new OperationModel(parser, operationInfo, parent, options);\n operation.depth = depth;\n res.push(operation);\n }\n\n return res;\n }\n /**\n * collects tags and maps each tag to list of operations belonging to this tag\n */\n\n\n static getTagsWithOperations(spec: OpenAPISpec): TagsInfoMap {\n const tags: TagsInfoMap = {};\n\n for (const tag of spec.tags || []) {\n tags[tag.name] = { ...tag,\n operations: []\n };\n }\n\n getTags(spec.paths);\n\n if (spec['x-webhooks']) {\n getTags(spec['x-webhooks'], true);\n }\n\n function getTags(paths: OpenAPIPaths, isWebhook?: boolean) {\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n let operationTags = operationInfo.tags;\n\n if (!operationTags || !operationTags.length) {\n // empty tag\n operationTags = [''];\n }\n\n for (const tagName of operationTags) {\n let tag = tags[tagName];\n\n if (tag === undefined) {\n tag = {\n name: tagName,\n operations: []\n };\n tags[tagName] = tag;\n }\n\n if (tag['x-traitTag']) {\n continue;\n }\n\n tag.operations.push({ ...operationInfo,\n pathName,\n pointer: JsonPointer.compile(['paths', pathName, operationName]),\n httpVerb: operationName,\n pathParameters: path.parameters || [],\n pathServers: path.servers,\n isWebhook: !!isWebhook\n });\n }\n }\n }\n }\n\n return tags;\n }\n\n}","import { action, observable } from 'mobx';\nimport { flattenByProp, SECURITY_SCHEMES_SECTION_PREFIX } from '../utils';\nimport { querySelector } from '../utils/dom';\nimport { history as historyInst, HistoryService } from './HistoryService';\nimport { GROUP_DEPTH } from './MenuBuilder';\nimport { SpecStore } from './models';\nimport { ScrollService } from './ScrollService';\nimport { ExtraContent } from './models/ExtraContent';\nimport { MarkdownIndex } from '../markdown';\nexport type MenuItemGroupType = 'group' | 'tag' | 'section' | 'extra';\nexport type MenuItemType = MenuItemGroupType | 'operation';\n/** Generic interface for MenuItems */\n\nexport interface IMenuItem {\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n depth: number;\n active: boolean;\n expanded: boolean;\n items: IMenuItem[];\n parent?: IMenuItem;\n deprecated?: boolean;\n type: MenuItemType;\n deactivate(): void;\n activate(): void;\n collapse(): void;\n expand(): void;\n}\nexport const SECTION_ATTR = 'data-section-id';\n/**\n * Stores all side-menu related information\n */\n\nexport class MenuStore {\n /**\n * Statically try update scroll position\n * Used before hydrating from server-side rendered html to scroll page faster\n */\n static updateOnHistory(id: string = historyInst.currentId, scroll: ScrollService) {\n if (!id) {\n return;\n }\n\n scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n /**\n * active item absolute index (when flattened). -1 means nothing is selected\n */\n\n\n @observable\n activeItemIdx: number = -1;\n /**\n * whether sidebar with menu is opened or not\n */\n\n @observable\n sideBarOpened: boolean = false;\n items: IMenuItem[];\n flatItems: IMenuItem[];\n /**\n * cached flattened menu items to support absolute indexing\n */\n\n private _unsubscribe: () => void;\n private _hashUnsubscribe: () => void;\n /**\n *\n * @param spec [SpecStore](#SpecStore) which contains page content structure\n * @param scroll scroll service instance used by this menu\n */\n\n constructor(spec: SpecStore, public scroll: ScrollService, public history: HistoryService, markdownIndex?: MarkdownIndex) {\n const {\n headings: extraHeadings\n } = markdownIndex || {};\n const extraItems = extraHeadings ? extraHeadings.map(({\n id,\n text,\n depth\n }) => new ExtraContent({\n id,\n name: text,\n depth\n })) : [];\n this.items = [...extraItems, ...spec.contentItems];\n this.flatItems = flattenByProp(this.items || [], 'items');\n this.flatItems.forEach((item, idx) => item.absoluteIdx = idx);\n this.subscribe();\n }\n\n subscribe() {\n this._unsubscribe = this.scroll.subscribe(this.updateOnScroll);\n this._hashUnsubscribe = this.history.subscribe(this.updateOnHistory);\n }\n\n @action\n toggleSidebar() {\n this.sideBarOpened = this.sideBarOpened ? false : true;\n }\n\n @action\n closeSidebar() {\n this.sideBarOpened = false;\n }\n /**\n * update active items on scroll\n * @param isScrolledDown whether last scroll was downside\n */\n\n\n updateOnScroll = (isScrolledDown: boolean): void => {\n const step = isScrolledDown ? 1 : -1;\n let itemIdx = this.activeItemIdx;\n\n while (true) {\n if (itemIdx === -1 && !isScrolledDown) {\n break;\n }\n\n if (itemIdx >= this.flatItems.length - 1 && isScrolledDown) {\n break;\n }\n\n if (isScrolledDown) {\n const el = this.getElementAtOrFirstChild(itemIdx + 1);\n\n if (this.scroll.isElementBellow(el)) {\n break;\n }\n } else {\n const el = this.getElementAt(itemIdx);\n\n if (this.scroll.isElementAbove(el)) {\n break;\n }\n }\n\n itemIdx += step;\n }\n\n this.activate(this.flatItems[itemIdx], true, true);\n };\n /**\n * update active items on hash change\n * @param id current hash\n */\n\n updateOnHistory = (id: string = this.history.currentId) => {\n if (!id) {\n return;\n }\n\n let item: IMenuItem | undefined;\n item = this.flatItems.find(i => i.id === id);\n\n if (item) {\n this.activateAndScroll(item, false);\n } else {\n if (id.startsWith(SECURITY_SCHEMES_SECTION_PREFIX)) {\n item = this.flatItems.find(i => SECURITY_SCHEMES_SECTION_PREFIX.startsWith(i.id));\n this.activate(item);\n }\n\n this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n };\n /**\n * get section/operation DOM Node related to the item or null if it doesn't exist\n * @param idx item absolute index\n */\n\n getElementAt(idx: number): Element | null {\n const item = this.flatItems[idx];\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * get section/operation DOM Node related to the item or if it is group item, returns first item of the group\n * @param idx item absolute index\n */\n\n\n getElementAtOrFirstChild(idx: number): Element | null {\n let item = this.flatItems[idx];\n\n if (item && item.type === 'group') {\n item = item.items[0];\n }\n\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * current active item\n */\n\n\n get activeItem(): IMenuItem {\n return this.flatItems[this.activeItemIdx] || undefined;\n }\n\n getItemById = (id: string) => {\n return this.flatItems.find(item => item.id === id);\n };\n /**\n * activate menu item\n * @param item item to activate\n * @param updateLocation [true] whether to update location\n * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry)\n */\n\n @action\n activate(item: IMenuItem | undefined, updateLocation: boolean = true, rewriteHistory: boolean = false) {\n if ((this.activeItem && this.activeItem.id) === (item && item.id)) {\n return;\n }\n\n if (item && item.type === 'group') {\n return;\n }\n\n this.deactivate(this.activeItem);\n\n if (!item) {\n this.history.replace('', rewriteHistory);\n return;\n } // do not allow activating group items\n // TODO: control over options\n\n\n if (item.depth <= GROUP_DEPTH) {\n return;\n }\n\n this.activeItemIdx = item.absoluteIdx!;\n\n if (updateLocation) {\n this.history.replace(item.id, rewriteHistory);\n }\n\n item.activate();\n item.expand();\n }\n /**\n * makes item and all the parents not active\n * @param item item to deactivate\n */\n\n\n deactivate(item: IMenuItem | undefined) {\n if (item === undefined) {\n return;\n }\n\n item.deactivate();\n\n while (item !== undefined) {\n item.collapse();\n item = item.parent;\n }\n }\n /**\n * activate menu item and scroll to it\n * @see MenuStore.activate\n */\n\n\n @action.bound\n activateAndScroll(item: IMenuItem | undefined, updateLocation?: boolean, rewriteHistory?: boolean) {\n // item here can be a copy from search results so find corresponding item from menu\n const menuItem = item && this.getItemById(item.id) || item;\n this.activate(menuItem, updateLocation, rewriteHistory);\n this.scrollToActive();\n\n if (!menuItem || !menuItem.items.length) {\n this.closeSidebar();\n }\n }\n /**\n * scrolls to active section\n */\n\n\n scrollToActive(): void {\n this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx));\n }\n\n dispose() {\n this._unsubscribe();\n\n this._hashUnsubscribe();\n }\n\n}","import { bind } from 'decko';\nimport * as EventEmitter from 'eventemitter3';\nimport { IS_BROWSER, querySelector, Throttle } from '../utils';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst EVENT = 'scroll';\nexport class ScrollService {\n private _scrollParent: Window | HTMLElement | undefined;\n private _emiter: EventEmitter;\n private _prevOffsetY = 0;\n\n constructor(private options: RedocNormalizedOptions) {\n this._scrollParent = IS_BROWSER ? window : undefined;\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n bind() {\n this._prevOffsetY = this.scrollY();\n\n if (this._scrollParent) {\n this._scrollParent.addEventListener('scroll', this.handleScroll);\n }\n }\n\n dispose() {\n if (this._scrollParent) {\n this._scrollParent.removeEventListener('scroll', this.handleScroll);\n }\n\n this._emiter.removeAllListeners(EVENT);\n }\n\n scrollY(): number {\n if (typeof HTMLElement !== 'undefined' && this._scrollParent instanceof HTMLElement) {\n return this._scrollParent.scrollTop;\n } else if (this._scrollParent !== undefined) {\n return (this._scrollParent as Window).pageYOffset;\n } else {\n return 0;\n }\n }\n\n isElementBellow(el: Element | null) {\n if (el === null) {\n return;\n }\n\n return el.getBoundingClientRect().top > this.options.scrollYOffset();\n }\n\n isElementAbove(el: Element | null) {\n if (el === null) {\n return;\n }\n\n const top = el.getBoundingClientRect().top;\n return (top > 0 ? Math.floor(top) : Math.ceil(top)) <= this.options.scrollYOffset();\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n scrollIntoView(element: Element | null) {\n if (element === null) {\n return;\n }\n\n element.scrollIntoView();\n\n if (this._scrollParent && this._scrollParent.scrollBy) {\n // adding 1 account rounding errors in case scrollYOffset is float-number\n (this._scrollParent.scrollBy as any)(0, -this.options.scrollYOffset() + 1);\n }\n }\n\n scrollIntoViewBySelector(selector: string) {\n const element = querySelector(selector);\n this.scrollIntoView(element);\n }\n\n @bind\n @Throttle(100)\n handleScroll() {\n const scrollY = this.scrollY();\n const isScrolledDown = scrollY - this._prevOffsetY > 0;\n this._prevOffsetY = this.scrollY();\n\n this._emiter.emit(EVENT, isScrolledDown);\n }\n\n}","import { IS_BROWSER } from '../utils/';\nimport { IMenuItem } from './MenuStore';\nimport { OperationModel } from './models';\nimport Worker from './SearchWorker.worker';\n\nfunction getWorker() {\n let worker: new () => Worker;\n\n if (IS_BROWSER) {\n try {\n // tslint:disable-next-line\n worker = require('workerize-loader?inline&fallback=false!./SearchWorker.worker');\n } catch (e) {\n worker = require('./SearchWorker.worker').default;\n }\n } else {\n worker = require('./SearchWorker.worker').default;\n }\n\n return new worker();\n}\n\nexport class SearchStore {\n searchWorker = getWorker();\n\n indexItems(groups: Array) {\n const recurse = items => {\n items.forEach(group => {\n if (group.type !== 'group') {\n this.add(group.name, group.description || '', group.id);\n }\n\n recurse(group.items);\n });\n };\n\n recurse(groups);\n this.searchWorker.done();\n }\n\n add(title: string, body: string, meta?: T) {\n this.searchWorker.add(title, body, meta);\n }\n\n dispose() {\n (this.searchWorker as any).terminate();\n (this.searchWorker as any).dispose();\n }\n\n search(q: string) {\n return this.searchWorker.search(q);\n }\n\n async toJS() {\n return this.searchWorker.toJS();\n }\n\n load(state: any) {\n this.searchWorker.load(state);\n }\n\n}","import { SECTION_ATTR } from '../services/MenuStore';\nimport styled, { media } from '../styled-components';\nexport const MiddlePanel = styled.div<{\n compact?: boolean;\n}>`\n width: calc(100% - ${props => props.theme.rightPanel.width});\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${({\n compact,\n theme\n}) => media.lessThan('medium', true)`\n width: 100%;\n padding: ${`${compact ? 0 : theme.spacing.sectionVertical}px ${theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const Section = styled.div.attrs(props => ({\n [SECTION_ATTR]: props.id\n}))<{\n underlined?: boolean;\n}>`\n padding: ${props => props.theme.spacing.sectionVertical}px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ${media.lessThan('medium', true)`\n padding: 0;\n `}\n ${(props: any) => props.underlined && `\n position: relative;\n\n &:not(:last-of-type):after {\n position: absolute;\n bottom: 0;\n width: 100%;\n display: block;\n content: '';\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n }\n ` || ''}\n`;\nexport const RightPanel = styled.div`\n width: ${props => props.theme.rightPanel.width};\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${media.lessThan('medium', true)`\n width: 100%;\n padding: ${props => `${props.theme.spacing.sectionVertical}px ${props.theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const DarkRightPanel = styled(RightPanel)`\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n`;\nexport const Row = styled.div`\n display: flex;\n width: 100%;\n padding: 0;\n\n ${media.lessThan('medium', true)`\n flex-direction: column;\n `};\n`;","import styled, { css, extensionsHook } from '../styled-components';\nconst headerFontSize = {\n 1: '1.85714em',\n 2: '1.57143em',\n 3: '1.27em'\n};\nexport const headerCommonMixin = level => css`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-weight: ${({\n theme\n}) => theme.typography.headings.fontWeight};\n font-size: ${headerFontSize[level]};\n line-height: ${({\n theme\n}) => theme.typography.headings.lineHeight};\n`;\nexport const H1 = styled.h1`\n ${headerCommonMixin(1)};\n color: ${({\n theme\n}) => theme.colors.primary.main};\n\n ${extensionsHook('H1')};\n`;\nexport const H2 = styled.h2`\n ${headerCommonMixin(2)};\n color: black;\n\n ${extensionsHook('H2')};\n`;\nexport const H3 = styled.h2`\n ${headerCommonMixin(3)};\n color: black;\n\n ${extensionsHook('H3')};\n`;\nexport const RightPanelHeader = styled.h3`\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n\n ${extensionsHook('RightPanelHeader')};\n`;\nexport const UnderlinedHeader = styled.h5`\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ${extensionsHook('UnderlinedHeader')};\n`;","import * as memoize from 'memoize-one/dist/memoize-one.cjs'; // fixme: https://github.com/alexreardon/memoize-one/issues/37\n\nimport { Component, createContext } from 'react';\nimport { AppStore } from '../services/';\nimport { RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { loadAndBundleSpec } from '../utils';\nexport interface StoreBuilderProps {\n specUrl?: string;\n spec?: object;\n store?: AppStore;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => void;\n children: (props: {\n loading: boolean;\n store?: AppStore;\n }) => any;\n}\nexport interface StoreBuilderState {\n error?: Error;\n loading: boolean;\n resolvedSpec?: any;\n prevSpec?: any;\n prevSpecUrl?: string;\n}\nconst {\n Provider,\n Consumer\n} = createContext(undefined);\nexport { Provider as StoreProvider, Consumer as StoreConsumer };\nexport class StoreBuilder extends Component {\n static getDerivedStateFromProps(nextProps: StoreBuilderProps, prevState: StoreBuilderState) {\n if (nextProps.specUrl !== prevState.prevSpecUrl || nextProps.spec !== prevState.prevSpec) {\n return {\n loading: true,\n resolvedSpec: null,\n prevSpec: nextProps.spec,\n prevSpecUrl: nextProps.specUrl\n };\n }\n\n return null;\n }\n\n state: StoreBuilderState = {\n loading: true,\n resolvedSpec: null\n };\n\n @memoize\n makeStore(spec, specUrl, options) {\n if (!spec) {\n return undefined;\n }\n\n try {\n return new AppStore(spec, specUrl, options);\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n throw e;\n }\n }\n\n componentDidMount() {\n this.load();\n }\n\n componentDidUpdate() {\n if (this.state.resolvedSpec === null) {\n this.load();\n } else if (!this.state.loading && this.props.onLoaded) {\n // may run multiple time\n this.props.onLoaded();\n }\n }\n\n async load() {\n const {\n specUrl,\n spec\n } = this.props;\n\n try {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl!);\n this.setState({\n resolvedSpec,\n loading: false\n });\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n this.setState({\n error: e\n });\n }\n }\n\n render() {\n if (this.state.error) {\n throw this.state.error;\n }\n\n const {\n specUrl,\n options\n } = this.props;\n const {\n loading,\n resolvedSpec\n } = this.state;\n return this.props.children({\n loading,\n store: this.makeStore(resolvedSpec, specUrl, options)\n });\n }\n\n}","import * as React from 'react';\nimport { StoreConsumer } from '../components/StoreBuilder';\nimport styled, { css } from '../styled-components';\nimport { HistoryService } from '../services'; // tslint:disable-next-line\n\nexport const linkifyMixin = className => css`\n ${className} {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n outline: 0;\n }\n ${className}:before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ${className}::before, h2:hover > ${className}::before, ${className}:hover::before {\n visibility: visible;\n }\n`;\n\nconst isModifiedEvent = event => !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n\nexport class Link extends React.Component<{\n to: string;\n className?: string;\n children?: any;\n}> {\n navigate = (history: HistoryService, event) => {\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n history.replace(this.props.to);\n }\n };\n\n render() {\n return \n {store => \n {this.props.children}\n }\n ;\n }\n\n}\nconst StyledShareLink = styled(Link)`\n ${linkifyMixin('&')};\n`;\nexport function ShareLink(props: {\n to: string;\n}) {\n return ;\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst directionMap = {\n left: '90deg',\n right: '-90deg',\n up: '-180deg',\n down: '0'\n};\n\nclass IntShelfIcon extends React.PureComponent<{\n className?: string;\n float?: 'left' | 'right';\n size?: string;\n color?: string;\n direction: 'left' | 'right' | 'up' | 'down';\n style?: React.CSSProperties;\n}> {\n render() {\n return \n \n ;\n }\n\n}\n\nexport const ShelfIcon = styled(IntShelfIcon)`\n height: ${props => props.size || '18px'};\n width: ${props => props.size || '18px'};\n vertical-align: middle;\n float: ${props => props.float || ''};\n transition: transform 0.2s ease-out;\n transform: rotateZ(${props => directionMap[props.direction || 'down']});\n\n polygon {\n fill: ${props => props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main || props.color};\n }\n`;\nexport const Badge = styled.span<{\n type: string;\n}>`\n display: inline-block;\n padding: 2px 8px;\n margin: 0;\n background-color: ${props => props.theme.colors[props.type].main};\n color: ${props => props.theme.colors[props.type].contrastText};\n font-size: ${props => props.theme.typography.code.fontSize};\n vertical-align: middle;\n line-height: 1.6;\n border-radius: 4px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n font-size: 12px;\n + span[type] {\n margin-left: 4px;\n }\n`;","import { css } from '../styled-components';\nexport const deprecatedCss = css`\n text-decoration: line-through;\n color: #bdccd3;\n`;","// import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { deprecatedCss } from './mixins';\nexport const PropertiesTableCaption = styled.caption`\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ${props => props.theme.colors.text.secondary};\n`;\nexport const PropertyCell = styled.td<{\n kind?: string;\n}>`\n border-left: 1px solid ${props => props.theme.schema.linesColor};\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ${props => props.theme.schema.linesColor} 22px,\n ${props => props.theme.schema.linesColor} 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ${props => props.theme.schema.linesColor} 0%,\n ${props => props.theme.schema.linesColor} 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n`;\nexport const PropertyCellWithInner = styled(PropertyCell)`\n padding: 0;\n`;\nexport const PropertyNameCell = styled(PropertyCell)`\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 13px;\n font-family: ${props => props.theme.typography.code.fontFamily};\n\n &.deprecated {\n ${deprecatedCss};\n }\n\n ${({\n kind\n}) => kind !== 'field' ? 'font-style: italic' : ''};\n\n ${extensionsHook('PropertyNameCell')};\n`;\nexport const PropertyDetailsCell = styled.td`\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ${props => props.theme.schema.defaultDetailsWidth};\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n`;\nexport const PropertyBullet = styled.span`\n color: ${props => props.theme.schema.linesColor};\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ${props => props.theme.schema.linesColor};\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ${props => props.theme.schema.linesColor};\n height: 7px;\n }\n`;\nexport const InnerPropertiesWrap = styled.div`\n padding: ${({\n theme\n}) => theme.schema.nestingSpacing};\n`;\nexport const PropertiesTable = styled.table`\n border-collapse: separate;\n border-radius: 3px;\n font-size: ${props => props.theme.typography.fontSize};\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n margin: ${({\n theme\n}) => theme.schema.nestingSpacing};\n margin-right: 0;\n background: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n background: #ffffff;\n }\n`;","import styled from '../styled-components';\nimport { darken } from 'polished';\nexport const OneOfList = styled.div`\n margin: 0 0 3px 0;\n display: inline-block;\n`;\nexport const OneOfLabel = styled.span`\n font-size: 0.9em;\n margin-right: 10px;\n color: ${props => props.theme.colors.primary.main};\n font-family: ${props => props.theme.typography.headings.fontFamily};\n}\n`;\nexport const OneOfButton = styled.button<{\n active: boolean;\n}>`\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ${props => props.theme.colors.primary.main};\n padding: 2px 10px;\n line-height: 1.5em;\n outline: none;\n &:focus {\n box-shadow: 0 0 0 1px ${props => props.theme.colors.primary.main};\n }\n\n ${props => {\n if (props.active) {\n return `\n color: white;\n background-color: ${props.theme.colors.primary.main};\n &:focus {\n box-shadow: none;\n background-color: ${darken(0.15, props.theme.colors.primary.main)};\n }\n `;\n } else {\n return `\n color: ${props.theme.colors.primary.main};\n background-color: white;\n `;\n }\n}}\n`;\nexport const ArrayOpenningLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ' [';\n }\n`;\nexport const ArrayClosingLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ']';\n }\n`;","import Dropdown from 'react-dropdown-aria';\nimport styled from '../styled-components';\nexport interface DropdownOption {\n idx: number;\n value: string;\n}\nexport interface DropdownProps {\n options: DropdownOption[];\n value: string;\n onChange: (option: DropdownOption) => void;\n ariaLabel: string;\n}\nexport const StyledDropdown = styled(Dropdown)`\n && {\n box-sizing: border-box;\n min-width: 100px;\n outline: none;\n display: inline-block;\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.5);\n vertical-align: bottom;\n padding: 2px 0px 2px 6px;\n position: relative;\n width: auto;\n background: white;\n color: #263238;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n font-size: 0.929em;\n line-height: 1.5em;\n cursor: pointer;\n transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;\n &:hover,\n &:focus-within {\n border: 1px solid ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n box-shadow: 0px 0px 0px 1px ${props => props.theme.colors.primary.main};\n }\n .dropdown-selector {\n display: inline-flex;\n padding: 0;\n height: auto;\n padding-right: 20px;\n position: relative;\n margin-bottom: 5px;\n }\n .dropdown-selector-value {\n font-family: ${props => props.theme.typography.headings.fontFamily};\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1;\n vertical-align: middle;\n color: #263238;\n left: 0;\n transition: color 0.25s ease, text-shadow 0.25s ease;\n }\n .dropdown-arrow {\n position: absolute;\n right: 3px;\n top: 50%;\n transform: translateY(-50%);\n border-color: ${props => props.theme.colors.primary.main} transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n width: 0;\n svg {\n display: none;\n }\n }\n\n .dropdown-selector-content {\n position: absolute;\n margin-top: 2px;\n left: -2px;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &[aria-selected='true'] {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n input {\n cursor: pointer;\n height: 1px;\n }\n }\n`;\nexport const SimpleDropdown = styled(StyledDropdown)`\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n .dropdown-selector-value {\n color: ${props => props.theme.colors.primary.main};\n text-shadow: 0px 0px 0px ${props => props.theme.colors.primary.main};\n }\n }\n }\n`;\nexport const MimeLabel = styled.span`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n`;","import { darken } from 'polished';\nimport { Tabs as ReactTabs } from 'react-tabs';\nimport styled from '../styled-components';\nexport { Tab, TabList, TabPanel } from 'react-tabs';\nexport const Tabs = styled(ReactTabs)`\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n margin: 0\n ${({\n theme\n}) => `${theme.spacing.unit}px ${theme.spacing.unit}px ${theme.spacing.unit}px`};\n border: 1px solid ${({\n theme\n}) => darken(0.05, theme.codeBlock.backgroundColor)};\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ${props => props.theme.colors.text.primary};\n background: ${({\n theme\n}) => theme.rightPanel.textColor};\n &:focus {\n outline: auto;\n }\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ${props => props.theme.colors.responses.success.color};\n }\n\n &.tab-redirect {\n color: ${props => props.theme.colors.responses.redirect.color};\n }\n\n &.tab-info {\n color: ${props => props.theme.colors.responses.info.color};\n }\n\n &.tab-error {\n color: ${props => props.theme.colors.responses.error.color};\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n`;\nexport const SmallTabs = styled(Tabs)`\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 2}px 0;\n }\n }\n`;","import styled, { extensionsHook } from '../styled-components';\nexport const PrismDiv = styled.div`\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n .token.property.string {\n color: white;\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ${extensionsHook('Prism')};\n`;","import styled from '../styled-components';\nimport { PrismDiv } from './PrismDiv';\nexport const SampleControls = styled.div`\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n &:focus-within {\n opacity: 1;\n }\n > button {\n background-color: transparent;\n border: 0;\n color: inherit;\n padding: 2px 10px;\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-size: ${({\n theme\n}) => theme.typography.fontSize};\n line-height: ${({\n theme\n}) => theme.typography.lineHeight};\n cursor: pointer;\n outline: 0;\n\n :hover,\n :focus {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\nexport const SampleControlsWrap = styled.div`\n &:hover ${SampleControls} {\n opacity: 1;\n }\n`;\nexport const StyledPre = styled(PrismDiv.withComponent('pre'))`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n overflow-x: auto;\n margin: 0;\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n`;","import * as React from 'react';\nimport PerfectScrollbarType, * as PerfectScrollbarNamespace from 'perfect-scrollbar';\nimport { OptionsContext } from '../components/OptionsProvider';\nimport styled from '../styled-components';\n/*\n * perfect scrollbar umd bundle uses exports assignment while module uses default export\n * so when bundled with webpack default export works but with jest it crashes\n * That's why the following ugly fix is required\n */\n\nconst PerfectScrollbarConstructor = PerfectScrollbarNamespace.default || ((PerfectScrollbarNamespace as any) as PerfectScrollbarType); // const PSStyling = createGlobalStyle`${require('perfect-scrollbar/css/perfect-scrollbar.css').toString()}`;\n\nconst StyledScrollWrapper = styled.div`\n position: relative;\n`;\nexport interface PerfectScrollbarProps {\n options?: PerfectScrollbarType.Options;\n className?: string;\n updateFn?: (fn) => void;\n}\nexport class PerfectScrollbar extends React.Component {\n private _container: HTMLElement;\n private inst: PerfectScrollbarType;\n\n componentDidMount() {\n const offset = this._container.parentElement && this._container.parentElement.scrollTop || 0;\n this.inst = new PerfectScrollbarConstructor(this._container, this.props.options || {});\n\n if (this._container.scrollTo) {\n this._container.scrollTo(0, offset);\n }\n }\n\n componentDidUpdate() {\n this.inst.update();\n }\n\n componentWillUnmount() {\n this.inst.destroy();\n }\n\n handleRef = ref => {\n this._container = ref;\n };\n\n render() {\n const {\n children,\n className,\n updateFn\n } = this.props;\n\n if (updateFn) {\n updateFn(this.componentDidUpdate.bind(this));\n }\n\n return <>\n {\n /* */\n }\n \n {children}\n \n ;\n }\n\n}\nexport function PerfectScrollbarWrap(props: PerfectScrollbarProps & {\n children: JSX.Element[] | JSX.Element;\n}) {\n return \n {options => !options.nativeScrollbars ? {props.children} :
\n {props.children}\n
}\n
;\n}","import styled from '../styled-components';\ntype FlexProps = {\n justifyContent?: string;\n};\nexport const Flex = styled.div.attrs((props: FlexProps) => ({\n justifyContent: props.justifyContent\n}))`\n display: flex;\n justify-content: ${props => props.justifyContent};\n width: 100%;\n`;\nexport const HFlex = styled(Flex)`\n flex-direction: row;\n`;\nexport const VFlex = styled(Flex)`\n flex-direction: column;\n`;","export * from './panels';\nexport * from './headers';\nexport * from './linkify';\nexport * from './shelfs';\nexport * from './fields-layout';\nexport * from './schema';\nexport * from './dropdown';\nexport * from './mixins';\nexport * from './tabs';\nexport * from './samples';\nexport * from './perfect-scrollbar';\nexport * as Flex from './flex';","import * as React from 'react';\nimport { DropdownProps, MimeLabel, SimpleDropdown } from '../../common-elements/dropdown';\nexport interface DropdownOrLabelProps extends DropdownProps {\n Label?: React.ComponentClass;\n Dropdown?: React.ComponentClass;\n}\nexport function DropdownOrLabel(props: DropdownOrLabelProps): JSX.Element {\n const {\n Label = MimeLabel,\n Dropdown = SimpleDropdown\n } = props;\n\n if (props.options.length === 1) {\n return ;\n }\n\n return ;\n}","import { headerCommonMixin, linkifyMixin } from '../../common-elements';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport styled, { css, extensionsHook, ResolvedThemeInterface } from '../../styled-components';\nimport { StyledComponent } from 'styled-components';\nexport const linksCss = css`\n a {\n text-decoration: none;\n color: ${props => props.theme.typography.links.color};\n\n &:visited {\n color: ${props => props.theme.typography.links.visited};\n }\n\n &:hover {\n color: ${props => props.theme.typography.links.hover};\n }\n }\n`;\nexport const StyledMarkdownBlock = styled((PrismDiv as StyledComponent<'div', ResolvedThemeInterface, {\n compact?: boolean;\n inline?: boolean;\n}>))`\n\n font-family: ${props => props.theme.typography.fontFamily};\n font-weight: ${props => props.theme.typography.fontWeightRegular};\n line-height: ${props => props.theme.typography.lineHeight};\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${({\n compact\n}) => compact && `\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n `}\n\n ${({\n inline\n}) => inline && ` p {\n display: inline-block;\n }`}\n\n h1 {\n ${headerCommonMixin(1)};\n color: ${props => props.theme.colors.primary.main};\n margin-top: 0;\n }\n\n h2 {\n ${headerCommonMixin(2)};\n color: ${props => props.theme.colors.text.primary};\n }\n\n code {\n color: ${({\n theme\n}) => theme.typography.code.color};\n background-color: ${({\n theme\n}) => theme.typography.code.backgroundColor};\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ${({\n theme\n}) => theme.spacing.unit}px;\n font-size: ${props => props.theme.typography.code.fontSize};\n font-weight: ${({\n theme\n}) => theme.typography.code.fontWeight};\n\n word-break: break-word;\n }\n\n pre {\n font-family: ${props => props.theme.typography.code.fontFamily};\n white-space:${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n background-color: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n color: white;\n padding: ${props => props.theme.spacing.unit * 4}px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ${linkifyMixin('.share-link')};\n\n ${linksCss}\n\n ${extensionsHook('Markdown')};\n`;","import * as DOMPurify from 'dompurify';\nimport * as React from 'react';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StylingMarkdownProps } from './Markdown';\nimport { StyledMarkdownBlock } from './styled.elements';\nconst StyledMarkdownSpan = StyledMarkdownBlock.withComponent('span');\n\nconst sanitize = (untrustedSpec, html) => untrustedSpec ? DOMPurify.sanitize(html) : html;\n\nexport function SanitizedMarkdownHTML(props: StylingMarkdownProps & {\n html: string;\n className?: string;\n 'data-role'?: string;\n}) {\n const Wrap = props.inline ? StyledMarkdownSpan : StyledMarkdownBlock;\n return \n {options => }\n ;\n}","import * as React from 'react';\nimport { MarkdownRenderer } from '../../services';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nexport interface StylingMarkdownProps {\n compact?: boolean;\n inline?: boolean;\n}\nexport interface BaseMarkdownProps {\n sanitize?: boolean;\n source: string;\n}\nexport type MarkdownProps = BaseMarkdownProps & StylingMarkdownProps & {\n source: string;\n className?: string;\n 'data-role'?: string;\n};\nexport class Markdown extends React.Component {\n render() {\n const {\n source,\n inline,\n compact,\n className,\n 'data-role': dataRole\n } = this.props;\n const renderer = new MarkdownRenderer();\n return ;\n }\n\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Tip = styled.div`\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n`;\nconst Content = styled.div`\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n`;\nconst Arrow = styled.div`\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n`;\nconst Gap = styled.div`\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n`;\nexport interface TooltipProps {\n open: boolean;\n title: string;\n}\nexport class Tooltip extends React.Component {\n render() {\n const {\n open,\n title,\n children\n } = this.props;\n return \n {children}\n {open && \n {title}\n \n \n }\n ;\n }\n\n}","const isSupported = typeof document !== 'undefined' && document.queryCommandSupported && document.queryCommandSupported('copy');\nexport class ClipboardService {\n static isSupported(): boolean {\n return isSupported;\n }\n\n static selectElement(element: any): void {\n let range;\n let selection;\n\n if ((document.body as any).createTextRange) {\n range = (document.body as any).createTextRange();\n range.moveToElementText(element);\n range.select();\n } else if (document.createRange && window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n static deselect(): void {\n if ((document as any).selection) {\n (document as any).selection.empty();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n }\n }\n }\n\n static copySelected(): boolean {\n let result;\n\n try {\n result = document.execCommand('copy');\n } catch (err) {\n result = false;\n }\n\n return result;\n }\n\n static copyElement(element: any): boolean {\n ClipboardService.selectElement(element);\n const res = ClipboardService.copySelected();\n\n if (res) {\n ClipboardService.deselect();\n }\n\n return res;\n }\n\n static copyCustom(text: string): boolean {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.top = '0';\n textArea.style.left = '0'; // Ensure it has a small width and height. Setting to 1px / 1em\n // doesn't work as this gives a negative w/h on some browsers.\n\n textArea.style.width = '2em';\n textArea.style.height = '2em'; // We don't need padding, reducing the size if it does flash render.\n\n textArea.style.padding = '0'; // Clean up any borders.\n\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none'; // Avoid flash of white box if rendered for any reason.\n\n textArea.style.background = 'transparent';\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n const res = ClipboardService.copySelected();\n document.body.removeChild(textArea);\n return res;\n }\n\n}","import * as React from 'react';\nimport { Tooltip } from '../common-elements/Tooltip';\nimport { ClipboardService } from '../services/ClipboardService';\nexport interface CopyButtonWrapperProps {\n data: any;\n children: (props: {\n renderCopyButton: () => React.ReactNode;\n }) => React.ReactNode;\n}\nexport class CopyButtonWrapper extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n tooltipShown: false\n };\n }\n\n render() {\n return this.props.children({\n renderCopyButton: this.renderCopyButton\n });\n }\n\n copy = () => {\n const content = typeof this.props.data === 'string' ? this.props.data : JSON.stringify(this.props.data, null, 2);\n ClipboardService.copyCustom(content);\n this.showTooltip();\n };\n renderCopyButton = () => {\n return ;\n };\n\n showTooltip() {\n this.setState({\n tooltipShown: true\n });\n setTimeout(() => {\n this.setState({\n tooltipShown: false\n });\n }, 1500);\n }\n\n}","let level = 1;\nexport function jsonToHTML(json, maxExpandLevel) {\n level = 1;\n let output = '';\n output += '
';\n output += '';\n output += valueToHTML(json, maxExpandLevel);\n output += '';\n output += '
';\n return output;\n}\n\nfunction htmlEncode(t) {\n return t !== undefined ? t.toString().replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>') : '';\n}\n\nfunction stringifyStringLiteral(str: string) {\n return JSON.stringify(str).slice(1, -1);\n}\n\nfunction decorateWithSpan(value, className) {\n return '' + htmlEncode(value) + '';\n}\n\nfunction punctuation(val) {\n return '' + val + '';\n}\n\nfunction valueToHTML(value, maxExpandLevel: number) {\n const valueType = typeof value;\n let output = '';\n\n if (value === undefined || value === null) {\n output += decorateWithSpan('null', 'token keyword');\n } else if (value && value.constructor === Array) {\n level++;\n output += arrayToHTML(value, maxExpandLevel);\n level--;\n } else if (value && value.constructor === Date) {\n output += decorateWithSpan('\"' + value.toISOString() + '\"', 'token string');\n } else if (valueType === 'object') {\n level++;\n output += objectToHTML(value, maxExpandLevel);\n level--;\n } else if (valueType === 'number') {\n output += decorateWithSpan(value, 'token number');\n } else if (valueType === 'string') {\n if (/^(http|https):\\/\\/[^\\s]+$/.test(value)) {\n output += decorateWithSpan('\"', 'token string') + '' + htmlEncode(stringifyStringLiteral(value)) + '' + decorateWithSpan('\"', 'token string');\n } else {\n output += decorateWithSpan('\"' + stringifyStringLiteral(value) + '\"', 'token string');\n }\n } else if (valueType === 'boolean') {\n output += decorateWithSpan(value, 'token boolean');\n }\n\n return output;\n}\n\nfunction arrayToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n let output = `
${punctuation('[')}
    `;\n let hasContents = false;\n const length = json.length;\n\n for (let i = 0; i < length; i++) {\n hasContents = true;\n output += '
  • ';\n output += valueToHTML(json[i], maxExpandLevel);\n\n if (i < length - 1) {\n output += ',';\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation(']')}`;\n\n if (!hasContents) {\n output = punctuation('[ ]');\n }\n\n return output;\n}\n\nfunction objectToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n const keys = Object.keys(json);\n const length = keys.length;\n let output = `
${punctuation('{')}
    `;\n let hasContents = false;\n\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n hasContents = true;\n output += '
  • ';\n output += '\"' + htmlEncode(key) + '\": ';\n output += valueToHTML(json[key], maxExpandLevel);\n\n if (i < length - 1) {\n output += punctuation(',');\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation('}')}`;\n\n if (!hasContents) {\n output = punctuation('{ }');\n }\n\n return output;\n}","import { css } from '../../styled-components';\nexport const jsonStyles = css`\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' … ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { SampleControls } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport { jsonToHTML } from '../../utils/jsonToHtml';\nimport { OptionsContext } from '../OptionsProvider';\nimport { jsonStyles } from './style';\nexport interface JsonProps {\n data: any;\n className?: string;\n}\nconst JsonViewerWrap = styled.div`\n &:hover > ${SampleControls} {\n opacity: 1;\n }\n`;\n\nclass Json extends React.PureComponent {\n node: HTMLDivElement;\n\n render() {\n return {this.renderInner};\n }\n\n renderInner = ({\n renderCopyButton\n }) => \n \n {renderCopyButton()}\n \n \n \n \n {options => this.node = node!} dangerouslySetInnerHTML={{\n __html: jsonToHTML(this.props.data, options.jsonSampleExpandLevel)\n }} />}\n \n ;\n expandAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const collapsed of Array.prototype.slice.call(elements)) {\n (collapsed.parentNode as Element)!.classList.remove('collapsed');\n }\n };\n collapseAll = () => {\n const elements = this.node.getElementsByClassName('collapsible'); // skip first item to avoid collapsing whole object/array\n\n const elementsArr = Array.prototype.slice.call(elements, 1);\n\n for (const expanded of elementsArr) {\n (expanded.parentNode as Element)!.classList.add('collapsed');\n }\n };\n clickListener = (event: MouseEvent) => {\n let collapsed;\n const target = (event.target as HTMLElement);\n\n if (target.className === 'collapser') {\n collapsed = target.parentElement!.getElementsByClassName('collapsible')[0];\n\n if (collapsed.parentElement.classList.contains('collapsed')) {\n collapsed.parentElement.classList.remove('collapsed');\n } else {\n collapsed.parentElement.classList.add('collapsed');\n }\n }\n };\n\n componentDidMount() {\n this.node!.addEventListener('click', this.clickListener);\n }\n\n componentWillUnmount() {\n this.node!.removeEventListener('click', this.clickListener);\n }\n\n}\n\nexport const JsonViewer = styled(Json)`\n ${jsonStyles};\n`;","import * as React from 'react';\nimport { highlight } from '../../utils';\nimport { SampleControls, SampleControlsWrap, StyledPre } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nexport interface SourceCodeProps {\n source: string;\n lang: string;\n}\nexport class SourceCode extends React.PureComponent {\n render() {\n const {\n source,\n lang\n } = this.props;\n return ;\n }\n\n}\nexport class SourceCodeWithCopy extends React.PureComponent {\n render() {\n return \n {({\n renderCopyButton\n }) => \n {renderCopyButton()}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { isJsonLike, langFromMime } from '../../utils/openapi';\nimport { JsonViewer } from '../JsonViewer/JsonViewer';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nexport interface ExampleValueProps {\n value: any;\n mimeType: string;\n}\nexport function ExampleValue({\n value,\n mimeType\n}: ExampleValueProps) {\n if (isJsonLike(mimeType)) {\n return ;\n } else {\n if (typeof value === 'object') {\n // just in case example was cached as json but used as non-json\n value = JSON.stringify(value, null, 2);\n }\n\n return ;\n }\n}","import { useEffect, useRef, useState } from 'react';\nimport { ExampleModel } from '../../services/models/Example';\nexport function useExternalExample(example: ExampleModel, mimeType: string) {\n const [, setIsLoading] = useState(true); // to trigger component reload\n\n const value = useRef(undefined);\n const prevRef = useRef(undefined);\n\n if (prevRef.current !== example) {\n value.current = undefined;\n }\n\n prevRef.current = example;\n useEffect(() => {\n const load = async () => {\n setIsLoading(true);\n\n try {\n value.current = await example.getExternalValue(mimeType);\n } catch (e) {\n value.current = e;\n }\n\n setIsLoading(false);\n };\n\n load();\n }, [example, mimeType]);\n return value.current;\n}","import * as React from 'react';\nimport { StyledPre } from '../../common-elements/samples';\nimport { ExampleModel } from '../../services/models';\nimport { ExampleValue } from './ExampleValue';\nimport { useExternalExample } from './exernalExampleHook';\nexport interface ExampleProps {\n example: ExampleModel;\n mimeType: string;\n}\nexport function Example({\n example,\n mimeType\n}: ExampleProps) {\n if (example.value === undefined && example.externalValueUrl) {\n return ;\n } else {\n return ;\n }\n}\nexport function ExternalExample({\n example,\n mimeType\n}: ExampleProps) {\n const value = useExternalExample(example, mimeType);\n\n if (value === undefined) {\n return Loading...;\n }\n\n if (value instanceof Error) {\n return \n Error loading external example:
\n \n {example.externalValueUrl}\n \n
;\n }\n\n return ;\n}","import { transparentize } from 'polished';\nimport styled from '../../styled-components';\nimport { StyledDropdown } from '../../common-elements';\nexport const MimeLabel = styled.div`\n padding: 0.9em;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n margin: 0 0 10px 0;\n display: block;\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 0.929em;\n line-height: 1.5em;\n`;\nexport const DropdownLabel = styled.span`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.textColor)};\n`;\nexport const DropdownWrapper = styled.div`\n position: relative;\n`;\nexport const InvertedSimpleDropdown = styled(StyledDropdown)`\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n box-shadow: none;\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n }\n &:focus-within {\n background-color: ${({\n theme\n}) => transparentize(0.3, theme.rightPanel.backgroundColor)};\n }\n\n .dropdown-arrow {\n border-top-color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n .dropdown-selector-value {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n\n .dropdown-selector-content {\n margin: 0;\n margin-top: 2px;\n .dropdown-option {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n }\n }\n`;\nexport const NoSampleLabel = styled.div`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: 12px;\n color: #ee807f;\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { MediaTypeModel } from '../../services/models';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Example } from './Example';\nimport { DropdownLabel, DropdownWrapper, NoSampleLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n mediaType: MediaTypeModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\ninterface MediaTypeSamplesState {\n activeIdx: number;\n}\nexport class MediaTypeSamples extends React.Component {\n state = {\n activeIdx: 0\n };\n switchMedia = ({\n idx\n }) => {\n this.setState({\n activeIdx: idx\n });\n };\n\n render() {\n const {\n activeIdx\n } = this.state;\n const examples = this.props.mediaType.examples || {};\n const mimeType = this.props.mediaType.name;\n const noSample = No sample;\n const examplesNames = Object.keys(examples);\n\n if (examplesNames.length === 0) {\n return noSample;\n }\n\n if (examplesNames.length > 1) {\n const options = examplesNames.map((name, idx) => {\n return {\n value: examples[name].summary || name,\n idx\n };\n });\n const example = examples[examplesNames[activeIdx]];\n const description = example.description;\n return \n \n Example\n {this.props.renderDropdown({\n value: options[activeIdx].value,\n options,\n onChange: this.switchMedia,\n ariaLabel: 'Example'\n })}\n \n
\n {description && }\n \n
\n
;\n } else {\n const example = examples[examplesNames[0]];\n return \n {example.description && }\n \n ;\n }\n }\n\n}\nconst SamplesWrapper = styled.div`\n margin-top: 15px;\n`;","import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { PropertyNameCell } from './fields-layout';\nimport { ShelfIcon } from './shelfs';\nexport const ClickablePropertyNameCell = styled(PropertyNameCell)`\n button {\n background-color: transparent;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-family: ${props => props.theme.typography.code.fontFamily};\n cursor: pointer;\n padding: 0;\n color: ${props => props.theme.colors.text.primary};\n &:focus {\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n }\n }\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.schema.arrow.size};\n width: ${({\n theme\n}) => theme.schema.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.schema.arrow.color};\n }\n }\n`;\nexport const FieldLabel = styled.span`\n vertical-align: middle;\n font-size: ${({\n theme\n}) => theme.typography.code.fontSize};\n line-height: 20px;\n`;\nexport const TypePrefix = styled(FieldLabel)`\n color: ${props => transparentize(0.2, props.theme.schema.typeNameColor)};\n`;\nexport const TypeName = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeNameColor};\n`;\nexport const TypeTitle = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeTitleColor};\n word-break: break-word;\n`;\nexport const TypeFormat = TypeName;\nexport const RequiredLabel = styled(FieldLabel.withComponent('div'))`\n color: ${props => props.theme.schema.requireLabelColor};\n font-size: ${props => props.theme.schema.labelsTextSize};\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n`;\nexport const RecursiveLabel = styled(FieldLabel)`\n color: ${({\n theme\n}) => theme.colors.warning.main};\n font-size: 13px;\n`;\nexport const NullableLabel = styled(FieldLabel)`\n color: #3195a6;\n font-size: 13px;\n`;\nexport const PatternLabel = styled(FieldLabel)`\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n`;\nexport const ExampleValue = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.text.primary)};\n color: ${transparentize(0.1, theme.colors.text.primary)};\n\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.text.primary)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ExampleValue')};\n`;\nexport const ExtensionValue = styled(ExampleValue)``;\nexport const ConstraintItem = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.primary.light)};\n color: ${transparentize(0.1, theme.colors.primary.main)};\n\n margin: 0 ${theme.spacing.unit}px;\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.primary.main)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ConstraintItem')};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { linksCss } from '../Markdown/styled.elements';\nconst LinkWrap = styled.div<{\n compact?: boolean;\n}>`\n ${linksCss};\n ${({\n compact\n}) => !compact ? 'margin: 1em 0' : ''}\n`;\n@observer\nexport class ExternalDocumentation extends React.Component<{\n externalDocs: OpenAPIExternalDocumentation;\n compact?: boolean;\n}> {\n render() {\n const {\n externalDocs\n } = this.props;\n\n if (!externalDocs || !externalDocs.url) {\n return null;\n }\n\n return \n {externalDocs.description || externalDocs.url}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nimport styled from '../../styled-components';\nimport { RedocRawOptions } from '../../services/RedocNormalizedOptions';\nexport interface EnumValuesProps {\n values: string[];\n type: string;\n}\nexport interface EnumValuesState {\n collapsed: boolean;\n}\nexport class EnumValues extends React.PureComponent {\n state: EnumValuesState = {\n collapsed: true\n };\n static contextType = OptionsContext;\n\n private toggle() {\n this.setState({\n collapsed: !this.state.collapsed\n });\n }\n\n render() {\n const {\n values,\n type\n } = this.props;\n const {\n collapsed\n } = this.state; // TODO: provide context interface in more elegant way\n\n const {\n enumSkipQuotes,\n maxDisplayedEnumValues\n } = (this.context as RedocRawOptions);\n\n if (!values.length) {\n return null;\n }\n\n const displayedItems = this.state.collapsed && maxDisplayedEnumValues ? values.slice(0, maxDisplayedEnumValues) : values;\n const showToggleButton = maxDisplayedEnumValues ? values.length > maxDisplayedEnumValues : false;\n const toggleButtonText = maxDisplayedEnumValues ? collapsed ? `… ${values.length - maxDisplayedEnumValues} more` : 'Hide' : '';\n return
\n \n {type === 'array' ? l('enumArray') : ''}{' '}\n {values.length === 1 ? l('enumSingleValue') : l('enum')}:\n {' '}\n {displayedItems.map((value, idx) => {\n const exampleValue = enumSkipQuotes ? value : JSON.stringify(value);\n return \n {exampleValue}{' '}\n ;\n })}\n {showToggleButton ? {\n this.toggle();\n }}>\n {toggleButtonText}\n : null}\n
;\n }\n\n}\nconst ToggleButton = styled.span`\n color: ${props => props.theme.colors.primary.main};\n vertical-align: middle;\n font-size: 13px;\n line-height: 20px;\n padding: 0 5px;\n cursor: pointer;\n`;","import * as React from 'react';\nimport { ExtensionValue, FieldLabel } from '../../common-elements/fields';\nimport styled from '../../styled-components';\nimport { OptionsContext } from '../OptionsProvider';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst Extension = styled(StyledMarkdownBlock)`\n margin: 2px 0;\n`;\nexport interface ExtensionsProps {\n extensions: {\n [k: string]: any;\n };\n}\nexport class Extensions extends React.PureComponent {\n render() {\n const exts = this.props.extensions;\n return \n {options => <>\n {options.showExtensions && Object.keys(exts).map(key => \n {key.substring(2)}: {' '}\n \n {typeof exts[key] === 'string' ? exts[key] : JSON.stringify(exts[key])}\n \n )}\n }\n ;\n }\n\n}","import * as React from 'react';\nimport { ConstraintItem } from '../../common-elements/fields';\nexport interface ConstraintsViewProps {\n constraints: string[];\n}\nexport class ConstraintsView extends React.PureComponent {\n render() {\n if (this.props.constraints.length === 0) {\n return null;\n }\n\n return \n {' '}\n {this.props.constraints.map(constraint => {constraint} )}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nexport interface FieldDetailProps {\n value?: any;\n label: string;\n raw?: boolean;\n}\nexport class FieldDetail extends React.PureComponent {\n render() {\n if (this.props.value === undefined) {\n return null;\n }\n\n const value = this.props.raw ? this.props.value : JSON.stringify(this.props.value);\n return
\n {this.props.label} {value}\n
;\n }\n\n}","import * as React from 'react';\nimport { NullableLabel, PatternLabel, RecursiveLabel, TypeFormat, TypeName, TypePrefix, TypeTitle } from '../../common-elements/fields';\nimport { serializeParameterValue } from '../../utils/openapi';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { EnumValues } from './EnumValues';\nimport { Extensions } from './Extensions';\nimport { FieldProps } from './Field';\nimport { ConstraintsView } from './FieldContstraints';\nimport { FieldDetail } from './FieldDetail';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nconst MAX_PATTERN_LENGTH = 45;\nexport class FieldDetails extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n showExamples,\n field,\n renderDiscriminatorSwitch\n } = this.props;\n const {\n enumSkipQuotes,\n hideSchemaTitles\n } = this.context;\n const {\n schema,\n description,\n example,\n deprecated\n } = field;\n const rawDefault = !!enumSkipQuotes || field.in === 'header'; // having quotes around header field default values is confusing and inappropriate\n\n let exampleField: JSX.Element | null = null;\n\n if (showExamples && example !== undefined) {\n const label = l('example') + ':';\n\n if (field.in && (field.style || field.serializationMime)) {\n // decode for better readability in examples: see https://github.com/Redocly/redoc/issues/1138\n const serializedValue = decodeURIComponent(serializeParameterValue(field, example));\n exampleField = ;\n } else {\n exampleField = ;\n }\n }\n\n return
\n
\n {schema.typePrefix}\n {schema.displayType}\n {schema.displayFormat && \n {' '}\n <\n {schema.displayFormat}\n >{' '}\n }\n {schema.title && !hideSchemaTitles && ({schema.title}) }\n \n {schema.nullable && {l('nullable')} }\n {schema.pattern && schema.pattern.length < MAX_PATTERN_LENGTH && {schema.pattern} }\n {schema.isCircular && {l('recursive')} }\n
\n {deprecated &&
\n {l('deprecated')} \n
}\n \n {!renderDiscriminatorSwitch && }{' '}\n {exampleField}\n {}\n
\n \n
\n {schema.externalDocs && }\n {renderDiscriminatorSwitch && renderDiscriminatorSwitch(this.props) || null}\n
;\n }\n\n}","import * as React from 'react';\nimport { Schema, SchemaProps } from './Schema';\nimport { ArrayClosingLabel, ArrayOpenningLabel } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { humanizeConstraints } from \"../../utils\";\nconst PaddedSchema = styled.div`\n padding-left: ${({\n theme\n}) => theme.spacing.unit * 2}px;\n`;\nexport class ArraySchema extends React.PureComponent {\n render() {\n const itemsSchema = this.props.schema.items!;\n\n const itemConstraintSchema = (min: number | undefined = undefined, max: number | undefined = undefined) => ({\n type: 'array',\n minItems: min,\n maxItems: max\n });\n\n const minMaxItems = humanizeConstraints(itemConstraintSchema(itemsSchema.schema.minItems, itemsSchema.schema.maxItems));\n return
\n Array ({minMaxItems})\n \n \n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ClickablePropertyNameCell, RequiredLabel } from '../../common-elements/fields';\nimport { FieldDetails } from './FieldDetails';\nimport { InnerPropertiesWrap, PropertyBullet, PropertyCellWithInner, PropertyDetailsCell, PropertyNameCell } from '../../common-elements/fields-layout';\nimport { ShelfIcon } from '../../common-elements/';\nimport { FieldModel } from '../../services/models';\nimport { Schema, SchemaOptions } from '../Schema/Schema';\nexport interface FieldProps extends SchemaOptions {\n className?: string;\n isLast?: boolean;\n showExamples?: boolean;\n field: FieldModel;\n expandByDefault?: boolean;\n expandAllFields?: boolean;\n renderDiscriminatorSwitch?: (opts: FieldProps) => JSX.Element;\n}\n@observer\nexport class Field extends React.Component {\n toggle = () => {\n if (this.props.field.expanded === undefined && !this.props.field.expandAll && this.props.expandByDefault) {\n this.props.field.expanded = false;\n } else {\n this.props.field.toggle();\n }\n };\n handleKeyPress = e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.toggle();\n }\n };\n\n render() {\n const {\n className,\n field,\n isLast,\n expandByDefault,\n expandAllFields\n } = this.props;\n const {\n name,\n deprecated,\n required,\n kind\n } = field;\n const withSubSchema = !field.schema.isPrimitive && !field.schema.isCircular;\n const expandChildren = field.expandAll === undefined ? expandAllFields : field.expandAll;\n const expanded = field.expanded === undefined ? expandChildren || expandByDefault : field.expanded;\n const paramName = withSubSchema ? \n \n \n {required && required }\n : \n \n {name}\n {required && required }\n ;\n return <>\n \n {paramName}\n \n \n \n \n {expanded && withSubSchema && \n \n \n \n \n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownOption, StyledDropdown } from '../../common-elements/dropdown';\nimport { SchemaModel } from '../../services/models';\n@observer\nexport class DiscriminatorDropdown extends React.Component<{\n parent: SchemaModel;\n enumValues: string[];\n}> {\n sortOptions(options: DropdownOption[], enumValues: string[]): void {\n if (enumValues.length === 0) {\n return;\n }\n\n const enumOrder = {};\n enumValues.forEach((enumItem, idx) => {\n enumOrder[enumItem] = idx;\n });\n options.sort((a, b) => {\n return enumOrder[a.value] > enumOrder[b.value] ? 1 : -1;\n });\n }\n\n render() {\n const {\n parent,\n enumValues\n } = this.props;\n\n if (parent.oneOf === undefined) {\n return null;\n }\n\n const options = parent.oneOf.map((subSchema, idx) => {\n return {\n value: subSchema.title,\n idx\n };\n });\n this.sortOptions(options, enumValues);\n return ;\n }\n\n changeActiveChild = (option: DropdownOption) => {\n this.props.parent.activateOneOf(option.idx);\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { SchemaModel } from '../../services/models';\nimport { PropertiesTable, PropertiesTableCaption } from '../../common-elements/fields-layout';\nimport { Field } from '../Fields/Field';\nimport { DiscriminatorDropdown } from './DiscriminatorDropdown';\nimport { SchemaProps } from './Schema';\nimport { mapWithLast } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface ObjectSchemaProps extends SchemaProps {\n discriminator?: {\n fieldName: string;\n parentSchema: SchemaModel;\n };\n}\n@observer\nexport class ObjectSchema extends React.Component {\n static contextType = OptionsContext;\n\n get parentSchema() {\n return this.props.discriminator!.parentSchema;\n }\n\n render() {\n const {\n schema: {\n fields = []\n },\n showTitle,\n discriminator\n } = this.props;\n const needFilter = this.props.skipReadOnly || this.props.skipWriteOnly;\n const filteredFields = needFilter ? fields.filter(item => {\n return !(this.props.skipReadOnly && item.schema.readOnly || this.props.skipWriteOnly && item.schema.writeOnly);\n }) : fields;\n const expandByDefault = this.context.expandSingleSchemaField && filteredFields.length === 1;\n const expandAllFields = this.context.expandAllSchemaFields;\n return \n {showTitle && {this.props.schema.title}}\n \n {mapWithLast(filteredFields, (field, isLast) => {\n return ) || undefined} className={field.expanded ? 'expanded' : undefined} showExamples={false} skipReadOnly={this.props.skipReadOnly} skipWriteOnly={this.props.skipWriteOnly} showTitle={this.props.showTitle} />;\n })}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OneOfButton as StyledOneOfButton, OneOfLabel, OneOfList } from '../../common-elements/schema';\nimport { SchemaModel } from '../../services/models';\nimport { Schema, SchemaProps } from './Schema';\nexport interface OneOfButtonProps {\n subSchema: SchemaModel;\n idx: number;\n schema: SchemaModel;\n}\n@observer\nexport class OneOfButton extends React.Component {\n render() {\n const {\n idx,\n schema,\n subSchema\n } = this.props;\n return \n {subSchema.title || subSchema.typePrefix + subSchema.displayType}\n ;\n }\n\n activateOneOf = () => {\n this.props.schema.activateOneOf(this.props.idx);\n };\n}\n@observer\nexport class OneOfSchema extends React.Component {\n render() {\n const {\n schema: {\n oneOf\n },\n schema\n } = this.props;\n\n if (oneOf === undefined) {\n return null;\n }\n\n return
\n {schema.oneOfType} \n \n {oneOf.map((subSchema, idx) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { RecursiveLabel, TypeName, TypeTitle } from '../../common-elements/fields';\nimport { FieldDetails } from '../Fields/FieldDetails';\nimport { FieldModel, SchemaModel } from '../../services/models';\nimport { ArraySchema } from './ArraySchema';\nimport { ObjectSchema } from './ObjectSchema';\nimport { OneOfSchema } from './OneOfSchema';\nimport { l } from '../../services/Labels';\nexport interface SchemaOptions {\n expandAllFields?: boolean | string;\n showTitle?: boolean;\n skipReadOnly?: boolean;\n skipWriteOnly?: boolean;\n}\nexport interface SchemaProps extends SchemaOptions {\n schema: SchemaModel;\n}\n@observer\nexport class Schema extends React.Component> {\n render() {\n const {\n schema\n } = this.props;\n\n if (!schema) {\n return Schema not provided ;\n }\n\n const {\n type,\n oneOf,\n discriminatorProp,\n isCircular\n } = schema;\n\n if (isCircular) {\n return
\n {schema.displayType}\n {schema.title && {schema.title} }\n {l('recursive')} \n
;\n }\n\n if (discriminatorProp !== undefined) {\n if (!oneOf || !oneOf.length) {\n console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${schema.title}`);\n return null;\n }\n\n return ;\n }\n\n if (oneOf !== undefined) {\n return ;\n }\n\n switch (type) {\n case 'object':\n return ;\n\n case 'array':\n return ;\n } // TODO: maybe adjust FieldDetails to accept schema\n\n\n const field = (({\n schema,\n name: '',\n required: false,\n description: schema.description,\n externalDocs: schema.externalDocs,\n deprecated: false,\n toggle: () => null,\n expanded: false\n } as any) as FieldModel); // cast needed for hot-loader to not fail\n\n return
\n \n
;\n }\n\n}","export * from './Schema';\nexport * from './ObjectSchema';\nexport * from './OneOfSchema';\nexport * from './ArraySchema';\nexport * from './DiscriminatorDropdown';","import * as React from 'react';\nimport { DarkRightPanel, MiddlePanel, MimeLabel, Row, Section } from '../../common-elements';\nimport { MediaTypeModel, OpenAPIParser, RedocNormalizedOptions } from '../../services';\nimport styled from '../../styled-components';\nimport { OpenAPIMediaType } from '../../types';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypeSamples } from '../PayloadSamples/MediaTypeSamples';\nimport { InvertedSimpleDropdown } from '../PayloadSamples/styled.elements';\nimport { Schema } from '../Schema';\nexport interface ObjectDescriptionProps {\n schemaRef: string;\n exampleRef?: string;\n showReadOnly?: boolean;\n showWriteOnly?: boolean;\n parser: OpenAPIParser;\n options: RedocNormalizedOptions;\n}\nexport class SchemaDefinition extends React.PureComponent {\n private static getMediaType(schemaRef: string, exampleRef?: string): OpenAPIMediaType {\n if (!schemaRef) {\n return {};\n }\n\n const info: OpenAPIMediaType = {\n schema: {\n $ref: schemaRef\n }\n };\n\n if (exampleRef) {\n info.examples = {\n example: {\n $ref: exampleRef\n }\n };\n }\n\n return info;\n }\n\n private _mediaModel: MediaTypeModel;\n\n private get mediaModel() {\n const {\n parser,\n schemaRef,\n exampleRef,\n options\n } = this.props;\n\n if (!this._mediaModel) {\n this._mediaModel = new MediaTypeModel(parser, 'json', false, SchemaDefinition.getMediaType(schemaRef, exampleRef), options);\n }\n\n return this._mediaModel;\n }\n\n render() {\n const {\n showReadOnly = true,\n showWriteOnly = false\n } = this.props;\n return
\n \n \n \n \n \n \n \n \n \n \n
;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}\nconst MediaSamplesWrap = styled.div`\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n`;","import * as React from 'react';\nimport { SecuritySchemesModel } from '../../services/models';\nimport { H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { OpenAPISecurityScheme } from '../../types';\nimport { titleize } from '../../utils/helpers';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst AUTH_TYPES = {\n oauth2: 'OAuth2',\n apiKey: 'API Key',\n http: 'HTTP',\n openIdConnect: 'Open ID Connect'\n};\nexport interface OAuthFlowProps {\n type: string;\n flow: OpenAPISecurityScheme['flows'][keyof OpenAPISecurityScheme['flows']];\n}\nexport class OAuthFlow extends React.PureComponent {\n render() {\n const {\n type,\n flow\n } = this.props;\n return \n {type} OAuth Flow \n \n {type === 'implicit' || type === 'authorizationCode' ?
\n Authorization URL: \n {(flow as any).authorizationUrl}\n
: null}\n {type === 'password' || type === 'clientCredentials' || type === 'authorizationCode' ?
\n Token URL: \n {(flow as any).tokenUrl}\n
: null}\n {flow!.refreshUrl &&
\n Refresh URL: \n {flow!.refreshUrl}\n
}\n
\n Scopes: \n
\n
    \n {Object.keys(flow!.scopes || {}).map(scope =>
  • \n {scope} - \n
  • )}\n
\n \n ;\n }\n\n}\nexport interface SecurityDefsProps {\n securitySchemes: SecuritySchemesModel;\n}\nexport class SecurityDefs extends React.PureComponent {\n render() {\n return this.props.securitySchemes.schemes.map(scheme =>
\n \n \n

\n \n {scheme.id}\n

\n \n \n \n \n \n \n \n \n {scheme.apiKey ? \n \n \n : scheme.http ? [\n \n \n , scheme.http.scheme === 'bearer' && scheme.http.bearerFormat && \n \n \n ] : scheme.openId ? \n \n \n : scheme.flows ? Object.keys(scheme.flows).map(type => ) : null}\n \n
Security Scheme Type {AUTH_TYPES[scheme.type] || scheme.type}
{titleize(scheme.apiKey.in || '')} parameter name: {scheme.apiKey.name}
HTTP Authorization Scheme {scheme.http.scheme}
Bearer format "{scheme.http.bearerFormat}"
Connect URL \n \n {scheme.openId.connectUrl}\n \n
\n
\n
\n
\n
);\n }\n\n}","import { Lambda, observe } from 'mobx';\nimport { OpenAPISpec } from '../types';\nimport { loadAndBundleSpec } from '../utils/loadAndBundleSpec';\nimport { history } from './HistoryService';\nimport { MarkerService } from './MarkerService';\nimport { MenuStore } from './MenuStore';\nimport { SpecStore } from './models';\nimport { RedocNormalizedOptions, RedocRawOptions } from './RedocNormalizedOptions';\nimport { ScrollService } from './ScrollService';\nimport { SearchStore } from './SearchStore';\nimport { SchemaDefinition } from '../components/SchemaDefinition/SchemaDefinition';\nimport { SecurityDefs } from '../components/SecuritySchemes/SecuritySchemes';\nimport { SCHEMA_DEFINITION_JSX_NAME, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { IS_BROWSER } from '../utils';\nimport { MarkdownIndex } from '../markdown';\nexport interface StoreState {\n menu: {\n activeItemIdx: number;\n };\n spec: {\n url?: string | null;\n data: any;\n };\n searchIndex: any;\n options: RedocRawOptions;\n markdownIndex?: MarkdownIndex;\n}\nexport async function createStore(spec: object, specUrl: string | undefined | null, options: RedocRawOptions = {}, markdownIndex?: MarkdownIndex) {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl);\n return new AppStore(resolvedSpec, specUrl, options, true, markdownIndex);\n}\nexport class AppStore {\n /**\n * deserialize store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO:\n static fromJS(state: StoreState, markdownIndex?: MarkdownIndex): AppStore {\n const inst = new AppStore(state.spec.data, state.spec.url, state.options, false, markdownIndex);\n inst.menu.activeItemIdx = state.menu.activeItemIdx || 0;\n inst.menu.activate(inst.menu.flatItems[inst.menu.activeItemIdx]);\n\n if (!inst.options.disableSearch) {\n inst.search!.load(state.searchIndex);\n }\n\n return inst;\n }\n\n menu: MenuStore;\n spec: SpecStore;\n rawOptions: RedocRawOptions;\n options: RedocNormalizedOptions;\n search?: SearchStore;\n marker = new MarkerService();\n markdownIndex?: MarkdownIndex;\n private scroll: ScrollService;\n private disposer: Lambda | null = null;\n\n constructor(spec: OpenAPISpec, specUrl?: string | null, options: RedocRawOptions = {}, createSearchIndex: boolean = true, markdownIndex?: MarkdownIndex) {\n this.rawOptions = options;\n this.options = new RedocNormalizedOptions(options, DEFAULT_OPTIONS);\n this.scroll = new ScrollService(this.options); // update position statically based on hash (in case of SSR)\n\n MenuStore.updateOnHistory(history.currentId, this.scroll);\n this.spec = new SpecStore(spec, specUrl, this.options);\n this.menu = new MenuStore(this.spec, this.scroll, history, markdownIndex);\n this.markdownIndex = markdownIndex;\n\n if (!this.options.disableSearch) {\n this.search = new SearchStore();\n\n if (createSearchIndex) {\n this.search.indexItems(this.menu.items);\n }\n\n this.disposer = observe(this.menu, 'activeItemIdx', change => {\n this.updateMarkOnMenu((change.newValue as number));\n });\n }\n }\n\n onDidMount() {\n this.menu.updateOnHistory();\n this.updateMarkOnMenu(this.menu.activeItemIdx);\n }\n\n dispose() {\n this.scroll.dispose();\n this.menu.dispose();\n\n if (this.search) {\n this.search.dispose();\n }\n\n if (this.disposer != null) {\n this.disposer();\n }\n }\n /**\n * serializes store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO: improve\n\n\n async toJS(): Promise {\n return {\n menu: {\n activeItemIdx: this.menu.activeItemIdx\n },\n spec: {\n url: this.spec.parser.specUrl || null,\n data: this.spec.parser.spec\n },\n searchIndex: this.search ? await this.search.toJS() : undefined,\n options: this.rawOptions,\n markdownIndex: this.markdownIndex\n };\n }\n\n private updateMarkOnMenu(idx: number) {\n const start = Math.max(0, idx);\n const end = Math.min(this.menu.flatItems.length, start + 5);\n const elements: Element[] = [];\n\n for (let i = start; i < end; i++) {\n const elem = this.menu.getElementAt(i);\n\n if (!elem) {\n continue;\n }\n\n elements.push(elem);\n }\n\n if (idx === -1 && IS_BROWSER) {\n const $description = document.querySelector('[data-role=\"redoc-description\"]');\n if ($description) elements.push($description);\n }\n\n this.marker.addOnly(elements);\n this.marker.mark();\n }\n\n}\nconst DEFAULT_OPTIONS: RedocRawOptions = {\n allowedMdComponents: {\n [SECURITY_DEFINITIONS_COMPONENT_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SECURITY_DEFINITIONS_JSX_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SCHEMA_DEFINITION_JSX_NAME]: {\n component: SchemaDefinition,\n propsSelector: (store: AppStore) => ({\n parser: store.spec.parser,\n options: store.options\n })\n }\n }\n};","export * from './AppStore';\nexport * from './OpenAPIParser';\nexport * from './MarkdownRenderer';\nexport * from './MenuStore';\nexport * from './ScrollService';\nexport * from './SpecStore';\nexport * from './ClipboardService';\nexport * from './HistoryService';\nexport * from './models';\nexport * from './RedocNormalizedOptions';\nexport * from './MenuBuilder';\nexport * from './SearchStore';\nexport * from './MarkerService';","import { H1, MiddlePanel } from '../../common-elements';\nimport styled, { extensionsHook } from '../../styled-components';\nconst delimiterWidth = 15;\nexport const ApiInfoWrap = MiddlePanel;\nexport const ApiHeader = styled(H1)`\n margin-top: 0;\n margin-bottom: 0.5em;\n\n ${extensionsHook('ApiHeader')};\n`;\nexport const DownloadButton = styled.a`\n border: 1px solid ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n font-weight: normal;\n margin-left: 0.5em;\n padding: 4px 8px 4px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n\n ${extensionsHook('DownloadButton')};\n`;\nexport const InfoSpan = styled.span`\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ${delimiterWidth}px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n`;\nexport const InfoSpanBoxWrap = styled.div`\n overflow: hidden;\n`;\nexport const InfoSpanBox = styled.div`\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -${delimiterWidth}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { AppStore } from '../../services/AppStore';\nimport { MiddlePanel, Row, Section } from '../../common-elements/';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nimport { ApiHeader, DownloadButton, InfoSpan, InfoSpanBox, InfoSpanBoxWrap } from './styled.elements';\nexport interface ApiInfoProps {\n store: AppStore;\n}\n@observer\nexport class ApiInfo extends React.Component {\n handleDownloadClick = e => {\n if (!e.target.href) {\n e.target.href = this.props.store.spec.info.downloadLink;\n }\n };\n\n render() {\n const {\n store\n } = this.props;\n const {\n info,\n externalDocs\n } = store.spec;\n const hideDownloadButton = store.options.hideDownloadButton;\n const downloadFilename = info.downloadFileName;\n const downloadLink = info.downloadLink;\n const license = info.license && \n License: {info.license.name}\n || null;\n const website = info.contact && info.contact.url && \n URL: {info.contact.url}\n || null;\n const email = info.contact && info.contact.email && \n {info.contact.name || 'E-mail'}:{' '}\n {info.contact.email}\n || null;\n const terms = info.termsOfService && \n Terms of Service\n || null;\n const version = info.version && ({info.version}) || null;\n return
\n \n \n \n {info.title} {version}\n \n {!hideDownloadButton &&

\n Download OpenAPI specification:\n \n Download\n \n

}\n \n {(info.license || info.contact || info.termsOfService) && \n \n {email} {website} {license} {terms}\n \n || null}\n \n \n {externalDocs && }\n
\n
\n
;\n }\n\n}","export { ApiInfo } from './ApiInfo';","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const LogoImgEl = styled.img`\n max-height: ${props => props.theme.logo.maxHeight};\n max-width: ${props => props.theme.logo.maxWidth};\n padding: ${props => props.theme.logo.gutter};\n width: 100%;\n display: block;\n`;\nexport const LogoWrap = styled.div`\n text-align: center;\n`;\nconst Link = styled.a`\n display: inline-block;\n`;\nexport const LinkWrap = url => Component => {Component};","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OpenAPIInfo } from '../../types';\nimport { LinkWrap, LogoImgEl, LogoWrap } from './styled.elements';\n@observer\nexport class ApiLogo extends React.Component<{\n info: OpenAPIInfo;\n}> {\n render() {\n const {\n info\n } = this.props;\n const logoInfo = info['x-logo'];\n\n if (!logoInfo || !logoInfo.url) {\n return null;\n }\n\n const logoHref = logoInfo.href || info.contact && info.contact.url; // Use the english word logo if no alt text is provided\n\n const altText = logoInfo.altText ? logoInfo.altText : 'logo';\n const logo = ;\n return \n {logoHref ? LinkWrap(logoHref)(logo) : logo}\n ;\n }\n\n}","import * as React from 'react';\nimport { AppStore, MarkdownRenderer, RedocNormalizedOptions } from '../../services';\nimport { BaseMarkdownProps } from './Markdown';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StoreConsumer } from '../StoreBuilder';\nexport interface AdvancedMarkdownProps extends BaseMarkdownProps {\n htmlWrap?: (part: JSX.Element) => JSX.Element;\n}\nexport class AdvancedMarkdown extends React.Component {\n render() {\n return \n {options => {store => this.renderWithOptionsAndStore(options, store)}}\n ;\n }\n\n renderWithOptionsAndStore(options: RedocNormalizedOptions, store?: AppStore) {\n const {\n source,\n htmlWrap = i => i\n } = this.props;\n\n if (!store) {\n throw new Error('When using components in markdown, store prop must be provided');\n }\n\n const renderer = new MarkdownRenderer(options);\n const parts = renderer.renderMdWithComponents(source);\n\n if (!parts.length) {\n return null;\n }\n\n return parts.map((part, idx) => {\n if (typeof part === 'string') {\n return React.cloneElement(htmlWrap(), {\n key: idx\n });\n }\n\n return ;\n });\n }\n\n}","import * as classnames from 'classnames';\nimport { darken } from 'polished';\nimport { deprecatedCss, ShelfIcon } from '../../common-elements';\nimport styled, { css, ResolvedThemeInterface } from '../../styled-components';\nexport const OperationBadge = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `operation-type ${props.type}`\n}))<{\n type: string;\n}>`\n width: 32px;\n display: inline-block;\n height: ${props => props.theme.typography.code.fontSize};\n line-height: ${props => props.theme.typography.code.fontSize};\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ${props => props.theme.colors.http.get};\n }\n\n &.post {\n background-color: ${props => props.theme.colors.http.post};\n }\n\n &.put {\n background-color: ${props => props.theme.colors.http.put};\n }\n\n &.options {\n background-color: ${props => props.theme.colors.http.options};\n }\n\n &.patch {\n background-color: ${props => props.theme.colors.http.patch};\n }\n\n &.delete {\n background-color: ${props => props.theme.colors.http.delete};\n }\n\n &.basic {\n background-color: ${props => props.theme.colors.http.basic};\n }\n\n &.link {\n background-color: ${props => props.theme.colors.http.link};\n }\n\n &.head {\n background-color: ${props => props.theme.colors.http.head};\n }\n\n &.hook {\n background-color: ${props => props.theme.colors.primary.main};\n }\n`;\n\nfunction menuItemActiveBg(depth, {\n theme\n}: {\n theme: ResolvedThemeInterface;\n}): string {\n if (depth > 1) {\n return darken(0.1, theme.sidebar.backgroundColor);\n } else if (depth === 1) {\n return darken(0.05, theme.sidebar.backgroundColor);\n } else {\n return '';\n }\n}\n\nexport const MenuItemUl = styled.ul<{\n expanded: boolean;\n}>`\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ${props => props.expanded ? '' : 'display: none;'};\n`;\nexport const MenuItemLi = styled.li<{\n depth: number;\n}>`\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ${props => props.depth === 0 ? 'margin-top: 15px' : ''};\n`;\nexport const menuItemDepth = {\n 0: css`\n opacity: 0.7;\n text-transform: ${({\n theme\n }) => theme.sidebar.groupItems.textTransform};\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ${props => props.theme.sidebar.textColor};\n `,\n 1: css`\n font-size: 0.929em;\n text-transform: ${({\n theme\n }) => theme.sidebar.level1Items.textTransform};\n font-weight: ${({\n theme\n }) => theme.sidebar.level1Items.fw};\n font-size: ${({\n theme\n }) => theme.sidebar.level1Items.fontSize};\n color: ${({\n theme\n }) => theme.sidebar.level1Items.color};\n\n &:hover {\n color: ${props => props.theme.sidebar.activeTextColor};\n }\n `,\n 2: css`\n color: ${({\n theme\n }) => theme.sidebar.level1Items.color};\n font-size: ${({\n theme\n }) => theme.sidebar.level2Items.fontSize};\n `\n};\nexport interface MenuItemLabelType {\n depth: number;\n active: boolean;\n deprecated?: boolean;\n type?: string;\n}\nexport const MenuItemLabel = styled.label.attrs((props: MenuItemLabelType) => ({\n role: 'menuitem',\n className: classnames('-depth' + props.depth, {\n active: props.active\n })\n}))`\n cursor: pointer;\n color: ${props => props.active ? props.theme.sidebar.activeTextColor : props.theme.sidebar.textColor};\n margin: 0;\n padding: 12.5px ${props => !props.depth || props.depth === 0 ? `${props.theme.spacing.unit * 2}px` : `${props.depth}rem`};\n ${({\n depth,\n type,\n theme\n}) => type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;' || ''}\n display: flex;\n justify-content: space-between;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n ${props => menuItemDepth[props.depth]};\n background-color: ${props => props.active ? menuItemActiveBg(props.depth, props) : ''};\n\n ${props => props.deprecated && deprecatedCss || ''};\n\n &:hover {\n background-color: ${props => menuItemActiveBg(props.depth, props)};\n }\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.sidebar.arrow.size};\n width: ${({\n theme\n}) => theme.sidebar.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.sidebar.arrow.color};\n }\n }\n`;\nexport const MenuItemTitle = styled.span<{\n width?: string;\n}>`\n display: inline-block;\n vertical-align: middle;\n width: ${props => props.width ? props.width : 'auto'};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexport const RedocAttribution = styled.div`\n ${({\n theme\n}) => `\n font-size: 0.8em;\n margin-top: ${theme.spacing.unit * 2}px;\n padding: 0 ${theme.spacing.unit * 4}px;\n text-align: left;\n\n opacity: 0.7;\n\n a,\n a:visited,\n a:hover {\n color: ${theme.sidebar.textColor} !important;\n border-top: 1px solid ${darken(0.1, theme.sidebar.backgroundColor)};\n padding: ${theme.spacing.unit}px 0;\n display: block;\n }\n`};\n`;","import * as React from 'react';\nimport { darken } from 'polished';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationBadge } from '../SideMenu/styled.elements';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport styled from '../../styled-components';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nexport interface CallbackTitleProps {\n name: string;\n opened?: boolean;\n httpVerb: string;\n deprecated?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class CallbackTitle extends React.PureComponent {\n render() {\n const {\n name,\n opened,\n className,\n onClick,\n httpVerb,\n deprecated\n } = this.props;\n return \n {shortenHTTPVerb(httpVerb)}\n \n {name}\n {deprecated ? {l('deprecated')} : null}\n ;\n }\n\n}\nconst CallbackTitleWrapper = styled.div`\n & > * {\n vertical-align: middle;\n }\n\n ${ShelfIcon} {\n polygon {\n fill: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.colors.gray[100])};\n }\n }\n`;\nconst CallbackName = styled.span<{\n deprecated?: boolean;\n}>`\n text-decoration: ${props => props.deprecated ? 'line-through' : 'none'};\n margin-right: 8px;\n`;\nconst OperationBadgeStyled = styled(OperationBadge)`\n margin: 0px 5px 0px 0px;\n`;","import styled from '../../styled-components';\nimport { CallbackTitle } from './CallbackTitle';\nexport const StyledCallbackTitle = styled(CallbackTitle)`\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: ${({\n theme\n}) => theme.colors.gray[100]};\n cursor: pointer;\n`;\nexport const CallbackDetailsWrap = styled.div`\n padding: 10px 25px;\n background-color: ${({\n theme\n}) => theme.colors.gray[50]};\n margin-bottom: 5px;\n margin-top: 5px;\n`;","import * as React from 'react';\nimport { ClipboardService } from '../../services';\nexport class SelectOnClick extends React.PureComponent {\n private child: HTMLDivElement | null;\n selectElement = () => {\n ClipboardService.selectElement(this.child);\n };\n\n render() {\n const {\n children\n } = this.props;\n return
this.child = (el as HTMLDivElement)} onClick={this.selectElement} onFocus={this.selectElement} tabIndex={0} role=\"button\">\n {children}\n
;\n }\n\n}","import styled from '../../styled-components';\nexport const OperationEndpointWrap = styled.div`\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n`;\nexport const ServerRelativeURL = styled.span`\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n`;\nexport const EndpointInfo = styled.button<{\n expanded?: boolean;\n inverted?: boolean;\n}>`\n outline: 0;\n color: inherit;\n width: 100%;\n text-align: left;\n cursor: pointer;\n padding: 10px 30px 10px ${props => props.inverted ? '10px' : '20px'};\n border-radius: ${props => props.inverted ? '0' : '4px 4px 0 0'};\n background-color: ${props => props.inverted ? 'transparent' : props.theme.codeBlock.backgroundColor};\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ${props => props.inverted ? '0' : '1px solid transparent'};\n border-bottom: ${props => props.inverted ? '1px solid #ccc' : '0'};\n transition: border-color 0.25s ease;\n\n ${props => props.expanded && !props.inverted && `border-color: ${props.theme.colors.border.dark};` || ''}\n\n .${ServerRelativeURL} {\n color: ${props => props.inverted ? props.theme.colors.text.primary : '#ffffff'}\n }\n &:focus {\n box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);\n }\n`;\nexport const HttpVerb = styled.span.attrs((props: {\n type: string;\n compact?: boolean;\n}) => ({\n className: `http-verb ${props.type}`\n}))<{\n type: string;\n compact?: boolean;\n}>`\n font-size: ${props => props.compact ? '0.8em' : '0.929em'};\n line-height: ${props => props.compact ? '18px' : '20px'};\n background-color: ${props => props.theme.colors.http[props.type] || '#999999'};\n color: #ffffff;\n padding: ${props => props.compact ? '2px 8px' : '3px 10px'};\n text-transform: uppercase;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n margin: 0;\n`;\nexport const ServersOverlay = styled.div<{\n expanded: boolean;\n}>`\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0.25s ease;\n visibility: hidden;\n ${props => props.expanded ? 'visibility: visible;' : 'transform: translateY(-50%) scaleY(0);'}\n`;\nexport const ServerItem = styled.div`\n padding: 10px;\n`;\nexport const ServerUrl = styled.div`\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ${props => props.theme.colors.primary.main};\n > span {\n color: ${props => props.theme.colors.text.primary};\n }\n`;","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationModel } from '../../services';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { SelectOnClick } from '../SelectOnClick/SelectOnClick';\nimport { expandDefaultServerVariables, getBasePath } from '../../utils';\nimport { EndpointInfo, HttpVerb, OperationEndpointWrap, ServerItem, ServerRelativeURL, ServersOverlay, ServerUrl } from './styled.elements';\nexport interface EndpointProps {\n operation: OperationModel;\n hideHostname?: boolean;\n inverted?: boolean;\n compact?: boolean;\n}\nexport interface EndpointState {\n expanded: boolean;\n}\nexport class Endpoint extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false\n };\n }\n\n toggle = () => {\n this.setState({\n expanded: !this.state.expanded\n });\n };\n\n render() {\n const {\n operation,\n inverted,\n hideHostname\n } = this.props;\n const {\n expanded\n } = this.state; // TODO: highlight server variables, e.g. https://{user}.test.com\n\n return \n {options => \n \n \n {operation.httpVerb}\n \n {operation.path}\n \n \n \n {operation.servers.map(server => {\n const normalizedUrl = options.expandDefaultServerVariables ? expandDefaultServerVariables(server.url, server.variables) : server.url;\n return \n \n \n \n \n {hideHostname || options.hideHostname ? getBasePath(normalizedUrl) : normalizedUrl}\n \n {operation.path}\n \n \n ;\n })}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { Field } from '../Fields/Field';\nimport { mapWithLast } from '../../utils';\nexport interface ParametersGroupProps {\n place: string;\n parameters: FieldModel[];\n}\nexport class ParametersGroup extends React.PureComponent {\n render() {\n const {\n place,\n parameters\n } = this.props;\n\n if (!parameters || !parameters.length) {\n return null;\n }\n\n return
\n {place} Parameters\n \n \n {mapWithLast(parameters, (field, isLast) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps } from '../../common-elements/dropdown';\nimport { MediaContentModel, MediaTypeModel, SchemaModel } from '../../services/models';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface MediaTypeChildProps {\n schema: SchemaModel;\n mime?: string;\n}\nexport interface MediaTypesSwitchProps {\n content?: MediaContentModel;\n withLabel?: boolean;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeMime: MediaTypeModel) => JSX.Element;\n}\n@observer\nexport class MediaTypesSwitch extends React.Component {\n switchMedia = ({\n idx\n }) => {\n if (this.props.content) {\n this.props.content.activate(idx);\n }\n };\n\n render() {\n const {\n content\n } = this.props;\n\n if (!content || !content.mediaTypes || !content.mediaTypes.length) {\n return null;\n }\n\n const activeMimeIdx = content.activeMimeIdx;\n const options = content.mediaTypes.map((mime, idx) => {\n return {\n value: mime.name,\n idx\n };\n });\n\n const Wrapper = ({\n children\n }) => this.props.withLabel ? \n Content type\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: options[activeMimeIdx].value,\n options,\n onChange: this.switchMedia,\n ariaLabel: 'Content type'\n })}\n \n {this.props.children(content.active)}\n ;\n }\n\n}","import * as React from 'react';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { ParametersGroup } from './ParametersGroup';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { MediaContentModel } from '../../services';\nimport { FieldModel, RequestBodyModel } from '../../services/models';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\n\nfunction safePush(obj, prop, item) {\n if (!obj[prop]) {\n obj[prop] = [];\n }\n\n obj[prop].push(item);\n}\n\nexport interface ParametersProps {\n parameters?: FieldModel[];\n body?: RequestBodyModel;\n}\nconst PARAM_PLACES = ['path', 'query', 'cookie', 'header'];\nexport class Parameters extends React.PureComponent {\n orderParams(params: FieldModel[]): Record {\n const res = {};\n params.forEach(param => {\n safePush(res, param.in, param);\n });\n return res;\n }\n\n render() {\n const {\n body,\n parameters = []\n } = this.props;\n\n if (body === undefined && parameters === undefined) {\n return null;\n }\n\n const paramsMap = this.orderParams(parameters);\n const paramsPlaces = parameters.length > 0 ? PARAM_PLACES : [];\n const bodyContent = body && body.content;\n const bodyDescription = body && body.description;\n return <>\n {paramsPlaces.map(place => )}\n {bodyContent && }\n ;\n }\n\n}\n\nfunction DropdownWithinHeader(props) {\n return \n Request Body schema: \n ;\n}\n\nexport function BodyContent(props: {\n content: MediaContentModel;\n description?: string;\n}): JSX.Element {\n const {\n content,\n description\n } = props;\n return \n {({\n schema\n }) => {\n return <>\n {description !== undefined && }\n \n ;\n }}\n ;\n}","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { Markdown } from '../Markdown/Markdown';\nexport interface ResponseTitleProps {\n code: string;\n title: string;\n type: string;\n empty?: boolean;\n opened?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class ResponseTitle extends React.PureComponent {\n render() {\n const {\n title,\n type,\n empty,\n code,\n opened,\n className,\n onClick\n } = this.props;\n return ;\n }\n\n}","// import { transparentize } from 'polished';\nimport { UnderlinedHeader } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { ResponseTitle } from './ResponseTitle';\nexport const StyledResponseTitle = styled(ResponseTitle)`\n display: block;\n border: 0;\n width: 100%;\n text-align: left;\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ${props => props.theme.colors.responses[props.type].color};\n background-color: ${props => props.theme.colors.responses[props.type].backgroundColor};\n &:focus {\n outline: auto;\n outline-color: ${props => props.theme.colors.responses[props.type].color};\n }\n ${props => props.empty && `\ncursor: default;\n&::before {\n content: \"—\";\n font-weight: bold;\n width: 1.5em;\n text-align: center;\n display: inline-block;\n}\n&:focus {\n outline: 0;\n}\n` || ''};\n`;\nexport const ResponseDetailsWrap = styled.div`\n padding: 10px;\n`;\nexport const HeadersCaption = styled(UnderlinedHeader.withComponent('caption'))`\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n`;","import * as React from 'react';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { mapWithLast } from '../../utils';\nimport { Field } from '../Fields/Field';\nimport { HeadersCaption } from './styled.elements';\nexport interface ResponseHeadersProps {\n headers?: FieldModel[];\n}\nexport class ResponseHeaders extends React.PureComponent {\n render() {\n const {\n headers\n } = this.props;\n\n if (headers === undefined || headers.length === 0) {\n return null;\n }\n\n return \n Response Headers \n \n {mapWithLast(headers, (header, isLast) => )}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\nimport { ResponseHeaders } from './ResponseHeaders';\nexport class ResponseDetails extends React.PureComponent<{\n response: ResponseModel;\n}> {\n render() {\n const {\n description,\n headers,\n content\n } = this.props.response;\n return <>\n {description && }\n \n \n {({\n schema\n }) => {\n return ;\n }}\n \n ;\n }\n\n private renderDropdown = props => {\n return \n Response Schema: \n ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { ResponseDetails } from './ResponseDetails';\nimport { ResponseDetailsWrap, StyledResponseTitle } from './styled.elements';\n@observer\nexport class ResponseView extends React.Component<{\n response: ResponseModel;\n}> {\n toggle = () => {\n this.props.response.toggle();\n };\n\n render() {\n const {\n headers,\n type,\n summary,\n description,\n code,\n expanded,\n content\n } = this.props.response;\n const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined);\n const empty = headers.length === 0 && mimes.length === 0 && !description;\n return
\n \n {expanded && !empty && \n \n }\n
;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { ResponseView } from './Response';\nconst ResponsesHeader = styled.h3`\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ${({\n theme\n}) => theme.colors.text.primary};\n font-weight: normal;\n`;\nexport interface ResponseListProps {\n responses: ResponseModel[];\n isCallback?: boolean;\n}\nexport class ResponsesList extends React.PureComponent {\n render() {\n const {\n responses,\n isCallback\n } = this.props;\n\n if (!responses || responses.length === 0) {\n return null;\n }\n\n return
\n {isCallback ? 'Callback responses' : 'Responses'}\n {responses.map(response => {\n return ;\n })}\n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { Link, UnderlinedHeader } from '../../common-elements/';\nimport { SecurityRequirementModel } from '../../services/models/SecurityRequirement';\nimport { linksCss } from '../Markdown/styled.elements';\nconst ScopeName = styled.code`\n font-size: ${props => props.theme.typography.code.fontSize};\n font-family: ${props => props.theme.typography.code.fontFamily};\n border: 1px solid ${({\n theme\n}) => theme.colors.border.dark};\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n`;\nconst SecurityRequirementAndWrap = styled.span`\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nconst SecurityRequirementOrWrap = styled.span`\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nexport interface SecurityRequirementProps {\n security: SecurityRequirementModel;\n}\nexport class SecurityRequirement extends React.PureComponent {\n render() {\n const security = this.props.security;\n return \n {security.schemes.map(scheme => {\n return \n {scheme.id}\n {scheme.scopes.length > 0 && ' ('}\n {scheme.scopes.map(scope => {scope})}\n {scheme.scopes.length > 0 && ') '}\n ;\n })}\n ;\n }\n\n}\nconst AuthHeaderColumn = styled.div`\n flex: 1;\n`;\nconst SecuritiesColumn = styled.div`\n width: ${props => props.theme.schema.defaultDetailsWidth};\n`;\nconst AuthHeader = styled(UnderlinedHeader)`\n display: inline-block;\n margin: 0;\n`;\nconst Wrap = styled.div`\n width: 100%;\n display: flex;\n margin: 1em 0;\n`;\nexport interface SecurityRequirementsProps {\n securities: SecurityRequirementModel[];\n}\nexport class SecurityRequirements extends React.PureComponent {\n render() {\n const securities = this.props.securities;\n\n if (!securities.length) {\n return null;\n }\n\n return \n \n Authorizations: \n \n \n {securities.map((security, idx) => )}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Parameters } from '../Parameters/Parameters';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nimport { CallbackDetailsWrap } from './styled.elements';\nexport interface CallbackDetailsProps {\n operation: OperationModel;\n}\n@observer\nexport class CallbackDetails extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n description,\n externalDocs\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n \n \n \n \n \n ;\n }\n\n}\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 3}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { StyledCallbackTitle } from './styled.elements';\nimport { CallbackDetails } from './CallbackDetails';\n@observer\nexport class CallbackOperation extends React.Component<{\n callbackOperation: OperationModel;\n}> {\n toggle = () => {\n this.props.callbackOperation.toggle();\n };\n\n render() {\n const {\n name,\n expanded,\n httpVerb,\n deprecated\n } = this.props.callbackOperation;\n return <>\n \n {expanded && }\n ;\n }\n\n}","import * as React from 'react';\nimport { CallbackModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { CallbackOperation } from './CallbackOperation';\nexport interface CallbacksListProps {\n callbacks: CallbackModel[];\n}\nexport class CallbacksList extends React.PureComponent {\n render() {\n const {\n callbacks\n } = this.props;\n\n if (!callbacks || callbacks.length === 0) {\n return null;\n }\n\n return
\n Callbacks \n {callbacks.map(callback => {\n return callback.operations.map((operation, index) => {\n return ;\n });\n })}\n
;\n }\n\n}\nconst CallbacksHeader = styled.h3`\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ${({\n theme\n}) => theme.colors.text.primary};\n font-weight: normal;\n`;","export * from './CallbackOperation';\nexport * from './CallbackTitle';\nexport * from './CallbacksList';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps, DropdownOption } from '../../common-elements/dropdown';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface GenericChildrenSwitcherProps {\n items?: T[];\n options: DropdownOption[];\n label?: string;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeItem: T) => JSX.Element;\n}\nexport interface GenericChildrenSwitcherState {\n activeItemIdx: number;\n}\n/**\n * TODO: Refactor this component:\n * Implement rendering dropdown/label directly in this component\n * Accept as a parameter mapper-function for building dropdown option labels\n */\n\n@observer\nexport class GenericChildrenSwitcher extends React.Component, GenericChildrenSwitcherState> {\n constructor(props) {\n super(props);\n this.state = {\n activeItemIdx: 0\n };\n }\n\n switchItem = ({\n idx\n }) => {\n if (this.props.items) {\n this.setState({\n activeItemIdx: idx\n });\n }\n };\n\n render() {\n const {\n items\n } = this.props;\n\n if (!items || !items.length) {\n return null;\n }\n\n const Wrapper = ({\n children\n }) => this.props.label ? \n {this.props.label}\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: this.props.options[this.state.activeItemIdx].value,\n options: this.props.options,\n onChange: this.switchItem,\n ariaLabel: this.props.label || 'Callback'\n })}\n \n\n {this.props.children(items[this.state.activeItemIdx])}\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MediaTypeSamples } from './MediaTypeSamples';\nimport { MediaContentModel } from '../../services/models';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { InvertedSimpleDropdown, MimeLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n content: MediaContentModel;\n}\n@observer\nexport class PayloadSamples extends React.Component {\n render() {\n const mimeContent = this.props.content;\n\n if (mimeContent === undefined) {\n return null;\n }\n\n return \n {mediaType => }\n ;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { OperationModel } from '../../services/models';\nimport { XPayloadSample } from '../../services/models/Operation';\nimport { isPayloadSample } from '../../services';\nexport interface PayloadSampleProps {\n callback: OperationModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\nexport class CallbackPayloadSample extends React.Component {\n render() {\n const payloadSample = (this.props.callback.codeSamples.find(sample => isPayloadSample(sample)) as XPayloadSample | undefined);\n\n if (!payloadSample) {\n return null;\n }\n\n return \n \n ;\n }\n\n}\nexport const PayloadSampleWrapper = styled.div`\n margin-top: 15px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { RightPanelHeader } from '../../common-elements';\nimport { RedocNormalizedOptions } from '../../services';\nimport { CallbackModel } from '../../services/models';\nimport { OptionsContext } from '../OptionsProvider';\nimport { GenericChildrenSwitcher } from '../GenericChildrenSwitcher/GenericChildrenSwitcher';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { InvertedSimpleDropdown, MimeLabel } from '../PayloadSamples/styled.elements';\nimport { CallbackPayloadSample } from './CallbackReqSamples';\nexport interface CallbackSamplesProps {\n callbacks: CallbackModel[];\n}\n@observer\nexport class CallbackSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n private renderDropdown = props => {\n return ;\n };\n\n render() {\n const {\n callbacks\n } = this.props;\n\n if (!callbacks || callbacks.length === 0) {\n return null;\n }\n\n const operations = callbacks.map(callback => callback.operations.map(operation => operation)).reduce((a, b) => a.concat(b), []);\n const hasSamples = operations.some(operation => operation.codeSamples.length > 0);\n\n if (!hasSamples) {\n return null;\n }\n\n const dropdownOptions = operations.map((callback, idx) => {\n return {\n value: `${callback.httpVerb.toUpperCase()}: ${callback.name}`,\n idx\n };\n });\n return
\n Callback payload samples \n\n \n \n {callback => }\n \n \n
;\n }\n\n}\nexport const SamplesWrapper = styled.div`\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n padding: ${props => props.theme.spacing.unit * 4}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { isPayloadSample, OperationModel, RedocNormalizedOptions } from '../../services';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface RequestSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class RequestSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const samples = operation.codeSamples;\n const hasSamples = samples.length > 0;\n const hideTabList = samples.length === 1 ? this.context.hideSingleRequestSampleTab : false;\n return hasSamples &&
\n Request samples \n\n \n \n {samples.map(sample => \n {isPayloadSample(sample) ?
\n \n
: }\n
)}\n
\n
|| null;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nexport interface ResponseSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class ResponseSamples extends React.Component {\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const responses = operation.responses.filter(response => {\n return response.content && response.content.hasSample;\n });\n return responses.length > 0 &&
\n Response samples \n\n \n \n {responses.map(response => \n {response.code}\n )}\n \n {responses.map(response => \n
\n \n
\n
)}\n
\n
|| null;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { Badge, DarkRightPanel, H2, MiddlePanel, Row } from '../../common-elements';\nimport { ShareLink } from '../../common-elements/linkify';\nimport { OperationModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { CallbacksList } from '../Callbacks';\nimport { CallbackSamples } from '../CallbackSamples/CallbackSamples';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { Parameters } from '../Parameters/Parameters';\nimport { RequestSamples } from '../RequestSamples/RequestSamples';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { ResponseSamples } from '../ResponseSamples/ResponseSamples';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nconst OperationRow = styled(Row)`\n backface-visibility: hidden;\n contain: content;\n overflow: hidden;\n`;\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 6}px;\n`;\nexport interface OperationProps {\n operation: OperationModel;\n}\n@observer\nexport class Operation extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n name: summary,\n description,\n deprecated,\n externalDocs,\n isWebhook\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {options => \n \n

\n \n {summary} {deprecated && Deprecated }\n {isWebhook && Webhook }\n

\n {options.pathInMiddlePanel && !isWebhook && }\n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n \n \n \n \n \n
\n \n {!options.pathInMiddlePanel && !isWebhook && }\n \n \n \n \n
}\n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { AdvancedMarkdown } from '../Markdown/AdvancedMarkdown';\nimport { H1, H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { ContentItemModel } from '../../services/MenuBuilder';\nimport { GroupModel, OperationModel } from '../../services/models';\nimport { Operation } from '../Operation/Operation';\n@observer\nexport class ContentItems extends React.Component<{\n items: ContentItemModel[];\n}> {\n render() {\n const items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n return items.filter(item => item.type !== 'extra').map(item => {\n return ;\n });\n }\n\n}\nexport interface ContentItemProps {\n item: ContentItemModel;\n}\n@observer\nexport class ContentItem extends React.Component {\n render() {\n const item = this.props.item;\n let content;\n const {\n type\n } = item;\n\n switch (type) {\n case 'group':\n content = null;\n break;\n\n case 'tag':\n case 'section':\n content = ;\n break;\n\n case 'operation':\n content = ;\n break;\n\n default:\n content = ;\n }\n\n return <>\n {content &&
\n {content}\n
}\n {item.items && }\n ;\n }\n\n}\n\nconst middlePanelWrap = component => {component};\n\n@observer\nexport class SectionItem extends React.Component {\n render() {\n const {\n name,\n description,\n externalDocs,\n level\n } = (this.props.item as GroupModel);\n const Header = level === 2 ? H2 : H1;\n return <>\n \n \n
\n \n {name}\n
\n
\n
\n \n {externalDocs && \n \n \n \n }\n ;\n }\n\n}\n@observer\nexport class OperationItem extends React.Component<{\n item: OperationModel;\n}> {\n render() {\n return ;\n }\n\n}","// import { observe } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ShelfIcon } from '../../common-elements/shelfs';\nimport { IMenuItem, OperationModel } from '../../services';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport { MenuItems } from './MenuItems';\nimport { MenuItemLabel, MenuItemLi, MenuItemTitle, OperationBadge } from './styled.elements';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface MenuItemProps {\n item: IMenuItem;\n onActivate?: (item: IMenuItem) => void;\n withoutChildren?: boolean;\n}\n@observer\nexport class MenuItem extends React.Component {\n static contextType = OptionsContext;\n ref = React.createRef();\n activate = (evt: React.MouseEvent) => {\n this.props.onActivate!(this.props.item);\n evt.stopPropagation();\n };\n\n componentDidMount() {\n this.scrollIntoViewIfActive();\n }\n\n componentDidUpdate() {\n this.scrollIntoViewIfActive();\n }\n\n scrollIntoViewIfActive() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item,\n withoutChildren\n } = this.props;\n const hideShelfIcon = this.context.hideShelfIcon;\n return \n {item.type === 'operation' ? : \n \n {item.name}\n {this.props.children}\n \n {!hideShelfIcon && item.depth > 0 && item.items.length > 0 && || null}\n }\n {!withoutChildren && item.items && item.items.length > 0 && }\n ;\n }\n\n}\nexport interface OperationMenuItemContentProps {\n item: OperationModel;\n}\n@observer\nexport class OperationMenuItemContent extends React.Component {\n static contextType = OptionsContext;\n ref = React.createRef();\n\n componentDidUpdate() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item\n } = this.props;\n const hideHttpVerbsMenu = this.context.hideHttpVerbs;\n return \n {item.isWebhook ? {l('webhook')} : !hideHttpVerbsMenu && {shortenHTTPVerb(item.httpVerb)}}\n \n {item.name}\n {this.props.children}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem } from '../../services';\nimport { ExtraContent } from '../../services/models/ExtraContent';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemUl } from './styled.elements';\nexport interface MenuItemsProps {\n items: IMenuItem[];\n expanded?: boolean;\n onActivate?: (item: IMenuItem) => void;\n style?: React.CSSProperties;\n root?: boolean;\n extra?: any;\n className?: string;\n}\n@observer\nexport class MenuItems extends React.Component {\n render() {\n const {\n items,\n root,\n className,\n extra\n } = this.props;\n const expanded = this.props.expanded == null ? true : this.props.expanded;\n return \n {extra && extra.map((headline, ids) => )}\n {items.map((item, idx) => )}\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem, MenuStore } from '../../services/MenuStore';\nimport { OptionsContext } from '../OptionsProvider';\nimport { MenuItems } from './MenuItems';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { RedocAttribution } from './styled.elements';\n@observer\nexport class SideMenu extends React.Component<{\n menu: MenuStore;\n className?: string;\n extra?: any;\n}> {\n static contextType = OptionsContext;\n private _updateScroll?: () => void;\n\n render() {\n const store = this.props.menu;\n return \n \n \n \n Documentation Powered by ReDoc\n \n \n ;\n }\n\n activate = (item: IMenuItem) => {\n if (item && item.active && this.context.menuToggle) {\n return item.expanded ? item.collapse() : item.expand();\n }\n\n this.props.menu.activateAndScroll(item, true);\n setTimeout(() => {\n if (this._updateScroll) {\n this._updateScroll();\n }\n });\n };\n private saveScrollUpdate = upd => {\n this._updateScroll = upd;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const AnimatedChevronButton = ({\n open\n}: {\n open: boolean;\n}) => {\n const iconOffset = open ? 8 : -4;\n return \n \n \n ;\n}; // adapted from reactjs.org\n\nconst ChevronSvg = ({\n size = 10,\n className = '',\n style\n}) => \n \n \n \n ;\n\nconst ChevronContainer = styled.div`\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ${props => props.theme.colors.primary.main};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MenuStore } from '../../services/MenuStore';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../../services/RedocNormalizedOptions';\nimport styled, { media } from '../../styled-components';\nimport { IS_BROWSER } from '../../utils/index';\nimport { OptionsContext } from '../OptionsProvider';\nimport { AnimatedChevronButton } from './ChevronSvg';\nlet Stickyfill;\n\nif (IS_BROWSER) {\n Stickyfill = require('stickyfill');\n}\n\nexport interface StickySidebarProps {\n className?: string;\n scrollYOffset?: RedocRawOptions['scrollYOffset']; // passed directly or via context\n\n menu: MenuStore;\n}\nexport interface StickySidebarState {\n offsetTop?: string;\n}\nconst stickyfill = Stickyfill && Stickyfill();\nconst StyledStickySidebar = styled.div<{\n open?: boolean;\n}>`\n width: ${props => props.theme.sidebar.width};\n background-color: ${props => props.theme.sidebar.backgroundColor};\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ${media.lessThan('small')`\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ${({\n theme\n}) => theme.sidebar.backgroundColor};\n display: ${props => props.open ? 'flex' : 'none'};\n `};\n\n @media print {\n display: none;\n }\n`;\nconst FloatingButton = styled.div`\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ${props => props.theme.colors.primary.main};\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ${media.lessThan('small')`\n display: flex;\n `};\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n`;\n@observer\nexport class StickyResponsiveSidebar extends React.Component {\n static contextType = OptionsContext;\n context!: React.ContextType;\n state: StickySidebarState = {\n offsetTop: '0px'\n };\n stickyElement: Element;\n\n componentDidMount() {\n if (stickyfill) {\n stickyfill.add(this.stickyElement);\n } // rerender when hydrating from SSR\n // see https://github.com/facebook/react/issues/8017#issuecomment-256351955\n\n\n this.setState({\n offsetTop: this.getScrollYOffset(this.context)\n });\n }\n\n componentWillUnmount() {\n if (stickyfill) {\n stickyfill.remove(this.stickyElement);\n }\n }\n\n getScrollYOffset(options: RedocNormalizedOptions) {\n let top;\n\n if (this.props.scrollYOffset !== undefined) {\n top = RedocNormalizedOptions.normalizeScrollYOffset(this.props.scrollYOffset)();\n } else {\n top = options.scrollYOffset();\n }\n\n return top + 'px';\n }\n\n render() {\n const open = this.props.menu.sideBarOpened;\n const top = this.state.offsetTop;\n return <>\n {\n this.stickyElement = (el as any);\n }}>\n {this.props.children}\n \n \n \n \n ;\n }\n\n private toggleNavMenu = () => {\n this.props.menu.toggleSidebar();\n };\n}","import styled, { media } from '../../styled-components';\nexport const RedocWrap = styled.div`\n ${({\n theme\n}) => `\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize};\n font-weight: ${theme.typography.fontWeightRegular};\n line-height: ${theme.typography.lineHeight};\n color: ${theme.colors.text.primary};\n display: flex;\n position: relative;\n text-align: left;\n\n -webkit-font-smoothing: ${theme.typography.smoothing};\n font-smoothing: ${theme.typography.smoothing};\n ${theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important' || ''};\n\n tap-highlight-color: rgba(0, 0, 0, 0);\n text-size-adjust: 100%;\n\n * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n }\n`};\n`;\nexport const ApiContentWrap = styled.div`\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ${props => props.theme.sidebar.width});\n ${media.lessThan('small', true)`\n width: 100%;\n `};\n\n contain: layout;\n`;\nexport const BackgroundStub = styled.div`\n background: ${({\n theme\n}) => theme.rightPanel.backgroundColor};\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ${({\n theme\n}) => {\n if (theme.rightPanel.width.endsWith('%')) {\n const percents = parseInt(theme.rightPanel.width, 10);\n return `calc((100% - ${theme.sidebar.width}) * ${percents / 100})`;\n } else {\n return theme.rightPanel.width;\n }\n}};\n ${media.lessThan('medium', true)`\n display: none;\n `};\n`;","import * as React from 'react';\nimport { darken, getLuminance, lighten } from 'polished';\nimport styled from '../../styled-components';\nimport { MenuItemLabel } from '../SideMenu/styled.elements';\nexport const SearchWrap = styled.div`\n padding: 5px 0;\n`;\nexport const SearchInput = styled.input.attrs(() => ({\n className: 'search-input'\n}))`\n width: calc(100% - ${props => props.theme.spacing.unit * 8}px);\n box-sizing: border-box;\n margin: 0 ${props => props.theme.spacing.unit * 4}px;\n padding: 5px ${props => props.theme.spacing.unit * 2}px 5px\n ${props => props.theme.spacing.unit * 4}px;\n border: 0;\n border-bottom: 1px solid\n ${({\n theme\n}) => (getLuminance(theme.sidebar.backgroundColor) > 0.5 ? darken : lighten)(0.1, theme.sidebar.backgroundColor)};\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-weight: bold;\n font-size: 13px;\n color: ${props => props.theme.sidebar.textColor};\n background-color: transparent;\n outline: none;\n`;\nexport const SearchIcon = styled((props: {\n className?: string;\n}) => \n \n ).attrs({\n className: 'search-icon'\n})`\n position: absolute;\n left: ${props => props.theme.spacing.unit * 4}px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ${props => props.theme.sidebar.textColor};\n }\n`;\nexport const SearchResultsBox = styled.div`\n padding: ${props => props.theme.spacing.unit}px 0;\n background-color: ${({\n theme\n}) => darken(0.05, theme.sidebar.backgroundColor)}};\n color: ${props => props.theme.sidebar.textColor};\n min-height: 150px;\n max-height: 250px;\n border-top: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)}};\n border-bottom: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)}};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ${MenuItemLabel} {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)};\n }\n\n > svg {\n display: none;\n }\n }\n`;\nexport const ClearIcon = styled.i`\n position: absolute;\n display: inline-block;\n width: ${props => props.theme.spacing.unit * 2}px;\n text-align: center;\n right: ${props => props.theme.spacing.unit * 4}px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n`;","import * as React from 'react';\nimport { IMenuItem } from '../../services/MenuStore';\nimport { SearchStore } from '../../services/SearchStore';\nimport { MenuItem } from '../SideMenu/MenuItem';\nimport { MarkerService } from '../../services/MarkerService';\nimport { SearchResult } from '../../services/SearchWorker.worker';\nimport { bind, debounce } from 'decko';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { ClearIcon, SearchIcon, SearchInput, SearchResultsBox, SearchWrap } from './styled.elements';\nexport interface SearchBoxProps {\n search: SearchStore;\n marker: MarkerService;\n getItemById: (id: string) => IMenuItem | undefined;\n onActivate: (item: IMenuItem) => void;\n className?: string;\n}\nexport interface SearchBoxState {\n results: SearchResult[];\n term: string;\n activeItemIdx: number;\n}\nexport class SearchBox extends React.PureComponent {\n activeItemRef: MenuItem | null = null;\n\n constructor(props) {\n super(props);\n this.state = {\n results: [],\n term: '',\n activeItemIdx: -1\n };\n }\n\n clearResults(term: string) {\n this.setState({\n results: [],\n term\n });\n this.props.marker.unmark();\n }\n\n clear = () => {\n this.setState({\n results: [],\n term: '',\n activeItemIdx: -1\n });\n this.props.marker.unmark();\n };\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 27) {\n // ESQ\n this.clear();\n }\n\n if (event.keyCode === 40) {\n // Arrow down\n this.setState({\n activeItemIdx: Math.min(this.state.activeItemIdx + 1, this.state.results.length - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 38) {\n // Arrow up\n this.setState({\n activeItemIdx: Math.max(0, this.state.activeItemIdx - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 13) {\n // enter\n const activeResult = this.state.results[this.state.activeItemIdx];\n\n if (activeResult) {\n const item = this.props.getItemById(activeResult.meta);\n\n if (item) {\n this.props.onActivate(item);\n }\n }\n }\n };\n\n setResults(results: SearchResult[], term: string) {\n this.setState({\n results\n });\n this.props.marker.mark(term);\n }\n\n @bind\n @debounce(400)\n searchCallback(searchTerm: string) {\n this.props.search.search(searchTerm).then(res => {\n this.setResults(res, searchTerm);\n });\n }\n\n search = (event: React.ChangeEvent) => {\n const q = event.target.value;\n\n if (q.length < 3) {\n this.clearResults(q);\n return;\n }\n\n this.setState({\n term: q\n }, () => this.searchCallback(this.state.term));\n };\n\n render() {\n const {\n activeItemIdx\n } = this.state;\n const results = this.state.results.map(res => ({\n item: this.props.getItemById(res.meta)!,\n score: res.score\n }));\n results.sort((a, b) => b.score - a.score);\n return \n {this.state.term && ×}\n \n \n {results.length > 0 && \n \n {results.map((res, idx) => )}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport Highlight, { defaultProps, Language } from 'prism-react-renderer';\nimport styled from '../../../styled-components';\ntype Props = {\n className: string;\n style: any;\n componentId?: string;\n};\nconst OverflowHighlighter = styled.pre`\n overflow-x: scroll;\n`;\n\nconst Highlighter: React.FC = ({\n children,\n className\n}) => {\n console.log('className', className);\n const language = className ? className.replace(/language-/, '').trim() : 'bash';\n\n if (!children) {\n return null;\n }\n\n return \n {({\n className,\n style,\n tokens,\n getLineProps,\n getTokenProps\n }) => \n {tokens.map((line, i) =>
\n {line.map((token, key) => )}\n
)}\n
}\n
;\n};\n\nexport default Highlighter;","import * as React from 'react';\nimport { DarkRightPanel, H1, H2, MiddlePanel, PropertiesTable, Row, Section, ShareLink } from '../common-elements';\nimport Highlighter from './code/Highlighter';\n\nconst H1Comp = ({\n children,\n ...props\n}) => {\n return

\n \n {children}\n

;\n};\n\nconst H2Comp = ({\n children,\n ...props\n}) =>

\n \n {children}\n

;\n\nconst Wrapper = ({\n children\n}) => {\n const getSections = children => {\n let currentSection: any[] = [];\n let currentId: number | null = null;\n let currentCodeBlocks: any[] = [];\n const result: any[] = [];\n children.forEach(child => {\n const type = child.props.mdxType;\n\n if (['h1', 'h2', 'h3', 'h4', 'h5'].includes(type)) {\n if (currentSection.length > 0) {\n result.push({\n id: currentId,\n middle: currentSection,\n right: currentCodeBlocks\n });\n }\n\n currentId = child.props.id;\n currentSection = [];\n currentCodeBlocks = [];\n }\n\n if (['code', 'pre', 'blockquote'].includes(type)) {\n currentCodeBlocks.push(child);\n } else {\n currentSection.push(child);\n }\n });\n\n if (currentSection.length > 0) {\n result.push({\n id: currentId,\n middle: currentSection,\n right: currentCodeBlocks\n });\n }\n\n return result;\n };\n\n const sections = getSections(children);\n console.log('sections', sections);\n return <>\n {sections.map(section =>
\n \n {section.middle && {section.middle}}\n {section.right && {section.right}}\n \n
)}\n ;\n};\n\nexport default {\n code: Highlighter,\n h1: H1Comp,\n h2: H2Comp,\n table: PropertiesTable,\n wrapper: Wrapper\n};","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { MDXProvider } from '@mdx-js/react';\nimport { ThemeProvider } from '../../styled-components';\nimport { OptionsProvider } from '../OptionsProvider';\nimport { AppStore } from '../../services';\nimport { ApiInfo } from '../ApiInfo/';\nimport { ApiLogo } from '../ApiLogo/ApiLogo';\nimport { ContentItems } from '../ContentItems/ContentItems';\nimport { SideMenu } from '../SideMenu/SideMenu';\nimport { StickyResponsiveSidebar } from '../StickySidebar/StickyResponsiveSidebar';\nimport { ApiContentWrap, BackgroundStub, RedocWrap } from './styled.elements';\nimport { SearchBox } from '../SearchBox/SearchBox';\nimport { StoreProvider } from '../StoreBuilder';\nimport components from '../../markdown/components';\nexport interface RedocProps {\n store: AppStore;\n}\nexport class Redoc extends React.Component {\n static propTypes = {\n store: PropTypes.instanceOf(AppStore).isRequired\n };\n\n componentDidMount() {\n this.props.store.onDidMount();\n }\n\n componentWillUnmount() {\n this.props.store.dispose();\n }\n\n render() {\n const {\n store: {\n spec,\n menu,\n options,\n search,\n marker,\n markdownIndex\n }\n } = this.props;\n const store = this.props.store;\n console.log('components', components);\n return \n \n \n \n \n \n \n {!options.disableSearch && || null}\n \n \n \n \n {markdownIndex && markdownIndex.components.map((MDXComponent, idx) => {\n return ;\n })}\n \n \n \n \n \n \n \n ;\n }\n\n}","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { Loading } from './Loading/Loading';\nimport { Redoc } from './Redoc/Redoc';\nimport { StoreBuilder } from './StoreBuilder';\nimport { MarkdownIndex } from '../markdown';\nexport interface RedocStandaloneProps {\n spec?: object;\n specUrl?: string;\n options?: RedocRawOptions;\n markdownIndex?: MarkdownIndex;\n onLoaded?: (e?: Error) => any;\n}\nexport class RedocStandalone extends React.PureComponent {\n static propTypes = {\n spec: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n specUrl: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n options: PropTypes.any,\n onLoaded: PropTypes.any\n };\n\n render() {\n const {\n spec,\n specUrl,\n options = {},\n onLoaded\n } = this.props;\n const hideLoading = options.hideLoading !== undefined;\n const normalizedOpts = new RedocNormalizedOptions(options);\n return \n \n {({\n loading,\n store\n }) => !loading ? : hideLoading ? null : }\n \n ;\n }\n\n}","export * from './JsonViewer';","export * from './MenuItem';\nexport * from './MenuItems';\nexport * from './SideMenu';\nexport * from './styled.elements';","export * from './RedocStandalone';\nexport * from './Redoc/Redoc';\nexport * from './ApiInfo/ApiInfo';\nexport * from './ApiLogo/ApiLogo';\nexport * from './ContentItems/ContentItems';\nexport { ApiContentWrap, BackgroundStub, RedocWrap } from './Redoc/styled.elements';\nexport * from './Schema/';\nexport * from './SearchBox/SearchBox';\nexport * from './Operation/Operation';\nexport * from './Loading/Loading';\nexport * from './JsonViewer';\nexport * from './Markdown/Markdown';\nexport { StyledMarkdownBlock } from './Markdown/styled.elements';\nexport * from './SecuritySchemes/SecuritySchemes';\nexport * from './Responses/Response';\nexport * from './Responses/ResponseDetails';\nexport * from './Responses/ResponseHeaders';\nexport * from './Responses/ResponsesList';\nexport * from './Responses/ResponseTitle';\nexport * from './ResponseSamples/ResponseSamples';\nexport * from './PayloadSamples/PayloadSamples';\nexport * from './MediaTypeSwitch/MediaTypesSwitch';\nexport * from './Parameters/Parameters';\nexport * from './PayloadSamples/Example';\nexport * from './ErrorBoundary';\nexport * from './StoreBuilder';\nexport * from './OptionsProvider';\nexport * from './SideMenu/';\nexport * from './StickySidebar/StickyResponsiveSidebar';\nexport * from './SearchBox/SearchBox';\nexport * from './SchemaDefinition/SchemaDefinition';\nexport * from './SourceCode/SourceCode';","const TocPlugin = require('./plugins/export-toc');\n\ntype Header = {\n depth: number;\n id: number;\n text: string;\n};\nexport type MarkdownDocument = {\n component: (props: any) => JSX.Element;\n headings: Header[];\n};\nexport type MarkdownIndex = {\n components: ((props: any) => JSX.Element)[];\n headings: Header[];\n};\nexport const loadMarkdownIndexFromComponents = mdxComponents => {\n const components = mdxComponents.map(sect => sect.default);\n const headings = mdxComponents.reduce((acc, section) => [...acc, ...section.headings], []);\n return {\n components,\n headings\n };\n};\nexport default {\n remarkPlugins: [TocPlugin]\n};","export * from './components';\nexport { MiddlePanel, Row, RightPanel, Section, Flex } from './common-elements/';\nexport { OpenAPIEncoding } from './types';\nexport * from './services';\nexport * from './utils';\nexport * from './styled-components';\nexport { default as styled } from './styled-components';\nexport * from './markdown';"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://Redoc/webpack/universalModuleDefinition","webpack://Redoc/webpack/bootstrap","webpack://Redoc/external \"react\"","webpack://Redoc/external \"tslib\"","webpack://Redoc/external \"polished\"","webpack://Redoc/external \"mobx-react\"","webpack://Redoc/external \"mobx\"","webpack://Redoc/external \"url\"","webpack://Redoc/external \"json-pointer\"","webpack://Redoc/external \"lunr\"","webpack://Redoc/external \"decko\"","webpack://Redoc/external \"react-tabs\"","webpack://Redoc/external \"prismjs\"","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/external \"prop-types\"","webpack://Redoc/external \"marked\"","webpack://Redoc/./node_modules/process/browser.js","webpack://Redoc/external \"undefined\"","webpack://Redoc/./node_modules/reftools/lib/jptr.js","webpack://Redoc/./node_modules/reftools/lib/clone.js","webpack://Redoc/./node_modules/path-browserify/index.js","webpack://Redoc/external \"eventemitter3\"","webpack://Redoc/external \"url-template\"","webpack://Redoc/./node_modules/reftools/lib/isref.js","webpack://Redoc/./node_modules/reftools/lib/recurse.js","webpack://Redoc/external \"mark.js\"","webpack://Redoc/external \"openapi-sampler\"","webpack://Redoc/external \"perfect-scrollbar\"","webpack://Redoc/external \"prism-react-renderer\"","webpack://Redoc/./node_modules/oas-kit-common/index.js","webpack://Redoc/./node_modules/buffer/index.js","webpack://Redoc/./node_modules/stream-http/lib/capability.js","webpack://Redoc/external \"inherits\"","webpack://Redoc/./node_modules/stream-http/lib/response.js","webpack://Redoc/external \"readable-stream\"","webpack://Redoc/./src/services/SearchWorker.worker.ts","webpack://Redoc/external \"slugify\"","webpack://Redoc/external \"styled-components\"","webpack://Redoc/external \"@mdx-js/react\"","webpack://Redoc/external \"json-schema-ref-parser\"","webpack://Redoc/./node_modules/swagger2openapi/index.js","webpack://Redoc/./node_modules/memoize-one/dist/memoize-one.cjs.js","webpack://Redoc/external \"react-dropdown-aria\"","webpack://Redoc/external \"dompurify\"","webpack://Redoc/external \"classnames\"","webpack://Redoc/external \"call-me-maybe\"","webpack://Redoc/./node_modules/oas-resolver/index.js","webpack://Redoc/./node_modules/reftools/lib/dereference.js","webpack://Redoc/external \"fast-safe-stringify\"","webpack://Redoc/./node_modules/oas-schema-walker/index.js","webpack://Redoc/./node_modules/swagger2openapi/lib/statusCodes.js","webpack://Redoc/./node_modules/stream-http/index.js","webpack://Redoc/./node_modules/stream-http/lib/request.js","webpack://Redoc/external \"base64-js\"","webpack://Redoc/external \"ieee754\"","webpack://Redoc/external \"isarray\"","webpack://Redoc/external \"to-arraybuffer\"","webpack://Redoc/external \"xtend\"","webpack://Redoc/external \"builtin-status-codes\"","webpack://Redoc/external \"prismjs/components/prism-bash.js\"","webpack://Redoc/external \"prismjs/components/prism-c.js\"","webpack://Redoc/external \"prismjs/components/prism-clike.js\"","webpack://Redoc/external \"prismjs/components/prism-coffeescript.js\"","webpack://Redoc/external \"prismjs/components/prism-cpp.js\"","webpack://Redoc/external \"prismjs/components/prism-csharp.js\"","webpack://Redoc/external \"prismjs/components/prism-go.js\"","webpack://Redoc/external \"prismjs/components/prism-http.js\"","webpack://Redoc/external \"prismjs/components/prism-java.js\"","webpack://Redoc/external \"prismjs/components/prism-lua.js\"","webpack://Redoc/external \"prismjs/components/prism-markup-templating.js\"","webpack://Redoc/external \"prismjs/components/prism-markup.js\"","webpack://Redoc/external \"prismjs/components/prism-objectivec.js\"","webpack://Redoc/external \"prismjs/components/prism-perl.js\"","webpack://Redoc/external \"prismjs/components/prism-php.js\"","webpack://Redoc/external \"prismjs/components/prism-python.js\"","webpack://Redoc/external \"prismjs/components/prism-ruby.js\"","webpack://Redoc/external \"prismjs/components/prism-scala.js\"","webpack://Redoc/external \"prismjs/components/prism-sql.js\"","webpack://Redoc/external \"prismjs/components/prism-swift.js\"","webpack://Redoc/./src/services/SearchWorker.worker.ts?cf07","webpack://Redoc/./node_modules/workerize-loader/src/rpc-wrapper.js","webpack://Redoc/external \"core-js/es/promise\"","webpack://Redoc/external \"stickyfill\"","webpack://Redoc/./src/markdown/plugins/export-toc.ts","webpack://Redoc/external \"unist-util-visit\"","webpack://Redoc/./src/theme.ts","webpack://Redoc/./src/utils/dom.ts","webpack://Redoc/./src/utils/helpers.ts","webpack://Redoc/./src/services/Labels.ts","webpack://Redoc/./src/services/RedocNormalizedOptions.ts","webpack://Redoc/./src/styled-components.ts","webpack://Redoc/./src/components/ErrorBoundary.tsx","webpack://Redoc/./src/components/Loading/Spinner.svg.tsx","webpack://Redoc/./src/components/Loading/Loading.tsx","webpack://Redoc/./src/components/OptionsProvider.ts","webpack://Redoc/./src/utils/loadAndBundleSpec.ts","webpack://Redoc/./src/utils/JsonPointer.ts","webpack://Redoc/./src/utils/openapi.ts","webpack://Redoc/./src/utils/highlight.ts","webpack://Redoc/./src/utils/decorators.ts","webpack://Redoc/./src/utils/debug.ts","webpack://Redoc/./src/utils/memoize.ts","webpack://Redoc/./src/utils/index.ts","webpack://Redoc/./src/services/HistoryService.ts","webpack://Redoc/./src/services/MarkerService.ts","webpack://Redoc/./src/services/MarkdownRenderer.ts","webpack://Redoc/./src/services/models/ApiInfo.ts","webpack://Redoc/./src/services/models/SecurityRequirement.ts","webpack://Redoc/./src/services/models/Callback.ts","webpack://Redoc/./src/services/models/Schema.ts","webpack://Redoc/./src/services/models/Field.ts","webpack://Redoc/./src/services/models/Example.ts","webpack://Redoc/./src/services/models/MediaType.ts","webpack://Redoc/./src/services/models/MediaContent.ts","webpack://Redoc/./src/services/models/RequestBody.ts","webpack://Redoc/./src/services/models/Response.ts","webpack://Redoc/./src/services/models/Operation.ts","webpack://Redoc/./src/services/models/Webhook.ts","webpack://Redoc/./src/services/models/SecuritySchemes.ts","webpack://Redoc/./src/services/OpenAPIParser.ts","webpack://Redoc/./src/services/SpecStore.ts","webpack://Redoc/./src/services/models/ExtraContent.ts","webpack://Redoc/./src/services/models/Group.model.ts","webpack://Redoc/./src/services/models/index.ts","webpack://Redoc/./src/services/MenuBuilder.ts","webpack://Redoc/./src/services/MenuStore.ts","webpack://Redoc/./src/services/ScrollService.ts","webpack://Redoc/./src/services/SearchStore.ts","webpack://Redoc/./src/common-elements/panels.ts","webpack://Redoc/./src/common-elements/headers.ts","webpack://Redoc/./src/components/StoreBuilder.ts","webpack://Redoc/./src/common-elements/linkify.tsx","webpack://Redoc/./src/common-elements/shelfs.tsx","webpack://Redoc/./src/common-elements/mixins.ts","webpack://Redoc/./src/common-elements/fields-layout.ts","webpack://Redoc/./src/common-elements/schema.ts","webpack://Redoc/./src/common-elements/dropdown.ts","webpack://Redoc/./src/common-elements/tabs.ts","webpack://Redoc/./src/common-elements/PrismDiv.tsx","webpack://Redoc/./src/common-elements/samples.tsx","webpack://Redoc/./src/common-elements/perfect-scrollbar.tsx","webpack://Redoc/./src/common-elements/flex.ts","webpack://Redoc/./src/common-elements/index.ts","webpack://Redoc/./src/components/DropdownOrLabel/DropdownOrLabel.tsx","webpack://Redoc/./src/components/Markdown/styled.elements.tsx","webpack://Redoc/./src/components/Markdown/SanitizedMdBlock.tsx","webpack://Redoc/./src/components/Markdown/Markdown.tsx","webpack://Redoc/./src/common-elements/Tooltip.tsx","webpack://Redoc/./src/services/ClipboardService.ts","webpack://Redoc/./src/common-elements/CopyButtonWrapper.tsx","webpack://Redoc/./src/utils/jsonToHtml.ts","webpack://Redoc/./src/components/JsonViewer/style.ts","webpack://Redoc/./src/components/JsonViewer/JsonViewer.tsx","webpack://Redoc/./src/components/SourceCode/SourceCode.tsx","webpack://Redoc/./src/components/PayloadSamples/ExampleValue.tsx","webpack://Redoc/./src/components/PayloadSamples/exernalExampleHook.ts","webpack://Redoc/./src/components/PayloadSamples/Example.tsx","webpack://Redoc/./src/components/PayloadSamples/styled.elements.ts","webpack://Redoc/./src/components/PayloadSamples/MediaTypeSamples.tsx","webpack://Redoc/./src/common-elements/fields.ts","webpack://Redoc/./src/components/ExternalDocumentation/ExternalDocumentation.tsx","webpack://Redoc/./src/components/Fields/EnumValues.tsx","webpack://Redoc/./src/components/Fields/Extensions.tsx","webpack://Redoc/./src/components/Fields/FieldContstraints.tsx","webpack://Redoc/./src/components/Fields/FieldDetail.tsx","webpack://Redoc/./src/components/Fields/FieldDetails.tsx","webpack://Redoc/./src/components/Schema/ArraySchema.tsx","webpack://Redoc/./src/components/Fields/Field.tsx","webpack://Redoc/./src/components/Schema/DiscriminatorDropdown.tsx","webpack://Redoc/./src/components/Schema/ObjectSchema.tsx","webpack://Redoc/./src/components/Schema/OneOfSchema.tsx","webpack://Redoc/./src/components/Schema/Schema.tsx","webpack://Redoc/./src/components/Schema/index.ts","webpack://Redoc/./src/components/SchemaDefinition/SchemaDefinition.tsx","webpack://Redoc/./src/components/SecuritySchemes/SecuritySchemes.tsx","webpack://Redoc/./src/services/AppStore.ts","webpack://Redoc/./src/services/index.ts","webpack://Redoc/./src/components/ApiInfo/styled.elements.ts","webpack://Redoc/./src/components/ApiInfo/ApiInfo.tsx","webpack://Redoc/./src/components/ApiInfo/index.ts","webpack://Redoc/./src/components/ApiLogo/styled.elements.tsx","webpack://Redoc/./src/components/ApiLogo/ApiLogo.tsx","webpack://Redoc/./src/components/Markdown/AdvancedMarkdown.tsx","webpack://Redoc/./src/components/SideMenu/styled.elements.ts","webpack://Redoc/./src/components/Callbacks/CallbackTitle.tsx","webpack://Redoc/./src/components/Callbacks/styled.elements.ts","webpack://Redoc/./src/components/SelectOnClick/SelectOnClick.tsx","webpack://Redoc/./src/components/Endpoint/styled.elements.ts","webpack://Redoc/./src/components/Endpoint/Endpoint.tsx","webpack://Redoc/./src/components/Parameters/ParametersGroup.tsx","webpack://Redoc/./src/components/MediaTypeSwitch/MediaTypesSwitch.tsx","webpack://Redoc/./src/components/Parameters/Parameters.tsx","webpack://Redoc/./src/components/Responses/ResponseTitle.tsx","webpack://Redoc/./src/components/Responses/styled.elements.ts","webpack://Redoc/./src/components/Responses/ResponseHeaders.tsx","webpack://Redoc/./src/components/Responses/ResponseDetails.tsx","webpack://Redoc/./src/components/Responses/Response.tsx","webpack://Redoc/./src/components/Responses/ResponsesList.tsx","webpack://Redoc/./src/components/SecurityRequirement/SecurityRequirement.tsx","webpack://Redoc/./src/components/Callbacks/CallbackDetails.tsx","webpack://Redoc/./src/components/Callbacks/CallbackOperation.tsx","webpack://Redoc/./src/components/Callbacks/CallbacksList.tsx","webpack://Redoc/./src/components/Callbacks/index.ts","webpack://Redoc/./src/components/GenericChildrenSwitcher/GenericChildrenSwitcher.tsx","webpack://Redoc/./src/components/PayloadSamples/PayloadSamples.tsx","webpack://Redoc/./src/components/CallbackSamples/CallbackReqSamples.tsx","webpack://Redoc/./src/components/CallbackSamples/CallbackSamples.tsx","webpack://Redoc/./src/components/RequestSamples/RequestSamples.tsx","webpack://Redoc/./src/components/ResponseSamples/ResponseSamples.tsx","webpack://Redoc/./src/components/Operation/Operation.tsx","webpack://Redoc/./src/components/ContentItems/ContentItems.tsx","webpack://Redoc/./src/components/SideMenu/MenuItem.tsx","webpack://Redoc/./src/components/SideMenu/MenuItems.tsx","webpack://Redoc/./src/components/SideMenu/SideMenu.tsx","webpack://Redoc/./src/components/StickySidebar/ChevronSvg.tsx","webpack://Redoc/./src/components/StickySidebar/StickyResponsiveSidebar.tsx","webpack://Redoc/./src/components/Redoc/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/SearchBox.tsx","webpack://Redoc/./src/markdown/code/Highlighter/index.tsx","webpack://Redoc/./src/markdown/components.tsx","webpack://Redoc/./src/components/Redoc/Redoc.tsx","webpack://Redoc/./src/components/RedocStandalone.tsx","webpack://Redoc/./src/components/JsonViewer/index.tsx","webpack://Redoc/./src/components/SideMenu/index.ts","webpack://Redoc/./src/components/index.ts","webpack://Redoc/./src/markdown/index.tsx","webpack://Redoc/./src/index.ts"],"names":["addMethods","worker","methods","c","callbacks","addEventListener","e","d","data","type","id","f","error","Object","assign","Error","message","result","evt","document","createEvent","initEvent","method","params","dispatchEvent","forEach","Promise","a","b","postMessage"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,kC;;;;;;ACAA,kC;;;;;;ACAA,qC;;;;;;ACAA,uC;;;;;;ACAA,iC;;;;;;ACAA,gC;;;;;;ACAA,yC;;;;;;ACAA,iC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,oC;;;;;;ACAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA,uC;;;;;;ACAA,mC;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;AC7SA,0C;;;;;;ACAA,yC;;;;;;;ACAa;AAEb,SAAS,KAAK,CAAC,GAAG,EAAC,GAAG;IAClB,OAAO,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACb,KAAK,EAAE,KAAK;CACf,CAAC;;;;;;;;ACRW;AAEb,IAAM,QAAQ,GAAG,mBAAO,CAAC,EAAW,CAAC,CAAC,QAAQ,CAAC;AAE/C,SAAS,YAAY;IACjB,OAAO;QACH,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,IAAI,OAAO,EAAE;QACnB,QAAQ,EAAE,KAAK;QACf,iBAAiB,EAAE,KAAK;KAC3B,CAAC;AACN,CAAC;AAED;;;;;;EAME;AACF,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ;IACpC,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;QACd,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAC,YAAY,EAAE,EAAC,KAAK,CAAC,CAAC;KAClD;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO;IACvC,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;IACvB,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACpB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC5B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACxD,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1C;YACD,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;YACpB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YACjC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACrD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC5C;QACD,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;KACtB;AACL,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACb,OAAO,EAAG,OAAO;CACpB,CAAC;;;;;;;AC5DF,oC;;;;;;ACAA,4C;;;;;;ACAA,8C;;;;;;ACAA,iD;;;;;;;;;;;;;ACAA,+CAAa;AAEb,IAAM,GAAG,GAAG,mBAAO,CAAC,EAAqB,CAAC,CAAC;AAE3C,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC5C,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAEpF,SAAS,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,KAAK;IACxB,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,SAAS,OAAO,CAAC,KAAK;IAClB,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI;IAC1B,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI;QACvB,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,GAAG;IACtB,IAAI,MAAM,GAAG,EAAE,CAAC;4BACP,SAAS;QACd,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC;YACjC,OAAO,UAAU,CAAC,CAAC,EAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;IAJtC,KAAsB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG;QAApB,IAAI,SAAS;gBAAT,SAAS;KAKjB;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,GAAG;IACtB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,SAAS,CAAC,GAAG;IAClB,OAAO,GAAG,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC;QAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,IAAI,CAAC,CAAC;IACX,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,CAAC;IACR,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjC,GAAG,GAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACnC,IAAI,IAAI,CAAC,CAAC,CAAC,2BAA2B;KACvC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,QAAQ;IAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,MAAM;QACtE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,IAAM,uBAAuB,GAAG;IAC5B,QAAQ;IACR,SAAS;IACT,SAAS;IACT,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,aAAa;IACb,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,SAAS;IACT,MAAM;IACN,SAAS;CACZ,CAAC;AAEF,IAAM,eAAe,GAAG;IACpB,OAAO;IACP,UAAU;IACV,UAAU;IACV,aAAa;CAChB,CAAC;AAEF,IAAM,WAAW,GAAG;IAChB,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,SAAS;IACT,OAAO;CACV,CAAC;AAEF,SAAS,QAAQ,CAAC,CAAC;IACf,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IACvE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,CAAC;IAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IAEb,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,aAAa;IAC5B,OAAO,EAAE,OAAO;IAChB,aAAa,EAAE,aAAa;IAC5B,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,IAAI;IACV,uBAAuB,EAAE,uBAAuB;IAChD,eAAe,EAAE,eAAe;IAChC,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,WAAW;CAE3B,CAAC;;;;;;;;;ACvIF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,EAAW;AAChC,cAAc,mBAAO,CAAC,EAAS;AAC/B,cAAc,mBAAO,CAAC,EAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACxEA,qC;;;;;;ACAA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,aAAa,mBAAO,CAAC,EAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,wCAAwC,eAAe,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA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mBAAO,CAAC,EAAO;AAC5B,kBAAkB,mBAAO,CAAC,EAAsB;AAChD,UAAU,mBAAO,CAAC,CAAK;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;ACpFA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,eAAe,mBAAO,CAAC,EAAY;AACnC,aAAa,mBAAO,CAAC,EAAiB;AACtC,oBAAoB,mBAAO,CAAC,EAAgB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,2CAA2C;AAC3C,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtUA,sC;;;;;;ACAA,oC;;;;;;ACAA,oC;;;;;;ACAA,2C;;;;;;ACAA,kC;;;;;;ACAA,iD;;;;;;;;;;;;ACAA,6D;;;;;;ACAA,0D;;;;;;ACAA,8D;;;;;;ACAA,qE;;;;;;ACAA,4D;;;;;;ACAA,+D;;;;;;ACAA,2D;;;;;;ACAA,6D;;;;;;ACAA,6D;;;;;;ACAA,4D;;;;;;AC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","file":"redoc.lib.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Redoc\"] = factory();\n\telse\n\t\troot[\"Redoc\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 85);\n","module.exports = require(\"react\");","module.exports = require(\"tslib\");","module.exports = require(\"polished\");","module.exports = require(\"mobx-react\");","module.exports = require(\"mobx\");","module.exports = require(\"url\");","module.exports = require(\"json-pointer\");","module.exports = require(\"lunr\");","module.exports = require(\"decko\");","module.exports = require(\"react-tabs\");","module.exports = require(\"prismjs\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = require(\"prop-types\");","module.exports = require(\"marked\");","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = undefined;","'use strict';\n\n/**\n* escapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to escape\n* @return the escaped string\n*/\nfunction jpescape(s) {\n return s.replace(/\\~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n* unescapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to unescape\n* @return the unescaped string\n*/\nfunction jpunescape(s) {\n return s.replace(/\\~1/g, '/').replace(/~0/g, '~');\n}\n\n// JSON Pointer specification: http://tools.ietf.org/html/rfc6901\n\n/**\n* from obj, return the property with a JSON Pointer prop, optionally setting it\n* to newValue\n* @param obj the object to point into\n* @param prop the JSON Pointer or JSON Reference\n* @param newValue optional value to set the property to\n* @return the found property, or false\n*/\nfunction jptr(obj, prop, newValue) {\n if (typeof obj === 'undefined') return false;\n if (!prop || typeof prop !== 'string' || (prop === '#')) return (typeof newValue !== 'undefined' ? newValue : obj);\n\n if (prop.indexOf('#')>=0) {\n let parts = prop.split('#');\n let uri = parts[0];\n if (uri) return false; // we do internal resolution only\n prop = parts[1];\n prop = decodeURIComponent(prop.slice(1).split('+').join(' '));\n }\n if (prop.startsWith('/')) prop = prop.slice(1);\n\n let components = prop.split('/');\n for (let i=0;i 0) ? components[i-1] : ''; // backtrack to indexed property name\n }\n\n if ((index != -1) || obj.hasOwnProperty(components[i])) {\n if (index >= 0) {\n if (setAndLast) {\n obj[index] = newValue;\n }\n obj = obj[index];\n }\n else if (index === -2) {\n if (setAndLast) {\n if (Array.isArray(obj)) {\n obj.push(newValue);\n }\n return newValue;\n }\n else return undefined;\n }\n else {\n if (setAndLast) {\n obj[components[i]] = newValue;\n }\n obj = obj[components[i]];\n }\n }\n else {\n if ((typeof newValue !== 'undefined') && (typeof obj === 'object') &&\n (!Array.isArray(obj))) {\n obj[components[i]] = (setAndLast ? newValue : ((components[i+1] === '0' || components[i+1] === '-') ? [] : {}));\n obj = obj[components[i]];\n }\n else return false;\n }\n }\n return obj;\n}\n\nmodule.exports = {\n jptr : jptr,\n jpescape : jpescape,\n jpunescape : jpunescape\n};\n","'use strict';\n\n/**\n* a collection of cloning functions\n*/\n\n/**\n* a no-op placeholder which returns the given object unchanged\n* useful for when a clone function needs to be passed but cloning is not\n* required\n* @param obj the input object\n* @return the input object, unchanged\n*/\nfunction nop(obj) {\n return obj;\n}\n\n/**\n* clones the given object using JSON.parse and JSON.stringify\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n* clones the given object's properties shallowly, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction shallowClone(obj) {\n let result = {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p)) {\n result[p] = obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties deeply, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction deepClone(obj) {\n let result = Array.isArray(obj) ? [] : {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p) || Array.isArray(obj)) {\n result[p] = (typeof obj[p] === 'object') ? deepClone(obj[p]) : obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties shallowly, using Object.assign\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction fastClone(obj) {\n return Object.assign({},obj);\n}\n\n/**\n* Source: stackoverflow http://bit.ly/2A1Kha6\n*/\n\nfunction circularClone(obj, hash) {\n if (!hash) hash = new WeakMap();\n // Do not try to clone primitives or functions\n if (Object(obj) !== obj || obj instanceof Function) return obj;\n if (hash.has(obj)) return hash.get(obj); // Cyclic reference\n try { // Try to run constructor (without arguments, as we don't know them)\n var result = new obj.constructor();\n } catch(e) { // Constructor failed, create object without running the constructor\n result = Object.create(Object.getPrototypeOf(obj));\n }\n // Optional: support for some standard constructors (extend as desired)\n /*if (obj instanceof Map)\n Array.from(obj, ([key, val]) => result.set(circularClone(key, hash),\n circularClone(val, hash)) );\n else if (obj instanceof Set)\n Array.from(obj, (key) => result.add(circularClone(key, hash)) );\n */\n // Register in hash\n hash.set(obj, result);\n // Clone and assign enumerable own properties recursively\n return Object.assign(result, ...Object.keys(obj).map (\n key => ({ [key]: circularClone(obj[key], hash) }) ));\n}\n\nmodule.exports = {\n nop : nop,\n clone : clone,\n shallowClone : shallowClone,\n deepClone : deepClone,\n fastClone : fastClone,\n circularClone : circularClone\n};\n\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","module.exports = require(\"eventemitter3\");","module.exports = require(\"url-template\");","'use strict';\n\nfunction isRef(obj,key) {\n return ((key === '$ref') && (!!obj && typeof obj[key] === 'string'));\n}\n\nmodule.exports = {\n isRef: isRef\n};\n\n","'use strict';\n\nconst jpescape = require('./jptr.js').jpescape;\n\nfunction defaultState() {\n return {\n path: '#',\n depth: 0,\n pkey: '',\n parent: {},\n payload: {},\n seen: new WeakMap(),\n identity: false,\n identityDetection: false\n };\n}\n\n/**\n* recurses through the properties of an object, given an optional starting state\n* anything you pass in state.payload is passed to the callback each time\n* @param object the object to recurse through\n* @param state optional starting state, can be set to null or {}\n* @param callback the function which receives object,key,state on each property\n*/\nfunction recurse(object, state, callback) {\n if (!state) state = {depth:0};\n if (!state.depth) {\n state = Object.assign({},defaultState(),state);\n }\n if (typeof object !== 'object') return;\n let oPath = state.path;\n for (let key in object) {\n state.key = key;\n state.path = state.path + '/' + encodeURIComponent(jpescape(key));\n state.identityPath = state.seen.get(object[key]);\n state.identity = (typeof state.identityPath !== 'undefined');\n if (object.hasOwnProperty(key)) {\n callback(object, key, state);\n }\n if ((typeof object[key] === 'object') && (!state.identity)) {\n if (state.identityDetection && !Array.isArray(object[key]) && object[key] !== null) {\n state.seen.set(object[key],state.path);\n }\n let newState = {};\n newState.parent = object;\n newState.path = state.path;\n newState.depth = state.depth ? state.depth+1 : 1;\n newState.pkey = key;\n newState.payload = state.payload;\n newState.seen = state.seen;\n newState.identity = false;\n newState.identityDetection = state.identityDetection;\n recurse(object[key], newState, callback);\n }\n state.path = oPath;\n }\n}\n\nmodule.exports = {\n recurse : recurse\n};\n\n","module.exports = require(\"mark.js\");","module.exports = require(\"openapi-sampler\");","module.exports = require(\"perfect-scrollbar\");","module.exports = require(\"prism-react-renderer\");","'use strict';\n\nconst sjs = require('fast-safe-stringify');\n\nconst colour = process.env.NODE_DISABLE_COLORS ?\n { red: '', yellow: '', green: '', normal: '' } :\n { red: '\\x1b[31m', yellow: '\\x1b[33;1m', green: '\\x1b[32m', normal: '\\x1b[0m' };\n\nfunction uniqueOnly(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nfunction hasDuplicates(array) {\n return (new Set(array)).size !== array.length;\n}\n\nfunction allSame(array) {\n return (new Set(array)).size <= 1;\n}\n\nfunction deepEquals(obj1, obj2) {\n function _equals(obj1, obj2) {\n return sjs.stringify(obj1) === sjs.stringify(Object.assign({}, obj1, obj2));\n }\n return _equals(obj1, obj2) && _equals(obj2, obj1);\n}\n\nfunction compressArray(arr) {\n let result = [];\n for (let candidate of arr) {\n let dupe = result.find(function(e,i,a){\n return deepEquals(e,candidate);\n });\n if (!dupe) result.push(candidate);\n }\n return result;\n}\n\nfunction distinctArray(arr) {\n return (arr.length === compressArray(arr).length);\n}\n\nfunction firstDupe(arr) {\n return arr.find(function(e,i,a){\n return arr.indexOf(e)\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","module.exports = require(\"inherits\");","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","module.exports = require(\"readable-stream\");","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {// nope\n}\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n dispose = dispose;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\nlunr.tokenizer.separator = /\\s+/;\nlet builder: lunr.Builder;\nlet resolveIndex: (v: lunr.Index) => void;\nlet index: Promise;\n\nfunction initEmpty() {\n builder = new lunr.Builder();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n index = new Promise(resolve => {\n resolveIndex = resolve;\n });\n}\n\ninitEmpty();\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function dispose() {\n store = [];\n initEmpty();\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}","module.exports = require(\"slugify\");","module.exports = require(\"styled-components\");","module.exports = require(\"@mdx-js/react\");","module.exports = require(\"json-schema-ref-parser\");","// @ts-check\n'use strict';\n\nconst fs = require('fs');\nconst url = require('url');\nconst pathlib = require('path');\n\nconst maybe = require('call-me-maybe');\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js');\nconst resolveInternal = jptr.jptr;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst clone = require('reftools/lib/clone.js').clone;\nconst cclone = require('reftools/lib/clone.js').circularClone;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst resolver = require('oas-resolver');\nconst sw = require('oas-schema-walker');\nconst common = require('oas-kit-common');\n\nconst statusCodes = require('./lib/statusCodes.js').statusCodes;\n\nconst ourVersion = require('./package.json').version;\n\n// TODO handle specification-extensions with plugins?\n\nconst targetVersion = '3.0.0';\nlet componentNames; // initialised in main\n\nclass S2OError extends Error {\n constructor(message) {\n super(message);\n this.name = 'S2OError';\n }\n}\n\nfunction throwError(message, options) {\n let err = new S2OError(message);\n err.options = options;\n if (options.promise) {\n options.promise.reject(err);\n }\n else {\n throw err;\n }\n}\n\nfunction throwOrWarn(message, container, options) {\n if (options.warnOnly) {\n container[options.warnProperty||'x-s2o-warning'] = message;\n }\n else {\n throwError(message, options);\n }\n}\n\nfunction fixUpSubSchema(schema,parent,options) {\n if (schema.nullable) options.patches++;\n if (schema.discriminator && typeof schema.discriminator === 'string') {\n schema.discriminator = { propertyName: schema.discriminator };\n }\n if (schema.items && Array.isArray(schema.items)) {\n if (schema.items.length === 0) {\n schema.items = {};\n }\n else if (schema.items.length === 1) {\n schema.items = schema.items[0];\n }\n else schema.items = { anyOf: schema.items };\n }\n\n if (schema.type && Array.isArray(schema.type)) {\n if (options.patch) {\n options.patches++;\n if (schema.type.length === 0) {\n delete schema.type;\n }\n else {\n if (!schema.oneOf) schema.oneOf = [];\n for (let type of schema.type) {\n let newSchema = {};\n if (type === 'null') {\n schema.nullable = true;\n }\n else {\n newSchema.type = type;\n for (let prop of common.arrayProperties) {\n if (typeof schema.prop !== 'undefined') {\n newSchema[prop] = schema[prop];\n delete schema[prop];\n }\n }\n }\n if (newSchema.type) {\n schema.oneOf.push(newSchema);\n }\n }\n delete schema.type;\n if (schema.oneOf.length === 0) {\n delete schema.oneOf; // means was just null => nullable\n }\n else if (schema.oneOf.length < 2) {\n schema.type = schema.oneOf[0].type;\n if (Object.keys(schema.oneOf[0]).length > 1) {\n throwOrWarn('Lost properties from oneOf',schema,options);\n }\n delete schema.oneOf;\n }\n }\n // do not else this\n if (schema.type && Array.isArray(schema.type) && schema.type.length === 1) {\n schema.type = schema.type[0];\n }\n }\n else {\n throwError('(Patchable) schema type must not be an array', options);\n }\n }\n\n if (schema.type && schema.type === 'null') {\n delete schema.type;\n schema.nullable = true;\n }\n if ((schema.type === 'array') && (!schema.items)) {\n schema.items = {};\n }\n if (typeof schema.required === 'boolean') {\n if (schema.required && schema.name) {\n if (typeof parent.required === 'undefined') {\n parent.required = [];\n }\n if (Array.isArray(parent.required)) parent.required.push(schema.name);\n }\n delete schema.required;\n }\n\n // TODO if we have a nested properties (object inside an object) and the\n // *parent* type is not set, force it to object\n // TODO if default is set but type is not set, force type to typeof default\n\n if (schema.xml && typeof schema.xml.namespace === 'string') {\n if (!schema.xml.namespace) delete schema.xml.namespace;\n }\n}\n\nfunction fixUpSubSchemaExtensions(schema,parent) {\n if (schema[\"x-required\"] && Array.isArray(schema[\"x-required\"])) {\n if (!schema.required) schema.required = [];\n schema.required = schema.required.concat(schema[\"x-required\"]);\n delete schema[\"x-required\"];\n }\n if (schema[\"x-anyOf\"]) {\n schema.anyOf = schema[\"x-anyOf\"];\n delete schema[\"x-anyOf\"];\n }\n if (schema[\"x-oneOf\"]) {\n schema.oneOf = schema[\"x-oneOf\"];\n delete schema[\"x-oneOf\"];\n }\n if (schema[\"x-not\"]) {\n schema.not = schema[\"x-not\"];\n delete schema[\"x-not\"];\n }\n if (typeof schema[\"x-nullable\"] === 'boolean') {\n schema.nullable = schema[\"x-nullable\"];\n delete schema[\"x-nullable\"];\n }\n if ((typeof schema[\"x-discriminator\"] === 'object') && (typeof schema[\"x-discriminator\"].propertyName === 'string')) {\n schema.discriminator = schema[\"x-discriminator\"];\n delete schema[\"x-discriminator\"];\n for (let entry in schema.discriminator.mapping) {\n let schemaOrRef = schema.discriminator.mapping[entry];\n if (schemaOrRef.startsWith('#/definitions/')) {\n schema.discriminator.mapping[entry] = schemaOrRef.replace('#/definitions/','#/components/schemas/');\n }\n }\n }\n}\n\nfunction fixUpSchema(schema,options) {\n sw.walkSchema(schema,{},{},function(schema,parent,state){\n fixUpSubSchemaExtensions(schema,parent);\n fixUpSubSchema(schema,parent,options);\n });\n}\n\nfunction getMiroComponentName(ref) {\n if (ref.indexOf('#')>=0) {\n ref = ref.split('#')[1].split('/').pop();\n }\n else {\n ref = ref.split('/').pop().split('.')[0];\n }\n return encodeURIComponent(common.sanitise(ref));\n}\n\nfunction fixupRefs(obj, key, state) {\n let options = state.payload.options;\n if (isRef(obj,key)) {\n if (obj[key].startsWith('#/components/')) {\n // no-op\n }\n else if (obj[key] === '#/consumes') {\n // people are *so* creative\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.consumes);\n }\n else if (obj[key] === '#/produces') {\n // and by creative, I mean devious\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.produces);\n }\n else if (obj[key].startsWith('#/definitions/')) {\n //only the first part of a schema component name must be sanitised\n let keys = obj[key].replace('#/definitions/', '').split('/');\n const ref = jptr.jpunescape(keys[0]);\n\n let newKey = componentNames.schemas[decodeURIComponent(ref)]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n else if (obj[key].startsWith('#/parameters/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/parameters/' + common.sanitise(obj[key].replace('#/parameters/', ''));\n }\n else if (obj[key].startsWith('#/responses/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/responses/' + common.sanitise(obj[key].replace('#/responses/', ''));\n }\n else if (obj[key].startsWith('#')) {\n // fixes up direct $refs or those created by resolvers\n let target = clone(jptr.jptr(options.openapi,obj[key]));\n if (target === false) throwOrWarn('direct $ref not found '+obj[key],obj,options)\n else if (options.refmap[obj[key]]) {\n obj[key] = options.refmap[obj[key]];\n }\n else {\n // we use a heuristic to determine what kind of thing is being referenced\n let oldRef = obj[key];\n oldRef = oldRef.replace('/properties/headers/','');\n oldRef = oldRef.replace('/properties/responses/','');\n oldRef = oldRef.replace('/properties/parameters/','');\n oldRef = oldRef.replace('/properties/schemas/','');\n let type = 'schemas';\n let schemaIndex = oldRef.lastIndexOf('/schema');\n type = (oldRef.indexOf('/headers/')>schemaIndex) ? 'headers' :\n ((oldRef.indexOf('/responses/')>schemaIndex) ? 'responses' :\n ((oldRef.indexOf('/example')>schemaIndex) ? 'examples' :\n ((oldRef.indexOf('/x-')>schemaIndex) ? 'extensions' :\n ((oldRef.indexOf('/parameters/')>schemaIndex) ? 'parameters' : 'schemas'))));\n\n // non-body/form parameters have not moved in the overall structure (like responses)\n // but extracting the requestBodies can cause the *number* of parameters to change\n\n if (type === 'schemas') {\n fixUpSchema(target,options);\n }\n\n if ((type !== 'responses') && (type !== 'extensions')) {\n let prefix = type.substr(0,type.length-1);\n if ((prefix === 'parameter') && target.name && (target.name === common.sanitise(target.name))) {\n prefix = encodeURIComponent(target.name);\n }\n\n let suffix = 1;\n if (obj['x-miro']) {\n prefix = getMiroComponentName(obj['x-miro']);\n suffix = '';\n }\n\n while (jptr.jptr(options.openapi,'#/components/'+type+'/'+prefix+suffix)) {\n suffix = (suffix === '' ? 2 : ++suffix);\n }\n\n let newRef = '#/components/'+type+'/'+prefix+suffix;\n let refSuffix = '';\n\n if (type === 'examples') {\n target = { value: target };\n refSuffix = '/value';\n }\n\n jptr.jptr(options.openapi,newRef,target);\n options.refmap[obj[key]] = newRef+refSuffix;\n obj[key] = newRef+refSuffix;\n }\n }\n }\n\n delete obj['x-miro'];\n // do this last - rework cases where $ref object has sibling properties\n if (Object.keys(obj).length > 1) {\n const tmpRef = obj[key];\n const inSchema = state.path.indexOf('/schema') >= 0; // not perfect, but in the absence of a reasonably-sized and complete OAS 2.0 parser...\n if (options.refSiblings === 'preserve') {\n // no-op\n }\n else if (inSchema && (options.refSiblings === 'allOf')) {\n delete obj.$ref;\n state.parent[state.pkey] = { allOf: [ { $ref: tmpRef }, obj ]};\n }\n else { // remove, or not 'preserve' and not in a schema\n state.parent[state.pkey] = { $ref: tmpRef };\n }\n }\n\n }\n if ((key === 'x-ms-odata') && (typeof obj[key] === 'string') && (obj[key].startsWith('#/'))) {\n let keys = obj[key].replace('#/definitions/', '').replace('#/components/schemas/','').split('/');\n let newKey = componentNames.schemas[decodeURIComponent(keys[0])]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n}\n\n/*\n* This has to happen as a separate pass because multiple $refs may point\n* through elements of the same path\n*/\nfunction dedupeRefs(openapi, options) {\n for (let ref in options.refmap) {\n jptr.jptr(openapi,ref,{ $ref: options.refmap[ref] });\n }\n}\n\nfunction processSecurity(securityObject) {\n for (let s in securityObject) {\n for (let k in securityObject[s]) {\n let sname = common.sanitise(k);\n if (k != sname) {\n securityObject[s][sname] = securityObject[s][k];\n delete securityObject[s][k];\n }\n }\n }\n}\n\nfunction processSecurityScheme(scheme, options) {\n if (scheme.type === 'basic') {\n scheme.type = 'http';\n scheme.scheme = 'basic';\n }\n if (scheme.type === 'oauth2') {\n let flow = {};\n let flowName = scheme.flow;\n if (scheme.flow === 'application') flowName = 'clientCredentials';\n if (scheme.flow === 'accessCode') flowName = 'authorizationCode';\n if (typeof scheme.authorizationUrl !== 'undefined') flow.authorizationUrl = scheme.authorizationUrl.split('?')[0].trim() || '/';\n if (typeof scheme.tokenUrl === 'string') flow.tokenUrl = scheme.tokenUrl.split('?')[0].trim() || '/';\n flow.scopes = scheme.scopes || {};\n scheme.flows = {};\n scheme.flows[flowName] = flow;\n delete scheme.flow;\n delete scheme.authorizationUrl;\n delete scheme.tokenUrl;\n delete scheme.scopes;\n if (typeof scheme.name !== 'undefined') {\n if (options.patch) {\n options.patches++;\n delete scheme.name;\n }\n else {\n throwError('(Patchable) oauth2 securitySchemes should not have name property', options);\n }\n }\n }\n}\n\nfunction keepParameters(value) {\n return (value && !value[\"x-s2o-delete\"]);\n}\n\nfunction processHeader(header, options) {\n if (header.$ref) {\n header.$ref = header.$ref.replace('#/responses/', '#/components/responses/');\n }\n else {\n if (header.type && !header.schema) {\n header.schema = {};\n }\n if (header.type) header.schema.type = header.type;\n if (header.items && header.items.type !== 'array') {\n if (header.items.collectionFormat !== header.collectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', header, options);\n }\n delete header.items.collectionFormat;\n }\n if (header.type === 'array') {\n if (header.collectionFormat === 'ssv') {\n throwOrWarn('collectionFormat:ssv is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'pipes') {\n throwOrWarn('collectionFormat:pipes is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'multi') {\n header.explode = true;\n }\n else if (header.collectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', header, options); // not lossless\n header[\"x-collectionFormat\"] = 'tsv';\n }\n else { // 'csv'\n header.style = 'simple';\n }\n delete header.collectionFormat;\n }\n else if (header.collectionFormat) {\n if (options.patch) {\n options.patches++;\n delete header.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to header.type array', options);\n }\n }\n delete header.type;\n for (let prop of common.parameterTypeProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n for (let prop of common.arrayProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n }\n}\n\nfunction fixParamRef(param, options) {\n if (param.$ref.indexOf('#/parameters/') >= 0) {\n let refComponents = param.$ref.split('#/parameters/');\n param.$ref = refComponents[0] + '#/components/parameters/' + common.sanitise(refComponents[1]);\n }\n if (param.$ref.indexOf('#/definitions/') >= 0) {\n throwOrWarn('Definition used as parameter', param, options);\n }\n}\n\nfunction attachRequestBody(op,options) {\n let newOp = {};\n for (let key of Object.keys(op)) {\n newOp[key] = op[key];\n if (key === 'parameters') {\n newOp.requestBody = {};\n if (options.rbname) newOp[options.rbname] = '';\n }\n }\n newOp.requestBody = {}; // just in case there are no parameters\n return newOp;\n}\n\n/**\n * @returns op, as it may have changed\n */\nfunction processParameter(param, op, path, method, index, openapi, options) {\n let result = {};\n let singularRequestBody = true;\n let originalType;\n\n if (op && op.consumes && (typeof op.consumes === 'string')) {\n if (options.patch) {\n options.patches++;\n op.consumes = [op.consumes];\n }\n else {\n return throwError('(Patchable) operation.consumes must be an array', options);\n }\n }\n if (!Array.isArray(openapi.consumes)) delete openapi.consumes;\n let consumes = ((op ? op.consumes : null) || (openapi.consumes || [])).filter(common.uniqueOnly);\n\n if (param && param.$ref && (typeof param.$ref === 'string')) {\n // if we still have a ref here, it must be an internal one\n fixParamRef(param, options);\n let ptr = decodeURIComponent(param.$ref.replace('#/components/parameters/', ''));\n let rbody = false;\n let target = openapi.components.parameters[ptr]; // resolves a $ref, must have been sanitised already\n\n if (((!target) || (target[\"x-s2o-delete\"])) && param.$ref.startsWith('#/')) {\n // if it's gone, chances are it's a requestBody component now unless spec was broken\n param[\"x-s2o-delete\"] = true;\n rbody = true;\n }\n\n // shared formData parameters from swagger or path level could be used in any combination.\n // we dereference all op.requestBody's then hash them and pull out common ones later\n\n if (rbody) {\n let ref = param.$ref;\n let newParam = resolveInternal(openapi, param.$ref);\n if (!newParam && ref.startsWith('#/')) {\n throwOrWarn('Could not resolve reference ' + ref, param, options);\n }\n else {\n if (newParam) param = newParam; // preserve reference\n }\n }\n }\n\n if (param && (param.name || param.in)) { // if it's a real parameter OR we've dereferenced it\n\n if (typeof param['x-deprecated'] === 'boolean') {\n param.deprecated = param['x-deprecated'];\n delete param['x-deprecated'];\n }\n\n if (typeof param['x-example'] !== 'undefined') {\n param.example = param['x-example'];\n delete param['x-example'];\n }\n\n if ((param.in != 'body') && (!param.type)) {\n if (options.patch) {\n options.patches++;\n param.type = 'string';\n }\n else {\n throwError('(Patchable) parameter.type is mandatory for non-body parameters', options);\n }\n }\n if (param.type && typeof param.type === 'object' && param.type.$ref) {\n // $ref anywhere sensibility\n param.type = resolveInternal(openapi, param.type.$ref);\n }\n if (param.type === 'file') {\n param['x-s2o-originalType'] = param.type;\n originalType = param.type;\n }\n if (param.description && typeof param.description === 'object' && param.description.$ref) {\n // $ref anywhere sensibility\n param.description = resolveInternal(openapi, param.description.$ref);\n }\n if (param.description === null) delete param.description;\n\n let oldCollectionFormat = param.collectionFormat;\n if ((param.type === 'array') && !oldCollectionFormat) {\n oldCollectionFormat = 'csv';\n }\n if (oldCollectionFormat) {\n if (param.type != 'array') {\n if (options.patch) {\n options.patches++;\n delete param.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to param.type array', options);\n }\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'query') || (param.in === 'cookie'))) {\n param.style = 'form';\n param.explode = false;\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'path') || (param.in === 'header'))) {\n param.style = 'simple';\n }\n if (oldCollectionFormat === 'ssv') {\n if (param.in === 'query') {\n param.style = 'spaceDelimited';\n }\n else {\n throwOrWarn('collectionFormat:ssv is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'pipes') {\n if (param.in === 'query') {\n param.style = 'pipeDelimited';\n }\n else {\n throwOrWarn('collectionFormat:pipes is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'multi') {\n param.explode = true;\n }\n if (oldCollectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', param, options); // not lossless\n param[\"x-collectionFormat\"] = 'tsv';\n }\n delete param.collectionFormat;\n }\n\n if (param.type && (param.type != 'object') && (param.type != 'body') && (param.in != 'formData')) {\n if (param.items && param.schema) {\n throwOrWarn('parameter has array,items and schema', param, options);\n }\n else {\n if (param.schema) options.patches++; // already present\n if ((!param.schema) || (typeof param.schema !== 'object')) param.schema = {};\n param.schema.type = param.type;\n if (param.items) {\n param.schema.items = param.items;\n delete param.items;\n recurse(param.schema.items, null, function (obj, key, state) {\n if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) {\n if (oldCollectionFormat && obj[key] !== oldCollectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', param, options);\n }\n delete obj[key]; // not lossless\n }\n // items in 2.0 was a subset of the JSON-Schema items\n // object, it gets fixed up below\n });\n }\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') param.schema[prop] = param[prop];\n delete param[prop];\n }\n }\n }\n\n if (param.schema) {\n fixUpSchema(param.schema,options);\n }\n\n if (param[\"x-ms-skip-url-encoding\"]) {\n if (param.in === 'query') { // might be in:path, not allowed in OAS3\n param.allowReserved = true;\n delete param[\"x-ms-skip-url-encoding\"];\n }\n }\n }\n\n if (param && param.in === 'formData') {\n // convert to requestBody component\n singularRequestBody = false;\n result.content = {};\n let contentType = 'application/x-www-form-urlencoded';\n if ((consumes.length) && (consumes.indexOf('multipart/form-data') >= 0)) {\n contentType = 'multipart/form-data';\n }\n\n result.content[contentType] = {};\n if (param.schema) {\n result.content[contentType].schema = param.schema;\n if (param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n }\n else {\n result.content[contentType].schema = {};\n result.content[contentType].schema.type = 'object';\n result.content[contentType].schema.properties = {};\n result.content[contentType].schema.properties[param.name] = {};\n let schema = result.content[contentType].schema;\n let target = result.content[contentType].schema.properties[param.name];\n if (param.description) target.description = param.description;\n if (param.example) target.example = param.example;\n if (param.type) target.type = param.type;\n\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') target[prop] = param[prop];\n }\n if (param.required === true) {\n if (!schema.required) schema.required = [];\n schema.required.push(param.name);\n result.required = true;\n }\n if (typeof param.default !== 'undefined') target.default = param.default;\n if (target.properties) target.properties = param.properties;\n if (param.allOf) target.allOf = param.allOf; // new are anyOf, oneOf, not\n if ((param.type === 'array') && (param.items)) {\n target.items = param.items;\n if (target.items.collectionFormat) delete target.items.collectionFormat;\n }\n if ((originalType === 'file') || (param['x-s2o-originalType'] === 'file')) {\n target.type = 'string';\n target.format = 'binary';\n }\n\n // Copy any extensions on the form param to the target schema property.\n copyExtensions(param, target);\n }\n }\n else if (param && param.type === 'file') {\n // convert to requestBody\n if (param.required) result.required = param.required;\n result.content = {};\n result.content[\"application/octet-stream\"] = {};\n result.content[\"application/octet-stream\"].schema = {};\n result.content[\"application/octet-stream\"].schema.type = 'string';\n result.content[\"application/octet-stream\"].schema.format = 'binary';\n copyExtensions(param, result);\n }\n if (param && param.in === 'body') {\n result.content = {};\n if (param.name) result['x-s2o-name'] = (op && op.operationId ? common.sanitiseAll(op.operationId) : '') + ('_' + param.name).toCamelCase();\n if (param.description) result.description = param.description;\n if (param.required) result.required = param.required;\n\n // Set the \"request body name\" extension on the operation if requested.\n if (op && options.rbname && param.name) {\n op[options.rbname] = param.name;\n }\n if (param.schema && param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n else if (param.schema && (param.schema.type === 'array') && param.schema.items && param.schema.items.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.items.$ref.replace('#/components/schemas/', '')) + 'Array';\n }\n\n if (!consumes.length) {\n consumes.push('application/json'); // TODO verify default\n }\n\n for (let mimetype of consumes) {\n result.content[mimetype] = {};\n result.content[mimetype].schema = clone(param.schema || {});\n fixUpSchema(result.content[mimetype].schema,options);\n }\n\n // Copy any extensions from the original parameter to the new requestBody\n copyExtensions(param, result);\n }\n\n if (Object.keys(result).length > 0) {\n param[\"x-s2o-delete\"] = true;\n // work out where to attach the requestBody\n if (op) {\n if (op.requestBody && singularRequestBody) {\n op.requestBody[\"x-s2o-overloaded\"] = true;\n let opId = op.operationId || index;\n\n throwOrWarn('Operation ' + opId + ' has multiple requestBodies', op, options);\n }\n else {\n if (!op.requestBody) {\n op = path[method] = attachRequestBody(op,options); // make sure we have one\n }\n if ((op.requestBody.content && op.requestBody.content[\"multipart/form-data\"])\n && (op.requestBody.content[\"multipart/form-data\"].schema) && (op.requestBody.content[\"multipart/form-data\"].schema.properties) && (result.content[\"multipart/form-data\"]) && (result.content[\"multipart/form-data\"].schema) && (result.content[\"multipart/form-data\"].schema.properties)) {\n op.requestBody.content[\"multipart/form-data\"].schema.properties =\n Object.assign(op.requestBody.content[\"multipart/form-data\"].schema.properties, result.content[\"multipart/form-data\"].schema.properties);\n op.requestBody.content[\"multipart/form-data\"].schema.required = (op.requestBody.content[\"multipart/form-data\"].schema.required || []).concat(result.content[\"multipart/form-data\"].schema.required||[]);\n if (!op.requestBody.content[\"multipart/form-data\"].schema.required.length) {\n delete op.requestBody.content[\"multipart/form-data\"].schema.required;\n }\n }\n else if ((op.requestBody.content && op.requestBody.content[\"application/x-www-form-urlencoded\"] && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties)\n && result.content[\"application/x-www-form-urlencoded\"] && result.content[\"application/x-www-form-urlencoded\"].schema && result.content[\"application/x-www-form-urlencoded\"].schema.properties) {\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties =\n Object.assign(op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties, result.content[\"application/x-www-form-urlencoded\"].schema.properties);\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required = (op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required || []).concat(result.content[\"application/x-www-form-urlencoded\"].schema.required||[]);\n if (!op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required.length) {\n delete op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required;\n }\n }\n else {\n op.requestBody = Object.assign(op.requestBody, result);\n if (!op.requestBody['x-s2o-name']) {\n if (op.requestBody.schema && op.requestBody.schema.$ref) {\n op.requestBody['x-s2o-name'] = decodeURIComponent(op.requestBody.schema.$ref.replace('#/components/schemas/', '')).split('/').join('');\n }\n else if (op.operationId) {\n op.requestBody['x-s2o-name'] = common.sanitiseAll(op.operationId);\n }\n }\n }\n }\n }\n }\n\n // tidy up\n if (param && !param['x-s2o-delete']) {\n delete param.type;\n for (let prop of common.parameterTypeProperties) {\n delete param[prop];\n }\n\n if ((param.in === 'path') && ((typeof param.required === 'undefined') || (param.required !== true))) {\n if (options.patch) {\n options.patches++;\n param.required = true;\n }\n else {\n throwError('(Patchable) path parameters must be required:true ['+param.name+' in '+index+']', options);\n }\n }\n }\n\n return op;\n}\n\nfunction copyExtensions(src, tgt) {\n for (let prop in src) {\n if (prop.startsWith('x-') && !prop.startsWith('x-s2o')) {\n tgt[prop] = src[prop];\n }\n }\n}\n\nfunction processResponse(response, name, op, openapi, options) {\n if (!response) return false;\n if (response.$ref && (typeof response.$ref === 'string')) {\n if (response.$ref.indexOf('#/definitions/') >= 0) {\n //response.$ref = '#/components/schemas/'+common.sanitise(response.$ref.replace('#/definitions/',''));\n throwOrWarn('definition used as response: ' + response.$ref, response, options);\n }\n else {\n if (response.$ref.startsWith('#/responses/')) {\n response.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.$ref.replace('#/responses/', '')));\n }\n }\n }\n else {\n if ((typeof response.description === 'undefined') || (response.description === null)\n || ((response.description === '') && options.patch)) {\n if (options.patch) {\n if ((typeof response === 'object') && (!Array.isArray(response))) {\n options.patches++;\n response.description = (statusCodes[response] || '');\n }\n }\n else {\n throwError('(Patchable) response.description is mandatory', options);\n }\n }\n if (typeof response.schema !== 'undefined') {\n\n fixUpSchema(response.schema,options);\n\n if (response.schema.$ref && (typeof response.schema.$ref === 'string') && response.schema.$ref.startsWith('#/responses/')) {\n response.schema.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.schema.$ref.replace('#/responses/', '')));\n }\n\n if (op && op.produces && (typeof op.produces === 'string')) {\n if (options.patch) {\n options.patches++;\n op.produces = [op.produces];\n }\n else {\n return throwError('(Patchable) operation.produces must be an array', options);\n }\n }\n if (openapi.produces && !Array.isArray(openapi.produces)) delete openapi.produces;\n\n let produces = ((op ? op.produces : null) || (openapi.produces || [])).filter(common.uniqueOnly);\n if (!produces.length) produces.push('*/*'); // TODO verify default\n\n response.content = {};\n for (let mimetype of produces) {\n response.content[mimetype] = {};\n response.content[mimetype].schema = clone(response.schema);\n if (response.examples && response.examples[mimetype]) {\n let example = {};\n example.value = response.examples[mimetype];\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = example;\n delete response.examples[mimetype];\n }\n if (response.content[mimetype].schema.type === 'file') {\n response.content[mimetype].schema = { type: 'string', format: 'binary' };\n }\n }\n delete response.schema;\n }\n // examples for content-types not listed in produces\n for (let mimetype in response.examples) {\n if (!response.content) response.content = {};\n if (!response.content[mimetype]) response.content[mimetype] = {};\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = {};\n response.content[mimetype].examples.response.value = response.examples[mimetype];\n }\n delete response.examples;\n\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n options.patches++;\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n}\n\nfunction processPaths(container, containerName, options, requestBodyCache, openapi) {\n for (let p in container) {\n let path = container[p];\n // path.$ref is external only\n if (path && (path['x-trace']) && (typeof path['x-trace'] === 'object')) {\n path.trace = path['x-trace'];\n delete path['x-trace'];\n }\n if (path && (path['x-summary']) && (typeof path['x-summary'] === 'string')) {\n path.summary = path['x-summary'];\n delete path['x-summary'];\n }\n if (path && (path['x-description']) && (typeof path['x-description'] === 'string')) {\n path.description = path['x-description'];\n delete path['x-description'];\n }\n if (path && (path['x-servers']) && (Array.isArray(path['x-servers']))) {\n path.servers = path['x-servers'];\n delete path['x-servers'];\n }\n for (let method in path) {\n if ((common.httpMethods.indexOf(method) >= 0) || (method === 'x-amazon-apigateway-any-method')) {\n let op = path[method];\n\n if (op && op.parameters && Array.isArray(op.parameters)) {\n if (path.parameters) {\n for (let param of path.parameters) {\n if (typeof param.$ref === 'string') {\n fixParamRef(param, options);\n param = resolveInternal(openapi, param.$ref);\n }\n let match = op.parameters.find(function (e, i, a) {\n return ((e.name === param.name) && (e.in === param.in));\n });\n\n if (!match && ((param.in === 'formData') || (param.in === 'body') || (param.type === 'file'))) {\n op = processParameter(param, op, path, method, p, openapi, options);\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n }\n }\n }\n for (let param of op.parameters) {\n op = processParameter(param, op, path, method, method + ':' + p, openapi, options);\n }\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n if (!options.debug) {\n if (op.parameters) op.parameters = op.parameters.filter(keepParameters);\n }\n }\n\n if (op && op.security) processSecurity(op.security);\n\n //don't need to remove requestBody for non-supported ops as they \"SHALL be ignored\"\n\n // responses\n if (typeof op === 'object') {\n if (!op.responses) {\n let defaultResp = {};\n defaultResp.description = 'Default response';\n op.responses = { default: defaultResp };\n }\n for (let r in op.responses) {\n let response = op.responses[r];\n processResponse(response, r, op, openapi, options);\n }\n }\n\n if (op && (op['x-servers']) && (Array.isArray(op['x-servers']))) {\n op.servers = op['x-servers'];\n delete op['x-servers'];\n } else if (op && op.schemes && op.schemes.length) {\n for (let scheme of op.schemes) {\n if ((!openapi.schemes) || (openapi.schemes.indexOf(scheme) < 0)) {\n if (!op.servers) {\n op.servers = [];\n }\n if (Array.isArray(openapi.servers)) {\n for (let server of openapi.servers) {\n let newServer = clone(server);\n let serverUrl = url.parse(newServer.url);\n serverUrl.protocol = scheme;\n newServer.url = serverUrl.format();\n op.servers.push(newServer);\n }\n }\n }\n }\n }\n\n if (options.debug) {\n op[\"x-s2o-consumes\"] = op.consumes || [];\n op[\"x-s2o-produces\"] = op.produces || [];\n }\n if (op) {\n delete op.consumes;\n delete op.produces;\n delete op.schemes;\n\n if (op[\"x-ms-examples\"]) {\n for (let e in op[\"x-ms-examples\"]) {\n let example = op[\"x-ms-examples\"][e];\n let se = common.sanitiseAll(e);\n if (example.parameters) {\n for (let p in example.parameters) {\n let value = example.parameters[p];\n for (let param of (op.parameters||[]).concat(path.parameters||[])) {\n if (param.$ref) {\n param = jptr.jptr(openapi,param.$ref);\n }\n if ((param.name === p) && (!param.example)) {\n if (!param.examples) {\n param.examples = {};\n }\n param.examples[e] = {value: value};\n }\n }\n }\n }\n if (example.responses) {\n for (let r in example.responses) {\n if (example.responses[r].headers) {\n for (let h in example.responses[r].headers) {\n let value = example.responses[r].headers[h];\n for (let rh in op.responses[r].headers) {\n if (rh === h) {\n let header = op.responses[r].headers[rh];\n header.example = value;\n }\n }\n }\n }\n if (example.responses[r].body) {\n openapi.components.examples[se] = { value: clone(example.responses[r].body) };\n if (op.responses[r] && op.responses[r].content) {\n for (let ct in op.responses[r].content) {\n let contentType = op.responses[r].content[ct];\n if (!contentType.examples) {\n contentType.examples = {};\n }\n contentType.examples[e] = { $ref: '#/components/examples/'+se };\n }\n }\n }\n\n }\n }\n }\n delete op[\"x-ms-examples\"];\n }\n\n if (op.parameters && op.parameters.length === 0) delete op.parameters;\n if (op.requestBody) {\n let effectiveOperationId = op.operationId ? common.sanitiseAll(op.operationId) : common.sanitiseAll(method + p).toCamelCase();\n let rbName = common.sanitise(op.requestBody['x-s2o-name'] || effectiveOperationId || '');\n delete op.requestBody['x-s2o-name'];\n let rbStr = JSON.stringify(op.requestBody);\n let rbHash = common.hash(rbStr);\n if (!requestBodyCache[rbHash]) {\n let entry = {};\n entry.name = rbName;\n entry.body = op.requestBody;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n let ptr = '#/'+containerName+'/'+encodeURIComponent(jptr.jpescape(p))+'/'+method+'/requestBody';\n requestBodyCache[rbHash].refs.push(ptr);\n }\n }\n\n }\n }\n if (path && path.parameters) {\n for (let p2 in path.parameters) {\n let param = path.parameters[p2];\n processParameter(param, null, path, null, p, openapi, options); // index here is the path string\n }\n if (!options.debug && Array.isArray(path.parameters)) {\n path.parameters = path.parameters.filter(keepParameters);\n }\n }\n }\n}\n\nfunction main(openapi, options) {\n\n let requestBodyCache = {};\n componentNames = { schemas: {} };\n\n if (openapi.security) processSecurity(openapi.security);\n\n for (let s in openapi.components.securitySchemes) {\n let sname = common.sanitise(s);\n if (s != sname) {\n if (openapi.components.securitySchemes[sname]) {\n throwError('Duplicate sanitised securityScheme name ' + sname, options);\n }\n openapi.components.securitySchemes[sname] = openapi.components.securitySchemes[s];\n delete openapi.components.securitySchemes[s];\n }\n processSecurityScheme(openapi.components.securitySchemes[sname], options);\n }\n\n for (let s in openapi.components.schemas) {\n let sname = common.sanitiseAll(s);\n let suffix = '';\n if (s != sname) {\n while (openapi.components.schemas[sname + suffix]) {\n // @ts-ignore\n suffix = (suffix ? ++suffix : 2);\n }\n openapi.components.schemas[sname + suffix] = openapi.components.schemas[s];\n delete openapi.components.schemas[s];\n }\n componentNames.schemas[s] = sname + suffix;\n fixUpSchema(openapi.components.schemas[sname+suffix],options)\n }\n\n // fix all $refs to their new locations (and potentially new names)\n options.refmap = {};\n recurse(openapi, { payload: { options: options } }, fixupRefs);\n dedupeRefs(openapi,options);\n\n for (let p in openapi.components.parameters) {\n let sname = common.sanitise(p);\n if (p != sname) {\n if (openapi.components.parameters[sname]) {\n throwError('Duplicate sanitised parameter name ' + sname, options);\n }\n openapi.components.parameters[sname] = openapi.components.parameters[p];\n delete openapi.components.parameters[p];\n }\n let param = openapi.components.parameters[sname];\n processParameter(param, null, null, null, sname, openapi, options);\n }\n\n for (let r in openapi.components.responses) {\n let sname = common.sanitise(r);\n if (r != sname) {\n if (openapi.components.responses[sname]) {\n throwError('Duplicate sanitised response name ' + sname, options);\n }\n openapi.components.responses[sname] = openapi.components.responses[r];\n delete openapi.components.responses[r];\n }\n let response = openapi.components.responses[sname];\n processResponse(response, sname, null, openapi, options);\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n options.patches++;\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n\n for (let r in openapi.components.requestBodies) { // converted ones\n let rb = openapi.components.requestBodies[r];\n let rbStr = JSON.stringify(rb);\n let rbHash = common.hash(rbStr);\n let entry = {};\n entry.name = r;\n entry.body = rb;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n\n processPaths(openapi.paths, 'paths', options, requestBodyCache, openapi);\n if (openapi[\"x-ms-paths\"]) {\n processPaths(openapi[\"x-ms-paths\"], 'x-ms-paths', options, requestBodyCache, openapi);\n }\n\n if (!options.debug) {\n for (let p in openapi.components.parameters) {\n let param = openapi.components.parameters[p];\n if (param[\"x-s2o-delete\"]) {\n delete openapi.components.parameters[p];\n }\n }\n }\n\n if (options.debug) {\n openapi[\"x-s2o-consumes\"] = openapi.consumes || [];\n openapi[\"x-s2o-produces\"] = openapi.produces || [];\n }\n delete openapi.consumes;\n delete openapi.produces;\n delete openapi.schemes;\n\n let rbNamesGenerated = [];\n\n openapi.components.requestBodies = {}; // for now as we've dereffed them\n\n if (!options.resolveInternal) {\n let counter = 1;\n for (let e in requestBodyCache) {\n let entry = requestBodyCache[e];\n if (entry.refs.length > 1) {\n // create a shared requestBody\n let suffix = '';\n if (!entry.name) {\n entry.name = 'requestBody';\n // @ts-ignore\n suffix = counter++;\n }\n while (rbNamesGenerated.indexOf(entry.name + suffix) >= 0) {\n // @ts-ignore - this can happen if descriptions are not exactly the same (e.g. bitbucket)\n suffix = (suffix ? ++suffix : 2);\n }\n entry.name = entry.name + suffix;\n rbNamesGenerated.push(entry.name);\n openapi.components.requestBodies[entry.name] = clone(entry.body);\n for (let r in entry.refs) {\n let ref = {};\n ref.$ref = '#/components/requestBodies/' + entry.name;\n jptr.jptr(openapi,entry.refs[r],ref);\n }\n }\n }\n }\n\n if (openapi.components.responses && Object.keys(openapi.components.responses).length === 0) {\n delete openapi.components.responses;\n }\n if (openapi.components.parameters && Object.keys(openapi.components.parameters).length === 0) {\n delete openapi.components.parameters;\n }\n if (openapi.components.examples && Object.keys(openapi.components.examples).length === 0) {\n delete openapi.components.examples;\n }\n if (openapi.components.requestBodies && Object.keys(openapi.components.requestBodies).length === 0) {\n delete openapi.components.requestBodies;\n }\n if (openapi.components.securitySchemes && Object.keys(openapi.components.securitySchemes).length === 0) {\n delete openapi.components.securitySchemes;\n }\n if (openapi.components.headers && Object.keys(openapi.components.headers).length === 0) {\n delete openapi.components.headers;\n }\n if (openapi.components.schemas && Object.keys(openapi.components.schemas).length === 0) {\n delete openapi.components.schemas;\n }\n if (openapi.components && Object.keys(openapi.components).length === 0) {\n delete openapi.components;\n }\n\n return openapi;\n}\n\nfunction extractServerParameters(server) {\n if (!server || !server.url || (typeof server.url !== 'string')) return server;\n server.url = server.url.split('{{').join('{');\n server.url = server.url.split('}}').join('}');\n server.url.replace(/\\{(.+?)\\}/g, function (match, group1) { // TODO extend to :parameters (not port)?\n if (!server.variables) {\n server.variables = {};\n }\n server.variables[group1] = { default: 'unknown' };\n });\n return server;\n}\n\nfunction fixInfo(openapi, options, reject) {\n if ((typeof openapi.info === 'undefined') || (openapi.info === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info = { version: '', title: '' };\n }\n else {\n return reject(new S2OError('(Patchable) info object is mandatory'));\n }\n }\n if ((typeof openapi.info !== 'object') || (Array.isArray(openapi.info))) {\n return reject(new S2OError('info must be an object'));\n }\n if ((typeof openapi.info.title === 'undefined') || (openapi.info.title === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info.title = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.title cannot be null'));\n }\n }\n if ((typeof openapi.info.version === 'undefined') || (openapi.info.version === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info.version = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.version cannot be null'));\n }\n }\n if (typeof openapi.info.version !== 'string') {\n if (options.patch) {\n options.patches++;\n openapi.info.version = openapi.info.version.toString();\n }\n else {\n return reject(new S2OError('(Patchable) info.version must be a string'));\n }\n }\n if (typeof openapi.info.logo !== 'undefined') {\n if (options.patch) {\n options.patches++;\n openapi.info['x-logo'] = openapi.info.logo;\n delete openapi.info.logo;\n }\n else return reject(new S2OError('(Patchable) info should not have logo property'));\n }\n if (typeof openapi.info.termsOfService !== 'undefined') {\n if (openapi.info.termsOfService === null) {\n if (options.patch) {\n options.patches++;\n openapi.info.termsOfService = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.termsOfService cannot be null'));\n }\n }\n if (url.URL && options.whatwg) {\n try {\n url.URL.parse(openapi.info.termsOfService);\n }\n catch (ex) {\n if (options.patch) {\n options.patches++;\n delete openapi.info.termsOfService;\n }\n else return reject(new S2OError('(Patchable) info.termsOfService must be a URL'));\n }\n }\n }\n}\n\nfunction fixPaths(openapi, options, reject) {\n if (typeof openapi.paths === 'undefined') {\n if (options.patch) {\n options.patches++;\n openapi.paths = {};\n }\n else {\n return reject(new S2OError('(Patchable) paths object is mandatory'));\n }\n }\n}\n\nfunction detectObjectReferences(obj, options) {\n const seen = new WeakSet();\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if ((typeof obj[key] === 'object') && (obj[key] !== null)) {\n if (seen.has(obj[key])) {\n if (options.anchors) {\n obj[key] = clone(obj[key]);\n }\n else {\n throwError('YAML anchor or merge key at '+state.path, options);\n }\n }\n else {\n seen.add(obj[key]);\n }\n }\n });\n}\n\nfunction convertObj(swagger, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n if (!swagger) swagger = {};\n options.original = swagger;\n if (!options.text) options.text = yaml.stringify(swagger);\n options.externals = [];\n options.externalRefs = {};\n options.rewriteRefs = true; // avoids stack explosions\n options.preserveMiro = true;\n options.promise = {};\n options.promise.resolve = resolve;\n options.promise.reject = reject;\n options.patches = 0;\n if (!options.cache) options.cache = {};\n if (options.source) options.cache[options.source] = options.original;\n\n detectObjectReferences(swagger, options);\n\n if (swagger.openapi && (typeof swagger.openapi === 'string') && swagger.openapi.startsWith('3.')) {\n options.openapi = cclone(swagger);\n fixInfo(options.openapi, options, reject);\n fixPaths(options.openapi, options, reject);\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n if (options.direct) {\n return resolve(options.openapi);\n }\n else {\n return resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n return; // we should have resolved or rejected by now\n }\n\n if ((!swagger.swagger) || (swagger.swagger != \"2.0\")) {\n return reject(new S2OError('Unsupported swagger/OpenAPI version: ' + (swagger.openapi ? swagger.openapi : swagger.swagger)));\n }\n\n let openapi = options.openapi = {};\n openapi.openapi = (typeof options.targetVersion === 'string' && options.targetVersion.startsWith('3.')) ? options.targetVersion : targetVersion; // semver\n\n if (options.origin) {\n if (!openapi[\"x-origin\"]) {\n openapi[\"x-origin\"] = [];\n }\n let origin = {};\n origin.url = options.source||options.origin;\n origin.format = 'swagger';\n origin.version = swagger.swagger;\n origin.converter = {};\n origin.converter.url = 'https://github.com/mermade/oas-kit';\n origin.converter.version = ourVersion;\n openapi[\"x-origin\"].push(origin);\n }\n\n // we want the new and existing properties to appear in a sensible order. Not guaranteed\n openapi = Object.assign(openapi, cclone(swagger));\n delete openapi.swagger;\n recurse(openapi, {}, function(obj, key, state){\n if ((obj[key] === null) && (!key.startsWith('x-')) && key !== 'default' && (state.path.indexOf('/example') < 0)) delete obj[key]; // this saves *so* much grief later\n });\n\n if (swagger.host) {\n for (let s of (Array.isArray(swagger.schemes) ? swagger.schemes : [''])) {\n let server = {};\n server.url = (s ? s+':' : '') + '//' + swagger.host + (swagger.basePath ? swagger.basePath : '');\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n }\n else if (swagger.basePath) {\n let server = {};\n server.url = swagger.basePath;\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n delete openapi.host;\n delete openapi.basePath;\n\n if (openapi['x-servers'] && Array.isArray(openapi['x-servers'])) {\n openapi.servers = openapi['x-servers'];\n delete openapi['x-servers'];\n }\n\n // TODO APIMatic extensions (x-server-configuration) ?\n\n if (swagger['x-ms-parameterized-host']) {\n let xMsPHost = swagger['x-ms-parameterized-host'];\n let server = {};\n server.url = xMsPHost.hostTemplate + (swagger.basePath ? swagger.basePath : '');\n server.variables = {};\n for (let msp in xMsPHost.parameters) {\n let param = xMsPHost.parameters[msp];\n if (param.$ref) {\n param = clone(resolveInternal(openapi, param.$ref));\n }\n if (!msp.startsWith('x-')) {\n delete param.required; // all true\n delete param.type; // all strings\n delete param.in; // all 'host'\n if (typeof param.default === 'undefined') {\n if (param.enum) {\n param.default = param.enum[0];\n }\n else {\n param.default = '';\n }\n }\n server.variables[param.name] = param;\n delete param.name;\n }\n }\n if (!openapi.servers) openapi.servers = [];\n if (xMsPHost.useSchemePrefix === false) {\n // The server URL already includes a protocol scheme\n openapi.servers.push(server);\n } else {\n // Define this server once for each given protocol scheme\n swagger.schemes.forEach((scheme) => {\n openapi.servers.push(\n Object.assign({}, server, { url: scheme + '://' + server.url })\n )\n });\n }\n delete openapi['x-ms-parameterized-host'];\n }\n\n fixInfo(openapi, options, reject);\n fixPaths(openapi, options, reject);\n\n if (typeof openapi.consumes === 'string') {\n openapi.consumes = [openapi.consumes];\n }\n if (typeof openapi.produces === 'string') {\n openapi.produces = [openapi.produces];\n }\n\n openapi.components = {};\n if (openapi['x-callbacks']) {\n openapi.components.callbacks = openapi['x-callbacks'];\n delete openapi['x-callbacks'];\n }\n openapi.components.examples = {};\n openapi.components.headers = {};\n if (openapi['x-links']) {\n openapi.components.links = openapi['x-links'];\n delete openapi['x-links'];\n }\n openapi.components.parameters = openapi.parameters || {};\n openapi.components.responses = openapi.responses || {};\n openapi.components.requestBodies = {};\n openapi.components.securitySchemes = openapi.securityDefinitions || {};\n openapi.components.schemas = openapi.definitions || {};\n delete openapi.definitions;\n delete openapi.responses;\n delete openapi.parameters;\n delete openapi.securityDefinitions;\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n main(options.openapi, options);\n if (options.direct) {\n resolve(options.openapi);\n }\n else {\n resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n\n }));\n}\n\nfunction convertStr(str, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let obj = null;\n let error = null;\n try {\n obj = JSON.parse(str);\n options.text = JSON.stringify(obj,null,2);\n }\n catch (ex) {\n error = ex;\n try {\n obj = yaml.parse(str, { schema: 'core', prettyErrors: true });\n options.sourceYaml = true;\n options.text = str;\n }\n catch (ex) {\n error = ex;\n }\n }\n if (obj) {\n convertObj(obj, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n else {\n reject(new S2OError(error ? error.message : 'Could not parse string'));\n }\n }));\n}\n\nfunction convertUrl(url, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n options.origin = true;\n if (!options.source) {\n options.source = url;\n }\n if (options.verbose) {\n console.warn('GET ' + url);\n }\n if (!options.fetch) {\n options.fetch = fetch;\n }\n const fetchOptions = Object.assign({}, options.fetchOptions, {agent:options.agent});\n options.fetch(url, fetchOptions).then(function (res) {\n if (res.status !== 200) throw new S2OError(`Received status code ${res.status}: ${url}`);\n return res.text();\n }).then(function (body) {\n convertStr(body, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }).catch(function (err) {\n reject(err);\n });\n }));\n}\n\nfunction convertFile(filename, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n fs.readFile(filename, options.encoding || 'utf8', function (err, s) {\n if (err) {\n reject(err);\n }\n else {\n options.sourceFile = filename;\n convertStr(s, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n });\n }));\n}\n\nfunction convertStream(readable, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let data = '';\n readable.on('data', function (chunk) {\n data += chunk;\n })\n .on('end', function () {\n convertStr(data, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n });\n }));\n}\n\nmodule.exports = {\n S2OError: S2OError,\n targetVersion: targetVersion,\n convert: convertObj,\n convertObj: convertObj,\n convertUrl: convertUrl,\n convertStr: convertStr,\n convertFile: convertFile,\n convertStream: convertStream\n};\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","module.exports = require(\"react-dropdown-aria\");","module.exports = require(\"dompurify\");","module.exports = require(\"classnames\");","module.exports = require(\"call-me-maybe\");","'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst url = require('url');\n\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js').jptr;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst clone = require('reftools/lib/clone.js').clone;\nconst deRef = require('reftools/lib/dereference.js').dereference;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst common = require('oas-kit-common');\n\nfunction unique(arr) {\n return [... new Set(arr)];\n}\n\nfunction readFileAsync(filename, encoding) {\n return new Promise(function (resolve, reject) {\n fs.readFile(filename, encoding, function (err, data) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n });\n}\n\nfunction resolveAllFragment(obj, context, src, parentPath, base, options) {\n\n let attachPoint = options.externalRefs[src+parentPath].paths[0];\n\n let baseUrl = url.parse(base);\n let seen = {}; // seen is indexed by the $ref value and contains path replacements\n let changes = 1;\n while (changes) {\n changes = 0;\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if (isRef(obj, key)) {\n if (obj[key].startsWith('#')) {\n if (!seen[obj[key]] && !obj.$fixed) {\n let target = clone(jptr(context, obj[key]));\n if (options.verbose>1) console.warn((target === false ? common.colour.red : common.colour.green)+'Fragment resolution', obj[key], common.colour.normal);\n /*\n ResolutionCase:A is where there is a local reference in an externally\n referenced document, and we have not seen it before. The reference\n is replaced by a copy of the data pointed to, which may be outside this fragment\n but within the context of the external document\n */\n if (target === false) {\n state.parent[state.pkey] = {}; /* case:A(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Fragment $ref resolution failed '+obj[key]);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n else {\n changes++;\n state.parent[state.pkey] = target;\n seen[obj[key]] = state.path.replace('/%24ref','');\n }\n }\n else {\n if (!obj.$fixed) {\n let newRef = (attachPoint+'/'+seen[obj[key]]).split('/#/').join('/');\n state.parent[state.pkey] = { $ref: newRef, 'x-miro': obj[key], $fixed: true };\n if (options.verbose>1) console.warn('Replacing with',newRef);\n changes++;\n }\n /*\n ResolutionCase:B is where there is a local reference in an externally\n referenced document, and we have seen this reference before and resolved it.\n We create a new object containing the (immutable) $ref string\n */\n }\n }\n else if (baseUrl.protocol) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external url ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key];\n obj[key] = newRef;\n }\n else if (!obj['x-miro']) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key]; // we use x-miro as a flag so we don't do this > once\n obj[key] = newRef;\n }\n }\n });\n }\n\n recurse(obj,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (typeof obj.$fixed !== 'undefined') delete obj.$fixed;\n }\n });\n\n if (options.verbose>1) console.warn('Finished fragment resolution');\n return obj;\n}\n\nfunction filterData(data, options) {\n if (!options.filters || !options.filters.length) return data;\n for (let filter of options.filters) {\n data = filter(data, options);\n }\n return data;\n}\n\nfunction testProtocol(input, backup) {\n if (input && input.length > 2) return input;\n if (backup && backup.length > 2) return backup;\n return 'file:';\n}\n\nfunction resolveExternal(root, pointer, options, callback) {\n var u = url.parse(options.source);\n var base = options.source.split('\\\\').join('/').split('/');\n let doc = base.pop(); // drop the actual filename\n if (!doc) base.pop(); // in case it ended with a /\n let fragment = '';\n let fnComponents = pointer.split('#');\n if (fnComponents.length > 1) {\n fragment = '#' + fnComponents[1];\n pointer = fnComponents[0];\n }\n base = base.join('/');\n\n let u2 = url.parse(pointer);\n let effectiveProtocol = testProtocol(u2.protocol, u.protocol);\n\n let target;\n if (effectiveProtocol === 'file:') {\n target = path.resolve(base ? base + '/' : '', pointer);\n }\n else {\n target = url.resolve(base ? base + '/' : '', pointer);\n }\n\n if (options.cache[target]) {\n if (options.verbose) console.warn('CACHED', target, fragment);\n /*\n resolutionSource:A this is where we have cached the externally-referenced document from a\n file, http or custom handler\n */\n let context = clone(options.cache[target]);\n let data = options.externalRef = context;\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; // case:A(2) where the resolution fails\n if (options.fatal) {\n let ex = new Error('Cached $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n callback(clone(data), target, options);\n return Promise.resolve(data);\n }\n\n if (options.verbose) console.warn('GET', target, fragment);\n\n if (options.handlers && options.handlers[effectiveProtocol]) {\n return options.handlers[effectiveProtocol](base, pointer, fragment, options)\n .then(function (data) {\n options.externalRef = data;\n data = filterData(data, options);\n options.cache[target] = data;\n callback(data, target, options);\n return data;\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n throw(ex);\n });\n }\n else if (effectiveProtocol && effectiveProtocol.startsWith('http')) {\n const fetchOptions = Object.assign({}, options.fetchOptions, { agent: options.agent });\n return options.fetch(target, fetchOptions)\n .then(function (res) {\n if (res.status !== 200) throw new Error(`Received status code ${res.status}: ${target}`);\n return res.text();\n })\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n options.cache[target] = clone(data);\n /* resolutionSource:B, from the network, data is fresh, but we clone it into the cache */\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:B(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Remote $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function (err) {\n if (options.verbose) console.warn(err);\n options.cache[target] = {};\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n else {\n return readFileAsync(target, options.encoding || 'utf8')\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n /*\n resolutionSource:C from a file, data is fresh but we clone it into the cache\n */\n options.cache[target] = clone(data);\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:C(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('File $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function(err){\n if (options.verbose) console.warn(err);\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n}\n\nfunction scanExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n function inner(obj,key,state){\n if (obj[key] && isRef(obj[key],'$ref')) {\n let $ref = obj[key].$ref;\n if (!$ref.startsWith('#')) { // is external\n\n let $extra = '';\n\n if (!refs[$ref]) {\n let potential = Object.keys(refs).find(function(e,i,a){\n return $ref.startsWith(e+'/');\n });\n if (potential) {\n if (options.verbose) console.warn('Found potential subschema at',potential);\n $extra = '/'+($ref.split('#')[1]||'').replace(potential.split('#')[1]||'');\n $extra = $extra.split('/undefined').join(''); // FIXME\n $ref = potential;\n }\n }\n\n if (!refs[$ref]) {\n refs[$ref] = { resolved: false, paths: [], extras:{}, description: obj[key].description };\n }\n if (refs[$ref].resolved) {\n if (options.rewriteRefs) {\n // we've already seen it\n let newRef = refs[$ref].resolvedAt;\n if (options.verbose>1) console.warn('Rewriting ref', $ref, newRef);\n obj[key]['x-miro'] = $ref;\n obj[key].$ref = newRef+$extra; // resolutionCase:C (new string)\n }\n else {\n obj[key] = clone(refs[$ref].data); // resolutionCase:D (cloned:yes)\n }\n }\n else {\n refs[$ref].paths.push(state.path);\n refs[$ref].extras[state.path] = $extra;\n }\n }\n }\n }\n\n let refs = options.externalRefs;\n\n if ((options.resolver.depth>0) && (options.source === options.resolver.base)) {\n // we only need to do any of this when called directly on pass #1\n return res(refs);\n }\n\n recurse(options.openapi.definitions, {identityDetection: true, path: '#/definitions'}, inner);\n recurse(options.openapi.components, {identityDetection: true, path: '#/components'}, inner);\n recurse(options.openapi, {identityDetection: true}, inner);\n\n res(refs);\n });\n}\n\nfunction findExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n scanExternalRefs(options)\n .then(function (refs) {\n for (let ref in refs) {\n\n if (!refs[ref].resolved) {\n let depth = options.resolver.depth;\n if (depth>0) depth++;\n options.resolver.actions[depth].push(function () {\n return resolveExternal(options.openapi, ref, options, function (data, source, options) {\n if (!refs[ref].resolved) {\n let external = {};\n external.context = refs[ref];\n external.$ref = ref;\n external.original = clone(data);\n external.updated = data;\n external.source = source;\n options.externals.push(external);\n refs[ref].resolved = true;\n }\n\n let localOptions = Object.assign({}, options, { source: '',\n resolver: {actions: options.resolver.actions,\n depth: options.resolver.actions.length-1, base: options.resolver.base } });\n if (options.patch && refs[ref].description && !data.description &&\n (typeof data === 'object')) {\n data.description = refs[ref].description;\n }\n refs[ref].data = data;\n\n // sorting $refs by length causes bugs (due to overlapping regions?)\n let pointers = unique(refs[ref].paths);\n pointers = pointers.sort(function(a,b){\n const aComp = (a.startsWith('#/components/') || a.startsWith('#/definitions/'));\n const bComp = (b.startsWith('#/components/') || b.startsWith('#/definitions/'));\n if (aComp && !bComp) return -1;\n if (bComp && !aComp) return +1;\n return 0;\n });\n\n for (let ptr of pointers) {\n // shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js\n if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {\n if (options.verbose>1) console.warn('Creating pointer to data at', ptr);\n jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt+refs[ref].extras[ptr], 'x-miro': ref+refs[ref].extras[ptr] }); // resolutionCase:E (new object)\n }\n else {\n if (refs[ref].resolvedAt) {\n if (options.verbose>1) console.warn('Avoiding circular reference');\n }\n else {\n refs[ref].resolvedAt = ptr;\n if (options.verbose>1) console.warn('Creating initial clone of data at', ptr);\n }\n let cdata = clone(data);\n jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)\n }\n }\n if (options.resolver.actions[localOptions.resolver.depth].length === 0) {\n //options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });\n options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs\n }\n });\n });\n }\n }\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n\n let result = {options:options};\n result.actions = options.resolver.actions[options.resolver.depth];\n res(result);\n });\n}\n\nconst serial = funcs =>\n funcs.reduce((promise, func) =>\n promise.then(result => func().then(Array.prototype.concat.bind(result))), Promise.resolve([]));\n\nfunction loopReferences(options, res, rej) {\n options.resolver.actions.push([]);\n findExternalRefs(options)\n .then(function (data) {\n serial(data.actions)\n .then(function () {\n if (options.resolver.depth>=options.resolver.actions.length) {\n console.warn('Ran off the end of resolver actions');\n return res(true);\n } else {\n options.resolver.depth++;\n if (options.resolver.actions[options.resolver.depth].length) {\n setTimeout(function () {\n loopReferences(data.options, res, rej);\n }, 0);\n }\n else {\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished external resolution!',common.colour.normal);\n if (options.resolveInternal) {\n if (options.verbose>1) console.warn(common.colour.yellow+'Starting internal resolution!',common.colour.normal);\n options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);\n }\n recurse(options.openapi,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (!options.preserveMiro) delete obj['x-miro'];\n }\n });\n res(options);\n }\n }\n })\n .catch(function (ex) {\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n}\n\nfunction setupOptions(options) {\n if (!options.cache) options.cache = {};\n if (!options.fetch) options.fetch = fetch;\n\n if (options.source) {\n let srcUrl = url.parse(options.source);\n if (!srcUrl.protocol || srcUrl.protocol.length <= 2) { // windows drive-letters\n options.source = path.resolve(options.source);\n }\n }\n\n if (!options.externals) options.externals = [];\n if (!options.externalRefs) options.externalRefs = {};\n options.rewriteRefs = true;\n options.resolver = {};\n options.resolver.depth = 0;\n options.resolver.base = options.source;\n options.resolver.actions = [[]];\n}\n\n/** compatibility function for swagger2openapi */\nfunction optionalResolve(options) {\n setupOptions(options);\n return new Promise(function (res, rej) {\n if (options.resolve)\n loopReferences(options, res, rej)\n else\n res(options);\n });\n}\n\nfunction resolve(openapi,source,options) {\n if (!options) options = {};\n options.openapi = openapi;\n options.source = source;\n options.resolve = true;\n setupOptions(options);\n return new Promise(function (res, rej) {\n loopReferences(options, res, rej)\n });\n}\n\nmodule.exports = {\n optionalResolve: optionalResolve,\n resolve: resolve\n};\n\n","'use strict';\n\nconst recurse = require('./recurse.js').recurse;\nconst clone = require('./clone.js').shallowClone;\nconst jptr = require('./jptr.js').jptr;\nconst isRef = require('./isref.js').isRef;\n\nvar getLogger = function (options) {\n if (options && options.verbose) {\n return {\n warn: function() {\n var args = Array.prototype.slice.call(arguments);\n console.warn.apply(console, args);\n }\n }\n }\n else {\n return {\n warn: function() {\n //nop\n }\n }\n }\n}\n\n/**\n* dereferences the given object\n* @param o the object to dereference\n* @definitions a source of definitions to reference\n* @options optional settings (used recursively)\n* @return the dereferenced object\n*/\nfunction dereference(o,definitions,options) {\n if (!options) options = {};\n if (!options.cache) options.cache = {};\n if (!options.state) options.state = {};\n options.state.identityDetection = true;\n // options.depth allows us to limit cloning to the first invocation\n options.depth = (options.depth ? options.depth+1 : 1);\n let obj = (options.depth > 1 ? o : clone(o));\n let container = { data: obj };\n let defs = (options.depth > 1 ? definitions : clone(definitions));\n // options.master is the top level object, regardless of depth\n if (!options.master) options.master = obj;\n\n let logger = getLogger(options);\n\n let changes = 1;\n while (changes > 0) {\n changes = 0;\n recurse(container,options.state,function(obj,key,state){\n if (isRef(obj,key)) {\n let $ref = obj[key]; // immutable\n changes++;\n if (!options.cache[$ref]) {\n let entry = {};\n entry.path = state.path.split('/$ref')[0];\n entry.key = $ref;\n logger.warn('Dereffing %s at %s',$ref,entry.path);\n entry.source = defs;\n entry.data = jptr(entry.source,entry.key);\n if (entry.data === false) {\n entry.data = jptr(options.master,entry.key);\n entry.source = options.master;\n }\n if (entry.data === false) {\n logger.warn('Missing $ref target',entry.key);\n }\n options.cache[$ref] = entry;\n entry.data = state.parent[state.pkey] = dereference(jptr(entry.source,entry.key),entry.source,options);\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n entry.resolved = true;\n }\n else {\n let entry = options.cache[$ref];\n if (entry.resolved) {\n // we have already seen and resolved this reference\n logger.warn('Patching %s for %s',$ref,entry.path);\n state.parent[state.pkey] = entry.data;\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n }\n else if ($ref === entry.path) {\n // reference to itself, throw\n throw new Error(`Tight circle at ${entry.path}`);\n }\n else {\n // we're dealing with a circular reference here\n logger.warn('Unresolved ref');\n state.parent[state.pkey] = jptr(entry.source,entry.path);\n if (state.parent[state.pkey] === false) {\n state.parent[state.pkey] = jptr(entry.source,entry.key);\n }\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[options.$ref] = $ref;\n }\n }\n }\n });\n }\n return container.data;\n}\n\nmodule.exports = {\n dereference : dereference\n};\n\n","module.exports = require(\"fast-safe-stringify\");","'use strict';\n\n/**\n* functions to walk an OpenAPI schema object and traverse all subschemas\n* calling a callback function on each one\n*/\n\n/**\n* obtains the default starting state for the `state` object used\n* by walkSchema\n* @return the state object suitable for use in walkSchema\n*/\nfunction getDefaultState() {\n return { depth: 0, seen: new WeakMap(), top: true, combine: false, allowRefSiblings: false };\n}\n\n/**\n* begins the walk of a schema object\n* @param parent the parent schema, if any. Use empty object if none\n* @param state the initial starting state of the walker, usually obtained from `getDefaultState`. Use empty object to auto-initialise\n* @param callback a function taking a schema, parent and state to be called on this and all subschemas\n* @return the schema object\n*/\nfunction walkSchema(schema, parent, state, callback) {\n\n if (typeof state.depth === 'undefined') state = getDefaultState();\n if ((schema === null) || (typeof schema === 'undefined')) return schema;\n if (typeof schema.$ref !== 'undefined') {\n let temp = {$ref:schema.$ref};\n if (state.allowRefSiblings && schema.description) {\n temp.description = schema.description;\n }\n callback(temp,parent,state);\n return temp; // all other properties SHALL be ignored\n }\n\n if (state.combine) {\n if (schema.allOf && Array.isArray(schema.allOf) && schema.allOf.length === 1) {\n schema = Object.assign({},schema.allOf[0],schema);\n delete schema.allOf;\n }\n if (schema.anyOf && Array.isArray(schema.anyOf) && schema.anyOf.length === 1) {\n schema = Object.assign({},schema.anyOf[0],schema);\n delete schema.anyOf;\n }\n if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length === 1) {\n schema = Object.assign({},schema.oneOf[0],schema);\n delete schema.oneOf;\n }\n }\n\n callback(schema,parent,state);\n if (state.seen.has(schema)) {\n return schema;\n }\n //else\n if ((typeof schema === 'object') && (schema !== null)) state.seen.set(schema,true);\n state.top = false;\n state.depth++;\n\n if (typeof schema.items !== 'undefined') {\n state.property = 'items';\n walkSchema(schema.items,schema,state,callback);\n }\n if (schema.additionalItems) {\n if (typeof schema.additionalItems === 'object') {\n state.property = 'additionalItems';\n walkSchema(schema.additionalItems,schema,state,callback);\n }\n }\n if (schema.additionalProperties) {\n if (typeof schema.additionalProperties === 'object') {\n state.property = 'additionalProperties';\n walkSchema(schema.additionalProperties,schema,state,callback);\n }\n }\n if (schema.properties) {\n for (let prop in schema.properties) {\n let subSchema = schema.properties[prop];\n state.property = 'properties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.patternProperties) {\n for (let prop in schema.patternProperties) {\n let subSchema = schema.patternProperties[prop];\n state.property = 'patternProperties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.allOf) {\n for (let index in schema.allOf) {\n let subSchema = schema.allOf[index];\n state.property = 'allOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.anyOf) {\n for (let index in schema.anyOf) {\n let subSchema = schema.anyOf[index];\n state.property = 'anyOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.oneOf) {\n for (let index in schema.oneOf) {\n let subSchema = schema.oneOf[index];\n state.property = 'oneOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.not) {\n state.property = 'not';\n walkSchema(schema.not,schema,state,callback);\n }\n state.depth--;\n return schema;\n}\n\nmodule.exports = {\n getDefaultState: getDefaultState,\n walkSchema: walkSchema\n};\n\n","'use strict';\n\nconst http = require('http');\n\nconst ours = {\n \"default\": \"Default response\",\n \"1XX\": \"Informational\",\n \"103\": \"Early hints\", // not in Node < 10\n \"2XX\": \"Successful\",\n \"3XX\": \"Redirection\",\n \"4XX\": \"Client Error\",\n \"5XX\": \"Server Error\",\n \"7XX\": \"Developer Error\" // April fools RFC\n};\n\nmodule.exports = {\n statusCodes: Object.assign({},ours,http.STATUS_CODES)\n};\n\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","module.exports = require(\"to-arraybuffer\");","module.exports = require(\"xtend\");","module.exports = require(\"builtin-status-codes\");","module.exports = require(\"prismjs/components/prism-bash.js\");","module.exports = require(\"prismjs/components/prism-c.js\");","module.exports = require(\"prismjs/components/prism-clike.js\");","module.exports = require(\"prismjs/components/prism-coffeescript.js\");","module.exports = require(\"prismjs/components/prism-cpp.js\");","module.exports = require(\"prismjs/components/prism-csharp.js\");","module.exports = require(\"prismjs/components/prism-go.js\");","module.exports = require(\"prismjs/components/prism-http.js\");","module.exports = require(\"prismjs/components/prism-java.js\");","module.exports = require(\"prismjs/components/prism-lua.js\");","module.exports = require(\"prismjs/components/prism-markup-templating.js\");","module.exports = require(\"prismjs/components/prism-markup.js\");","module.exports = require(\"prismjs/components/prism-objectivec.js\");","module.exports = require(\"prismjs/components/prism-perl.js\");","module.exports = require(\"prismjs/components/prism-php.js\");","module.exports = require(\"prismjs/components/prism-python.js\");","module.exports = require(\"prismjs/components/prism-ruby.js\");","module.exports = require(\"prismjs/components/prism-scala.js\");","module.exports = require(\"prismjs/components/prism-sql.js\");","module.exports = require(\"prismjs/components/prism-swift.js\");","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"add\",\"done\",\"toJS\",\"load\",\"dispose\",\"search\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(URL.createObjectURL(new Blob([\"/*!\\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\\n * -------------------------------------------------------------\\n * Version: \\\"2.0.0-rc.37\\\"\\n * Repo: https://github.com/Redocly/redoc\\n */\\n/******/ (function(modules) { // webpackBootstrap\\n/******/ \\t// The module cache\\n/******/ \\tvar installedModules = {};\\n/******/\\n/******/ \\t// The require function\\n/******/ \\tfunction __webpack_require__(moduleId) {\\n/******/\\n/******/ \\t\\t// Check if module is in cache\\n/******/ \\t\\tif(installedModules[moduleId]) {\\n/******/ \\t\\t\\treturn installedModules[moduleId].exports;\\n/******/ \\t\\t}\\n/******/ \\t\\t// Create a new module (and put it into the cache)\\n/******/ \\t\\tvar module = installedModules[moduleId] = {\\n/******/ \\t\\t\\ti: moduleId,\\n/******/ \\t\\t\\tl: false,\\n/******/ \\t\\t\\texports: {}\\n/******/ \\t\\t};\\n/******/\\n/******/ \\t\\t// Execute the module function\\n/******/ \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n/******/\\n/******/ \\t\\t// Flag the module as loaded\\n/******/ \\t\\tmodule.l = true;\\n/******/\\n/******/ \\t\\t// Return the exports of the module\\n/******/ \\t\\treturn module.exports;\\n/******/ \\t}\\n/******/\\n/******/\\n/******/ \\t// expose the modules object (__webpack_modules__)\\n/******/ \\t__webpack_require__.m = modules;\\n/******/\\n/******/ \\t// expose the module cache\\n/******/ \\t__webpack_require__.c = installedModules;\\n/******/\\n/******/ \\t// define getter function for harmony exports\\n/******/ \\t__webpack_require__.d = function(exports, name, getter) {\\n/******/ \\t\\tif(!__webpack_require__.o(exports, name)) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n/******/ \\t\\t}\\n/******/ \\t};\\n/******/\\n/******/ \\t// define __esModule on exports\\n/******/ \\t__webpack_require__.r = function(exports) {\\n/******/ \\t\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\n/******/ \\t\\t}\\n/******/ \\t\\tObject.defineProperty(exports, '__esModule', { value: true });\\n/******/ \\t};\\n/******/\\n/******/ \\t// create a fake namespace object\\n/******/ \\t// mode & 1: value is a module id, require it\\n/******/ \\t// mode & 2: merge all properties of value into the ns\\n/******/ \\t// mode & 4: return value when already ns object\\n/******/ \\t// mode & 8|1: behave like require\\n/******/ \\t__webpack_require__.t = function(value, mode) {\\n/******/ \\t\\tif(mode & 1) value = __webpack_require__(value);\\n/******/ \\t\\tif(mode & 8) return value;\\n/******/ \\t\\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\\n/******/ \\t\\tvar ns = Object.create(null);\\n/******/ \\t\\t__webpack_require__.r(ns);\\n/******/ \\t\\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\\n/******/ \\t\\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n/******/ \\t\\treturn ns;\\n/******/ \\t};\\n/******/\\n/******/ \\t// getDefaultExport function for compatibility with non-harmony modules\\n/******/ \\t__webpack_require__.n = function(module) {\\n/******/ \\t\\tvar getter = module && module.__esModule ?\\n/******/ \\t\\t\\tfunction getDefault() { return module['default']; } :\\n/******/ \\t\\t\\tfunction getModuleExports() { return module; };\\n/******/ \\t\\t__webpack_require__.d(getter, 'a', getter);\\n/******/ \\t\\treturn getter;\\n/******/ \\t};\\n/******/\\n/******/ \\t// Object.prototype.hasOwnProperty.call\\n/******/ \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n/******/\\n/******/ \\t// __webpack_public_path__\\n/******/ \\t__webpack_require__.p = \\\"\\\";\\n/******/\\n/******/\\n/******/ \\t// Load entry module and return exports\\n/******/ \\treturn __webpack_require__(__webpack_require__.s = 97);\\n/******/ })\\n/************************************************************************/\\n/******/ ([\\n/* 0 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\\n return it && it.Math == Math && it;\\n};\\n\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nmodule.exports =\\n // eslint-disable-next-line no-undef\\n check(typeof globalThis == 'object' && globalThis) ||\\n check(typeof window == 'object' && window) ||\\n check(typeof self == 'object' && self) ||\\n check(typeof global == 'object' && global) ||\\n // eslint-disable-next-line no-new-func\\n Function('return this')();\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\\n\\n/***/ }),\\n/* 1 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar shared = __webpack_require__(32);\\nvar has = __webpack_require__(3);\\nvar uid = __webpack_require__(36);\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\\n\\nvar WellKnownSymbolsStore = shared('wks');\\nvar Symbol = global.Symbol;\\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\\n\\nmodule.exports = function (name) {\\n if (!has(WellKnownSymbolsStore, name)) {\\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\\n } return WellKnownSymbolsStore[name];\\n};\\n\\n\\n/***/ }),\\n/* 2 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it)) {\\n throw TypeError(String(it) + ' is not an object');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 3 */\\n/***/ (function(module, exports) {\\n\\nvar hasOwnProperty = {}.hasOwnProperty;\\n\\nmodule.exports = function (it, key) {\\n return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/***/ }),\\n/* 4 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\\n * Copyright (C) 2019 Oliver Nightingale\\n * @license MIT\\n */\\n\\n;(function(){\\n\\n/**\\n * A convenience function for configuring and constructing\\n * a new lunr Index.\\n *\\n * A lunr.Builder instance is created and the pipeline setup\\n * with a trimmer, stop word filter and stemmer.\\n *\\n * This builder object is yielded to the configuration function\\n * that is passed as a parameter, allowing the list of fields\\n * and other builder parameters to be customised.\\n *\\n * All documents _must_ be added within the passed config function.\\n *\\n * @example\\n * var idx = lunr(function () {\\n * this.field('title')\\n * this.field('body')\\n * this.ref('id')\\n *\\n * documents.forEach(function (doc) {\\n * this.add(doc)\\n * }, this)\\n * })\\n *\\n * @see {@link lunr.Builder}\\n * @see {@link lunr.Pipeline}\\n * @see {@link lunr.trimmer}\\n * @see {@link lunr.stopWordFilter}\\n * @see {@link lunr.stemmer}\\n * @namespace {function} lunr\\n */\\nvar lunr = function (config) {\\n var builder = new lunr.Builder\\n\\n builder.pipeline.add(\\n lunr.trimmer,\\n lunr.stopWordFilter,\\n lunr.stemmer\\n )\\n\\n builder.searchPipeline.add(\\n lunr.stemmer\\n )\\n\\n config.call(builder, builder)\\n return builder.build()\\n}\\n\\nlunr.version = \\\"2.3.8\\\"\\n/*!\\n * lunr.utils\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A namespace containing utils for the rest of the lunr library\\n * @namespace lunr.utils\\n */\\nlunr.utils = {}\\n\\n/**\\n * Print a warning message to the console.\\n *\\n * @param {String} message The message to be printed.\\n * @memberOf lunr.utils\\n * @function\\n */\\nlunr.utils.warn = (function (global) {\\n /* eslint-disable no-console */\\n return function (message) {\\n if (global.console && console.warn) {\\n console.warn(message)\\n }\\n }\\n /* eslint-enable no-console */\\n})(this)\\n\\n/**\\n * Convert an object to a string.\\n *\\n * In the case of `null` and `undefined` the function returns\\n * the empty string, in all other cases the result of calling\\n * `toString` on the passed object is returned.\\n *\\n * @param {Any} obj The object to convert to a string.\\n * @return {String} string representation of the passed object.\\n * @memberOf lunr.utils\\n */\\nlunr.utils.asString = function (obj) {\\n if (obj === void 0 || obj === null) {\\n return \\\"\\\"\\n } else {\\n return obj.toString()\\n }\\n}\\n\\n/**\\n * Clones an object.\\n *\\n * Will create a copy of an existing object such that any mutations\\n * on the copy cannot affect the original.\\n *\\n * Only shallow objects are supported, passing a nested object to this\\n * function will cause a TypeError.\\n *\\n * Objects with primitives, and arrays of primitives are supported.\\n *\\n * @param {Object} obj The object to clone.\\n * @return {Object} a clone of the passed object.\\n * @throws {TypeError} when a nested object is passed.\\n * @memberOf Utils\\n */\\nlunr.utils.clone = function (obj) {\\n if (obj === null || obj === undefined) {\\n return obj\\n }\\n\\n var clone = Object.create(null),\\n keys = Object.keys(obj)\\n\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i],\\n val = obj[key]\\n\\n if (Array.isArray(val)) {\\n clone[key] = val.slice()\\n continue\\n }\\n\\n if (typeof val === 'string' ||\\n typeof val === 'number' ||\\n typeof val === 'boolean') {\\n clone[key] = val\\n continue\\n }\\n\\n throw new TypeError(\\\"clone is not deep and does not support nested objects\\\")\\n }\\n\\n return clone\\n}\\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\\n this.docRef = docRef\\n this.fieldName = fieldName\\n this._stringValue = stringValue\\n}\\n\\nlunr.FieldRef.joiner = \\\"/\\\"\\n\\nlunr.FieldRef.fromString = function (s) {\\n var n = s.indexOf(lunr.FieldRef.joiner)\\n\\n if (n === -1) {\\n throw \\\"malformed field ref string\\\"\\n }\\n\\n var fieldRef = s.slice(0, n),\\n docRef = s.slice(n + 1)\\n\\n return new lunr.FieldRef (docRef, fieldRef, s)\\n}\\n\\nlunr.FieldRef.prototype.toString = function () {\\n if (this._stringValue == undefined) {\\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\\n }\\n\\n return this._stringValue\\n}\\n/*!\\n * lunr.Set\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A lunr set.\\n *\\n * @constructor\\n */\\nlunr.Set = function (elements) {\\n this.elements = Object.create(null)\\n\\n if (elements) {\\n this.length = elements.length\\n\\n for (var i = 0; i < this.length; i++) {\\n this.elements[elements[i]] = true\\n }\\n } else {\\n this.length = 0\\n }\\n}\\n\\n/**\\n * A complete set that contains all elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.complete = {\\n intersect: function (other) {\\n return other\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return true\\n }\\n}\\n\\n/**\\n * An empty set that contains no elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.empty = {\\n intersect: function () {\\n return this\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return false\\n }\\n}\\n\\n/**\\n * Returns true if this set contains the specified object.\\n *\\n * @param {object} object - Object whose presence in this set is to be tested.\\n * @returns {boolean} - True if this set contains the specified object.\\n */\\nlunr.Set.prototype.contains = function (object) {\\n return !!this.elements[object]\\n}\\n\\n/**\\n * Returns a new set containing only the elements that are present in both\\n * this set and the specified set.\\n *\\n * @param {lunr.Set} other - set to intersect with this set.\\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\\n */\\n\\nlunr.Set.prototype.intersect = function (other) {\\n var a, b, elements, intersection = []\\n\\n if (other === lunr.Set.complete) {\\n return this\\n }\\n\\n if (other === lunr.Set.empty) {\\n return other\\n }\\n\\n if (this.length < other.length) {\\n a = this\\n b = other\\n } else {\\n a = other\\n b = this\\n }\\n\\n elements = Object.keys(a.elements)\\n\\n for (var i = 0; i < elements.length; i++) {\\n var element = elements[i]\\n if (element in b.elements) {\\n intersection.push(element)\\n }\\n }\\n\\n return new lunr.Set (intersection)\\n}\\n\\n/**\\n * Returns a new set combining the elements of this and the specified set.\\n *\\n * @param {lunr.Set} other - set to union with this set.\\n * @return {lunr.Set} a new set that is the union of this and the specified set.\\n */\\n\\nlunr.Set.prototype.union = function (other) {\\n if (other === lunr.Set.complete) {\\n return lunr.Set.complete\\n }\\n\\n if (other === lunr.Set.empty) {\\n return this\\n }\\n\\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\\n}\\n/**\\n * A function to calculate the inverse document frequency for\\n * a posting. This is shared between the builder and the index\\n *\\n * @private\\n * @param {object} posting - The posting for a given term\\n * @param {number} documentCount - The total number of documents.\\n */\\nlunr.idf = function (posting, documentCount) {\\n var documentsWithTerm = 0\\n\\n for (var fieldName in posting) {\\n if (fieldName == '_index') continue // Ignore the term index, its not a field\\n documentsWithTerm += Object.keys(posting[fieldName]).length\\n }\\n\\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\\n\\n return Math.log(1 + Math.abs(x))\\n}\\n\\n/**\\n * A token wraps a string representation of a token\\n * as it is passed through the text processing pipeline.\\n *\\n * @constructor\\n * @param {string} [str=''] - The string token being wrapped.\\n * @param {object} [metadata={}] - Metadata associated with this token.\\n */\\nlunr.Token = function (str, metadata) {\\n this.str = str || \\\"\\\"\\n this.metadata = metadata || {}\\n}\\n\\n/**\\n * Returns the token string that is being wrapped by this object.\\n *\\n * @returns {string}\\n */\\nlunr.Token.prototype.toString = function () {\\n return this.str\\n}\\n\\n/**\\n * A token update function is used when updating or optionally\\n * when cloning a token.\\n *\\n * @callback lunr.Token~updateFunction\\n * @param {string} str - The string representation of the token.\\n * @param {Object} metadata - All metadata associated with this token.\\n */\\n\\n/**\\n * Applies the given function to the wrapped string token.\\n *\\n * @example\\n * token.update(function (str, metadata) {\\n * return str.toUpperCase()\\n * })\\n *\\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.update = function (fn) {\\n this.str = fn(this.str, this.metadata)\\n return this\\n}\\n\\n/**\\n * Creates a clone of this token. Optionally a function can be\\n * applied to the cloned token.\\n *\\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.clone = function (fn) {\\n fn = fn || function (s) { return s }\\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\\n}\\n/*!\\n * lunr.tokenizer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A function for splitting a string into tokens ready to be inserted into\\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\\n * the value of this property to change how strings are split into tokens.\\n *\\n * This tokenizer will convert its parameter to a string by calling `toString` and\\n * then will split this string on the character in `lunr.tokenizer.separator`.\\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\\n *\\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\\n * added as metadata to every token that is created from the object to be tokenized.\\n *\\n * @static\\n * @param {?(string|object|object[])} obj - The object to convert into tokens\\n * @param {?object} metadata - Optional metadata to associate with every token\\n * @returns {lunr.Token[]}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.tokenizer = function (obj, metadata) {\\n if (obj == null || obj == undefined) {\\n return []\\n }\\n\\n if (Array.isArray(obj)) {\\n return obj.map(function (t) {\\n return new lunr.Token(\\n lunr.utils.asString(t).toLowerCase(),\\n lunr.utils.clone(metadata)\\n )\\n })\\n }\\n\\n var str = obj.toString().toLowerCase(),\\n len = str.length,\\n tokens = []\\n\\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\\n var char = str.charAt(sliceEnd),\\n sliceLength = sliceEnd - sliceStart\\n\\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\\n\\n if (sliceLength > 0) {\\n var tokenMetadata = lunr.utils.clone(metadata) || {}\\n tokenMetadata[\\\"position\\\"] = [sliceStart, sliceLength]\\n tokenMetadata[\\\"index\\\"] = tokens.length\\n\\n tokens.push(\\n new lunr.Token (\\n str.slice(sliceStart, sliceEnd),\\n tokenMetadata\\n )\\n )\\n }\\n\\n sliceStart = sliceEnd + 1\\n }\\n\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * The separator used to split a string into tokens. Override this property to change the behaviour of\\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\\n *\\n * @static\\n * @see lunr.tokenizer\\n */\\nlunr.tokenizer.separator = /[\\\\s\\\\-]+/\\n/*!\\n * lunr.Pipeline\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\\n * tokens in documents entering the search index and queries being ran against\\n * the index.\\n *\\n * An instance of lunr.Index created with the lunr shortcut will contain a\\n * pipeline with a stop word filter and an English language stemmer. Extra\\n * functions can be added before or after either of these functions or these\\n * default functions can be removed.\\n *\\n * When run the pipeline will call each function in turn, passing a token, the\\n * index of that token in the original list of all tokens and finally a list of\\n * all the original tokens.\\n *\\n * The output of functions in the pipeline will be passed to the next function\\n * in the pipeline. To exclude a token from entering the index the function\\n * should return undefined, the rest of the pipeline will not be called with\\n * this token.\\n *\\n * For serialisation of pipelines to work, all functions used in an instance of\\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\\n * then be loaded. If trying to load a serialised pipeline that uses functions\\n * that are not registered an error will be thrown.\\n *\\n * If not planning on serialising the pipeline then registering pipeline functions\\n * is not necessary.\\n *\\n * @constructor\\n */\\nlunr.Pipeline = function () {\\n this._stack = []\\n}\\n\\nlunr.Pipeline.registeredFunctions = Object.create(null)\\n\\n/**\\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\\n * string as well as all known metadata. A pipeline function can mutate the token string\\n * or mutate (or add) metadata for a given token.\\n *\\n * A pipeline function can indicate that the passed token should be discarded by returning\\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\\n * functions and will not be added to the index.\\n *\\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\\n *\\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\\n *\\n * @interface lunr.PipelineFunction\\n * @param {lunr.Token} token - A token from the document being processed.\\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\\n * @returns {(?lunr.Token|lunr.Token[])}\\n */\\n\\n/**\\n * Register a function with the pipeline.\\n *\\n * Functions that are used in the pipeline should be registered if the pipeline\\n * needs to be serialised, or a serialised pipeline needs to be loaded.\\n *\\n * Registering a function does not add it to a pipeline, functions must still be\\n * added to instances of the pipeline for them to be used when running a pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @param {String} label - The label to register this function with\\n */\\nlunr.Pipeline.registerFunction = function (fn, label) {\\n if (label in this.registeredFunctions) {\\n lunr.utils.warn('Overwriting existing registered function: ' + label)\\n }\\n\\n fn.label = label\\n lunr.Pipeline.registeredFunctions[fn.label] = fn\\n}\\n\\n/**\\n * Warns if the function is not registered as a Pipeline function.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @private\\n */\\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\\n\\n if (!isRegistered) {\\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\\\n', fn)\\n }\\n}\\n\\n/**\\n * Loads a previously serialised pipeline.\\n *\\n * All functions to be loaded must already be registered with lunr.Pipeline.\\n * If any function from the serialised data has not been registered then an\\n * error will be thrown.\\n *\\n * @param {Object} serialised - The serialised pipeline to load.\\n * @returns {lunr.Pipeline}\\n */\\nlunr.Pipeline.load = function (serialised) {\\n var pipeline = new lunr.Pipeline\\n\\n serialised.forEach(function (fnName) {\\n var fn = lunr.Pipeline.registeredFunctions[fnName]\\n\\n if (fn) {\\n pipeline.add(fn)\\n } else {\\n throw new Error('Cannot load unregistered function: ' + fnName)\\n }\\n })\\n\\n return pipeline\\n}\\n\\n/**\\n * Adds new functions to the end of the pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.add = function () {\\n var fns = Array.prototype.slice.call(arguments)\\n\\n fns.forEach(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n this._stack.push(fn)\\n }, this)\\n}\\n\\n/**\\n * Adds a single function after a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n pos = pos + 1\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Adds a single function before a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Removes a function from the pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\\n */\\nlunr.Pipeline.prototype.remove = function (fn) {\\n var pos = this._stack.indexOf(fn)\\n if (pos == -1) {\\n return\\n }\\n\\n this._stack.splice(pos, 1)\\n}\\n\\n/**\\n * Runs the current list of functions that make up the pipeline against the\\n * passed tokens.\\n *\\n * @param {Array} tokens The tokens to run through the pipeline.\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.run = function (tokens) {\\n var stackLength = this._stack.length\\n\\n for (var i = 0; i < stackLength; i++) {\\n var fn = this._stack[i]\\n var memo = []\\n\\n for (var j = 0; j < tokens.length; j++) {\\n var result = fn(tokens[j], j, tokens)\\n\\n if (result === null || result === void 0 || result === '') continue\\n\\n if (Array.isArray(result)) {\\n for (var k = 0; k < result.length; k++) {\\n memo.push(result[k])\\n }\\n } else {\\n memo.push(result)\\n }\\n }\\n\\n tokens = memo\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * Convenience method for passing a string through a pipeline and getting\\n * strings out. This method takes care of wrapping the passed string in a\\n * token and mapping the resulting tokens back to strings.\\n *\\n * @param {string} str - The string to pass through the pipeline.\\n * @param {?object} metadata - Optional metadata to associate with the token\\n * passed to the pipeline.\\n * @returns {string[]}\\n */\\nlunr.Pipeline.prototype.runString = function (str, metadata) {\\n var token = new lunr.Token (str, metadata)\\n\\n return this.run([token]).map(function (t) {\\n return t.toString()\\n })\\n}\\n\\n/**\\n * Resets the pipeline by removing any existing processors.\\n *\\n */\\nlunr.Pipeline.prototype.reset = function () {\\n this._stack = []\\n}\\n\\n/**\\n * Returns a representation of the pipeline ready for serialisation.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.toJSON = function () {\\n return this._stack.map(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n\\n return fn.label\\n })\\n}\\n/*!\\n * lunr.Vector\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A vector is used to construct the vector space of documents and queries. These\\n * vectors support operations to determine the similarity between two documents or\\n * a document and a query.\\n *\\n * Normally no parameters are required for initializing a vector, but in the case of\\n * loading a previously dumped vector the raw elements can be provided to the constructor.\\n *\\n * For performance reasons vectors are implemented with a flat array, where an elements\\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\\n * allows the underlying array to be as sparse as possible and still offer decent\\n * performance when being used for vector calculations.\\n *\\n * @constructor\\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\\n */\\nlunr.Vector = function (elements) {\\n this._magnitude = 0\\n this.elements = elements || []\\n}\\n\\n\\n/**\\n * Calculates the position within the vector to insert a given index.\\n *\\n * This is used internally by insert and upsert. If there are duplicate indexes then\\n * the position is returned as if the value for that index were to be updated, but it\\n * is the callers responsibility to check whether there is a duplicate at that index\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.positionForIndex = function (index) {\\n // For an empty vector the tuple can be inserted at the beginning\\n if (this.elements.length == 0) {\\n return 0\\n }\\n\\n var start = 0,\\n end = this.elements.length / 2,\\n sliceLength = end - start,\\n pivotPoint = Math.floor(sliceLength / 2),\\n pivotIndex = this.elements[pivotPoint * 2]\\n\\n while (sliceLength > 1) {\\n if (pivotIndex < index) {\\n start = pivotPoint\\n }\\n\\n if (pivotIndex > index) {\\n end = pivotPoint\\n }\\n\\n if (pivotIndex == index) {\\n break\\n }\\n\\n sliceLength = end - start\\n pivotPoint = start + Math.floor(sliceLength / 2)\\n pivotIndex = this.elements[pivotPoint * 2]\\n }\\n\\n if (pivotIndex == index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex > index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex < index) {\\n return (pivotPoint + 1) * 2\\n }\\n}\\n\\n/**\\n * Inserts an element at an index within the vector.\\n *\\n * Does not allow duplicates, will throw an error if there is already an entry\\n * for this index.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n */\\nlunr.Vector.prototype.insert = function (insertIdx, val) {\\n this.upsert(insertIdx, val, function () {\\n throw \\\"duplicate index\\\"\\n })\\n}\\n\\n/**\\n * Inserts or updates an existing index within the vector.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n * @param {function} fn - A function that is called for updates, the existing value and the\\n * requested value are passed as arguments\\n */\\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\\n this._magnitude = 0\\n var position = this.positionForIndex(insertIdx)\\n\\n if (this.elements[position] == insertIdx) {\\n this.elements[position + 1] = fn(this.elements[position + 1], val)\\n } else {\\n this.elements.splice(position, 0, insertIdx, val)\\n }\\n}\\n\\n/**\\n * Calculates the magnitude of this vector.\\n *\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.magnitude = function () {\\n if (this._magnitude) return this._magnitude\\n\\n var sumOfSquares = 0,\\n elementsLength = this.elements.length\\n\\n for (var i = 1; i < elementsLength; i += 2) {\\n var val = this.elements[i]\\n sumOfSquares += val * val\\n }\\n\\n return this._magnitude = Math.sqrt(sumOfSquares)\\n}\\n\\n/**\\n * Calculates the dot product of this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.dot = function (otherVector) {\\n var dotProduct = 0,\\n a = this.elements, b = otherVector.elements,\\n aLen = a.length, bLen = b.length,\\n aVal = 0, bVal = 0,\\n i = 0, j = 0\\n\\n while (i < aLen && j < bLen) {\\n aVal = a[i], bVal = b[j]\\n if (aVal < bVal) {\\n i += 2\\n } else if (aVal > bVal) {\\n j += 2\\n } else if (aVal == bVal) {\\n dotProduct += a[i + 1] * b[j + 1]\\n i += 2\\n j += 2\\n }\\n }\\n\\n return dotProduct\\n}\\n\\n/**\\n * Calculates the similarity between this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The other vector to calculate the\\n * similarity with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.similarity = function (otherVector) {\\n return this.dot(otherVector) / this.magnitude() || 0\\n}\\n\\n/**\\n * Converts the vector to an array of the elements within the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toArray = function () {\\n var output = new Array (this.elements.length / 2)\\n\\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\\n output[j] = this.elements[i]\\n }\\n\\n return output\\n}\\n\\n/**\\n * A JSON serializable representation of the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toJSON = function () {\\n return this.elements\\n}\\n/* eslint-disable */\\n/*!\\n * lunr.stemmer\\n * Copyright (C) 2019 Oliver Nightingale\\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\\n */\\n\\n/**\\n * lunr.stemmer is an english language stemmer, this is a JavaScript\\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token - The string to stem\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n * @function\\n */\\nlunr.stemmer = (function(){\\n var step2list = {\\n \\\"ational\\\" : \\\"ate\\\",\\n \\\"tional\\\" : \\\"tion\\\",\\n \\\"enci\\\" : \\\"ence\\\",\\n \\\"anci\\\" : \\\"ance\\\",\\n \\\"izer\\\" : \\\"ize\\\",\\n \\\"bli\\\" : \\\"ble\\\",\\n \\\"alli\\\" : \\\"al\\\",\\n \\\"entli\\\" : \\\"ent\\\",\\n \\\"eli\\\" : \\\"e\\\",\\n \\\"ousli\\\" : \\\"ous\\\",\\n \\\"ization\\\" : \\\"ize\\\",\\n \\\"ation\\\" : \\\"ate\\\",\\n \\\"ator\\\" : \\\"ate\\\",\\n \\\"alism\\\" : \\\"al\\\",\\n \\\"iveness\\\" : \\\"ive\\\",\\n \\\"fulness\\\" : \\\"ful\\\",\\n \\\"ousness\\\" : \\\"ous\\\",\\n \\\"aliti\\\" : \\\"al\\\",\\n \\\"iviti\\\" : \\\"ive\\\",\\n \\\"biliti\\\" : \\\"ble\\\",\\n \\\"logi\\\" : \\\"log\\\"\\n },\\n\\n step3list = {\\n \\\"icate\\\" : \\\"ic\\\",\\n \\\"ative\\\" : \\\"\\\",\\n \\\"alize\\\" : \\\"al\\\",\\n \\\"iciti\\\" : \\\"ic\\\",\\n \\\"ical\\\" : \\\"ic\\\",\\n \\\"ful\\\" : \\\"\\\",\\n \\\"ness\\\" : \\\"\\\"\\n },\\n\\n c = \\\"[^aeiou]\\\", // consonant\\n v = \\\"[aeiouy]\\\", // vowel\\n C = c + \\\"[^aeiouy]*\\\", // consonant sequence\\n V = v + \\\"[aeiou]*\\\", // vowel sequence\\n\\n mgr0 = \\\"^(\\\" + C + \\\")?\\\" + V + C, // [C]VC... is m>0\\n meq1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + \\\"(\\\" + V + \\\")?$\\\", // [C]VC[V] is m=1\\n mgr1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + V + C, // [C]VCVC... is m>1\\n s_v = \\\"^(\\\" + C + \\\")?\\\" + v; // vowel in stem\\n\\n var re_mgr0 = new RegExp(mgr0);\\n var re_mgr1 = new RegExp(mgr1);\\n var re_meq1 = new RegExp(meq1);\\n var re_s_v = new RegExp(s_v);\\n\\n var re_1a = /^(.+?)(ss|i)es$/;\\n var re2_1a = /^(.+?)([^s])s$/;\\n var re_1b = /^(.+?)eed$/;\\n var re2_1b = /^(.+?)(ed|ing)$/;\\n var re_1b_2 = /.$/;\\n var re2_1b_2 = /(at|bl|iz)$/;\\n var re3_1b_2 = new RegExp(\\\"([^aeiouylsz])\\\\\\\\1$\\\");\\n var re4_1b_2 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var re_1c = /^(.+?[^aeiou])y$/;\\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\\n\\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\\n\\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\\n var re2_4 = /^(.+?)(s|t)(ion)$/;\\n\\n var re_5 = /^(.+?)e$/;\\n var re_5_1 = /ll$/;\\n var re3_5 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var porterStemmer = function porterStemmer(w) {\\n var stem,\\n suffix,\\n firstch,\\n re,\\n re2,\\n re3,\\n re4;\\n\\n if (w.length < 3) { return w; }\\n\\n firstch = w.substr(0,1);\\n if (firstch == \\\"y\\\") {\\n w = firstch.toUpperCase() + w.substr(1);\\n }\\n\\n // Step 1a\\n re = re_1a\\n re2 = re2_1a;\\n\\n if (re.test(w)) { w = w.replace(re,\\\"$1$2\\\"); }\\n else if (re2.test(w)) { w = w.replace(re2,\\\"$1$2\\\"); }\\n\\n // Step 1b\\n re = re_1b;\\n re2 = re2_1b;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n re = re_mgr0;\\n if (re.test(fp[1])) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1];\\n re2 = re_s_v;\\n if (re2.test(stem)) {\\n w = stem;\\n re2 = re2_1b_2;\\n re3 = re3_1b_2;\\n re4 = re4_1b_2;\\n if (re2.test(w)) { w = w + \\\"e\\\"; }\\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\\\"\\\"); }\\n else if (re4.test(w)) { w = w + \\\"e\\\"; }\\n }\\n }\\n\\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\\n re = re_1c;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n w = stem + \\\"i\\\";\\n }\\n\\n // Step 2\\n re = re_2;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step2list[suffix];\\n }\\n }\\n\\n // Step 3\\n re = re_3;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step3list[suffix];\\n }\\n }\\n\\n // Step 4\\n re = re_4;\\n re2 = re2_4;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n if (re.test(stem)) {\\n w = stem;\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1] + fp[2];\\n re2 = re_mgr1;\\n if (re2.test(stem)) {\\n w = stem;\\n }\\n }\\n\\n // Step 5\\n re = re_5;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n re2 = re_meq1;\\n re3 = re3_5;\\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\\n w = stem;\\n }\\n }\\n\\n re = re_5_1;\\n re2 = re_mgr1;\\n if (re.test(w) && re2.test(w)) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n\\n // and turn initial Y back to y\\n\\n if (firstch == \\\"y\\\") {\\n w = firstch.toLowerCase() + w.substr(1);\\n }\\n\\n return w;\\n };\\n\\n return function (token) {\\n return token.update(porterStemmer);\\n }\\n})();\\n\\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\\n/*!\\n * lunr.stopWordFilter\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\\n * list of stop words.\\n *\\n * The built in lunr.stopWordFilter is built using this generator and can be used\\n * to generate custom stopWordFilters for applications or non English languages.\\n *\\n * @function\\n * @param {Array} token The token to pass through the filter\\n * @returns {lunr.PipelineFunction}\\n * @see lunr.Pipeline\\n * @see lunr.stopWordFilter\\n */\\nlunr.generateStopWordFilter = function (stopWords) {\\n var words = stopWords.reduce(function (memo, stopWord) {\\n memo[stopWord] = stopWord\\n return memo\\n }, {})\\n\\n return function (token) {\\n if (token && words[token.toString()] !== token.toString()) return token\\n }\\n}\\n\\n/**\\n * lunr.stopWordFilter is an English language stop word list filter, any words\\n * contained in the list will not be passed through the filter.\\n *\\n * This is intended to be used in the Pipeline. If the token does not pass the\\n * filter then undefined will be returned.\\n *\\n * @function\\n * @implements {lunr.PipelineFunction}\\n * @params {lunr.Token} token - A token to check for being a stop word.\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.stopWordFilter = lunr.generateStopWordFilter([\\n 'a',\\n 'able',\\n 'about',\\n 'across',\\n 'after',\\n 'all',\\n 'almost',\\n 'also',\\n 'am',\\n 'among',\\n 'an',\\n 'and',\\n 'any',\\n 'are',\\n 'as',\\n 'at',\\n 'be',\\n 'because',\\n 'been',\\n 'but',\\n 'by',\\n 'can',\\n 'cannot',\\n 'could',\\n 'dear',\\n 'did',\\n 'do',\\n 'does',\\n 'either',\\n 'else',\\n 'ever',\\n 'every',\\n 'for',\\n 'from',\\n 'get',\\n 'got',\\n 'had',\\n 'has',\\n 'have',\\n 'he',\\n 'her',\\n 'hers',\\n 'him',\\n 'his',\\n 'how',\\n 'however',\\n 'i',\\n 'if',\\n 'in',\\n 'into',\\n 'is',\\n 'it',\\n 'its',\\n 'just',\\n 'least',\\n 'let',\\n 'like',\\n 'likely',\\n 'may',\\n 'me',\\n 'might',\\n 'most',\\n 'must',\\n 'my',\\n 'neither',\\n 'no',\\n 'nor',\\n 'not',\\n 'of',\\n 'off',\\n 'often',\\n 'on',\\n 'only',\\n 'or',\\n 'other',\\n 'our',\\n 'own',\\n 'rather',\\n 'said',\\n 'say',\\n 'says',\\n 'she',\\n 'should',\\n 'since',\\n 'so',\\n 'some',\\n 'than',\\n 'that',\\n 'the',\\n 'their',\\n 'them',\\n 'then',\\n 'there',\\n 'these',\\n 'they',\\n 'this',\\n 'tis',\\n 'to',\\n 'too',\\n 'twas',\\n 'us',\\n 'wants',\\n 'was',\\n 'we',\\n 'were',\\n 'what',\\n 'when',\\n 'where',\\n 'which',\\n 'while',\\n 'who',\\n 'whom',\\n 'why',\\n 'will',\\n 'with',\\n 'would',\\n 'yet',\\n 'you',\\n 'your'\\n])\\n\\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\\n/*!\\n * lunr.trimmer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.trimmer is a pipeline function for trimming non word\\n * characters from the beginning and end of tokens before they\\n * enter the index.\\n *\\n * This implementation may not work correctly for non latin\\n * characters and should either be removed or adapted for use\\n * with languages with non-latin characters.\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token The token to pass through the filter\\n * @returns {lunr.Token}\\n * @see lunr.Pipeline\\n */\\nlunr.trimmer = function (token) {\\n return token.update(function (s) {\\n return s.replace(/^\\\\W+/, '').replace(/\\\\W+$/, '')\\n })\\n}\\n\\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\\n/*!\\n * lunr.TokenSet\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A token set is used to store the unique list of all tokens\\n * within an index. Token sets are also used to represent an\\n * incoming query to the index, this query token set and index\\n * token set are then intersected to find which tokens to look\\n * up in the inverted index.\\n *\\n * A token set can hold multiple tokens, as in the case of the\\n * index token set, or it can hold a single token as in the\\n * case of a simple query token set.\\n *\\n * Additionally token sets are used to perform wildcard matching.\\n * Leading, contained and trailing wildcards are supported, and\\n * from this edit distance matching can also be provided.\\n *\\n * Token sets are implemented as a minimal finite state automata,\\n * where both common prefixes and suffixes are shared between tokens.\\n * This helps to reduce the space used for storing the token set.\\n *\\n * @constructor\\n */\\nlunr.TokenSet = function () {\\n this.final = false\\n this.edges = {}\\n this.id = lunr.TokenSet._nextId\\n lunr.TokenSet._nextId += 1\\n}\\n\\n/**\\n * Keeps track of the next, auto increment, identifier to assign\\n * to a new tokenSet.\\n *\\n * TokenSets require a unique identifier to be correctly minimised.\\n *\\n * @private\\n */\\nlunr.TokenSet._nextId = 1\\n\\n/**\\n * Creates a TokenSet instance from the given sorted array of words.\\n *\\n * @param {String[]} arr - A sorted array of strings to create the set from.\\n * @returns {lunr.TokenSet}\\n * @throws Will throw an error if the input array is not sorted.\\n */\\nlunr.TokenSet.fromArray = function (arr) {\\n var builder = new lunr.TokenSet.Builder\\n\\n for (var i = 0, len = arr.length; i < len; i++) {\\n builder.insert(arr[i])\\n }\\n\\n builder.finish()\\n return builder.root\\n}\\n\\n/**\\n * Creates a token set from a query clause.\\n *\\n * @private\\n * @param {Object} clause - A single clause from lunr.Query.\\n * @param {string} clause.term - The query clause term.\\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromClause = function (clause) {\\n if ('editDistance' in clause) {\\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\\n } else {\\n return lunr.TokenSet.fromString(clause.term)\\n }\\n}\\n\\n/**\\n * Creates a token set representing a single string with a specified\\n * edit distance.\\n *\\n * Insertions, deletions, substitutions and transpositions are each\\n * treated as an edit distance of 1.\\n *\\n * Increasing the allowed edit distance will have a dramatic impact\\n * on the performance of both creating and intersecting these TokenSets.\\n * It is advised to keep the edit distance less than 3.\\n *\\n * @param {string} str - The string to create the token set from.\\n * @param {number} editDistance - The allowed edit distance to match.\\n * @returns {lunr.Vector}\\n */\\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\\n var root = new lunr.TokenSet\\n\\n var stack = [{\\n node: root,\\n editsRemaining: editDistance,\\n str: str\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop()\\n\\n // no edit\\n if (frame.str.length > 0) {\\n var char = frame.str.charAt(0),\\n noEditNode\\n\\n if (char in frame.node.edges) {\\n noEditNode = frame.node.edges[char]\\n } else {\\n noEditNode = new lunr.TokenSet\\n frame.node.edges[char] = noEditNode\\n }\\n\\n if (frame.str.length == 1) {\\n noEditNode.final = true\\n }\\n\\n stack.push({\\n node: noEditNode,\\n editsRemaining: frame.editsRemaining,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n if (frame.editsRemaining == 0) {\\n continue\\n }\\n\\n // insertion\\n if (\\\"*\\\" in frame.node.edges) {\\n var insertionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var insertionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = insertionNode\\n }\\n\\n if (frame.str.length == 0) {\\n insertionNode.final = true\\n }\\n\\n stack.push({\\n node: insertionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str\\n })\\n\\n // deletion\\n // can only do a deletion if we have enough edits remaining\\n // and if there are characters left to delete in the string\\n if (frame.str.length > 1) {\\n stack.push({\\n node: frame.node,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // deletion\\n // just removing the last character from the str\\n if (frame.str.length == 1) {\\n frame.node.final = true\\n }\\n\\n // substitution\\n // can only do a substitution if we have enough edits remaining\\n // and if there are characters left to substitute\\n if (frame.str.length >= 1) {\\n if (\\\"*\\\" in frame.node.edges) {\\n var substitutionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var substitutionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = substitutionNode\\n }\\n\\n if (frame.str.length == 1) {\\n substitutionNode.final = true\\n }\\n\\n stack.push({\\n node: substitutionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // transposition\\n // can only do a transposition if there are edits remaining\\n // and there are enough characters to transpose\\n if (frame.str.length > 1) {\\n var charA = frame.str.charAt(0),\\n charB = frame.str.charAt(1),\\n transposeNode\\n\\n if (charB in frame.node.edges) {\\n transposeNode = frame.node.edges[charB]\\n } else {\\n transposeNode = new lunr.TokenSet\\n frame.node.edges[charB] = transposeNode\\n }\\n\\n if (frame.str.length == 1) {\\n transposeNode.final = true\\n }\\n\\n stack.push({\\n node: transposeNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: charA + frame.str.slice(2)\\n })\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Creates a TokenSet from a string.\\n *\\n * The string may contain one or more wildcard characters (*)\\n * that will allow wildcard matching when intersecting with\\n * another TokenSet.\\n *\\n * @param {string} str - The string to create a TokenSet from.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromString = function (str) {\\n var node = new lunr.TokenSet,\\n root = node\\n\\n /*\\n * Iterates through all characters within the passed string\\n * appending a node for each character.\\n *\\n * When a wildcard character is found then a self\\n * referencing edge is introduced to continually match\\n * any number of any characters.\\n */\\n for (var i = 0, len = str.length; i < len; i++) {\\n var char = str[i],\\n final = (i == len - 1)\\n\\n if (char == \\\"*\\\") {\\n node.edges[char] = node\\n node.final = final\\n\\n } else {\\n var next = new lunr.TokenSet\\n next.final = final\\n\\n node.edges[char] = next\\n node = next\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Converts this TokenSet into an array of strings\\n * contained within the TokenSet.\\n *\\n * This is not intended to be used on a TokenSet that\\n * contains wildcards, in these cases the results are\\n * undefined and are likely to cause an infinite loop.\\n *\\n * @returns {string[]}\\n */\\nlunr.TokenSet.prototype.toArray = function () {\\n var words = []\\n\\n var stack = [{\\n prefix: \\\"\\\",\\n node: this\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop(),\\n edges = Object.keys(frame.node.edges),\\n len = edges.length\\n\\n if (frame.node.final) {\\n /* In Safari, at this point the prefix is sometimes corrupted, see:\\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\\n * String.prototype method forces Safari to \\\"cast\\\" this string to what\\n * it's supposed to be, fixing the bug. */\\n frame.prefix.charAt(0)\\n words.push(frame.prefix)\\n }\\n\\n for (var i = 0; i < len; i++) {\\n var edge = edges[i]\\n\\n stack.push({\\n prefix: frame.prefix.concat(edge),\\n node: frame.node.edges[edge]\\n })\\n }\\n }\\n\\n return words\\n}\\n\\n/**\\n * Generates a string representation of a TokenSet.\\n *\\n * This is intended to allow TokenSets to be used as keys\\n * in objects, largely to aid the construction and minimisation\\n * of a TokenSet. As such it is not designed to be a human\\n * friendly representation of the TokenSet.\\n *\\n * @returns {string}\\n */\\nlunr.TokenSet.prototype.toString = function () {\\n // NOTE: Using Object.keys here as this.edges is very likely\\n // to enter 'hash-mode' with many keys being added\\n //\\n // avoiding a for-in loop here as it leads to the function\\n // being de-optimised (at least in V8). From some simple\\n // benchmarks the performance is comparable, but allowing\\n // V8 to optimize may mean easy performance wins in the future.\\n\\n if (this._str) {\\n return this._str\\n }\\n\\n var str = this.final ? '1' : '0',\\n labels = Object.keys(this.edges).sort(),\\n len = labels.length\\n\\n for (var i = 0; i < len; i++) {\\n var label = labels[i],\\n node = this.edges[label]\\n\\n str = str + label + node.id\\n }\\n\\n return str\\n}\\n\\n/**\\n * Returns a new TokenSet that is the intersection of\\n * this TokenSet and the passed TokenSet.\\n *\\n * This intersection will take into account any wildcards\\n * contained within the TokenSet.\\n *\\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.prototype.intersect = function (b) {\\n var output = new lunr.TokenSet,\\n frame = undefined\\n\\n var stack = [{\\n qNode: b,\\n output: output,\\n node: this\\n }]\\n\\n while (stack.length) {\\n frame = stack.pop()\\n\\n // NOTE: As with the #toString method, we are using\\n // Object.keys and a for loop instead of a for-in loop\\n // as both of these objects enter 'hash' mode, causing\\n // the function to be de-optimised in V8\\n var qEdges = Object.keys(frame.qNode.edges),\\n qLen = qEdges.length,\\n nEdges = Object.keys(frame.node.edges),\\n nLen = nEdges.length\\n\\n for (var q = 0; q < qLen; q++) {\\n var qEdge = qEdges[q]\\n\\n for (var n = 0; n < nLen; n++) {\\n var nEdge = nEdges[n]\\n\\n if (nEdge == qEdge || qEdge == '*') {\\n var node = frame.node.edges[nEdge],\\n qNode = frame.qNode.edges[qEdge],\\n final = node.final && qNode.final,\\n next = undefined\\n\\n if (nEdge in frame.output.edges) {\\n // an edge already exists for this character\\n // no need to create a new node, just set the finality\\n // bit unless this node is already final\\n next = frame.output.edges[nEdge]\\n next.final = next.final || final\\n\\n } else {\\n // no edge exists yet, must create one\\n // set the finality bit and insert it\\n // into the output\\n next = new lunr.TokenSet\\n next.final = final\\n frame.output.edges[nEdge] = next\\n }\\n\\n stack.push({\\n qNode: qNode,\\n output: next,\\n node: node\\n })\\n }\\n }\\n }\\n }\\n\\n return output\\n}\\nlunr.TokenSet.Builder = function () {\\n this.previousWord = \\\"\\\"\\n this.root = new lunr.TokenSet\\n this.uncheckedNodes = []\\n this.minimizedNodes = {}\\n}\\n\\nlunr.TokenSet.Builder.prototype.insert = function (word) {\\n var node,\\n commonPrefix = 0\\n\\n if (word < this.previousWord) {\\n throw new Error (\\\"Out of order word insertion\\\")\\n }\\n\\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\\n if (word[i] != this.previousWord[i]) break\\n commonPrefix++\\n }\\n\\n this.minimize(commonPrefix)\\n\\n if (this.uncheckedNodes.length == 0) {\\n node = this.root\\n } else {\\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\\n }\\n\\n for (var i = commonPrefix; i < word.length; i++) {\\n var nextNode = new lunr.TokenSet,\\n char = word[i]\\n\\n node.edges[char] = nextNode\\n\\n this.uncheckedNodes.push({\\n parent: node,\\n char: char,\\n child: nextNode\\n })\\n\\n node = nextNode\\n }\\n\\n node.final = true\\n this.previousWord = word\\n}\\n\\nlunr.TokenSet.Builder.prototype.finish = function () {\\n this.minimize(0)\\n}\\n\\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\\n var node = this.uncheckedNodes[i],\\n childKey = node.child.toString()\\n\\n if (childKey in this.minimizedNodes) {\\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\\n } else {\\n // Cache the key for this node since\\n // we know it can't change anymore\\n node.child._str = childKey\\n\\n this.minimizedNodes[childKey] = node.child\\n }\\n\\n this.uncheckedNodes.pop()\\n }\\n}\\n/*!\\n * lunr.Index\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * An index contains the built index of all documents and provides a query interface\\n * to the index.\\n *\\n * Usually instances of lunr.Index will not be created using this constructor, instead\\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\\n * used to load previously built and serialized indexes.\\n *\\n * @constructor\\n * @param {Object} attrs - The attributes of the built search index.\\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\\n * @param {Object} attrs.fieldVectors - Field vectors\\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\\n * @param {string[]} attrs.fields - The names of indexed document fields.\\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\\n */\\nlunr.Index = function (attrs) {\\n this.invertedIndex = attrs.invertedIndex\\n this.fieldVectors = attrs.fieldVectors\\n this.tokenSet = attrs.tokenSet\\n this.fields = attrs.fields\\n this.pipeline = attrs.pipeline\\n}\\n\\n/**\\n * A result contains details of a document matching a search query.\\n * @typedef {Object} lunr.Index~Result\\n * @property {string} ref - The reference of the document this result represents.\\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\\n */\\n\\n/**\\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\\n * query language which itself is parsed into an instance of lunr.Query.\\n *\\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\\n * is best used for human entered text rather than program generated text.\\n *\\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\\n * or 'world', though those that contain both will rank higher in the results.\\n *\\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\\n * wildcards will increase the number of documents that will be found but can also have a negative\\n * impact on query performance, especially with wildcards at the beginning of a term.\\n *\\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\\n * hello in the title field will match this query. Using a field not present in the index will lead\\n * to an error being thrown.\\n *\\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\\n * Avoid large values for edit distance to improve query performance.\\n *\\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\\n *\\n * To escape special characters the backslash character '\\\\' can be used, this allows searches to include\\n * characters that would normally be considered modifiers, e.g. `foo\\\\~2` will search for a term \\\"foo~2\\\" instead\\n * of attempting to apply a boost of 2 to the search term \\\"foo\\\".\\n *\\n * @typedef {string} lunr.Index~QueryString\\n * @example Simple single term query\\n * hello\\n * @example Multiple term query\\n * hello world\\n * @example term scoped to a field\\n * title:hello\\n * @example term with a boost of 10\\n * hello^10\\n * @example term with an edit distance of 2\\n * hello~2\\n * @example terms with presence modifiers\\n * -foo +bar baz\\n */\\n\\n/**\\n * Performs a search against the index using lunr query syntax.\\n *\\n * Results will be returned sorted by their score, the most relevant results\\n * will be returned first. For details on how the score is calculated, please see\\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\\n *\\n * For more programmatic querying use lunr.Index#query.\\n *\\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.search = function (queryString) {\\n return this.query(function (query) {\\n var parser = new lunr.QueryParser(queryString, query)\\n parser.parse()\\n })\\n}\\n\\n/**\\n * A query builder callback provides a query object to be used to express\\n * the query to perform on the index.\\n *\\n * @callback lunr.Index~queryBuilder\\n * @param {lunr.Query} query - The query object to build up.\\n * @this lunr.Query\\n */\\n\\n/**\\n * Performs a query against the index using the yielded lunr.Query object.\\n *\\n * If performing programmatic queries against the index, this method is preferred\\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\\n *\\n * A query object is yielded to the supplied function which should be used to\\n * express the query to be run against the index.\\n *\\n * Note that although this function takes a callback parameter it is _not_ an\\n * asynchronous operation, the callback is just yielded a query object to be\\n * customized.\\n *\\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.query = function (fn) {\\n // for each query clause\\n // * process terms\\n // * expand terms from token set\\n // * find matching documents and metadata\\n // * get document vectors\\n // * score documents\\n\\n var query = new lunr.Query(this.fields),\\n matchingFields = Object.create(null),\\n queryVectors = Object.create(null),\\n termFieldCache = Object.create(null),\\n requiredMatches = Object.create(null),\\n prohibitedMatches = Object.create(null)\\n\\n /*\\n * To support field level boosts a query vector is created per\\n * field. An empty vector is eagerly created to support negated\\n * queries.\\n */\\n for (var i = 0; i < this.fields.length; i++) {\\n queryVectors[this.fields[i]] = new lunr.Vector\\n }\\n\\n fn.call(query, query)\\n\\n for (var i = 0; i < query.clauses.length; i++) {\\n /*\\n * Unless the pipeline has been disabled for this term, which is\\n * the case for terms with wildcards, we need to pass the clause\\n * term through the search pipeline. A pipeline returns an array\\n * of processed terms. Pipeline functions may expand the passed\\n * term, which means we may end up performing multiple index lookups\\n * for a single query term.\\n */\\n var clause = query.clauses[i],\\n terms = null,\\n clauseMatches = lunr.Set.complete\\n\\n if (clause.usePipeline) {\\n terms = this.pipeline.runString(clause.term, {\\n fields: clause.fields\\n })\\n } else {\\n terms = [clause.term]\\n }\\n\\n for (var m = 0; m < terms.length; m++) {\\n var term = terms[m]\\n\\n /*\\n * Each term returned from the pipeline needs to use the same query\\n * clause object, e.g. the same boost and or edit distance. The\\n * simplest way to do this is to re-use the clause object but mutate\\n * its term property.\\n */\\n clause.term = term\\n\\n /*\\n * From the term in the clause we create a token set which will then\\n * be used to intersect the indexes token set to get a list of terms\\n * to lookup in the inverted index\\n */\\n var termTokenSet = lunr.TokenSet.fromClause(clause),\\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\\n\\n /*\\n * If a term marked as required does not exist in the tokenSet it is\\n * impossible for the search to return any matches. We set all the field\\n * scoped required matches set to empty and stop examining any further\\n * clauses.\\n */\\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = lunr.Set.empty\\n }\\n\\n break\\n }\\n\\n for (var j = 0; j < expandedTerms.length; j++) {\\n /*\\n * For each term get the posting and termIndex, this is required for\\n * building the query vector.\\n */\\n var expandedTerm = expandedTerms[j],\\n posting = this.invertedIndex[expandedTerm],\\n termIndex = posting._index\\n\\n for (var k = 0; k < clause.fields.length; k++) {\\n /*\\n * For each field that this query term is scoped by (by default\\n * all fields are in scope) we need to get all the document refs\\n * that have this term in that field.\\n *\\n * The posting is the entry in the invertedIndex for the matching\\n * term from above.\\n */\\n var field = clause.fields[k],\\n fieldPosting = posting[field],\\n matchingDocumentRefs = Object.keys(fieldPosting),\\n termField = expandedTerm + \\\"/\\\" + field,\\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\\n\\n /*\\n * if the presence of this term is required ensure that the matching\\n * documents are added to the set of required matches for this clause.\\n *\\n */\\n if (clause.presence == lunr.Query.presence.REQUIRED) {\\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\\n\\n if (requiredMatches[field] === undefined) {\\n requiredMatches[field] = lunr.Set.complete\\n }\\n }\\n\\n /*\\n * if the presence of this term is prohibited ensure that the matching\\n * documents are added to the set of prohibited matches for this field,\\n * creating that set if it does not yet exist.\\n */\\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\\n if (prohibitedMatches[field] === undefined) {\\n prohibitedMatches[field] = lunr.Set.empty\\n }\\n\\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\\n\\n /*\\n * Prohibited matches should not be part of the query vector used for\\n * similarity scoring and no metadata should be extracted so we continue\\n * to the next field\\n */\\n continue\\n }\\n\\n /*\\n * The query field vector is populated using the termIndex found for\\n * the term and a unit value with the appropriate boost applied.\\n * Using upsert because there could already be an entry in the vector\\n * for the term we are working with. In that case we just add the scores\\n * together.\\n */\\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\\n\\n /**\\n * If we've already seen this term, field combo then we've already collected\\n * the matching documents and metadata, no need to go through all that again\\n */\\n if (termFieldCache[termField]) {\\n continue\\n }\\n\\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\\n /*\\n * All metadata for this term/field/document triple\\n * are then extracted and collected into an instance\\n * of lunr.MatchData ready to be returned in the query\\n * results\\n */\\n var matchingDocumentRef = matchingDocumentRefs[l],\\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\\n metadata = fieldPosting[matchingDocumentRef],\\n fieldMatch\\n\\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\\n } else {\\n fieldMatch.add(expandedTerm, field, metadata)\\n }\\n\\n }\\n\\n termFieldCache[termField] = true\\n }\\n }\\n }\\n\\n /**\\n * If the presence was required we need to update the requiredMatches field sets.\\n * We do this after all fields for the term have collected their matches because\\n * the clause terms presence is required in _any_ of the fields not _all_ of the\\n * fields.\\n */\\n if (clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\\n }\\n }\\n }\\n\\n /**\\n * Need to combine the field scoped required and prohibited\\n * matching documents into a global set of required and prohibited\\n * matches\\n */\\n var allRequiredMatches = lunr.Set.complete,\\n allProhibitedMatches = lunr.Set.empty\\n\\n for (var i = 0; i < this.fields.length; i++) {\\n var field = this.fields[i]\\n\\n if (requiredMatches[field]) {\\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\\n }\\n\\n if (prohibitedMatches[field]) {\\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\\n }\\n }\\n\\n var matchingFieldRefs = Object.keys(matchingFields),\\n results = [],\\n matches = Object.create(null)\\n\\n /*\\n * If the query is negated (contains only prohibited terms)\\n * we need to get _all_ fieldRefs currently existing in the\\n * index. This is only done when we know that the query is\\n * entirely prohibited terms to avoid any cost of getting all\\n * fieldRefs unnecessarily.\\n *\\n * Additionally, blank MatchData must be created to correctly\\n * populate the results.\\n */\\n if (query.isNegated()) {\\n matchingFieldRefs = Object.keys(this.fieldVectors)\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n var matchingFieldRef = matchingFieldRefs[i]\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\\n matchingFields[matchingFieldRef] = new lunr.MatchData\\n }\\n }\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n /*\\n * Currently we have document fields that match the query, but we\\n * need to return documents. The matchData and scores are combined\\n * from multiple fields belonging to the same document.\\n *\\n * Scores are calculated by field, using the query vectors created\\n * above, and combined into a final document score using addition.\\n */\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\\n docRef = fieldRef.docRef\\n\\n if (!allRequiredMatches.contains(docRef)) {\\n continue\\n }\\n\\n if (allProhibitedMatches.contains(docRef)) {\\n continue\\n }\\n\\n var fieldVector = this.fieldVectors[fieldRef],\\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\\n docMatch\\n\\n if ((docMatch = matches[docRef]) !== undefined) {\\n docMatch.score += score\\n docMatch.matchData.combine(matchingFields[fieldRef])\\n } else {\\n var match = {\\n ref: docRef,\\n score: score,\\n matchData: matchingFields[fieldRef]\\n }\\n matches[docRef] = match\\n results.push(match)\\n }\\n }\\n\\n /*\\n * Sort the results objects by score, highest first.\\n */\\n return results.sort(function (a, b) {\\n return b.score - a.score\\n })\\n}\\n\\n/**\\n * Prepares the index for JSON serialization.\\n *\\n * The schema for this JSON blob will be described in a\\n * separate JSON schema file.\\n *\\n * @returns {Object}\\n */\\nlunr.Index.prototype.toJSON = function () {\\n var invertedIndex = Object.keys(this.invertedIndex)\\n .sort()\\n .map(function (term) {\\n return [term, this.invertedIndex[term]]\\n }, this)\\n\\n var fieldVectors = Object.keys(this.fieldVectors)\\n .map(function (ref) {\\n return [ref, this.fieldVectors[ref].toJSON()]\\n }, this)\\n\\n return {\\n version: lunr.version,\\n fields: this.fields,\\n fieldVectors: fieldVectors,\\n invertedIndex: invertedIndex,\\n pipeline: this.pipeline.toJSON()\\n }\\n}\\n\\n/**\\n * Loads a previously serialized lunr.Index\\n *\\n * @param {Object} serializedIndex - A previously serialized lunr.Index\\n * @returns {lunr.Index}\\n */\\nlunr.Index.load = function (serializedIndex) {\\n var attrs = {},\\n fieldVectors = {},\\n serializedVectors = serializedIndex.fieldVectors,\\n invertedIndex = Object.create(null),\\n serializedInvertedIndex = serializedIndex.invertedIndex,\\n tokenSetBuilder = new lunr.TokenSet.Builder,\\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\\n\\n if (serializedIndex.version != lunr.version) {\\n lunr.utils.warn(\\\"Version mismatch when loading serialised index. Current version of lunr '\\\" + lunr.version + \\\"' does not match serialized index '\\\" + serializedIndex.version + \\\"'\\\")\\n }\\n\\n for (var i = 0; i < serializedVectors.length; i++) {\\n var tuple = serializedVectors[i],\\n ref = tuple[0],\\n elements = tuple[1]\\n\\n fieldVectors[ref] = new lunr.Vector(elements)\\n }\\n\\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\\n var tuple = serializedInvertedIndex[i],\\n term = tuple[0],\\n posting = tuple[1]\\n\\n tokenSetBuilder.insert(term)\\n invertedIndex[term] = posting\\n }\\n\\n tokenSetBuilder.finish()\\n\\n attrs.fields = serializedIndex.fields\\n\\n attrs.fieldVectors = fieldVectors\\n attrs.invertedIndex = invertedIndex\\n attrs.tokenSet = tokenSetBuilder.root\\n attrs.pipeline = pipeline\\n\\n return new lunr.Index(attrs)\\n}\\n/*!\\n * lunr.Builder\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Builder performs indexing on a set of documents and\\n * returns instances of lunr.Index ready for querying.\\n *\\n * All configuration of the index is done via the builder, the\\n * fields to index, the document reference, the text processing\\n * pipeline and document scoring parameters are all set on the\\n * builder before indexing.\\n *\\n * @constructor\\n * @property {string} _ref - Internal reference to the document reference field.\\n * @property {string[]} _fields - Internal reference to the document fields to index.\\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\\n */\\nlunr.Builder = function () {\\n this._ref = \\\"id\\\"\\n this._fields = Object.create(null)\\n this._documents = Object.create(null)\\n this.invertedIndex = Object.create(null)\\n this.fieldTermFrequencies = {}\\n this.fieldLengths = {}\\n this.tokenizer = lunr.tokenizer\\n this.pipeline = new lunr.Pipeline\\n this.searchPipeline = new lunr.Pipeline\\n this.documentCount = 0\\n this._b = 0.75\\n this._k1 = 1.2\\n this.termIndex = 0\\n this.metadataWhitelist = []\\n}\\n\\n/**\\n * Sets the document field used as the document reference. Every document must have this field.\\n * The type of this field in the document should be a string, if it is not a string it will be\\n * coerced into a string by calling toString.\\n *\\n * The default ref is 'id'.\\n *\\n * The ref should _not_ be changed during indexing, it should be set before any documents are\\n * added to the index. Changing it during indexing can lead to inconsistent results.\\n *\\n * @param {string} ref - The name of the reference field in the document.\\n */\\nlunr.Builder.prototype.ref = function (ref) {\\n this._ref = ref\\n}\\n\\n/**\\n * A function that is used to extract a field from a document.\\n *\\n * Lunr expects a field to be at the top level of a document, if however the field\\n * is deeply nested within a document an extractor function can be used to extract\\n * the right field for indexing.\\n *\\n * @callback fieldExtractor\\n * @param {object} doc - The document being added to the index.\\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\\n * @example Extracting a nested field\\n * function (doc) { return doc.nested.field }\\n */\\n\\n/**\\n * Adds a field to the list of document fields that will be indexed. Every document being\\n * indexed should have this field. Null values for this field in indexed documents will\\n * not cause errors but will limit the chance of that document being retrieved by searches.\\n *\\n * All fields should be added before adding documents to the index. Adding fields after\\n * a document has been indexed will have no effect on already indexed documents.\\n *\\n * Fields can be boosted at build time. This allows terms within that field to have more\\n * importance when ranking search results. Use a field boost to specify that matches within\\n * one field are more important than other fields.\\n *\\n * @param {string} fieldName - The name of a field to index in all documents.\\n * @param {object} attributes - Optional attributes associated with this field.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\\n */\\nlunr.Builder.prototype.field = function (fieldName, attributes) {\\n if (/\\\\//.test(fieldName)) {\\n throw new RangeError (\\\"Field '\\\" + fieldName + \\\"' contains illegal character '/'\\\")\\n }\\n\\n this._fields[fieldName] = attributes || {}\\n}\\n\\n/**\\n * A parameter to tune the amount of field length normalisation that is applied when\\n * calculating relevance scores. A value of 0 will completely disable any normalisation\\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\\n * will be clamped to the range 0 - 1.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.b = function (number) {\\n if (number < 0) {\\n this._b = 0\\n } else if (number > 1) {\\n this._b = 1\\n } else {\\n this._b = number\\n }\\n}\\n\\n/**\\n * A parameter that controls the speed at which a rise in term frequency results in term\\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\\n * slower saturation levels, a lower value will result in quicker saturation.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.k1 = function (number) {\\n this._k1 = number\\n}\\n\\n/**\\n * Adds a document to the index.\\n *\\n * Before adding fields to the index the index should have been fully setup, with the document\\n * ref and all fields to index already having been specified.\\n *\\n * The document must have a field name as specified by the ref (by default this is 'id') and\\n * it should have all fields defined for indexing, though null or undefined values will not\\n * cause errors.\\n *\\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\\n * this document should rank higher in search results than other documents.\\n *\\n * @param {object} doc - The document to add to the index.\\n * @param {object} attributes - Optional attributes associated with this document.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\\n */\\nlunr.Builder.prototype.add = function (doc, attributes) {\\n var docRef = doc[this._ref],\\n fields = Object.keys(this._fields)\\n\\n this._documents[docRef] = attributes || {}\\n this.documentCount += 1\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i],\\n extractor = this._fields[fieldName].extractor,\\n field = extractor ? extractor(doc) : doc[fieldName],\\n tokens = this.tokenizer(field, {\\n fields: [fieldName]\\n }),\\n terms = this.pipeline.run(tokens),\\n fieldRef = new lunr.FieldRef (docRef, fieldName),\\n fieldTerms = Object.create(null)\\n\\n this.fieldTermFrequencies[fieldRef] = fieldTerms\\n this.fieldLengths[fieldRef] = 0\\n\\n // store the length of this field for this document\\n this.fieldLengths[fieldRef] += terms.length\\n\\n // calculate term frequencies for this field\\n for (var j = 0; j < terms.length; j++) {\\n var term = terms[j]\\n\\n if (fieldTerms[term] == undefined) {\\n fieldTerms[term] = 0\\n }\\n\\n fieldTerms[term] += 1\\n\\n // add to inverted index\\n // create an initial posting if one doesn't exist\\n if (this.invertedIndex[term] == undefined) {\\n var posting = Object.create(null)\\n posting[\\\"_index\\\"] = this.termIndex\\n this.termIndex += 1\\n\\n for (var k = 0; k < fields.length; k++) {\\n posting[fields[k]] = Object.create(null)\\n }\\n\\n this.invertedIndex[term] = posting\\n }\\n\\n // add an entry for this term/fieldName/docRef to the invertedIndex\\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\\n }\\n\\n // store all whitelisted metadata about this token in the\\n // inverted index\\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\\n var metadataKey = this.metadataWhitelist[l],\\n metadata = term.metadata[metadataKey]\\n\\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\\n }\\n\\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\\n }\\n }\\n\\n }\\n}\\n\\n/**\\n * Calculates the average document length for this index\\n *\\n * @private\\n */\\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\\n\\n var fieldRefs = Object.keys(this.fieldLengths),\\n numberOfFields = fieldRefs.length,\\n accumulator = {},\\n documentsWithField = {}\\n\\n for (var i = 0; i < numberOfFields; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n field = fieldRef.fieldName\\n\\n documentsWithField[field] || (documentsWithField[field] = 0)\\n documentsWithField[field] += 1\\n\\n accumulator[field] || (accumulator[field] = 0)\\n accumulator[field] += this.fieldLengths[fieldRef]\\n }\\n\\n var fields = Object.keys(this._fields)\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i]\\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\\n }\\n\\n this.averageFieldLength = accumulator\\n}\\n\\n/**\\n * Builds a vector space model of every document using lunr.Vector\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createFieldVectors = function () {\\n var fieldVectors = {},\\n fieldRefs = Object.keys(this.fieldTermFrequencies),\\n fieldRefsLength = fieldRefs.length,\\n termIdfCache = Object.create(null)\\n\\n for (var i = 0; i < fieldRefsLength; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n fieldName = fieldRef.fieldName,\\n fieldLength = this.fieldLengths[fieldRef],\\n fieldVector = new lunr.Vector,\\n termFrequencies = this.fieldTermFrequencies[fieldRef],\\n terms = Object.keys(termFrequencies),\\n termsLength = terms.length\\n\\n\\n var fieldBoost = this._fields[fieldName].boost || 1,\\n docBoost = this._documents[fieldRef.docRef].boost || 1\\n\\n for (var j = 0; j < termsLength; j++) {\\n var term = terms[j],\\n tf = termFrequencies[term],\\n termIndex = this.invertedIndex[term]._index,\\n idf, score, scoreWithPrecision\\n\\n if (termIdfCache[term] === undefined) {\\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\\n termIdfCache[term] = idf\\n } else {\\n idf = termIdfCache[term]\\n }\\n\\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\\n score *= fieldBoost\\n score *= docBoost\\n scoreWithPrecision = Math.round(score * 1000) / 1000\\n // Converts 1.23456789 to 1.234.\\n // Reducing the precision so that the vectors take up less\\n // space when serialised. Doing it now so that they behave\\n // the same before and after serialisation. Also, this is\\n // the fastest approach to reducing a number's precision in\\n // JavaScript.\\n\\n fieldVector.insert(termIndex, scoreWithPrecision)\\n }\\n\\n fieldVectors[fieldRef] = fieldVector\\n }\\n\\n this.fieldVectors = fieldVectors\\n}\\n\\n/**\\n * Creates a token set of all tokens in the index using lunr.TokenSet\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createTokenSet = function () {\\n this.tokenSet = lunr.TokenSet.fromArray(\\n Object.keys(this.invertedIndex).sort()\\n )\\n}\\n\\n/**\\n * Builds the index, creating an instance of lunr.Index.\\n *\\n * This completes the indexing process and should only be called\\n * once all documents have been added to the index.\\n *\\n * @returns {lunr.Index}\\n */\\nlunr.Builder.prototype.build = function () {\\n this.calculateAverageFieldLengths()\\n this.createFieldVectors()\\n this.createTokenSet()\\n\\n return new lunr.Index({\\n invertedIndex: this.invertedIndex,\\n fieldVectors: this.fieldVectors,\\n tokenSet: this.tokenSet,\\n fields: Object.keys(this._fields),\\n pipeline: this.searchPipeline\\n })\\n}\\n\\n/**\\n * Applies a plugin to the index builder.\\n *\\n * A plugin is a function that is called with the index builder as its context.\\n * Plugins can be used to customise or extend the behaviour of the index\\n * in some way. A plugin is just a function, that encapsulated the custom\\n * behaviour that should be applied when building the index.\\n *\\n * The plugin function will be called with the index builder as its argument, additional\\n * arguments can also be passed when calling use. The function will be called\\n * with the index builder as its context.\\n *\\n * @param {Function} plugin The plugin to apply.\\n */\\nlunr.Builder.prototype.use = function (fn) {\\n var args = Array.prototype.slice.call(arguments, 1)\\n args.unshift(this)\\n fn.apply(this, args)\\n}\\n/**\\n * Contains and collects metadata about a matching document.\\n * A single instance of lunr.MatchData is returned as part of every\\n * lunr.Index~Result.\\n *\\n * @constructor\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n * @property {object} metadata - A cloned collection of metadata associated with this document.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData = function (term, field, metadata) {\\n var clonedMetadata = Object.create(null),\\n metadataKeys = Object.keys(metadata || {})\\n\\n // Cloning the metadata to prevent the original\\n // being mutated during match data combination.\\n // Metadata is kept in an array within the inverted\\n // index so cloning the data can be done with\\n // Array#slice\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n clonedMetadata[key] = metadata[key].slice()\\n }\\n\\n this.metadata = Object.create(null)\\n\\n if (term !== undefined) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = clonedMetadata\\n }\\n}\\n\\n/**\\n * An instance of lunr.MatchData will be created for every term that matches a\\n * document. However only one instance is required in a lunr.Index~Result. This\\n * method combines metadata from another instance of lunr.MatchData with this\\n * objects metadata.\\n *\\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData.prototype.combine = function (otherMatchData) {\\n var terms = Object.keys(otherMatchData.metadata)\\n\\n for (var i = 0; i < terms.length; i++) {\\n var term = terms[i],\\n fields = Object.keys(otherMatchData.metadata[term])\\n\\n if (this.metadata[term] == undefined) {\\n this.metadata[term] = Object.create(null)\\n }\\n\\n for (var j = 0; j < fields.length; j++) {\\n var field = fields[j],\\n keys = Object.keys(otherMatchData.metadata[term][field])\\n\\n if (this.metadata[term][field] == undefined) {\\n this.metadata[term][field] = Object.create(null)\\n }\\n\\n for (var k = 0; k < keys.length; k++) {\\n var key = keys[k]\\n\\n if (this.metadata[term][field][key] == undefined) {\\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\\n } else {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\\n }\\n\\n }\\n }\\n }\\n}\\n\\n/**\\n * Add metadata for a term/field pair to this instance of match data.\\n *\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n */\\nlunr.MatchData.prototype.add = function (term, field, metadata) {\\n if (!(term in this.metadata)) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n if (!(field in this.metadata[term])) {\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n var metadataKeys = Object.keys(metadata)\\n\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n\\n if (key in this.metadata[term][field]) {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\\n } else {\\n this.metadata[term][field][key] = metadata[key]\\n }\\n }\\n}\\n/**\\n * A lunr.Query provides a programmatic way of defining queries to be performed\\n * against a {@link lunr.Index}.\\n *\\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\\n * so the query object is pre-initialized with the right index fields.\\n *\\n * @constructor\\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\\n */\\nlunr.Query = function (allFields) {\\n this.clauses = []\\n this.allFields = allFields\\n}\\n\\n/**\\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\\n *\\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\\n * concatenation.\\n *\\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\\n *\\n * @constant\\n * @default\\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with trailing wildcard\\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\\n * @example query term with leading and trailing wildcard\\n * query.term('foo', {\\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\\n * })\\n */\\n\\nlunr.Query.wildcard = new String (\\\"*\\\")\\nlunr.Query.wildcard.NONE = 0\\nlunr.Query.wildcard.LEADING = 1\\nlunr.Query.wildcard.TRAILING = 2\\n\\n/**\\n * Constants for indicating what kind of presence a term must have in matching documents.\\n *\\n * @constant\\n * @enum {number}\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with required presence\\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\\n */\\nlunr.Query.presence = {\\n /**\\n * Term's presence in a document is optional, this is the default value.\\n */\\n OPTIONAL: 1,\\n\\n /**\\n * Term's presence in a document is required, documents that do not contain\\n * this term will not be returned.\\n */\\n REQUIRED: 2,\\n\\n /**\\n * Term's presence in a document is prohibited, documents that do contain\\n * this term will not be returned.\\n */\\n PROHIBITED: 3\\n}\\n\\n/**\\n * A single clause in a {@link lunr.Query} contains a term and details on how to\\n * match that term against a {@link lunr.Index}.\\n *\\n * @typedef {Object} lunr.Query~Clause\\n * @property {string[]} fields - The fields in an index this clause should be matched against.\\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\\n */\\n\\n/**\\n * Adds a {@link lunr.Query~Clause} to this query.\\n *\\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\\n * a default boost of 1 is applied to the clause.\\n *\\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\\n * @see lunr.Query~Clause\\n * @returns {lunr.Query}\\n */\\nlunr.Query.prototype.clause = function (clause) {\\n if (!('fields' in clause)) {\\n clause.fields = this.allFields\\n }\\n\\n if (!('boost' in clause)) {\\n clause.boost = 1\\n }\\n\\n if (!('usePipeline' in clause)) {\\n clause.usePipeline = true\\n }\\n\\n if (!('wildcard' in clause)) {\\n clause.wildcard = lunr.Query.wildcard.NONE\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\\n clause.term = \\\"*\\\" + clause.term\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\\n clause.term = \\\"\\\" + clause.term + \\\"*\\\"\\n }\\n\\n if (!('presence' in clause)) {\\n clause.presence = lunr.Query.presence.OPTIONAL\\n }\\n\\n this.clauses.push(clause)\\n\\n return this\\n}\\n\\n/**\\n * A negated query is one in which every clause has a presence of\\n * prohibited. These queries require some special processing to return\\n * the expected results.\\n *\\n * @returns boolean\\n */\\nlunr.Query.prototype.isNegated = function () {\\n for (var i = 0; i < this.clauses.length; i++) {\\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\\n return false\\n }\\n }\\n\\n return true\\n}\\n\\n/**\\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\\n * to the list of clauses that make up this query.\\n *\\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\\n * to a token or token-like string should be done before calling this method.\\n *\\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\\n * array, each term in the array will share the same options.\\n *\\n * @param {object|object[]} term - The term(s) to add to the query.\\n * @param {object} [options] - Any additional properties to add to the query clause.\\n * @returns {lunr.Query}\\n * @see lunr.Query#clause\\n * @see lunr.Query~Clause\\n * @example adding a single term to a query\\n * query.term(\\\"foo\\\")\\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\\n * query.term(\\\"foo\\\", {\\n * fields: [\\\"title\\\"],\\n * boost: 10,\\n * wildcard: lunr.Query.wildcard.TRAILING\\n * })\\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\\n * query.term(lunr.tokenizer(\\\"foo bar\\\"))\\n */\\nlunr.Query.prototype.term = function (term, options) {\\n if (Array.isArray(term)) {\\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\\n return this\\n }\\n\\n var clause = options || {}\\n clause.term = term.toString()\\n\\n this.clause(clause)\\n\\n return this\\n}\\nlunr.QueryParseError = function (message, start, end) {\\n this.name = \\\"QueryParseError\\\"\\n this.message = message\\n this.start = start\\n this.end = end\\n}\\n\\nlunr.QueryParseError.prototype = new Error\\nlunr.QueryLexer = function (str) {\\n this.lexemes = []\\n this.str = str\\n this.length = str.length\\n this.pos = 0\\n this.start = 0\\n this.escapeCharPositions = []\\n}\\n\\nlunr.QueryLexer.prototype.run = function () {\\n var state = lunr.QueryLexer.lexText\\n\\n while (state) {\\n state = state(this)\\n }\\n}\\n\\nlunr.QueryLexer.prototype.sliceString = function () {\\n var subSlices = [],\\n sliceStart = this.start,\\n sliceEnd = this.pos\\n\\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\\n sliceEnd = this.escapeCharPositions[i]\\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\\n sliceStart = sliceEnd + 1\\n }\\n\\n subSlices.push(this.str.slice(sliceStart, this.pos))\\n this.escapeCharPositions.length = 0\\n\\n return subSlices.join('')\\n}\\n\\nlunr.QueryLexer.prototype.emit = function (type) {\\n this.lexemes.push({\\n type: type,\\n str: this.sliceString(),\\n start: this.start,\\n end: this.pos\\n })\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.escapeCharacter = function () {\\n this.escapeCharPositions.push(this.pos - 1)\\n this.pos += 1\\n}\\n\\nlunr.QueryLexer.prototype.next = function () {\\n if (this.pos >= this.length) {\\n return lunr.QueryLexer.EOS\\n }\\n\\n var char = this.str.charAt(this.pos)\\n this.pos += 1\\n return char\\n}\\n\\nlunr.QueryLexer.prototype.width = function () {\\n return this.pos - this.start\\n}\\n\\nlunr.QueryLexer.prototype.ignore = function () {\\n if (this.start == this.pos) {\\n this.pos += 1\\n }\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.backup = function () {\\n this.pos -= 1\\n}\\n\\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\\n var char, charCode\\n\\n do {\\n char = this.next()\\n charCode = char.charCodeAt(0)\\n } while (charCode > 47 && charCode < 58)\\n\\n if (char != lunr.QueryLexer.EOS) {\\n this.backup()\\n }\\n}\\n\\nlunr.QueryLexer.prototype.more = function () {\\n return this.pos < this.length\\n}\\n\\nlunr.QueryLexer.EOS = 'EOS'\\nlunr.QueryLexer.FIELD = 'FIELD'\\nlunr.QueryLexer.TERM = 'TERM'\\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\\nlunr.QueryLexer.BOOST = 'BOOST'\\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\\n\\nlunr.QueryLexer.lexField = function (lexer) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.FIELD)\\n lexer.ignore()\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexTerm = function (lexer) {\\n if (lexer.width() > 1) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n\\n lexer.ignore()\\n\\n if (lexer.more()) {\\n return lunr.QueryLexer.lexText\\n }\\n}\\n\\nlunr.QueryLexer.lexEditDistance = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexBoost = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.BOOST)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexEOS = function (lexer) {\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n}\\n\\n// This matches the separator used when tokenising fields\\n// within a document. These should match otherwise it is\\n// not possible to search for some tokens within a document.\\n//\\n// It is possible for the user to change the separator on the\\n// tokenizer so it _might_ clash with any other of the special\\n// characters already used within the search string, e.g. :.\\n//\\n// This means that it is possible to change the separator in\\n// such a way that makes some words unsearchable using a search\\n// string.\\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\\n\\nlunr.QueryLexer.lexText = function (lexer) {\\n while (true) {\\n var char = lexer.next()\\n\\n if (char == lunr.QueryLexer.EOS) {\\n return lunr.QueryLexer.lexEOS\\n }\\n\\n // Escape character is '\\\\'\\n if (char.charCodeAt(0) == 92) {\\n lexer.escapeCharacter()\\n continue\\n }\\n\\n if (char == \\\":\\\") {\\n return lunr.QueryLexer.lexField\\n }\\n\\n if (char == \\\"~\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexEditDistance\\n }\\n\\n if (char == \\\"^\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexBoost\\n }\\n\\n // \\\"+\\\" indicates term presence is required\\n // checking for length to ensure that only\\n // leading \\\"+\\\" are considered\\n if (char == \\\"+\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n // \\\"-\\\" indicates term presence is prohibited\\n // checking for length to ensure that only\\n // leading \\\"-\\\" are considered\\n if (char == \\\"-\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n if (char.match(lunr.QueryLexer.termSeparator)) {\\n return lunr.QueryLexer.lexTerm\\n }\\n }\\n}\\n\\nlunr.QueryParser = function (str, query) {\\n this.lexer = new lunr.QueryLexer (str)\\n this.query = query\\n this.currentClause = {}\\n this.lexemeIdx = 0\\n}\\n\\nlunr.QueryParser.prototype.parse = function () {\\n this.lexer.run()\\n this.lexemes = this.lexer.lexemes\\n\\n var state = lunr.QueryParser.parseClause\\n\\n while (state) {\\n state = state(this)\\n }\\n\\n return this.query\\n}\\n\\nlunr.QueryParser.prototype.peekLexeme = function () {\\n return this.lexemes[this.lexemeIdx]\\n}\\n\\nlunr.QueryParser.prototype.consumeLexeme = function () {\\n var lexeme = this.peekLexeme()\\n this.lexemeIdx += 1\\n return lexeme\\n}\\n\\nlunr.QueryParser.prototype.nextClause = function () {\\n var completedClause = this.currentClause\\n this.query.clause(completedClause)\\n this.currentClause = {}\\n}\\n\\nlunr.QueryParser.parseClause = function (parser) {\\n var lexeme = parser.peekLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.type) {\\n case lunr.QueryLexer.PRESENCE:\\n return lunr.QueryParser.parsePresence\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expected either a field or a term, found \\\" + lexeme.type\\n\\n if (lexeme.str.length >= 1) {\\n errorMessage += \\\" with value '\\\" + lexeme.str + \\\"'\\\"\\n }\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parsePresence = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.str) {\\n case \\\"-\\\":\\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\\n break\\n case \\\"+\\\":\\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\\n break\\n default:\\n var errorMessage = \\\"unrecognised presence operator'\\\" + lexeme.str + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term or field, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term or field, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseField = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\\n var possibleFields = parser.query.allFields.map(function (f) { return \\\"'\\\" + f + \\\"'\\\" }).join(', '),\\n errorMessage = \\\"unrecognised field '\\\" + lexeme.str + \\\"', possible fields: \\\" + possibleFields\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.fields = [lexeme.str]\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseTerm = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n parser.currentClause.term = lexeme.str.toLowerCase()\\n\\n if (lexeme.str.indexOf(\\\"*\\\") != -1) {\\n parser.currentClause.usePipeline = false\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseEditDistance = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var editDistance = parseInt(lexeme.str, 10)\\n\\n if (isNaN(editDistance)) {\\n var errorMessage = \\\"edit distance must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.editDistance = editDistance\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseBoost = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var boost = parseInt(lexeme.str, 10)\\n\\n if (isNaN(boost)) {\\n var errorMessage = \\\"boost must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.boost = boost\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\n /**\\n * export the module via AMD, CommonJS or as a browser global\\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\\n */\\n ;(function (root, factory) {\\n if (true) {\\n // AMD. Register as an anonymous module.\\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\\n\\t\\t\\t\\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_FACTORY__),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\\n } else {}\\n }(this, function () {\\n /**\\n * Just return a value to define the module export.\\n * This example returns an object, but the module\\n * can return a function as the exported value.\\n */\\n return lunr\\n }))\\n})();\\n\\n\\n/***/ }),\\n/* 5 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return !!exec();\\n } catch (error) {\\n return true;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 6 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar createPropertyDescriptor = __webpack_require__(22);\\n\\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\\n} : function (object, key, value) {\\n object[key] = value;\\n return object;\\n};\\n\\n\\n/***/ }),\\n/* 7 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n return typeof it === 'object' ? it !== null : typeof it === 'function';\\n};\\n\\n\\n/***/ }),\\n/* 8 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !fails(function () {\\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\\n});\\n\\n\\n/***/ }),\\n/* 9 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\nvar anObject = __webpack_require__(2);\\nvar toPrimitive = __webpack_require__(35);\\n\\nvar nativeDefineProperty = Object.defineProperty;\\n\\n// `Object.defineProperty` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\\n anObject(O);\\n P = toPrimitive(P, true);\\n anObject(Attributes);\\n if (IE8_DOM_DEFINE) try {\\n return nativeDefineProperty(O, P, Attributes);\\n } catch (error) { /* empty */ }\\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\\n if ('value' in Attributes) O[P] = Attributes.value;\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 10 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar setGlobal = __webpack_require__(20);\\nvar inspectSource = __webpack_require__(23);\\nvar InternalStateModule = __webpack_require__(16);\\n\\nvar getInternalState = InternalStateModule.get;\\nvar enforceInternalState = InternalStateModule.enforce;\\nvar TEMPLATE = String(String).split('String');\\n\\n(module.exports = function (O, key, value, options) {\\n var unsafe = options ? !!options.unsafe : false;\\n var simple = options ? !!options.enumerable : false;\\n var noTargetGet = options ? !!options.noTargetGet : false;\\n if (typeof value == 'function') {\\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\\n }\\n if (O === global) {\\n if (simple) O[key] = value;\\n else setGlobal(key, value);\\n return;\\n } else if (!unsafe) {\\n delete O[key];\\n } else if (!noTargetGet && O[key]) {\\n simple = true;\\n }\\n if (simple) O[key] = value;\\n else createNonEnumerableProperty(O, key, value);\\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\\n})(Function.prototype, 'toString', function toString() {\\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\\n});\\n\\n\\n/***/ }),\\n/* 11 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar path = __webpack_require__(40);\\nvar global = __webpack_require__(0);\\n\\nvar aFunction = function (variable) {\\n return typeof variable == 'function' ? variable : undefined;\\n};\\n\\nmodule.exports = function (namespace, method) {\\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\\n};\\n\\n\\n/***/ }),\\n/* 12 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = false;\\n\\n\\n/***/ }),\\n/* 13 */\\n/***/ (function(module, exports) {\\n\\nvar toString = {}.toString;\\n\\nmodule.exports = function (it) {\\n return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/***/ }),\\n/* 14 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 15 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n if (typeof it != 'function') {\\n throw TypeError(String(it) + ' is not a function');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 16 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar objectHas = __webpack_require__(3);\\nvar sharedKey = __webpack_require__(24);\\nvar hiddenKeys = __webpack_require__(25);\\n\\nvar WeakMap = global.WeakMap;\\nvar set, get, has;\\n\\nvar enforce = function (it) {\\n return has(it) ? get(it) : set(it, {});\\n};\\n\\nvar getterFor = function (TYPE) {\\n return function (it) {\\n var state;\\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\\n } return state;\\n };\\n};\\n\\nif (NATIVE_WEAK_MAP) {\\n var store = new WeakMap();\\n var wmget = store.get;\\n var wmhas = store.has;\\n var wmset = store.set;\\n set = function (it, metadata) {\\n wmset.call(store, it, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return wmget.call(store, it) || {};\\n };\\n has = function (it) {\\n return wmhas.call(store, it);\\n };\\n} else {\\n var STATE = sharedKey('state');\\n hiddenKeys[STATE] = true;\\n set = function (it, metadata) {\\n createNonEnumerableProperty(it, STATE, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return objectHas(it, STATE) ? it[STATE] : {};\\n };\\n has = function (it) {\\n return objectHas(it, STATE);\\n };\\n}\\n\\nmodule.exports = {\\n set: set,\\n get: get,\\n has: has,\\n enforce: enforce,\\n getterFor: getterFor\\n};\\n\\n\\n/***/ }),\\n/* 17 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar setGlobal = __webpack_require__(20);\\nvar copyConstructorProperties = __webpack_require__(67);\\nvar isForced = __webpack_require__(43);\\n\\n/*\\n options.target - name of the target object\\n options.global - target is the global object\\n options.stat - export as static methods of target\\n options.proto - export as prototype methods of target\\n options.real - real prototype method for the `pure` version\\n options.forced - export even if the native feature is available\\n options.bind - bind methods to the target, required for the `pure` version\\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\\n options.sham - add a flag to not completely full polyfills\\n options.enumerable - export as enumerable property\\n options.noTargetGet - prevent calling a getter on target\\n*/\\nmodule.exports = function (options, source) {\\n var TARGET = options.target;\\n var GLOBAL = options.global;\\n var STATIC = options.stat;\\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\\n if (GLOBAL) {\\n target = global;\\n } else if (STATIC) {\\n target = global[TARGET] || setGlobal(TARGET, {});\\n } else {\\n target = (global[TARGET] || {}).prototype;\\n }\\n if (target) for (key in source) {\\n sourceProperty = source[key];\\n if (options.noTargetGet) {\\n descriptor = getOwnPropertyDescriptor(target, key);\\n targetProperty = descriptor && descriptor.value;\\n } else targetProperty = target[key];\\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\\n // contained in target\\n if (!FORCED && targetProperty !== undefined) {\\n if (typeof sourceProperty === typeof targetProperty) continue;\\n copyConstructorProperties(sourceProperty, targetProperty);\\n }\\n // add a flag to not completely full polyfills\\n if (options.sham || (targetProperty && targetProperty.sham)) {\\n createNonEnumerableProperty(sourceProperty, 'sham', true);\\n }\\n // extend global\\n redefine(target, key, sourceProperty, options);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 18 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n// toObject with fallback for non-array-like ES3 strings\\nvar IndexedObject = __webpack_require__(66);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\nmodule.exports = function (it) {\\n return IndexedObject(requireObjectCoercible(it));\\n};\\n\\n\\n/***/ }),\\n/* 19 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar test = {};\\n\\ntest[TO_STRING_TAG] = 'z';\\n\\nmodule.exports = String(test) === '[object z]';\\n\\n\\n/***/ }),\\n/* 20 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\n\\nmodule.exports = function (key, value) {\\n try {\\n createNonEnumerableProperty(global, key, value);\\n } catch (error) {\\n global[key] = value;\\n } return value;\\n};\\n\\n\\n/***/ }),\\n/* 21 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\n\\nvar document = global.document;\\n// typeof document.createElement is 'object' in old IE\\nvar EXISTS = isObject(document) && isObject(document.createElement);\\n\\nmodule.exports = function (it) {\\n return EXISTS ? document.createElement(it) : {};\\n};\\n\\n\\n/***/ }),\\n/* 22 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (bitmap, value) {\\n return {\\n enumerable: !(bitmap & 1),\\n configurable: !(bitmap & 2),\\n writable: !(bitmap & 4),\\n value: value\\n };\\n};\\n\\n\\n/***/ }),\\n/* 23 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar store = __webpack_require__(33);\\n\\nvar functionToString = Function.toString;\\n\\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\\nif (typeof store.inspectSource != 'function') {\\n store.inspectSource = function (it) {\\n return functionToString.call(it);\\n };\\n}\\n\\nmodule.exports = store.inspectSource;\\n\\n\\n/***/ }),\\n/* 24 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar shared = __webpack_require__(32);\\nvar uid = __webpack_require__(36);\\n\\nvar keys = shared('keys');\\n\\nmodule.exports = function (key) {\\n return keys[key] || (keys[key] = uid(key));\\n};\\n\\n\\n/***/ }),\\n/* 25 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 26 */\\n/***/ (function(module, exports) {\\n\\nvar ceil = Math.ceil;\\nvar floor = Math.floor;\\n\\n// `ToInteger` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tointeger\\nmodule.exports = function (argument) {\\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\\n};\\n\\n\\n/***/ }),\\n/* 27 */\\n/***/ (function(module, exports) {\\n\\n// `RequireObjectCoercible` abstract operation\\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\\nmodule.exports = function (it) {\\n if (it == undefined) throw TypeError(\\\"Can't call method on \\\" + it);\\n return it;\\n};\\n\\n\\n/***/ }),\\n/* 28 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar propertyIsEnumerableModule = __webpack_require__(65);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar toIndexedObject = __webpack_require__(18);\\nvar toPrimitive = __webpack_require__(35);\\nvar has = __webpack_require__(3);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\n\\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// `Object.getOwnPropertyDescriptor` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\\n O = toIndexedObject(O);\\n P = toPrimitive(P, true);\\n if (IE8_DOM_DEFINE) try {\\n return nativeGetOwnPropertyDescriptor(O, P);\\n } catch (error) { /* empty */ }\\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\\n};\\n\\n\\n/***/ }),\\n/* 29 */\\n/***/ (function(module, exports) {\\n\\n// IE8- don't enum bug keys\\nmodule.exports = [\\n 'constructor',\\n 'hasOwnProperty',\\n 'isPrototypeOf',\\n 'propertyIsEnumerable',\\n 'toLocaleString',\\n 'toString',\\n 'valueOf'\\n];\\n\\n\\n/***/ }),\\n/* 30 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar defineProperty = __webpack_require__(9).f;\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n\\nmodule.exports = function (it, TAG, STATIC) {\\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 31 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar aFunction = __webpack_require__(15);\\n\\nvar PromiseCapability = function (C) {\\n var resolve, reject;\\n this.promise = new C(function ($$resolve, $$reject) {\\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\\n resolve = $$resolve;\\n reject = $$reject;\\n });\\n this.resolve = aFunction(resolve);\\n this.reject = aFunction(reject);\\n};\\n\\n// 25.4.1.5 NewPromiseCapability(C)\\nmodule.exports.f = function (C) {\\n return new PromiseCapability(C);\\n};\\n\\n\\n/***/ }),\\n/* 32 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar IS_PURE = __webpack_require__(12);\\nvar store = __webpack_require__(33);\\n\\n(module.exports = function (key, value) {\\n return store[key] || (store[key] = value !== undefined ? value : {});\\n})('versions', []).push({\\n version: '3.6.5',\\n mode: IS_PURE ? 'pure' : 'global',\\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\\n});\\n\\n\\n/***/ }),\\n/* 33 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar setGlobal = __webpack_require__(20);\\n\\nvar SHARED = '__core-js_shared__';\\nvar store = global[SHARED] || setGlobal(SHARED, {});\\n\\nmodule.exports = store;\\n\\n\\n/***/ }),\\n/* 34 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar fails = __webpack_require__(5);\\nvar createElement = __webpack_require__(21);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !DESCRIPTORS && !fails(function () {\\n return Object.defineProperty(createElement('div'), 'a', {\\n get: function () { return 7; }\\n }).a != 7;\\n});\\n\\n\\n/***/ }),\\n/* 35 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\n// `ToPrimitive` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toprimitive\\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\\n// and the second argument - flag - preferred type is a string\\nmodule.exports = function (input, PREFERRED_STRING) {\\n if (!isObject(input)) return input;\\n var fn, val;\\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n throw TypeError(\\\"Can't convert object to primitive value\\\");\\n};\\n\\n\\n/***/ }),\\n/* 36 */\\n/***/ (function(module, exports) {\\n\\nvar id = 0;\\nvar postfix = Math.random();\\n\\nmodule.exports = function (key) {\\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\\n};\\n\\n\\n/***/ }),\\n/* 37 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\\n // Chrome 38 Symbol has incorrect toString conversion\\n // eslint-disable-next-line no-undef\\n return !String(Symbol());\\n});\\n\\n\\n/***/ }),\\n/* 38 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classofRaw = __webpack_require__(13);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n// ES3 wrong here\\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\\n\\n// fallback for IE11 Script Access Denied error\\nvar tryGet = function (it, key) {\\n try {\\n return it[key];\\n } catch (error) { /* empty */ }\\n};\\n\\n// getting tag from ES6+ `Object.prototype.toString`\\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\\n var O, tag, result;\\n return it === undefined ? 'Undefined' : it === null ? 'Null'\\n // @@toStringTag case\\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\\n // builtinTag case\\n : CORRECT_ARGUMENTS ? classofRaw(O)\\n // ES3 arguments fallback\\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\\n};\\n\\n\\n/***/ }),\\n/* 39 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar createIteratorConstructor = __webpack_require__(73);\\nvar getPrototypeOf = __webpack_require__(45);\\nvar setPrototypeOf = __webpack_require__(78);\\nvar setToStringTag = __webpack_require__(30);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\nvar Iterators = __webpack_require__(14);\\nvar IteratorsCore = __webpack_require__(44);\\n\\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar KEYS = 'keys';\\nvar VALUES = 'values';\\nvar ENTRIES = 'entries';\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\\n createIteratorConstructor(IteratorConstructor, NAME, next);\\n\\n var getIterationMethod = function (KIND) {\\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\\n switch (KIND) {\\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\\n } return function () { return new IteratorConstructor(this); };\\n };\\n\\n var TO_STRING_TAG = NAME + ' Iterator';\\n var INCORRECT_VALUES_NAME = false;\\n var IterablePrototype = Iterable.prototype;\\n var nativeIterator = IterablePrototype[ITERATOR]\\n || IterablePrototype['@@iterator']\\n || DEFAULT && IterablePrototype[DEFAULT];\\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\\n var CurrentIteratorPrototype, methods, KEY;\\n\\n // fix native\\n if (anyNativeIterator) {\\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\\n if (setPrototypeOf) {\\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\\n }\\n }\\n // Set @@toStringTag to native iterators\\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\\n }\\n }\\n\\n // fix Array#{values, @@iterator}.name in V8 / FF\\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\\n INCORRECT_VALUES_NAME = true;\\n defaultIterator = function values() { return nativeIterator.call(this); };\\n }\\n\\n // define iterator\\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\\n }\\n Iterators[NAME] = defaultIterator;\\n\\n // export additional methods\\n if (DEFAULT) {\\n methods = {\\n values: getIterationMethod(VALUES),\\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\\n entries: getIterationMethod(ENTRIES)\\n };\\n if (FORCED) for (KEY in methods) {\\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\\n redefine(IterablePrototype, KEY, methods[KEY]);\\n }\\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\\n }\\n\\n return methods;\\n};\\n\\n\\n/***/ }),\\n/* 40 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global;\\n\\n\\n/***/ }),\\n/* 41 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toIndexedObject = __webpack_require__(18);\\nvar indexOf = __webpack_require__(70).indexOf;\\nvar hiddenKeys = __webpack_require__(25);\\n\\nmodule.exports = function (object, names) {\\n var O = toIndexedObject(object);\\n var i = 0;\\n var result = [];\\n var key;\\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\\n // Don't enum bug & hidden keys\\n while (names.length > i) if (has(O, key = names[i++])) {\\n ~indexOf(result, key) || result.push(key);\\n }\\n return result;\\n};\\n\\n\\n/***/ }),\\n/* 42 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar min = Math.min;\\n\\n// `ToLength` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tolength\\nmodule.exports = function (argument) {\\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\\n};\\n\\n\\n/***/ }),\\n/* 43 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nvar replacement = /#|\\\\.prototype\\\\./;\\n\\nvar isForced = function (feature, detection) {\\n var value = data[normalize(feature)];\\n return value == POLYFILL ? true\\n : value == NATIVE ? false\\n : typeof detection == 'function' ? fails(detection)\\n : !!detection;\\n};\\n\\nvar normalize = isForced.normalize = function (string) {\\n return String(string).replace(replacement, '.').toLowerCase();\\n};\\n\\nvar data = isForced.data = {};\\nvar NATIVE = isForced.NATIVE = 'N';\\nvar POLYFILL = isForced.POLYFILL = 'P';\\n\\nmodule.exports = isForced;\\n\\n\\n/***/ }),\\n/* 44 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getPrototypeOf = __webpack_require__(45);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar BUGGY_SAFARI_ITERATORS = false;\\n\\nvar returnThis = function () { return this; };\\n\\n// `%IteratorPrototype%` object\\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\\n\\nif ([].keys) {\\n arrayIterator = [].keys();\\n // Safari 8 has buggy iterators w/o `next`\\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\\n else {\\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\\n }\\n}\\n\\nif (IteratorPrototype == undefined) IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\\n}\\n\\nmodule.exports = {\\n IteratorPrototype: IteratorPrototype,\\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\\n};\\n\\n\\n/***/ }),\\n/* 45 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toObject = __webpack_require__(74);\\nvar sharedKey = __webpack_require__(24);\\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\\n\\nvar IE_PROTO = sharedKey('IE_PROTO');\\nvar ObjectPrototype = Object.prototype;\\n\\n// `Object.getPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\\n O = toObject(O);\\n if (has(O, IE_PROTO)) return O[IE_PROTO];\\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\\n return O.constructor.prototype;\\n } return O instanceof Object ? ObjectPrototype : null;\\n};\\n\\n\\n/***/ }),\\n/* 46 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar defineProperties = __webpack_require__(76);\\nvar enumBugKeys = __webpack_require__(29);\\nvar hiddenKeys = __webpack_require__(25);\\nvar html = __webpack_require__(47);\\nvar documentCreateElement = __webpack_require__(21);\\nvar sharedKey = __webpack_require__(24);\\n\\nvar GT = '>';\\nvar LT = '<';\\nvar PROTOTYPE = 'prototype';\\nvar SCRIPT = 'script';\\nvar IE_PROTO = sharedKey('IE_PROTO');\\n\\nvar EmptyConstructor = function () { /* empty */ };\\n\\nvar scriptTag = function (content) {\\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\\n};\\n\\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\\n activeXDocument.write(scriptTag(''));\\n activeXDocument.close();\\n var temp = activeXDocument.parentWindow.Object;\\n activeXDocument = null; // avoid memory leak\\n return temp;\\n};\\n\\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\\nvar NullProtoObjectViaIFrame = function () {\\n // Thrash, waste and sodomy: IE GC bug\\n var iframe = documentCreateElement('iframe');\\n var JS = 'java' + SCRIPT + ':';\\n var iframeDocument;\\n iframe.style.display = 'none';\\n html.appendChild(iframe);\\n // https://github.com/zloirock/core-js/issues/475\\n iframe.src = String(JS);\\n iframeDocument = iframe.contentWindow.document;\\n iframeDocument.open();\\n iframeDocument.write(scriptTag('document.F=Object'));\\n iframeDocument.close();\\n return iframeDocument.F;\\n};\\n\\n// Check for document.domain and active x support\\n// No need to use active x approach when document.domain is not set\\n// see https://github.com/es-shims/es5-shim/issues/150\\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\\n// avoid IE GC bug\\nvar activeXDocument;\\nvar NullProtoObject = function () {\\n try {\\n /* global ActiveXObject */\\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\\n } catch (error) { /* ignore */ }\\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\\n var length = enumBugKeys.length;\\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\\n return NullProtoObject();\\n};\\n\\nhiddenKeys[IE_PROTO] = true;\\n\\n// `Object.create` method\\n// https://tc39.github.io/ecma262/#sec-object.create\\nmodule.exports = Object.create || function create(O, Properties) {\\n var result;\\n if (O !== null) {\\n EmptyConstructor[PROTOTYPE] = anObject(O);\\n result = new EmptyConstructor();\\n EmptyConstructor[PROTOTYPE] = null;\\n // add \\\"__proto__\\\" for Object.getPrototypeOf polyfill\\n result[IE_PROTO] = O;\\n } else result = NullProtoObject();\\n return Properties === undefined ? result : defineProperties(result, Properties);\\n};\\n\\n\\n/***/ }),\\n/* 47 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('document', 'documentElement');\\n\\n\\n/***/ }),\\n/* 48 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global.Promise;\\n\\n\\n/***/ }),\\n/* 49 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isArrayIteratorMethod = __webpack_require__(88);\\nvar toLength = __webpack_require__(42);\\nvar bind = __webpack_require__(50);\\nvar getIteratorMethod = __webpack_require__(89);\\nvar callWithSafeIterationClosing = __webpack_require__(90);\\n\\nvar Result = function (stopped, result) {\\n this.stopped = stopped;\\n this.result = result;\\n};\\n\\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\\n var iterator, iterFn, index, length, result, next, step;\\n\\n if (IS_ITERATOR) {\\n iterator = iterable;\\n } else {\\n iterFn = getIteratorMethod(iterable);\\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\\n // optimisation for array iterators\\n if (isArrayIteratorMethod(iterFn)) {\\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\\n result = AS_ENTRIES\\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\\n : boundFunction(iterable[index]);\\n if (result && result instanceof Result) return result;\\n } return new Result(false);\\n }\\n iterator = iterFn.call(iterable);\\n }\\n\\n next = iterator.next;\\n while (!(step = next.call(iterator)).done) {\\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\\n if (typeof result == 'object' && result && result instanceof Result) return result;\\n } return new Result(false);\\n};\\n\\niterate.stop = function (result) {\\n return new Result(true, result);\\n};\\n\\n\\n/***/ }),\\n/* 50 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar aFunction = __webpack_require__(15);\\n\\n// optional / simple context binding\\nmodule.exports = function (fn, that, length) {\\n aFunction(fn);\\n if (that === undefined) return fn;\\n switch (length) {\\n case 0: return function () {\\n return fn.call(that);\\n };\\n case 1: return function (a) {\\n return fn.call(that, a);\\n };\\n case 2: return function (a, b) {\\n return fn.call(that, a, b);\\n };\\n case 3: return function (a, b, c) {\\n return fn.call(that, a, b, c);\\n };\\n }\\n return function (/* ...args */) {\\n return fn.apply(that, arguments);\\n };\\n};\\n\\n\\n/***/ }),\\n/* 51 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aFunction = __webpack_require__(15);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\n// `SpeciesConstructor` abstract operation\\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\\nmodule.exports = function (O, defaultConstructor) {\\n var C = anObject(O).constructor;\\n var S;\\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\\n};\\n\\n\\n/***/ }),\\n/* 52 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\nvar bind = __webpack_require__(50);\\nvar html = __webpack_require__(47);\\nvar createElement = __webpack_require__(21);\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar location = global.location;\\nvar set = global.setImmediate;\\nvar clear = global.clearImmediate;\\nvar process = global.process;\\nvar MessageChannel = global.MessageChannel;\\nvar Dispatch = global.Dispatch;\\nvar counter = 0;\\nvar queue = {};\\nvar ONREADYSTATECHANGE = 'onreadystatechange';\\nvar defer, channel, port;\\n\\nvar run = function (id) {\\n // eslint-disable-next-line no-prototype-builtins\\n if (queue.hasOwnProperty(id)) {\\n var fn = queue[id];\\n delete queue[id];\\n fn();\\n }\\n};\\n\\nvar runner = function (id) {\\n return function () {\\n run(id);\\n };\\n};\\n\\nvar listener = function (event) {\\n run(event.data);\\n};\\n\\nvar post = function (id) {\\n // old engines have not location.origin\\n global.postMessage(id + '', location.protocol + '//' + location.host);\\n};\\n\\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\\nif (!set || !clear) {\\n set = function setImmediate(fn) {\\n var args = [];\\n var i = 1;\\n while (arguments.length > i) args.push(arguments[i++]);\\n queue[++counter] = function () {\\n // eslint-disable-next-line no-new-func\\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\\n };\\n defer(counter);\\n return counter;\\n };\\n clear = function clearImmediate(id) {\\n delete queue[id];\\n };\\n // Node.js 0.8-\\n if (classof(process) == 'process') {\\n defer = function (id) {\\n process.nextTick(runner(id));\\n };\\n // Sphere (JS game engine) Dispatch API\\n } else if (Dispatch && Dispatch.now) {\\n defer = function (id) {\\n Dispatch.now(runner(id));\\n };\\n // Browsers with MessageChannel, includes WebWorkers\\n // except iOS - https://github.com/zloirock/core-js/issues/624\\n } else if (MessageChannel && !IS_IOS) {\\n channel = new MessageChannel();\\n port = channel.port2;\\n channel.port1.onmessage = listener;\\n defer = bind(port.postMessage, port, 1);\\n // Browsers with postMessage, skip WebWorkers\\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\\n } else if (\\n global.addEventListener &&\\n typeof postMessage == 'function' &&\\n !global.importScripts &&\\n !fails(post) &&\\n location.protocol !== 'file:'\\n ) {\\n defer = post;\\n global.addEventListener('message', listener, false);\\n // IE8-\\n } else if (ONREADYSTATECHANGE in createElement('script')) {\\n defer = function (id) {\\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\\n html.removeChild(this);\\n run(id);\\n };\\n };\\n // Rest old browsers\\n } else {\\n defer = function (id) {\\n setTimeout(runner(id), 0);\\n };\\n }\\n}\\n\\nmodule.exports = {\\n set: set,\\n clear: clear\\n};\\n\\n\\n/***/ }),\\n/* 53 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar userAgent = __webpack_require__(54);\\n\\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\\n\\n\\n/***/ }),\\n/* 54 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\\n\\n\\n/***/ }),\\n/* 55 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isObject = __webpack_require__(7);\\nvar newPromiseCapability = __webpack_require__(31);\\n\\nmodule.exports = function (C, x) {\\n anObject(C);\\n if (isObject(x) && x.constructor === C) return x;\\n var promiseCapability = newPromiseCapability.f(C);\\n var resolve = promiseCapability.resolve;\\n resolve(x);\\n return promiseCapability.promise;\\n};\\n\\n\\n/***/ }),\\n/* 56 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return { error: false, value: exec() };\\n } catch (error) {\\n return { error: true, value: error };\\n }\\n};\\n\\n\\n/***/ }),\\n/* 57 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n__webpack_require__(58);\\n__webpack_require__(63);\\n__webpack_require__(80);\\n__webpack_require__(84);\\n__webpack_require__(95);\\n__webpack_require__(96);\\nvar path = __webpack_require__(40);\\n\\nmodule.exports = path.Promise;\\n\\n\\n/***/ }),\\n/* 58 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar redefine = __webpack_require__(10);\\nvar toString = __webpack_require__(62);\\n\\n// `Object.prototype.toString` method\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nif (!TO_STRING_TAG_SUPPORT) {\\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\\n}\\n\\n\\n/***/ }),\\n/* 59 */\\n/***/ (function(module, exports) {\\n\\nvar g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n/***/ }),\\n/* 60 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\n\\nmodule.exports = NATIVE_SYMBOL\\n // eslint-disable-next-line no-undef\\n && !Symbol.sham\\n // eslint-disable-next-line no-undef\\n && typeof Symbol.iterator == 'symbol';\\n\\n\\n/***/ }),\\n/* 61 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar inspectSource = __webpack_require__(23);\\n\\nvar WeakMap = global.WeakMap;\\n\\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\\n\\n\\n/***/ }),\\n/* 62 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classof = __webpack_require__(38);\\n\\n// `Object.prototype.toString` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\\n return '[object ' + classof(this) + ']';\\n};\\n\\n\\n/***/ }),\\n/* 63 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar charAt = __webpack_require__(64).charAt;\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar STRING_ITERATOR = 'String Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\\n\\n// `String.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\\ndefineIterator(String, 'String', function (iterated) {\\n setInternalState(this, {\\n type: STRING_ITERATOR,\\n string: String(iterated),\\n index: 0\\n });\\n// `%StringIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\\n}, function next() {\\n var state = getInternalState(this);\\n var string = state.string;\\n var index = state.index;\\n var point;\\n if (index >= string.length) return { value: undefined, done: true };\\n point = charAt(string, index);\\n state.index += point.length;\\n return { value: point, done: false };\\n});\\n\\n\\n/***/ }),\\n/* 64 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `String.prototype.{ codePointAt, at }` methods implementation\\nvar createMethod = function (CONVERT_TO_STRING) {\\n return function ($this, pos) {\\n var S = String(requireObjectCoercible($this));\\n var position = toInteger(pos);\\n var size = S.length;\\n var first, second;\\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\\n first = S.charCodeAt(position);\\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\\n ? CONVERT_TO_STRING ? S.charAt(position) : first\\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\\n };\\n};\\n\\nmodule.exports = {\\n // `String.prototype.codePointAt` method\\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\\n codeAt: createMethod(false),\\n // `String.prototype.at` method\\n // https://github.com/mathiasbynens/String.prototype.at\\n charAt: createMethod(true)\\n};\\n\\n\\n/***/ }),\\n/* 65 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// Nashorn ~ JDK8 bug\\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\\n\\n// `Object.prototype.propertyIsEnumerable` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\\n var descriptor = getOwnPropertyDescriptor(this, V);\\n return !!descriptor && descriptor.enumerable;\\n} : nativePropertyIsEnumerable;\\n\\n\\n/***/ }),\\n/* 66 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\n\\nvar split = ''.split;\\n\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nmodule.exports = fails(function () {\\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\\n // eslint-disable-next-line no-prototype-builtins\\n return !Object('z').propertyIsEnumerable(0);\\n}) ? function (it) {\\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\\n} : Object;\\n\\n\\n/***/ }),\\n/* 67 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar ownKeys = __webpack_require__(68);\\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nmodule.exports = function (target, source) {\\n var keys = ownKeys(source);\\n var defineProperty = definePropertyModule.f;\\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i];\\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\\n }\\n};\\n\\n\\n/***/ }),\\n/* 68 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar getOwnPropertyNamesModule = __webpack_require__(69);\\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\\nvar anObject = __webpack_require__(2);\\n\\n// all object keys, includes non-enumerable and symbols\\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\\n var keys = getOwnPropertyNamesModule.f(anObject(it));\\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\\n};\\n\\n\\n/***/ }),\\n/* 69 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\\n\\n// `Object.getOwnPropertyNames` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\\n return internalObjectKeys(O, hiddenKeys);\\n};\\n\\n\\n/***/ }),\\n/* 70 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar toLength = __webpack_require__(42);\\nvar toAbsoluteIndex = __webpack_require__(71);\\n\\n// `Array.prototype.{ indexOf, includes }` methods implementation\\nvar createMethod = function (IS_INCLUDES) {\\n return function ($this, el, fromIndex) {\\n var O = toIndexedObject($this);\\n var length = toLength(O.length);\\n var index = toAbsoluteIndex(fromIndex, length);\\n var value;\\n // Array#includes uses SameValueZero equality algorithm\\n // eslint-disable-next-line no-self-compare\\n if (IS_INCLUDES && el != el) while (length > index) {\\n value = O[index++];\\n // eslint-disable-next-line no-self-compare\\n if (value != value) return true;\\n // Array#indexOf ignores holes, Array#includes - not\\n } else for (;length > index; index++) {\\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\\n } return !IS_INCLUDES && -1;\\n };\\n};\\n\\nmodule.exports = {\\n // `Array.prototype.includes` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\\n includes: createMethod(true),\\n // `Array.prototype.indexOf` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\\n indexOf: createMethod(false)\\n};\\n\\n\\n/***/ }),\\n/* 71 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar max = Math.max;\\nvar min = Math.min;\\n\\n// Helper for a popular repeating case of the spec:\\n// Let integer be ? ToInteger(index).\\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\\nmodule.exports = function (index, length) {\\n var integer = toInteger(index);\\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\\n};\\n\\n\\n/***/ }),\\n/* 72 */\\n/***/ (function(module, exports) {\\n\\nexports.f = Object.getOwnPropertySymbols;\\n\\n\\n/***/ }),\\n/* 73 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\\nvar create = __webpack_require__(46);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar setToStringTag = __webpack_require__(30);\\nvar Iterators = __webpack_require__(14);\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (IteratorConstructor, NAME, next) {\\n var TO_STRING_TAG = NAME + ' Iterator';\\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\\n Iterators[TO_STRING_TAG] = returnThis;\\n return IteratorConstructor;\\n};\\n\\n\\n/***/ }),\\n/* 74 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `ToObject` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toobject\\nmodule.exports = function (argument) {\\n return Object(requireObjectCoercible(argument));\\n};\\n\\n\\n/***/ }),\\n/* 75 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !fails(function () {\\n function F() { /* empty */ }\\n F.prototype.constructor = null;\\n return Object.getPrototypeOf(new F()) !== F.prototype;\\n});\\n\\n\\n/***/ }),\\n/* 76 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar anObject = __webpack_require__(2);\\nvar objectKeys = __webpack_require__(77);\\n\\n// `Object.defineProperties` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\\n anObject(O);\\n var keys = objectKeys(Properties);\\n var length = keys.length;\\n var index = 0;\\n var key;\\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 77 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\n// `Object.keys` method\\n// https://tc39.github.io/ecma262/#sec-object.keys\\nmodule.exports = Object.keys || function keys(O) {\\n return internalObjectKeys(O, enumBugKeys);\\n};\\n\\n\\n/***/ }),\\n/* 78 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aPossiblePrototype = __webpack_require__(79);\\n\\n// `Object.setPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\\n// Works with __proto__ only. Old v8 can't work with null proto objects.\\n/* eslint-disable no-proto */\\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\\n var CORRECT_SETTER = false;\\n var test = {};\\n var setter;\\n try {\\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\\n setter.call(test, []);\\n CORRECT_SETTER = test instanceof Array;\\n } catch (error) { /* empty */ }\\n return function setPrototypeOf(O, proto) {\\n anObject(O);\\n aPossiblePrototype(proto);\\n if (CORRECT_SETTER) setter.call(O, proto);\\n else O.__proto__ = proto;\\n return O;\\n };\\n}() : undefined);\\n\\n\\n/***/ }),\\n/* 79 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it) && it !== null) {\\n throw TypeError(\\\"Can't set \\\" + String(it) + ' as a prototype');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 80 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar DOMIterables = __webpack_require__(81);\\nvar ArrayIteratorMethods = __webpack_require__(82);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar ArrayValues = ArrayIteratorMethods.values;\\n\\nfor (var COLLECTION_NAME in DOMIterables) {\\n var Collection = global[COLLECTION_NAME];\\n var CollectionPrototype = Collection && Collection.prototype;\\n if (CollectionPrototype) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\\n } catch (error) {\\n CollectionPrototype[ITERATOR] = ArrayValues;\\n }\\n if (!CollectionPrototype[TO_STRING_TAG]) {\\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\\n }\\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\\n } catch (error) {\\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\\n }\\n }\\n }\\n}\\n\\n\\n/***/ }),\\n/* 81 */\\n/***/ (function(module, exports) {\\n\\n// iterable DOM collections\\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\\nmodule.exports = {\\n CSSRuleList: 0,\\n CSSStyleDeclaration: 0,\\n CSSValueList: 0,\\n ClientRectList: 0,\\n DOMRectList: 0,\\n DOMStringList: 0,\\n DOMTokenList: 1,\\n DataTransferItemList: 0,\\n FileList: 0,\\n HTMLAllCollection: 0,\\n HTMLCollection: 0,\\n HTMLFormElement: 0,\\n HTMLSelectElement: 0,\\n MediaList: 0,\\n MimeTypeArray: 0,\\n NamedNodeMap: 0,\\n NodeList: 1,\\n PaintRequestList: 0,\\n Plugin: 0,\\n PluginArray: 0,\\n SVGLengthList: 0,\\n SVGNumberList: 0,\\n SVGPathSegList: 0,\\n SVGPointList: 0,\\n SVGStringList: 0,\\n SVGTransformList: 0,\\n SourceBufferList: 0,\\n StyleSheetList: 0,\\n TextTrackCueList: 0,\\n TextTrackList: 0,\\n TouchList: 0\\n};\\n\\n\\n/***/ }),\\n/* 82 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar addToUnscopables = __webpack_require__(83);\\nvar Iterators = __webpack_require__(14);\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar ARRAY_ITERATOR = 'Array Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\\n\\n// `Array.prototype.entries` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\\n// `Array.prototype.keys` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\\n// `Array.prototype.values` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\\n// `Array.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\\n// `CreateArrayIterator` internal method\\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\\n setInternalState(this, {\\n type: ARRAY_ITERATOR,\\n target: toIndexedObject(iterated), // target\\n index: 0, // next index\\n kind: kind // kind\\n });\\n// `%ArrayIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\\n}, function () {\\n var state = getInternalState(this);\\n var target = state.target;\\n var kind = state.kind;\\n var index = state.index++;\\n if (!target || index >= target.length) {\\n state.target = undefined;\\n return { value: undefined, done: true };\\n }\\n if (kind == 'keys') return { value: index, done: false };\\n if (kind == 'values') return { value: target[index], done: false };\\n return { value: [index, target[index]], done: false };\\n}, 'values');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values%\\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\\nIterators.Arguments = Iterators.Array;\\n\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\naddToUnscopables('keys');\\naddToUnscopables('values');\\naddToUnscopables('entries');\\n\\n\\n/***/ }),\\n/* 83 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar create = __webpack_require__(46);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\\nvar ArrayPrototype = Array.prototype;\\n\\n// Array.prototype[@@unscopables]\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\\n configurable: true,\\n value: create(null)\\n });\\n}\\n\\n// add a key to Array.prototype[@@unscopables]\\nmodule.exports = function (key) {\\n ArrayPrototype[UNSCOPABLES][key] = true;\\n};\\n\\n\\n/***/ }),\\n/* 84 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar global = __webpack_require__(0);\\nvar getBuiltIn = __webpack_require__(11);\\nvar NativePromise = __webpack_require__(48);\\nvar redefine = __webpack_require__(10);\\nvar redefineAll = __webpack_require__(85);\\nvar setToStringTag = __webpack_require__(30);\\nvar setSpecies = __webpack_require__(86);\\nvar isObject = __webpack_require__(7);\\nvar aFunction = __webpack_require__(15);\\nvar anInstance = __webpack_require__(87);\\nvar classof = __webpack_require__(13);\\nvar inspectSource = __webpack_require__(23);\\nvar iterate = __webpack_require__(49);\\nvar checkCorrectnessOfIteration = __webpack_require__(91);\\nvar speciesConstructor = __webpack_require__(51);\\nvar task = __webpack_require__(52).set;\\nvar microtask = __webpack_require__(92);\\nvar promiseResolve = __webpack_require__(55);\\nvar hostReportErrors = __webpack_require__(93);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar InternalStateModule = __webpack_require__(16);\\nvar isForced = __webpack_require__(43);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar V8_VERSION = __webpack_require__(94);\\n\\nvar SPECIES = wellKnownSymbol('species');\\nvar PROMISE = 'Promise';\\nvar getInternalState = InternalStateModule.get;\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\\nvar PromiseConstructor = NativePromise;\\nvar TypeError = global.TypeError;\\nvar document = global.document;\\nvar process = global.process;\\nvar $fetch = getBuiltIn('fetch');\\nvar newPromiseCapability = newPromiseCapabilityModule.f;\\nvar newGenericPromiseCapability = newPromiseCapability;\\nvar IS_NODE = classof(process) == 'process';\\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\\nvar UNHANDLED_REJECTION = 'unhandledrejection';\\nvar REJECTION_HANDLED = 'rejectionhandled';\\nvar PENDING = 0;\\nvar FULFILLED = 1;\\nvar REJECTED = 2;\\nvar HANDLED = 1;\\nvar UNHANDLED = 2;\\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\\n\\nvar FORCED = isForced(PROMISE, function () {\\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\\n if (!GLOBAL_CORE_JS_PROMISE) {\\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\\n // We can't detect it synchronously, so just check versions\\n if (V8_VERSION === 66) return true;\\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\\n }\\n // We need Promise#finally in the pure version for preventing prototype pollution\\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\\n // We can't use @@species feature detection in V8 since it causes\\n // deoptimization and performance degradation\\n // https://github.com/zloirock/core-js/issues/679\\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\\n // Detect correctness of subclassing with @@species support\\n var promise = PromiseConstructor.resolve(1);\\n var FakePromise = function (exec) {\\n exec(function () { /* empty */ }, function () { /* empty */ });\\n };\\n var constructor = promise.constructor = {};\\n constructor[SPECIES] = FakePromise;\\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\\n});\\n\\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\\n});\\n\\n// helpers\\nvar isThenable = function (it) {\\n var then;\\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\\n};\\n\\nvar notify = function (promise, state, isReject) {\\n if (state.notified) return;\\n state.notified = true;\\n var chain = state.reactions;\\n microtask(function () {\\n var value = state.value;\\n var ok = state.state == FULFILLED;\\n var index = 0;\\n // variable length - can't use forEach\\n while (chain.length > index) {\\n var reaction = chain[index++];\\n var handler = ok ? reaction.ok : reaction.fail;\\n var resolve = reaction.resolve;\\n var reject = reaction.reject;\\n var domain = reaction.domain;\\n var result, then, exited;\\n try {\\n if (handler) {\\n if (!ok) {\\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\\n state.rejection = HANDLED;\\n }\\n if (handler === true) result = value;\\n else {\\n if (domain) domain.enter();\\n result = handler(value); // can throw\\n if (domain) {\\n domain.exit();\\n exited = true;\\n }\\n }\\n if (result === reaction.promise) {\\n reject(TypeError('Promise-chain cycle'));\\n } else if (then = isThenable(result)) {\\n then.call(result, resolve, reject);\\n } else resolve(result);\\n } else reject(value);\\n } catch (error) {\\n if (domain && !exited) domain.exit();\\n reject(error);\\n }\\n }\\n state.reactions = [];\\n state.notified = false;\\n if (isReject && !state.rejection) onUnhandled(promise, state);\\n });\\n};\\n\\nvar dispatchEvent = function (name, promise, reason) {\\n var event, handler;\\n if (DISPATCH_EVENT) {\\n event = document.createEvent('Event');\\n event.promise = promise;\\n event.reason = reason;\\n event.initEvent(name, false, true);\\n global.dispatchEvent(event);\\n } else event = { promise: promise, reason: reason };\\n if (handler = global['on' + name]) handler(event);\\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\\n};\\n\\nvar onUnhandled = function (promise, state) {\\n task.call(global, function () {\\n var value = state.value;\\n var IS_UNHANDLED = isUnhandled(state);\\n var result;\\n if (IS_UNHANDLED) {\\n result = perform(function () {\\n if (IS_NODE) {\\n process.emit('unhandledRejection', value, promise);\\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\\n });\\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\\n if (result.error) throw result.value;\\n }\\n });\\n};\\n\\nvar isUnhandled = function (state) {\\n return state.rejection !== HANDLED && !state.parent;\\n};\\n\\nvar onHandleUnhandled = function (promise, state) {\\n task.call(global, function () {\\n if (IS_NODE) {\\n process.emit('rejectionHandled', promise);\\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\\n });\\n};\\n\\nvar bind = function (fn, promise, state, unwrap) {\\n return function (value) {\\n fn(promise, state, value, unwrap);\\n };\\n};\\n\\nvar internalReject = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n state.value = value;\\n state.state = REJECTED;\\n notify(promise, state, true);\\n};\\n\\nvar internalResolve = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n try {\\n if (promise === value) throw TypeError(\\\"Promise can't be resolved itself\\\");\\n var then = isThenable(value);\\n if (then) {\\n microtask(function () {\\n var wrapper = { done: false };\\n try {\\n then.call(value,\\n bind(internalResolve, promise, wrapper, state),\\n bind(internalReject, promise, wrapper, state)\\n );\\n } catch (error) {\\n internalReject(promise, wrapper, error, state);\\n }\\n });\\n } else {\\n state.value = value;\\n state.state = FULFILLED;\\n notify(promise, state, false);\\n }\\n } catch (error) {\\n internalReject(promise, { done: false }, error, state);\\n }\\n};\\n\\n// constructor polyfill\\nif (FORCED) {\\n // 25.4.3.1 Promise(executor)\\n PromiseConstructor = function Promise(executor) {\\n anInstance(this, PromiseConstructor, PROMISE);\\n aFunction(executor);\\n Internal.call(this);\\n var state = getInternalState(this);\\n try {\\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\\n } catch (error) {\\n internalReject(this, state, error);\\n }\\n };\\n // eslint-disable-next-line no-unused-vars\\n Internal = function Promise(executor) {\\n setInternalState(this, {\\n type: PROMISE,\\n done: false,\\n notified: false,\\n parent: false,\\n reactions: [],\\n rejection: false,\\n state: PENDING,\\n value: undefined\\n });\\n };\\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\\n // `Promise.prototype.then` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\\n then: function then(onFulfilled, onRejected) {\\n var state = getInternalPromiseState(this);\\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\\n reaction.fail = typeof onRejected == 'function' && onRejected;\\n reaction.domain = IS_NODE ? process.domain : undefined;\\n state.parent = true;\\n state.reactions.push(reaction);\\n if (state.state != PENDING) notify(this, state, false);\\n return reaction.promise;\\n },\\n // `Promise.prototype.catch` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\\n 'catch': function (onRejected) {\\n return this.then(undefined, onRejected);\\n }\\n });\\n OwnPromiseCapability = function () {\\n var promise = new Internal();\\n var state = getInternalState(promise);\\n this.promise = promise;\\n this.resolve = bind(internalResolve, promise, state);\\n this.reject = bind(internalReject, promise, state);\\n };\\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\\n return C === PromiseConstructor || C === PromiseWrapper\\n ? new OwnPromiseCapability(C)\\n : newGenericPromiseCapability(C);\\n };\\n\\n if (!IS_PURE && typeof NativePromise == 'function') {\\n nativeThen = NativePromise.prototype.then;\\n\\n // wrap native Promise#then for native async functions\\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\\n var that = this;\\n return new PromiseConstructor(function (resolve, reject) {\\n nativeThen.call(that, resolve, reject);\\n }).then(onFulfilled, onRejected);\\n // https://github.com/zloirock/core-js/issues/640\\n }, { unsafe: true });\\n\\n // wrap fetch result\\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\\n // eslint-disable-next-line no-unused-vars\\n fetch: function fetch(input /* , init */) {\\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\\n }\\n });\\n }\\n}\\n\\n$({ global: true, wrap: true, forced: FORCED }, {\\n Promise: PromiseConstructor\\n});\\n\\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\\nsetSpecies(PROMISE);\\n\\nPromiseWrapper = getBuiltIn(PROMISE);\\n\\n// statics\\n$({ target: PROMISE, stat: true, forced: FORCED }, {\\n // `Promise.reject` method\\n // https://tc39.github.io/ecma262/#sec-promise.reject\\n reject: function reject(r) {\\n var capability = newPromiseCapability(this);\\n capability.reject.call(undefined, r);\\n return capability.promise;\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\\n // `Promise.resolve` method\\n // https://tc39.github.io/ecma262/#sec-promise.resolve\\n resolve: function resolve(x) {\\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\\n // `Promise.all` method\\n // https://tc39.github.io/ecma262/#sec-promise.all\\n all: function all(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n $promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = value;\\n --remaining || resolve(values);\\n }, reject);\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n },\\n // `Promise.race` method\\n // https://tc39.github.io/ecma262/#sec-promise.race\\n race: function race(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n iterate(iterable, function (promise) {\\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\\n });\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 85 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar redefine = __webpack_require__(10);\\n\\nmodule.exports = function (target, src, options) {\\n for (var key in src) redefine(target, key, src[key], options);\\n return target;\\n};\\n\\n\\n/***/ }),\\n/* 86 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar definePropertyModule = __webpack_require__(9);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar DESCRIPTORS = __webpack_require__(8);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\nmodule.exports = function (CONSTRUCTOR_NAME) {\\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\\n var defineProperty = definePropertyModule.f;\\n\\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\\n defineProperty(Constructor, SPECIES, {\\n configurable: true,\\n get: function () { return this; }\\n });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 87 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it, Constructor, name) {\\n if (!(it instanceof Constructor)) {\\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 88 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar Iterators = __webpack_require__(14);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar ArrayPrototype = Array.prototype;\\n\\n// check on default Array iterator\\nmodule.exports = function (it) {\\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\\n};\\n\\n\\n/***/ }),\\n/* 89 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar classof = __webpack_require__(38);\\nvar Iterators = __webpack_require__(14);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\n\\nmodule.exports = function (it) {\\n if (it != undefined) return it[ITERATOR]\\n || it['@@iterator']\\n || Iterators[classof(it)];\\n};\\n\\n\\n/***/ }),\\n/* 90 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\n\\n// call something on iterator step with safe closing on error\\nmodule.exports = function (iterator, fn, value, ENTRIES) {\\n try {\\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\\n // 7.4.6 IteratorClose(iterator, completion)\\n } catch (error) {\\n var returnMethod = iterator['return'];\\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\\n throw error;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 91 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar SAFE_CLOSING = false;\\n\\ntry {\\n var called = 0;\\n var iteratorWithReturn = {\\n next: function () {\\n return { done: !!called++ };\\n },\\n 'return': function () {\\n SAFE_CLOSING = true;\\n }\\n };\\n iteratorWithReturn[ITERATOR] = function () {\\n return this;\\n };\\n // eslint-disable-next-line no-throw-literal\\n Array.from(iteratorWithReturn, function () { throw 2; });\\n} catch (error) { /* empty */ }\\n\\nmodule.exports = function (exec, SKIP_CLOSING) {\\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\\n var ITERATION_SUPPORT = false;\\n try {\\n var object = {};\\n object[ITERATOR] = function () {\\n return {\\n next: function () {\\n return { done: ITERATION_SUPPORT = true };\\n }\\n };\\n };\\n exec(object);\\n } catch (error) { /* empty */ }\\n return ITERATION_SUPPORT;\\n};\\n\\n\\n/***/ }),\\n/* 92 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar classof = __webpack_require__(13);\\nvar macrotask = __webpack_require__(52).set;\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\\nvar process = global.process;\\nvar Promise = global.Promise;\\nvar IS_NODE = classof(process) == 'process';\\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\\n\\nvar flush, head, last, notify, toggle, node, promise, then;\\n\\n// modern engines have queueMicrotask method\\nif (!queueMicrotask) {\\n flush = function () {\\n var parent, fn;\\n if (IS_NODE && (parent = process.domain)) parent.exit();\\n while (head) {\\n fn = head.fn;\\n head = head.next;\\n try {\\n fn();\\n } catch (error) {\\n if (head) notify();\\n else last = undefined;\\n throw error;\\n }\\n } last = undefined;\\n if (parent) parent.enter();\\n };\\n\\n // Node.js\\n if (IS_NODE) {\\n notify = function () {\\n process.nextTick(flush);\\n };\\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\\n } else if (MutationObserver && !IS_IOS) {\\n toggle = true;\\n node = document.createTextNode('');\\n new MutationObserver(flush).observe(node, { characterData: true });\\n notify = function () {\\n node.data = toggle = !toggle;\\n };\\n // environments with maybe non-completely correct, but existent Promise\\n } else if (Promise && Promise.resolve) {\\n // Promise.resolve without an argument throws an error in LG WebOS 2\\n promise = Promise.resolve(undefined);\\n then = promise.then;\\n notify = function () {\\n then.call(promise, flush);\\n };\\n // for other environments - macrotask based on:\\n // - setImmediate\\n // - MessageChannel\\n // - window.postMessag\\n // - onreadystatechange\\n // - setTimeout\\n } else {\\n notify = function () {\\n // strange IE + webpack dev server bug - use .call(global)\\n macrotask.call(global, flush);\\n };\\n }\\n}\\n\\nmodule.exports = queueMicrotask || function (fn) {\\n var task = { fn: fn, next: undefined };\\n if (last) last.next = task;\\n if (!head) {\\n head = task;\\n notify();\\n } last = task;\\n};\\n\\n\\n/***/ }),\\n/* 93 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = function (a, b) {\\n var console = global.console;\\n if (console && console.error) {\\n arguments.length === 1 ? console.error(a) : console.error(a, b);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 94 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar userAgent = __webpack_require__(54);\\n\\nvar process = global.process;\\nvar versions = process && process.versions;\\nvar v8 = versions && versions.v8;\\nvar match, version;\\n\\nif (v8) {\\n match = v8.split('.');\\n version = match[0] + match[1];\\n} else if (userAgent) {\\n match = userAgent.match(/Edge\\\\/(\\\\d+)/);\\n if (!match || match[1] >= 74) {\\n match = userAgent.match(/Chrome\\\\/(\\\\d+)/);\\n if (match) version = match[1];\\n }\\n}\\n\\nmodule.exports = version && +version;\\n\\n\\n/***/ }),\\n/* 95 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar aFunction = __webpack_require__(15);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar iterate = __webpack_require__(49);\\n\\n// `Promise.allSettled` method\\n// https://github.com/tc39/proposal-promise-allSettled\\n$({ target: 'Promise', stat: true }, {\\n allSettled: function allSettled(iterable) {\\n var C = this;\\n var capability = newPromiseCapabilityModule.f(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'fulfilled', value: value };\\n --remaining || resolve(values);\\n }, function (e) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'rejected', reason: e };\\n --remaining || resolve(values);\\n });\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 96 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar NativePromise = __webpack_require__(48);\\nvar fails = __webpack_require__(5);\\nvar getBuiltIn = __webpack_require__(11);\\nvar speciesConstructor = __webpack_require__(51);\\nvar promiseResolve = __webpack_require__(55);\\nvar redefine = __webpack_require__(10);\\n\\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\\nvar NON_GENERIC = !!NativePromise && fails(function () {\\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\\n});\\n\\n// `Promise.prototype.finally` method\\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\\n 'finally': function (onFinally) {\\n var C = speciesConstructor(this, getBuiltIn('Promise'));\\n var isFunction = typeof onFinally == 'function';\\n return this.then(\\n isFunction ? function (x) {\\n return promiseResolve(C, onFinally()).then(function () { return x; });\\n } : onFinally,\\n isFunction ? function (e) {\\n return promiseResolve(C, onFinally()).then(function () { throw e; });\\n } : onFinally\\n );\\n }\\n});\\n\\n// patch native Promise.prototype for native async functions\\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\\n}\\n\\n\\n/***/ }),\\n/* 97 */\\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n// ESM COMPAT FLAG\\n__webpack_require__.r(__webpack_exports__);\\n\\n// EXPORTS\\n__webpack_require__.d(__webpack_exports__, \\\"add\\\", function() { return /* binding */ add; });\\n__webpack_require__.d(__webpack_exports__, \\\"done\\\", function() { return /* binding */ done; });\\n__webpack_require__.d(__webpack_exports__, \\\"toJS\\\", function() { return /* binding */ toJS; });\\n__webpack_require__.d(__webpack_exports__, \\\"load\\\", function() { return /* binding */ load; });\\n__webpack_require__.d(__webpack_exports__, \\\"dispose\\\", function() { return /* binding */ dispose; });\\n__webpack_require__.d(__webpack_exports__, \\\"search\\\", function() { return /* binding */ search; });\\n\\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\\n/*! *****************************************************************************\\r\\nCopyright (c) Microsoft Corporation.\\r\\n\\r\\nPermission to use, copy, modify, and/or distribute this software for any\\r\\npurpose with or without fee is hereby granted.\\r\\n\\r\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\\r\\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\\r\\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\\r\\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\\r\\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\\r\\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\\r\\nPERFORMANCE OF THIS SOFTWARE.\\r\\n***************************************************************************** */\\r\\n/* global Reflect, Promise */\\r\\n\\r\\nvar extendStatics = function(d, b) {\\r\\n extendStatics = Object.setPrototypeOf ||\\r\\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\r\\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\r\\n return extendStatics(d, b);\\r\\n};\\r\\n\\r\\nfunction __extends(d, b) {\\r\\n extendStatics(d, b);\\r\\n function __() { this.constructor = d; }\\r\\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\r\\n}\\r\\n\\r\\nvar __assign = function() {\\r\\n __assign = Object.assign || function __assign(t) {\\r\\n for (var s, i = 1, n = arguments.length; i < n; i++) {\\r\\n s = arguments[i];\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\\r\\n }\\r\\n return t;\\r\\n }\\r\\n return __assign.apply(this, arguments);\\r\\n}\\r\\n\\r\\nfunction __rest(s, e) {\\r\\n var t = {};\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\r\\n t[p] = s[p];\\r\\n if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\r\\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\r\\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\r\\n t[p[i]] = s[p[i]];\\r\\n }\\r\\n return t;\\r\\n}\\r\\n\\r\\nfunction __decorate(decorators, target, key, desc) {\\r\\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.decorate === \\\"function\\\") r = Reflect.decorate(decorators, target, key, desc);\\r\\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\r\\n return c > 3 && r && Object.defineProperty(target, key, r), r;\\r\\n}\\r\\n\\r\\nfunction __param(paramIndex, decorator) {\\r\\n return function (target, key) { decorator(target, key, paramIndex); }\\r\\n}\\r\\n\\r\\nfunction __metadata(metadataKey, metadataValue) {\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.metadata === \\\"function\\\") return Reflect.metadata(metadataKey, metadataValue);\\r\\n}\\r\\n\\r\\nfunction __awaiter(thisArg, _arguments, P, generator) {\\r\\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\r\\n return new (P || (P = Promise))(function (resolve, reject) {\\r\\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\r\\n function rejected(value) { try { step(generator[\\\"throw\\\"](value)); } catch (e) { reject(e); } }\\r\\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\r\\n step((generator = generator.apply(thisArg, _arguments || [])).next());\\r\\n });\\r\\n}\\r\\n\\r\\nfunction __generator(thisArg, body) {\\r\\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\r\\n return g = { next: verb(0), \\\"throw\\\": verb(1), \\\"return\\\": verb(2) }, typeof Symbol === \\\"function\\\" && (g[Symbol.iterator] = function() { return this; }), g;\\r\\n function verb(n) { return function (v) { return step([n, v]); }; }\\r\\n function step(op) {\\r\\n if (f) throw new TypeError(\\\"Generator is already executing.\\\");\\r\\n while (_) try {\\r\\n if (f = 1, y && (t = op[0] & 2 ? y[\\\"return\\\"] : op[0] ? y[\\\"throw\\\"] || ((t = y[\\\"return\\\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\r\\n if (y = 0, t) op = [op[0] & 2, t.value];\\r\\n switch (op[0]) {\\r\\n case 0: case 1: t = op; break;\\r\\n case 4: _.label++; return { value: op[1], done: false };\\r\\n case 5: _.label++; y = op[1]; op = [0]; continue;\\r\\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\\r\\n default:\\r\\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\r\\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\r\\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\r\\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\r\\n if (t[2]) _.ops.pop();\\r\\n _.trys.pop(); continue;\\r\\n }\\r\\n op = body.call(thisArg, _);\\r\\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\r\\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\r\\n }\\r\\n}\\r\\n\\r\\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\\r\\n if (k2 === undefined) k2 = k;\\r\\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\\r\\n}) : (function(o, m, k, k2) {\\r\\n if (k2 === undefined) k2 = k;\\r\\n o[k2] = m[k];\\r\\n});\\r\\n\\r\\nfunction __exportStar(m, exports) {\\r\\n for (var p in m) if (p !== \\\"default\\\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\\r\\n}\\r\\n\\r\\nfunction __values(o) {\\r\\n var s = typeof Symbol === \\\"function\\\" && Symbol.iterator, m = s && o[s], i = 0;\\r\\n if (m) return m.call(o);\\r\\n if (o && typeof o.length === \\\"number\\\") return {\\r\\n next: function () {\\r\\n if (o && i >= o.length) o = void 0;\\r\\n return { value: o && o[i++], done: !o };\\r\\n }\\r\\n };\\r\\n throw new TypeError(s ? \\\"Object is not iterable.\\\" : \\\"Symbol.iterator is not defined.\\\");\\r\\n}\\r\\n\\r\\nfunction __read(o, n) {\\r\\n var m = typeof Symbol === \\\"function\\\" && o[Symbol.iterator];\\r\\n if (!m) return o;\\r\\n var i = m.call(o), r, ar = [], e;\\r\\n try {\\r\\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\r\\n }\\r\\n catch (error) { e = { error: error }; }\\r\\n finally {\\r\\n try {\\r\\n if (r && !r.done && (m = i[\\\"return\\\"])) m.call(i);\\r\\n }\\r\\n finally { if (e) throw e.error; }\\r\\n }\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spread() {\\r\\n for (var ar = [], i = 0; i < arguments.length; i++)\\r\\n ar = ar.concat(__read(arguments[i]));\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spreadArrays() {\\r\\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\r\\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\\r\\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\r\\n r[k] = a[j];\\r\\n return r;\\r\\n};\\r\\n\\r\\nfunction __await(v) {\\r\\n return this instanceof __await ? (this.v = v, this) : new __await(v);\\r\\n}\\r\\n\\r\\nfunction __asyncGenerator(thisArg, _arguments, generator) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\r\\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\r\\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\r\\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\r\\n function fulfill(value) { resume(\\\"next\\\", value); }\\r\\n function reject(value) { resume(\\\"throw\\\", value); }\\r\\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\r\\n}\\r\\n\\r\\nfunction __asyncDelegator(o) {\\r\\n var i, p;\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\", function (e) { throw e; }), verb(\\\"return\\\"), i[Symbol.iterator] = function () { return this; }, i;\\r\\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \\\"return\\\" } : f ? f(v) : v; } : f; }\\r\\n}\\r\\n\\r\\nfunction __asyncValues(o) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var m = o[Symbol.asyncIterator], i;\\r\\n return m ? m.call(o) : (o = typeof __values === \\\"function\\\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\r\\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\r\\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\r\\n}\\r\\n\\r\\nfunction __makeTemplateObject(cooked, raw) {\\r\\n if (Object.defineProperty) { Object.defineProperty(cooked, \\\"raw\\\", { value: raw }); } else { cooked.raw = raw; }\\r\\n return cooked;\\r\\n};\\r\\n\\r\\nvar __setModuleDefault = Object.create ? (function(o, v) {\\r\\n Object.defineProperty(o, \\\"default\\\", { enumerable: true, value: v });\\r\\n}) : function(o, v) {\\r\\n o[\\\"default\\\"] = v;\\r\\n};\\r\\n\\r\\nfunction __importStar(mod) {\\r\\n if (mod && mod.__esModule) return mod;\\r\\n var result = {};\\r\\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\\r\\n __setModuleDefault(result, mod);\\r\\n return result;\\r\\n}\\r\\n\\r\\nfunction __importDefault(mod) {\\r\\n return (mod && mod.__esModule) ? mod : { default: mod };\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldGet(receiver, privateMap) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to get private field on non-instance\\\");\\r\\n }\\r\\n return privateMap.get(receiver);\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to set private field on non-instance\\\");\\r\\n }\\r\\n privateMap.set(receiver, value);\\r\\n return value;\\r\\n}\\r\\n\\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\\nvar lunr = __webpack_require__(4);\\n\\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--5-0!./node_modules/babel-loader/lib??ref--5-1!./src/services/SearchWorker.worker.ts\\n\\n\\ntry {\\n // tslint:disable-next-line\\n __webpack_require__(57); // bundle into worker\\n}\\ncatch (_) { // nope\\n}\\n/* just for better typings */\\nvar Worker = /** @class */ (function () {\\n function Worker() {\\n this.add = add;\\n this.done = done;\\n this.search = search;\\n this.toJS = toJS;\\n this.load = load;\\n this.dispose = dispose;\\n }\\n return Worker;\\n}());\\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\\\"default\\\"] = (Worker);\\nvar store = [];\\nlunr[\\\"tokenizer\\\"].separator = /\\\\s+/;\\nvar builder;\\nvar resolveIndex;\\nvar index;\\nfunction initEmpty() {\\n builder = new lunr[\\\"Builder\\\"]();\\n builder.field('title');\\n builder.field('description');\\n builder.ref('ref');\\n builder.pipeline.add(lunr[\\\"trimmer\\\"], lunr[\\\"stopWordFilter\\\"], lunr[\\\"stemmer\\\"]);\\n index = new Promise(function (resolve) {\\n resolveIndex = resolve;\\n });\\n}\\ninitEmpty();\\nvar expandTerm = function (term) { return '*' + lunr[\\\"stemmer\\\"](new lunr[\\\"Token\\\"](term, {})) + '*'; };\\nfunction add(title, description, meta) {\\n var ref = store.push(meta) - 1;\\n var item = {\\n title: title.toLowerCase(),\\n description: description.toLowerCase(),\\n ref: ref\\n };\\n builder.add(item);\\n}\\nfunction done() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n resolveIndex(builder.build());\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction toJS() {\\n return __awaiter(this, void 0, void 0, function () {\\n var _a;\\n return __generator(this, function (_b) {\\n switch (_b.label) {\\n case 0:\\n _a = {\\n store: store\\n };\\n return [4 /*yield*/, index];\\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\\n _a)];\\n }\\n });\\n });\\n}\\nfunction load(state) {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = state.store;\\n resolveIndex(lunr[\\\"Index\\\"].load(state.index));\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction dispose() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = [];\\n initEmpty();\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction search(q, limit) {\\n if (limit === void 0) { limit = 0; }\\n return __awaiter(this, void 0, void 0, function () {\\n var searchResults;\\n return __generator(this, function (_a) {\\n switch (_a.label) {\\n case 0:\\n if (q.trim().length === 0) {\\n return [2 /*return*/, []];\\n }\\n return [4 /*yield*/, index];\\n case 1:\\n searchResults = (_a.sent()).query(function (t) {\\n q.trim().toLowerCase().split(/\\\\s+/).forEach(function (term) {\\n var exp = expandTerm(term);\\n t.term(exp, {});\\n });\\n });\\n if (limit > 0) {\\n searchResults = searchResults.slice(0, limit);\\n }\\n return [2 /*return*/, searchResults.map(function (res) { return ({\\n meta: store[res.ref],\\n score: res.score\\n }); })];\\n }\\n });\\n });\\n}\\n\\naddEventListener('message', function (e) {var _e$data = e.data,type = _e$data.type,method = _e$data.method,id = _e$data.id,params = _e$data.params,f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () {return f.apply(__webpack_exports__, params);});} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\\n\\n/***/ })\\n/******/ ]);\\n//# sourceMappingURL=4a345b767c160cf4e5c0.worker.js.map\"])), { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n","module.exports = require(\"core-js/es/promise\");","module.exports = require(\"stickyfill\");","'use strict';\n\nconst visit = require('unist-util-visit');\n\nmodule.exports = slug;\n\nfunction slug() {\n return transformer;\n} // Patch slugs on heading nodes.\n\n\nfunction transformer(ast) {\n const headlines: any[] = [];\n visit(ast, 'heading', visitor);\n\n function visitor(node) {\n const data = node.data || (node.data = {});\n const props = data.hProperties || (data.hProperties = {});\n const sectionId = `section/${data.id}`;\n data.id = sectionId;\n props.id = sectionId;\n visit(node, 'text', textNode => {\n headlines.push({\n depth: node.depth,\n id: data.id,\n text: textNode.value\n });\n });\n }\n\n const value = `export const headings = ${JSON.stringify(headlines)};`;\n const meta = {\n default: false,\n type: 'export',\n value\n };\n ast.children.splice(0, 0, meta);\n}","module.exports = require(\"unist-util-visit\");","import { darken, desaturate, lighten, readableColor, transparentize } from 'polished';\nconst defaultTheme: ThemeInterface = {\n spacing: {\n unit: 5,\n sectionHorizontal: ({\n spacing\n }) => spacing.unit * 8,\n sectionVertical: ({\n spacing\n }) => spacing.unit * 8\n },\n breakpoints: {\n small: '50rem',\n medium: '75rem',\n large: '105rem'\n },\n colors: {\n tonalOffset: 0.3,\n primary: {\n main: '#32329f',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.primary.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.primary.main),\n contrastText: ({\n colors\n }) => readableColor(colors.primary.main)\n },\n success: {\n main: '#1d8127',\n light: ({\n colors\n }) => lighten(colors.tonalOffset * 2, colors.success.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.success.main),\n contrastText: ({\n colors\n }) => readableColor(colors.success.main)\n },\n warning: {\n main: '#ffa500',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.warning.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.warning.main),\n contrastText: '#ffffff'\n },\n error: {\n main: '#d41f1c',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.error.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.error.main),\n contrastText: ({\n colors\n }) => readableColor(colors.error.main)\n },\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5'\n },\n text: {\n primary: '#333333',\n secondary: ({\n colors\n }) => lighten(colors.tonalOffset, colors.text.primary)\n },\n border: {\n dark: 'rgba(0,0,0, 0.1)',\n light: '#ffffff'\n },\n responses: {\n success: {\n color: ({\n colors\n }) => colors.success.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.93, colors.success.main)\n },\n error: {\n color: ({\n colors\n }) => colors.error.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.93, colors.error.main)\n },\n redirect: {\n color: ({\n colors\n }) => colors.warning.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.redirect.color)\n },\n info: {\n color: '#87ceeb',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.info.color)\n }\n },\n http: {\n get: '#6bbd5b',\n post: '#248fb2',\n put: '#9b708b',\n options: '#d3ca12',\n patch: '#e09d43',\n delete: '#e27a7a',\n basic: '#999',\n link: '#31bbb6',\n head: '#c167e4'\n }\n },\n schema: {\n linesColor: theme => lighten(theme.colors.tonalOffset, desaturate(theme.colors.tonalOffset, theme.colors.primary.main)),\n defaultDetailsWidth: '75%',\n typeNameColor: theme => theme.colors.text.secondary,\n typeTitleColor: theme => theme.schema.typeNameColor,\n requireLabelColor: theme => theme.colors.error.main,\n labelsTextSize: '0.9em',\n nestingSpacing: '1em',\n nestedBackground: '#fafafa',\n arrow: {\n size: '1.1em',\n color: theme => theme.colors.text.secondary\n }\n },\n typography: {\n fontSize: '14px',\n lineHeight: '1.5em',\n fontWeightRegular: '400',\n fontWeightBold: '600',\n fontWeightLight: '300',\n fontFamily: 'Roboto, sans-serif',\n smoothing: 'antialiased',\n optimizeSpeed: true,\n headings: {\n fontFamily: 'Montserrat, sans-serif',\n fontWeight: '400',\n lineHeight: '1.6em'\n },\n code: {\n fontSize: '13px',\n fontFamily: 'Courier, monospace',\n lineHeight: ({\n typography\n }) => typography.lineHeight,\n fontWeight: ({\n typography\n }) => typography.fontWeightRegular,\n color: '#e53935',\n backgroundColor: 'rgba(38, 50, 56, 0.05)',\n wrap: false\n },\n links: {\n color: ({\n colors\n }) => colors.primary.main,\n visited: ({\n typography\n }) => typography.links.color,\n hover: ({\n typography\n }) => lighten(0.2, typography.links.color)\n }\n },\n sidebar: {\n width: '260px',\n backgroundColor: '#fafafa',\n textColor: '#333333',\n activeTextColor: theme => theme.sidebar.textColor !== defaultTheme.sidebar!.textColor ? theme.sidebar.textColor : theme.colors.primary.main,\n groupItems: {\n textTransform: 'uppercase'\n },\n level1Items: {\n color: '#3C3C3C',\n textTransform: 'none',\n fw: 600,\n fontSize: '1rem'\n },\n level2Items: {\n fw: 500,\n color: '#3C3C3C',\n fontSize: '.95rem'\n },\n arrow: {\n size: '1.5em',\n color: theme => theme.sidebar.textColor\n }\n },\n logo: {\n maxHeight: ({\n sidebar\n }) => sidebar.width,\n maxWidth: ({\n sidebar\n }) => sidebar.width,\n gutter: '2px'\n },\n rightPanel: {\n backgroundColor: '#263238',\n width: '40%',\n textColor: '#ffffff'\n },\n codeBlock: {\n backgroundColor: ({\n rightPanel\n }) => darken(0.1, rightPanel.backgroundColor)\n }\n};\nexport default defaultTheme;\nexport function resolveTheme(theme: ThemeInterface): ResolvedThemeInterface {\n const resolvedValues = {};\n let counter = 0;\n\n const setProxy = (obj, path: string) => {\n Object.keys(obj).forEach(k => {\n const currentPath = (path ? path + '.' : '') + k;\n const val = obj[k];\n\n if (typeof val === 'function') {\n Object.defineProperty(obj, k, {\n get() {\n if (!resolvedValues[currentPath]) {\n counter++;\n\n if (counter > 1000) {\n throw new Error(`Theme probably contains circular dependency at ${currentPath}: ${val.toString()}`);\n }\n\n resolvedValues[currentPath] = val(theme);\n }\n\n return resolvedValues[currentPath];\n },\n\n enumerable: true\n });\n } else if (typeof val === 'object') {\n setProxy(val, currentPath);\n }\n });\n };\n\n setProxy(theme, '');\n return JSON.parse(JSON.stringify(theme));\n}\nexport interface ColorSetting {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\nexport interface HTTPResponseColos {\n color: string;\n backgroundColor: string;\n}\nexport interface FontSettings {\n fontSize: string;\n fontWeight: string;\n fontFamily: string;\n lineHeight: string;\n color: string;\n}\nexport interface ResolvedThemeInterface {\n spacing: {\n unit: number;\n sectionHorizontal: number;\n sectionVertical: number;\n };\n breakpoints: {\n small: string;\n medium: string;\n large: string;\n };\n colors: {\n tonalOffset: number;\n primary: ColorSetting;\n success: ColorSetting;\n warning: ColorSetting;\n error: ColorSetting;\n gray: {\n 50: string;\n 100: string;\n };\n border: {\n light: string;\n dark: string;\n };\n text: {\n primary: string;\n secondary: string;\n };\n responses: {\n success: HTTPResponseColos;\n error: HTTPResponseColos;\n redirect: HTTPResponseColos;\n info: HTTPResponseColos;\n };\n http: {\n get: string;\n post: string;\n put: string;\n options: string;\n patch: string;\n delete: string;\n basic: string;\n link: string;\n head: string;\n };\n };\n schema: {\n linesColor: string;\n defaultDetailsWidth: string;\n typeNameColor: string;\n typeTitleColor: string;\n requireLabelColor: string;\n labelsTextSize: string;\n nestingSpacing: string;\n nestedBackground: string;\n arrow: {\n size: string;\n color: string;\n };\n };\n typography: {\n fontSize: string;\n lineHeight: string;\n fontWeightLight: string;\n fontWeightRegular: string;\n fontWeightBold: string;\n fontFamily: string;\n smoothing: string;\n optimizeSpeed: boolean;\n code: FontSettings & {\n backgroundColor: string;\n wrap: boolean;\n };\n headings: {\n fontFamily: string;\n fontWeight: string;\n lineHeight: string;\n };\n links: {\n color: string;\n visited: string;\n hover: string;\n };\n };\n sidebar: {\n width: string;\n backgroundColor: string;\n textColor: string;\n activeTextColor: string;\n groupItems: {\n textTransform: string;\n };\n level1Items: {\n color: string;\n fw: number;\n textTransform: string;\n fontSize: string;\n };\n level2Items: {\n color: string;\n fw: number;\n textTransform: string;\n fontSize: string;\n };\n arrow: {\n size: string;\n color: string;\n };\n };\n logo: {\n maxHeight: string;\n maxWidth: string;\n gutter: string;\n };\n rightPanel: {\n backgroundColor: string;\n textColor: string;\n width: string;\n };\n codeBlock: {\n backgroundColor: string;\n };\n extensionsHook?: (name: string, props: any) => string;\n}\nexport type primitive = string | number | boolean | undefined | null;\nexport type AdvancedThemeDeep = T extends primitive ? T | ((theme: ResolvedThemeInterface) => T) : AdvancedThemeObject;\nexport type AdvancedThemeObject = { [P in keyof T]?: AdvancedThemeDeep };\nexport type ThemeInterface = AdvancedThemeObject;","export const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nexport function querySelector(selector: string): Element | null {\n if (typeof document !== 'undefined') {\n return document.querySelector(selector);\n }\n\n return null;\n}\n/**\n * Drop everything inside <...> (i.e., tags/elements), and keep the text.\n * Unlike browser innerText, this removes newlines; it also doesn't handle\n * un-encoded `<` or `>` characters very well, so don't feed it malformed HTML\n */\n\nexport function html2Str(html: string): string {\n return html.split(/<[^>]+>/).map(chunk => {\n return chunk.trim();\n }).filter(trimmedChunk => {\n return trimmedChunk.length > 0;\n }).join(' ');\n} // scrollIntoViewIfNeeded polyfill\n\nif (typeof Element !== 'undefined' && !(Element as any).prototype.scrollIntoViewIfNeeded) {\n (Element as any).prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {\n centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;\n const parent = this.parentNode;\n const parentComputedStyle = window.getComputedStyle(parent, undefined);\n const parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width'), 10);\n const parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width'), 10);\n const overTop = this.offsetTop - parent.offsetTop < parent.scrollTop;\n const overBottom = this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight;\n const overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft;\n const overRight = this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth;\n const alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n this.scrollIntoView(alignWithTop);\n }\n };\n}","import slugify from 'slugify';\nimport { format, parse } from 'url';\n/**\n * Maps over array passing `isLast` bool to iterator as the second argument\n */\n\nexport function mapWithLast(array: T[], iteratee: (item: T, isLast: boolean) => P) {\n const res: P[] = [];\n\n for (let i = 0; i < array.length - 1; i++) {\n res.push(iteratee(array[i], false));\n }\n\n if (array.length !== 0) {\n res.push(iteratee(array[array.length - 1], true));\n }\n\n return res;\n}\n/**\n * Creates an object with the same keys as object and values generated by running each\n * own enumerable string keyed property of object thru iteratee.\n * The iteratee is invoked with three arguments: (value, key, object).\n *\n * @param object the object to iterate over\n * @param iteratee the function invoked per iteration.\n */\n\nexport function mapValues(object: Record, iteratee: (val: T, key: string, obj: Record) => P): Record {\n const res: {\n [key: string]: P;\n } = {};\n\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n res[key] = iteratee(object[key], key, object);\n }\n }\n\n return res;\n}\n/**\n * flattens collection using `prop` field as a children\n * @param collectionItems collection items\n * @param prop item property with child elements\n */\n\nexport function flattenByProp(collectionItems: T[], prop: P): T[] {\n const res: T[] = [];\n\n const iterate = (items: T[]) => {\n for (const item of items) {\n res.push(item);\n\n if (item[prop]) {\n iterate(((item[prop] as any) as T[]));\n }\n }\n };\n\n iterate(collectionItems);\n return res;\n}\nexport function stripTrailingSlash(path: string): string {\n if (path.endsWith('/')) {\n return path.substring(0, path.length - 1);\n }\n\n return path;\n}\nexport function isNumeric(n: any): n is number {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nexport function appendToMdHeading(md: string, heading: string, content: string) {\n // if heading is already in md and append to the end of it\n const testRegex = new RegExp(`(^|\\\\n)#\\\\s?${heading}\\\\s*\\\\n`, 'i');\n const replaceRegex = new RegExp(`((\\\\n|^)#\\\\s*${heading}\\\\s*(\\\\n|$)(?:.|\\\\n)*?)(\\\\n#|$)`, 'i');\n\n if (testRegex.test(md)) {\n return md.replace(replaceRegex, `$1\\n\\n${content}\\n$4`);\n } else {\n // else append heading itself\n const br = md === '' || md.endsWith('\\n\\n') ? '' : md.endsWith('\\n') ? '\\n' : '\\n\\n';\n return `${md}${br}# ${heading}\\n\\n${content}`;\n }\n} // credits https://stackoverflow.com/a/46973278/1749888\n\nexport const mergeObjects = (target: any, ...sources: any[]): any => {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (source === undefined) {\n return target;\n }\n\n if (isMergebleObject(target) && isMergebleObject(source)) {\n Object.keys(source).forEach((key: string) => {\n if (isMergebleObject(source[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n\n mergeObjects(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n });\n }\n\n return mergeObjects(target, ...sources);\n};\n\nconst isObject = (item: any): boolean => {\n return item !== null && typeof item === 'object';\n};\n\nconst isMergebleObject = (item): boolean => {\n return isObject(item) && !Array.isArray(item);\n};\n/**\n * slugify() returns empty string when failed to slugify.\n * so try to return minimum slugified-string with failed one which keeps original value\n * the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286\n */\n\n\nexport function safeSlugify(value: string): string {\n return slugify(value) || value.toString().toLowerCase().replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/\\--+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n}\nexport function isAbsoluteUrl(url: string) {\n return /(?:^[a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url);\n}\n/**\n * simple resolve URL which doesn't break on strings with url fragments\n * e.g. resolveUrl('http://test.com:{port}', 'path') results in http://test.com:{port}/path\n */\n\nexport function resolveUrl(url: string, to: string) {\n let res;\n\n if (to.startsWith('//')) {\n const {\n protocol: specProtocol\n } = parse(url);\n res = `${specProtocol || 'https:'}${to}`;\n } else if (isAbsoluteUrl(to)) {\n res = to;\n } else if (!to.startsWith('/')) {\n res = stripTrailingSlash(url) + '/' + to;\n } else {\n const urlObj = parse(url);\n res = format({ ...urlObj,\n pathname: to\n });\n }\n\n return stripTrailingSlash(res);\n}\nexport function getBasePath(serverUrl: string): string {\n try {\n return parseURL(serverUrl).pathname;\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\nexport function titleize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\nexport function removeQueryString(serverUrl: string): string {\n try {\n const url = parseURL(serverUrl);\n url.search = '';\n return url.toString();\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\n\nfunction parseURL(url: string) {\n if (typeof URL === 'undefined') {\n // node\n return new (require('url').URL)(url);\n } else {\n return new URL(url);\n }\n}\n\nexport function unescapeHTMLChars(str: string): string {\n return str.replace(/&#(\\d+);/g, (_m, code) => String.fromCharCode(parseInt(code, 10))).replace(/&/g, '&');\n}","export interface LabelsConfig {\n enum: string;\n enumSingleValue: string;\n enumArray: string;\n default: string;\n deprecated: string;\n example: string;\n nullable: string;\n recursive: string;\n arrayOf: string;\n webhook: string;\n}\nexport type LabelsConfigRaw = Partial;\nconst labels: LabelsConfig = {\n enum: 'Enum',\n enumSingleValue: 'Value',\n enumArray: 'Items',\n default: 'Default',\n deprecated: 'Deprecated',\n example: 'Example',\n nullable: 'Nullable',\n recursive: 'Recursive',\n arrayOf: 'Array of ',\n webhook: 'Event'\n};\nexport function setRedocLabels(_labels?: LabelsConfigRaw) {\n Object.assign(labels, _labels);\n}\nexport function l(key: keyof LabelsConfig, idx?: number): string {\n const label = labels[key];\n\n if (idx !== undefined) {\n return label[idx];\n }\n\n return label;\n}","import defaultTheme, { ResolvedThemeInterface, resolveTheme, ThemeInterface } from '../theme';\nimport { querySelector } from '../utils/dom';\nimport { isNumeric, mergeObjects } from '../utils/helpers';\nimport { LabelsConfigRaw, setRedocLabels } from './Labels';\nimport { MDXComponentMeta } from './MarkdownRenderer';\nexport interface RedocRawOptions {\n theme?: ThemeInterface;\n scrollYOffset?: number | string | (() => number);\n hideHostname?: boolean | string;\n expandResponses?: string | 'all';\n requiredPropsFirst?: boolean | string;\n sortPropsAlphabetically?: boolean | string;\n sortEnumValuesAlphabetically?: boolean | string;\n noAutoAuth?: boolean | string;\n nativeScrollbars?: boolean | string;\n pathInMiddlePanel?: boolean | string;\n untrustedSpec?: boolean | string;\n hideLoading?: boolean | string;\n hideDownloadButton?: boolean | string;\n disableSearch?: boolean | string;\n onlyRequiredInSamples?: boolean | string;\n showExtensions?: boolean | string | string[];\n hideSingleRequestSampleTab?: boolean | string;\n menuToggle?: boolean | string;\n jsonSampleExpandLevel?: number | string | 'all';\n hideSchemaTitles?: boolean | string;\n simpleOneOfTypeLabel?: boolean | string;\n payloadSampleIdx?: number;\n expandSingleSchemaField?: boolean | string;\n expandAllSchemaFields?: boolean | string;\n hideShelfIcon?: boolean | string;\n hideHttpVerbs?: boolean | string;\n unstable_ignoreMimeParameters?: boolean;\n allowedMdComponents?: Record;\n labels?: LabelsConfigRaw;\n enumSkipQuotes?: boolean | string;\n expandDefaultServerVariables?: boolean;\n maxDisplayedEnumValues?: number;\n}\n\nfunction argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean {\n if (val === undefined) {\n return defaultValue || false;\n }\n\n if (typeof val === 'string') {\n return val === 'false' ? false : true;\n }\n\n return val;\n}\n\nfunction argValueToNumber(value: number | string | undefined): number | undefined {\n if (typeof value === 'string') {\n return parseInt(value, 10);\n }\n\n if (typeof value === 'number') {\n return value;\n }\n}\n\nexport class RedocNormalizedOptions {\n static normalizeExpandResponses(value: RedocRawOptions['expandResponses']) {\n if (value === 'all') {\n return 'all';\n }\n\n if (typeof value === 'string') {\n const res = {};\n value.split(',').forEach(code => {\n res[code.trim()] = true;\n });\n return res;\n } else if (value !== undefined) {\n console.warn(`expandResponses must be a string but received value \"${value}\" of type ${typeof value}`);\n }\n\n return {};\n }\n\n static normalizeHideHostname(value: RedocRawOptions['hideHostname']): boolean {\n return !!value;\n }\n\n static normalizeScrollYOffset(value: RedocRawOptions['scrollYOffset']): () => number {\n // just number is not valid selector and leads to crash so checking if isNumeric here\n if (typeof value === 'string' && !isNumeric(value)) {\n const el = querySelector(value);\n\n if (!el) {\n console.warn('scrollYOffset value is a selector to non-existing element. Using offset 0 by default');\n }\n\n const bottom = el && el.getBoundingClientRect().bottom || 0;\n return () => bottom;\n } else if (typeof value === 'number' || isNumeric(value)) {\n return () => typeof value === 'number' ? value : parseFloat(value);\n } else if (typeof value === 'function') {\n return () => {\n const res = value();\n\n if (typeof res !== 'number') {\n console.warn(`scrollYOffset should return number but returned value \"${res}\" of type ${typeof res}`);\n }\n\n return res;\n };\n } else if (value !== undefined) {\n console.warn('Wrong value for scrollYOffset ReDoc option: should be string, number or function');\n }\n\n return () => 0;\n }\n\n static normalizeShowExtensions(value: RedocRawOptions['showExtensions']): string[] | boolean {\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (value === '') {\n return true;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n switch (value) {\n case 'true':\n return true;\n\n case 'false':\n return false;\n\n default:\n return value.split(',').map(ext => ext.trim());\n }\n }\n\n static normalizePayloadSampleIdx(value: RedocRawOptions['payloadSampleIdx']): number {\n if (typeof value === 'number') {\n return Math.max(0, value); // always greater or equal than 0\n }\n\n if (typeof value === 'string') {\n return isFinite(value) ? parseInt(value, 10) : 0;\n }\n\n return 0;\n }\n\n private static normalizeJsonSampleExpandLevel(level?: number | string | 'all'): number {\n if (level === 'all') {\n return +Infinity;\n }\n\n if (!isNaN(Number(level))) {\n return Math.ceil(Number(level));\n }\n\n return 2;\n }\n\n theme: ResolvedThemeInterface;\n scrollYOffset: () => number;\n hideHostname: boolean;\n expandResponses: {\n [code: string]: boolean;\n } | 'all';\n requiredPropsFirst: boolean;\n sortPropsAlphabetically: boolean;\n sortEnumValuesAlphabetically: boolean;\n noAutoAuth: boolean;\n nativeScrollbars: boolean;\n pathInMiddlePanel: boolean;\n untrustedSpec: boolean;\n hideDownloadButton: boolean;\n disableSearch: boolean;\n onlyRequiredInSamples: boolean;\n showExtensions: boolean | string[];\n hideSingleRequestSampleTab: boolean;\n menuToggle: boolean;\n jsonSampleExpandLevel: number;\n enumSkipQuotes: boolean;\n hideSchemaTitles: boolean;\n simpleOneOfTypeLabel: boolean;\n payloadSampleIdx: number;\n expandSingleSchemaField: boolean;\n expandAllSchemaFields: boolean;\n hideShelfIcon: boolean;\n hideHttpVerbs: boolean;\n /* tslint:disable-next-line */\n\n unstable_ignoreMimeParameters: boolean;\n allowedMdComponents: Record;\n expandDefaultServerVariables: boolean;\n maxDisplayedEnumValues?: number;\n\n constructor(raw: RedocRawOptions, defaults: RedocRawOptions = {}) {\n raw = { ...defaults,\n ...raw\n };\n const hook = raw.theme && raw.theme.extensionsHook; // migrate from old theme\n\n if ((raw.theme as any)?.menu && !raw.theme?.sidebar) {\n console.warn('Theme setting \"menu\" is deprecated. Rename to \"sidebar\"');\n raw.theme!.sidebar = (raw.theme as any).menu;\n }\n\n if ((raw.theme as any)?.codeSample && !raw.theme?.codeBlock) {\n console.warn('Theme setting \"codeSample\" is deprecated. Rename to \"codeBlock\"');\n raw.theme!.codeBlock = (raw.theme as any).codeSample;\n }\n\n this.theme = resolveTheme(mergeObjects(({} as any), defaultTheme, { ...raw.theme,\n extensionsHook: undefined\n }));\n this.theme.extensionsHook = (hook as any); // do not support dynamic labels changes. Labels should be configured before\n\n setRedocLabels(raw.labels);\n this.scrollYOffset = RedocNormalizedOptions.normalizeScrollYOffset(raw.scrollYOffset);\n this.hideHostname = RedocNormalizedOptions.normalizeHideHostname(raw.hideHostname);\n this.expandResponses = RedocNormalizedOptions.normalizeExpandResponses(raw.expandResponses);\n this.requiredPropsFirst = argValueToBoolean(raw.requiredPropsFirst);\n this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically);\n this.sortEnumValuesAlphabetically = argValueToBoolean(raw.sortEnumValuesAlphabetically);\n this.noAutoAuth = argValueToBoolean(raw.noAutoAuth);\n this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);\n this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);\n this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);\n this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton);\n this.disableSearch = argValueToBoolean(raw.disableSearch);\n this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples);\n this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions);\n this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab);\n this.menuToggle = argValueToBoolean(raw.menuToggle, true);\n this.jsonSampleExpandLevel = RedocNormalizedOptions.normalizeJsonSampleExpandLevel(raw.jsonSampleExpandLevel);\n this.enumSkipQuotes = argValueToBoolean(raw.enumSkipQuotes);\n this.hideSchemaTitles = argValueToBoolean(raw.hideSchemaTitles);\n this.simpleOneOfTypeLabel = argValueToBoolean(raw.simpleOneOfTypeLabel);\n this.payloadSampleIdx = RedocNormalizedOptions.normalizePayloadSampleIdx(raw.payloadSampleIdx);\n this.expandSingleSchemaField = argValueToBoolean(raw.expandSingleSchemaField);\n this.expandAllSchemaFields = argValueToBoolean(raw.expandAllSchemaFields);\n this.hideShelfIcon = argValueToBoolean(raw.hideShelfIcon);\n this.hideHttpVerbs = argValueToBoolean(raw.hideHttpVerbs);\n this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);\n this.allowedMdComponents = raw.allowedMdComponents || {};\n this.expandDefaultServerVariables = argValueToBoolean(raw.expandDefaultServerVariables);\n this.maxDisplayedEnumValues = argValueToNumber(raw.maxDisplayedEnumValues);\n }\n\n}","import * as styledComponents from 'styled-components';\nimport { ResolvedThemeInterface } from './theme';\nexport { ResolvedThemeInterface };\nconst {\n default: styled,\n css,\n createGlobalStyle,\n keyframes,\n ThemeProvider\n} = (styledComponents as styledComponents.ThemedStyledComponentsModule);\nexport const media = {\n lessThan(breakpoint, print?: boolean) {\n return (...args) => css`\n @media ${print ? 'print, ' : ''} screen and (max-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n greaterThan(breakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n between(firstBreakpoint, secondBreakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[firstBreakpoint]}) and (max-width: ${props => props.theme.breakpoints[secondBreakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n }\n\n};\nexport { css, createGlobalStyle, keyframes, ThemeProvider };\nexport default styled;\nexport function extensionsHook(styledName: string) {\n return props => {\n if (!props.theme.extensionsHook) {\n return;\n }\n\n return props.theme.extensionsHook(styledName, props);\n };\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst ErrorWrapper = styled.div`\n padding: 20px;\n color: red;\n`;\nexport class ErrorBoundary extends React.Component, {\n error?: Error;\n}> {\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n\n componentDidCatch(error) {\n this.setState({\n error\n });\n return false;\n }\n\n render() {\n if (this.state.error) {\n return \n

Something went wrong...

\n {this.state.error.message} \n

\n

\n Stack trace\n
{this.state.error.stack}
\n
\n

\n ReDoc Version: {__REDOC_VERSION__}
\n Commit: {__REDOC_REVISION__}\n
;\n }\n\n return React.Children.only(this.props.children);\n }\n\n}","import * as React from 'react';\nimport styled, { keyframes } from '../../styled-components';\n\nconst _Spinner = (props: {\n className?: string;\n color: string;\n}) => \n \n \n \n \n \n \n \n \n ;\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n`;\nexport const Spinner = styled(_Spinner)`\n animation: 2s ${rotate} linear infinite;\n width: 50px;\n height: 50px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path {\n fill: ${props => props.color};\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { Spinner } from './Spinner.svg';\nconst LoadingMessage = styled.div<{\n color: string;\n}>`\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ${props => props.color};\n`;\nexport interface LoadingProps {\n color: string;\n}\nexport class Loading extends React.PureComponent {\n render() {\n return
\n Loading ...\n \n
;\n }\n\n}","import * as React from 'react';\nimport { RedocNormalizedOptions } from '../services/RedocNormalizedOptions';\nexport const OptionsContext = React.createContext(new RedocNormalizedOptions({}));\nexport const OptionsProvider = OptionsContext.Provider;\nexport const OptionsConsumer = OptionsContext.Consumer;","import * as JsonSchemaRefParser from 'json-schema-ref-parser';\n/* tslint:disable-next-line:no-implicit-dependencies */\n\nimport { convertObj } from 'swagger2openapi';\nimport { OpenAPISpec } from '../types';\nexport async function loadAndBundleSpec(specUrlOrObject: object | string): Promise {\n const parser = new JsonSchemaRefParser();\n const spec = (await parser.bundle(specUrlOrObject, ({\n resolve: {\n http: {\n withCredentials: false\n }\n }\n } as object)) as any);\n\n if (spec.swagger !== undefined) {\n return convertSwagger2OpenAPI(spec);\n } else {\n return spec;\n }\n}\nexport function convertSwagger2OpenAPI(spec: any): Promise {\n console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0');\n return new Promise((resolve, reject) => convertObj(spec, {\n patch: true,\n warnOnly: true,\n text: '{}',\n anchors: true\n }, (err, res) => {\n // TODO: log any warnings\n if (err) {\n return reject(err);\n }\n\n resolve(res && (res.openapi as any));\n }));\n}","'use strict';\n\nimport * as JsonPointerLib from 'json-pointer';\nconst origParse = JsonPointerLib.parse;\n/**\n * Wrapper for JsonPointer. Provides common operations\n */\n\nexport class JsonPointer {\n /**\n * returns last JsonPointer token\n * if level > 1 returns levels last (second last/third last)\n * @example\n * // returns subpath\n * JsonPointerHelper.baseName('/path/0/subpath')\n * // returns foo\n * JsonPointerHelper.baseName('/path/foo/subpath', 2)\n */\n static baseName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return tokens[tokens.length - level];\n }\n /**\n * returns dirname of pointer\n * if level > 1 returns corresponding dirname in the hierarchy\n * @example\n * // returns /path/0\n * JsonPointerHelper.dirName('/path/0/subpath')\n * // returns /path\n * JsonPointerHelper.dirName('/path/foo/subpath', 2)\n */\n\n\n static dirName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return JsonPointerLib.compile(tokens.slice(0, tokens.length - level));\n }\n /**\n * returns relative path tokens\n * @example\n * // returns ['subpath']\n * JsonPointerHelper.relative('/path/0', '/path/0/subpath')\n * // returns ['foo', 'subpath']\n * JsonPointerHelper.relative('/path', '/path/foo/subpath')\n */\n\n\n static relative(from, to): string[] {\n const fromTokens = JsonPointer.parse(from);\n const toTokens = JsonPointer.parse(to);\n return toTokens.slice(fromTokens.length);\n }\n /**\n * overridden JsonPointer original parse to take care of prefixing '#' symbol\n * that is not valid JsonPointer\n */\n\n\n static parse(pointer) {\n let ptr = pointer;\n\n if (ptr.charAt(0) === '#') {\n ptr = ptr.substring(1);\n }\n\n return origParse(ptr);\n }\n /**\n * Creates a JSON pointer path, by joining one or more tokens to a base path.\n *\n * @param {string} base - The base path\n * @param {string|string[]} tokens - The token(s) to append (e.g. [\"name\", \"first\"])\n * @returns {string}\n */\n\n\n static join(base, tokens) {\n // TODO: optimize\n const baseTokens = JsonPointer.parse(base);\n const resTokens = baseTokens.concat(tokens);\n return JsonPointerLib.compile(resTokens);\n }\n\n static get(object: object, pointer: string) {\n return JsonPointerLib.get(object, pointer);\n }\n\n static compile(tokens: string[]) {\n return JsonPointerLib.compile(tokens);\n }\n\n static escape(pointer: string) {\n return JsonPointerLib.escape(pointer);\n }\n\n}\n(JsonPointerLib as any).parse = JsonPointer.parse;\nObject.assign(JsonPointer, JsonPointerLib);\nexport default JsonPointer;","import { dirname } from 'path';\nimport * as URLtemplate from 'url-template';\nimport { FieldModel } from '../services/models';\nimport { OpenAPIParser } from '../services/OpenAPIParser';\nimport { OpenAPIEncoding, OpenAPIMediaType, OpenAPIOperation, OpenAPIParameter, OpenAPIParameterStyle, OpenAPISchema, OpenAPIServer, Referenced } from '../types';\nimport { isNumeric, removeQueryString, resolveUrl } from './helpers';\n\nfunction isWildcardStatusCode(statusCode: string | number): statusCode is string {\n return typeof statusCode === 'string' && /\\dxx/i.test(statusCode);\n}\n\nexport function isStatusCode(statusCode: string) {\n return statusCode === 'default' || isNumeric(statusCode) || isWildcardStatusCode(statusCode);\n}\nexport function getStatusCodeType(statusCode: string | number, defaultAsError = false): string {\n if (statusCode === 'default') {\n return defaultAsError ? 'error' : 'success';\n }\n\n let code = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode;\n\n if (isWildcardStatusCode(statusCode)) {\n code *= 100; // parseInt('2xx') parses to 2\n }\n\n if (code < 100 || code > 599) {\n throw new Error('invalid HTTP code');\n }\n\n let res = 'success';\n\n if (code >= 300 && code < 400) {\n res = 'redirect';\n } else if (code >= 400) {\n res = 'error';\n } else if (code < 200) {\n res = 'info';\n }\n\n return res;\n}\nconst operationNames = {\n get: true,\n post: true,\n put: true,\n head: true,\n patch: true,\n delete: true,\n options: true\n};\nexport function isOperationName(key: string): boolean {\n return key in operationNames;\n}\nexport function getOperationSummary(operation: OpenAPIOperation): string {\n return operation.summary || operation.operationId || operation.description && operation.description.substring(0, 50) || '';\n}\nconst schemaKeywordTypes = {\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n additionalProperties: 'object',\n properties: 'object'\n};\nexport function detectType(schema: OpenAPISchema): string {\n if (schema.type !== undefined) {\n return schema.type;\n }\n\n const keywords = Object.keys(schemaKeywordTypes);\n\n for (const keyword of keywords) {\n const type = schemaKeywordTypes[keyword];\n\n if (schema[keyword] !== undefined) {\n return type;\n }\n }\n\n return 'any';\n}\nexport function isPrimitiveType(schema: OpenAPISchema, type: string | undefined = schema.type) {\n if (schema.oneOf !== undefined || schema.anyOf !== undefined) {\n return false;\n }\n\n if (type === 'object') {\n return schema.properties !== undefined ? Object.keys(schema.properties).length === 0 : schema.additionalProperties === undefined;\n }\n\n if (type === 'array') {\n if (schema.items === undefined) {\n return true;\n }\n\n return false;\n }\n\n return true;\n}\nexport function isJsonLike(contentType: string): boolean {\n return contentType.search(/json/i) !== -1;\n}\nexport function isFormUrlEncoded(contentType: string): boolean {\n return contentType === 'application/x-www-form-urlencoded';\n}\n\nfunction delimitedEncodeField(fieldVal: any, fieldName: string, delimiter: string): string {\n if (Array.isArray(fieldVal)) {\n return fieldVal.map(v => v.toString()).join(delimiter);\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${k}${delimiter}${fieldVal[k]}`).join(delimiter);\n } else {\n return fieldName + '=' + fieldVal.toString();\n }\n}\n\nfunction deepObjectEncodeField(fieldVal: any, fieldName: string): string {\n if (Array.isArray(fieldVal)) {\n console.warn('deepObject style cannot be used with array value:' + fieldVal.toString());\n return '';\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${fieldName}[${k}]=${fieldVal[k]}`).join('&');\n } else {\n console.warn('deepObject style cannot be used with non-object value:' + fieldVal.toString());\n return '';\n }\n}\n\nfunction serializeFormValue(name: string, explode: boolean, value: any) {\n // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n const safeName = '__redoc_param_name__';\n const suffix = explode ? '*' : '';\n const template = URLtemplate.parse(`{?${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).substring(1).replace(/__redoc_param_name__/g, name);\n}\n/*\n * Should be used only for url-form-encoded body payloads\n * To be used for parameters should be extended with other style values\n */\n\n\nexport function urlFormEncodePayload(payload: object, encoding: {\n [field: string]: OpenAPIEncoding;\n} = {}) {\n if (Array.isArray(payload)) {\n throw new Error('Payload must have fields: ' + payload.toString());\n } else {\n return Object.keys(payload).map(fieldName => {\n const fieldVal = payload[fieldName];\n const {\n style = 'form',\n explode = true\n } = encoding[fieldName] || {};\n\n switch (style) {\n case 'form':\n return serializeFormValue(fieldName, explode, fieldVal);\n\n case 'spaceDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '%20');\n\n case 'pipeDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '|');\n\n case 'deepObject':\n return deepObjectEncodeField(fieldVal, fieldName);\n\n default:\n // TODO implement rest of styles for path parameters\n console.warn('Incorrect or unsupported encoding style: ' + style);\n return '';\n }\n }).join('&');\n }\n}\n\nfunction serializePathParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n const suffix = explode ? '*' : '';\n let prefix = '';\n\n if (style === 'label') {\n prefix = '.';\n } else if (style === 'matrix') {\n prefix = ';';\n } // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n\n\n const safeName = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${prefix}${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).replace(/__redoc_param_name__/g, name);\n}\n\nfunction serializeQueryParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n case 'spaceDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style spaceDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('%20')}`;\n\n case 'pipeDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style pipeDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('|')}`;\n\n case 'deepObject':\n if (!explode || Array.isArray(value) || typeof value !== 'object') {\n console.warn('The style deepObject is only applicable for objects with explode=true');\n return '';\n }\n\n return deepObjectEncodeField(value, name);\n\n default:\n console.warn('Unexpected style for query: ' + style);\n return '';\n }\n}\n\nfunction serializeHeaderParameter(style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'simple':\n const suffix = explode ? '*' : ''; // name is not important here, so use RFC6570 safe name ([a-zA-Z0-9_])\n\n const name = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${name}${suffix}}`);\n return decodeURIComponent(template.expand({\n [name]: value\n }));\n\n default:\n console.warn('Unexpected style for header: ' + style);\n return '';\n }\n}\n\nfunction serializeCookieParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n default:\n console.warn('Unexpected style for cookie: ' + style);\n return '';\n }\n}\n\nexport function serializeParameterValueWithMime(value: any, mime: string): string {\n if (isJsonLike(mime)) {\n return JSON.stringify(value);\n } else {\n console.warn(`Parameter serialization as ${mime} is not supported`);\n return '';\n }\n}\nexport function serializeParameterValue(parameter: OpenAPIParameter & {\n serializationMime?: string;\n}, value: any): string {\n const {\n name,\n style,\n explode = false,\n serializationMime\n } = parameter;\n\n if (serializationMime) {\n switch (parameter.in) {\n case 'path':\n case 'header':\n return serializeParameterValueWithMime(value, serializationMime);\n\n case 'cookie':\n case 'query':\n return `${name}=${serializeParameterValueWithMime(value, serializationMime)}`;\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n }\n\n if (!style) {\n console.warn(`Missing style attribute or content for parameter ${name}`);\n return '';\n }\n\n switch (parameter.in) {\n case 'path':\n return serializePathParameter(name, style, explode, value);\n\n case 'query':\n return serializeQueryParameter(name, style, explode, value);\n\n case 'header':\n return serializeHeaderParameter(style, explode, value);\n\n case 'cookie':\n return serializeCookieParameter(name, style, explode, value);\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n}\nexport function langFromMime(contentType: string): string {\n if (contentType.search(/xml/i) !== -1) {\n return 'xml';\n }\n\n return 'clike';\n}\nexport function isNamedDefinition(pointer?: string): boolean {\n return /^#\\/components\\/schemas\\/[^\\/]+$/.test(pointer || '');\n}\n\nfunction humanizeMultipleOfConstraint(multipleOf: number | undefined): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n\n const strigifiedMultipleOf = multipleOf.toString(10);\n\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n}\n\nfunction humanizeRangeConstraint(description: string, min: number | undefined, max: number | undefined): string | undefined {\n let stringRange;\n\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n\n return stringRange;\n}\n\nexport function humanizeConstraints(schema: OpenAPISchema): string[] {\n const res: string[] = [];\n const stringRange = humanizeRangeConstraint('characters', schema.minLength, schema.maxLength);\n\n if (stringRange !== undefined) {\n res.push(stringRange);\n }\n\n const arrayRange = humanizeRangeConstraint('items', schema.minItems, schema.maxItems);\n\n if (arrayRange !== undefined) {\n res.push(arrayRange);\n }\n\n const multipleOfConstraint = humanizeMultipleOfConstraint(schema.multipleOf);\n\n if (multipleOfConstraint !== undefined) {\n res.push(multipleOfConstraint);\n }\n\n let numberRange;\n\n if (schema.minimum !== undefined && schema.maximum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '( ' : '[ ';\n numberRange += schema.minimum;\n numberRange += ' .. ';\n numberRange += schema.maximum;\n numberRange += schema.exclusiveMaximum ? ' )' : ' ]';\n } else if (schema.maximum !== undefined) {\n numberRange = schema.exclusiveMaximum ? '< ' : '<= ';\n numberRange += schema.maximum;\n } else if (schema.minimum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '> ' : '>= ';\n numberRange += schema.minimum;\n }\n\n if (numberRange !== undefined) {\n res.push(numberRange);\n }\n\n return res;\n}\nexport function sortByRequired(fields: FieldModel[], order: string[] = []) {\n const unrequiredFields: FieldModel[] = [];\n const orderedFields: FieldModel[] = [];\n const unorderedFields: FieldModel[] = [];\n fields.forEach(field => {\n if (field.required) {\n order.includes(field.name) ? orderedFields.push(field) : unorderedFields.push(field);\n } else {\n unrequiredFields.push(field);\n }\n });\n orderedFields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n return [...orderedFields, ...unorderedFields, ...unrequiredFields];\n}\nexport function sortByField(fields: FieldModel[], param: keyof Pick) {\n return [...fields].sort((a, b) => {\n return a[param].localeCompare(b[param]);\n });\n}\nexport function mergeParams(parser: OpenAPIParser, pathParams: Array> = [], operationParams: Array> = []): Array> {\n const operationParamNames = {};\n operationParams.forEach(param => {\n param = parser.shalowDeref(param);\n operationParamNames[param.name + '_' + param.in] = true;\n }); // filter out path params overridden by operation ones with the same name\n\n pathParams = pathParams.filter(param => {\n param = parser.shalowDeref(param);\n return !operationParamNames[param.name + '_' + param.in];\n });\n return pathParams.concat(operationParams);\n}\nexport function mergeSimilarMediaTypes(types: Record): Record {\n const mergedTypes = {};\n Object.keys(types).forEach(name => {\n const mime = types[name]; // ignore content type parameters (e.g. charset) and merge\n\n const normalizedMimeName = name.split(';')[0].trim();\n\n if (!mergedTypes[normalizedMimeName]) {\n mergedTypes[normalizedMimeName] = mime;\n return;\n }\n\n mergedTypes[normalizedMimeName] = { ...mergedTypes[normalizedMimeName],\n ...mime\n };\n });\n return mergedTypes;\n}\nexport function expandDefaultServerVariables(url: string, variables: object = {}) {\n return url.replace(/(?:{)([\\w-.]+)(?:})/g, (match, name) => variables[name] && variables[name].default || match);\n}\nexport function normalizeServers(specUrl: string | undefined | null, servers: OpenAPIServer[]): OpenAPIServer[] {\n const getHref = () => {\n return '';\n };\n\n const baseUrl = !specUrl ? removeQueryString(getHref()) : dirname(specUrl);\n\n if (servers.length === 0) {\n // Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object\n servers = [{\n url: '/'\n }];\n }\n\n function normalizeUrl(url: string): string {\n return resolveUrl(baseUrl, url);\n }\n\n return servers.map(server => {\n return { ...server,\n url: normalizeUrl(server.url),\n description: server.description || ''\n };\n });\n}\nexport const SECURITY_DEFINITIONS_COMPONENT_NAME = 'security-definitions';\nexport const SECURITY_DEFINITIONS_JSX_NAME = 'SecurityDefinitions';\nexport const SCHEMA_DEFINITION_JSX_NAME = 'SchemaDefinition';\nexport let SECURITY_SCHEMES_SECTION_PREFIX = 'section/Authentication/';\nexport function setSecuritySchemePrefix(prefix: string) {\n SECURITY_SCHEMES_SECTION_PREFIX = prefix;\n}\nexport const shortenHTTPVerb = verb => ({\n delete: 'del',\n options: 'opts'\n})[verb] || verb;\nexport function isRedocExtension(key: string): boolean {\n const redocExtensions = {\n 'x-circular-ref': true,\n 'x-code-samples': true,\n // deprecated\n 'x-codeSamples': true,\n 'x-displayName': true,\n 'x-examples': true,\n 'x-ignoredHeaderParameters': true,\n 'x-logo': true,\n 'x-nullable': true,\n 'x-servers': true,\n 'x-tagGroups': true,\n 'x-traitTag': true,\n 'x-additionalPropertiesName': true,\n 'x-explicitMappingOnly': true\n };\n return key in redocExtensions;\n}\nexport function extractExtensions(obj: object, showExtensions: string[] | true): Record {\n return Object.keys(obj).filter(key => {\n if (showExtensions === true) {\n return key.startsWith('x-') && !isRedocExtension(key);\n }\n\n return key.startsWith('x-') && showExtensions.indexOf(key) > -1;\n }).reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n}\nexport function pluralizeType(displayType: string): string {\n return displayType.split(' or ').map(type => type.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/, '$1s$2')).join(' or ');\n}","import * as Prism from 'prismjs';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-c.js';\nimport 'prismjs/components/prism-clike.js';\nimport 'prismjs/components/prism-coffeescript.js';\nimport 'prismjs/components/prism-cpp.js';\nimport 'prismjs/components/prism-csharp.js';\nimport 'prismjs/components/prism-go.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/components/prism-java.js';\nimport 'prismjs/components/prism-lua.js';\nimport 'prismjs/components/prism-markup-templating.js'; // dep of php\n\nimport 'prismjs/components/prism-markup.js'; // xml\n\nimport 'prismjs/components/prism-objectivec.js';\nimport 'prismjs/components/prism-perl.js';\nimport 'prismjs/components/prism-php.js';\nimport 'prismjs/components/prism-python.js';\nimport 'prismjs/components/prism-ruby.js';\nimport 'prismjs/components/prism-scala.js';\nimport 'prismjs/components/prism-sql.js';\nimport 'prismjs/components/prism-swift.js';\nconst DEFAULT_LANG = 'clike';\nPrism.languages.insertBefore('javascript', 'string', ({\n 'property string': {\n pattern: /([{,]\\s*)\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,\n lookbehind: true\n }\n} as any), (undefined as any));\nPrism.languages.insertBefore('javascript', 'punctuation', {\n property: {\n pattern: /([{,]\\s*)[a-z]\\w*(?=\\s*:)/i,\n lookbehind: true\n }\n}, (undefined as any));\n/**\n * map language names to Prism.js names\n */\n\nexport function mapLang(lang: string): string {\n return {\n json: 'js',\n 'c++': 'cpp',\n 'c#': 'csharp',\n 'objective-c': 'objectivec',\n shell: 'bash',\n viml: 'vim'\n }[lang] || DEFAULT_LANG;\n}\n/**\n * Highlight source code string using Prism.js\n * @param source source code to highlight\n * @param lang highlight language\n * @return highlighted source code as **html string**\n */\n\nexport function highlight(source: string, lang: string = DEFAULT_LANG): string {\n lang = lang.toLowerCase();\n let grammar = Prism.languages[lang];\n\n if (!grammar) {\n grammar = Prism.languages[mapLang(lang)];\n }\n\n return Prism.highlight(source, grammar, lang);\n}","function throttle(func, wait) {\n let context;\n let args;\n let result;\n let timeout: any = null;\n let previous = 0;\n\n const later = () => {\n previous = new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n return function () {\n const now = new Date().getTime();\n const remaining = wait - (now - previous);\n context = this; // eslint-disable-next-line prefer-rest-params\n\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nexport function Throttle(delay: number) {\n return (_, _2, desc: PropertyDescriptor) => {\n desc.value = throttle(desc.value, delay);\n };\n}","export function debugTime(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.time(label);\n }\n}\nexport function debugTimeEnd(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.timeEnd(label);\n }\n}","// source: https://github.com/andreypopp/memoize-decorator\nconst SENTINEL = {};\nexport function memoize(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (typeof descriptor.value === 'function') {\n return ((_memoizeMethod(target, name, descriptor) as any) as TypedPropertyDescriptor);\n } else if (typeof descriptor.get === 'function') {\n return (_memoizeGetter(target, name, descriptor) as TypedPropertyDescriptor);\n } else {\n throw new Error('@memoize decorator can be applied to methods or getters, got ' + String(descriptor.value) + ' instead');\n }\n}\n\nfunction _memoizeGetter(target: any, name: string, descriptor: PropertyDescriptor) {\n const memoizedName = `_memoized_${name}`;\n const get = descriptor.get!;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n get() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = get.call(this);\n }\n\n return this[memoizedName];\n }\n\n };\n}\n\nfunction _memoizeMethod(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (!descriptor.value || (descriptor.value as any).length > 0) {\n throw new Error('@memoize decorator can only be applied to methods of zero arguments');\n }\n\n const memoizedName = `_memoized_${name}`;\n const value = descriptor.value;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n value() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = (value as any).call(this);\n }\n\n return (this[memoizedName] as any);\n }\n\n };\n}","export * from './JsonPointer';\nexport * from './openapi';\nexport * from './helpers';\nexport * from './highlight';\nexport * from './loadAndBundleSpec';\nexport * from './dom';\nexport * from './decorators';\nexport * from './debug';\nexport * from './memoize';","import { bind, debounce } from 'decko';\nimport { EventEmitter } from 'eventemitter3';\nimport { IS_BROWSER } from '../utils/';\nconst EVENT = 'hashchange';\nexport class HistoryService {\n private _emiter;\n\n constructor() {\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n get currentId(): string {\n return IS_BROWSER ? decodeURIComponent(window.location.hash.substring(1)) : '';\n }\n\n linkForId(id: string) {\n if (!id) {\n return '';\n }\n\n return '#' + id;\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n emit = () => {\n this._emiter.emit(EVENT, this.currentId);\n };\n\n bind() {\n if (IS_BROWSER) {\n window.addEventListener('hashchange', this.emit, false);\n }\n }\n\n dispose() {\n if (IS_BROWSER) {\n window.removeEventListener('hashchange', this.emit);\n }\n }\n\n @bind\n @debounce\n replace(id: string | null, rewriteHistory: boolean = false) {\n if (!IS_BROWSER) {\n return;\n }\n\n if (id == null || id === this.currentId) {\n return;\n }\n\n if (rewriteHistory) {\n window.history.replaceState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n return;\n }\n\n window.history.pushState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n this.emit();\n }\n\n}\nexport const history = new HistoryService();\n\nif (module.hot) {\n module.hot.dispose(() => {\n history.dispose();\n });\n}","import * as Mark from 'mark.js';\nexport class MarkerService {\n map: Map = new Map();\n private prevTerm: string = '';\n\n add(el: HTMLElement) {\n this.map.set(el, new Mark(el));\n }\n\n delete(el: Element) {\n this.map.delete(el);\n }\n\n addOnly(elements: Element[]) {\n this.map.forEach((inst, elem) => {\n if (elements.indexOf(elem) === -1) {\n inst.unmark();\n this.map.delete(elem);\n }\n });\n\n for (const el of elements) {\n if (!this.map.has(el)) {\n this.map.set(el, new Mark((el as HTMLElement)));\n }\n }\n }\n\n clearAll() {\n this.unmark();\n this.map.clear();\n }\n\n mark(term?: string) {\n if (!term && !this.prevTerm) {\n return;\n }\n\n this.map.forEach(val => {\n val.unmark();\n val.mark(term || this.prevTerm);\n });\n this.prevTerm = term || this.prevTerm;\n }\n\n unmark() {\n this.map.forEach(val => val.unmark());\n this.prevTerm = '';\n }\n\n}","import * as marked from 'marked';\nimport { highlight, safeSlugify, unescapeHTMLChars } from '../utils';\nimport { AppStore } from './AppStore';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst renderer = new marked.Renderer();\nmarked.setOptions({\n renderer,\n highlight: (str, lang) => {\n return highlight(str, lang);\n }\n});\nexport const LEGACY_REGEXP = '^ {0,3}\\\\s*$'; // prettier-ignore\n\nexport const MDX_COMPONENT_REGEXP = '(?:^ {0,3}<({component})([\\\\s\\\\S]*?)>([\\\\s\\\\S]*?)' // with children\n+ '|^ {0,3}<({component})([\\\\s\\\\S]*?)(?:/>|\\\\n{2,}))'; // self-closing\n\nexport const COMPONENT_REGEXP = '(?:' + LEGACY_REGEXP + '|' + MDX_COMPONENT_REGEXP + ')';\nexport interface MDXComponentMeta {\n component: React.ComponentType;\n propsSelector: (store?: AppStore) => any;\n props?: object;\n}\nexport interface MarkdownHeading {\n id: string;\n name: string;\n level: number;\n items?: MarkdownHeading[];\n description?: string;\n}\nexport function buildComponentComment(name: string) {\n return ``;\n}\nexport class MarkdownRenderer {\n static containsComponent(rawText: string, componentName: string) {\n const compRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, componentName), 'gmi');\n return compRegexp.test(rawText);\n }\n\n static getTextBeforeHading(md: string, heading: string): string {\n const headingLinePos = md.search(new RegExp(`^##?\\\\s+${heading}`, 'm'));\n\n if (headingLinePos > -1) {\n return md.substring(0, headingLinePos);\n }\n\n return md;\n }\n\n headings: MarkdownHeading[] = [];\n currentTopHeading: MarkdownHeading;\n private headingEnhanceRenderer: marked.Renderer;\n private originalHeadingRule: typeof marked.Renderer.prototype.heading;\n\n constructor(public options?: RedocNormalizedOptions) {\n this.headingEnhanceRenderer = new marked.Renderer();\n this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(this.headingEnhanceRenderer);\n this.headingEnhanceRenderer.heading = this.headingRule;\n }\n\n saveHeading(name: string, level: number, container: MarkdownHeading[] = this.headings, parentId?: string): MarkdownHeading {\n name = unescapeHTMLChars(name);\n const item = {\n id: parentId ? `${parentId}/${safeSlugify(name)}` : `section/${safeSlugify(name)}`,\n name,\n level,\n items: []\n };\n container.push(item);\n return item;\n }\n\n flattenHeadings(container?: MarkdownHeading[]): MarkdownHeading[] {\n if (container === undefined) {\n return [];\n }\n\n const res: MarkdownHeading[] = [];\n\n for (const heading of container) {\n res.push(heading);\n res.push(...this.flattenHeadings(heading.items));\n }\n\n return res;\n }\n\n attachHeadingsDescriptions(rawText: string) {\n const buildRegexp = (heading: MarkdownHeading) => {\n return new RegExp(`##?\\\\s+${heading.name.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')}`);\n };\n\n const flatHeadings = this.flattenHeadings(this.headings);\n\n if (flatHeadings.length < 1) {\n return;\n }\n\n let prevHeading = flatHeadings[0];\n let prevRegexp = buildRegexp(prevHeading);\n let prevPos = rawText.search(prevRegexp);\n\n for (let i = 1; i < flatHeadings.length; i++) {\n const heading = flatHeadings[i];\n const regexp = buildRegexp(heading);\n const currentPos = rawText.substr(prevPos + 1).search(regexp) + prevPos + 1;\n prevHeading.description = rawText.substring(prevPos, currentPos).replace(prevRegexp, '').trim();\n prevHeading = heading;\n prevRegexp = regexp;\n prevPos = currentPos;\n }\n\n prevHeading.description = rawText.substring(prevPos).replace(prevRegexp, '').trim();\n }\n\n headingRule = (text: string, level: 1 | 2 | 3 | 4 | 5 | 6, raw: string, slugger: marked.Slugger) => {\n if (level === 1) {\n this.currentTopHeading = this.saveHeading(text, level);\n } else if (level === 2) {\n this.saveHeading(text, level, this.currentTopHeading && this.currentTopHeading.items, this.currentTopHeading && this.currentTopHeading.id);\n }\n\n return this.originalHeadingRule(text, level, raw, slugger);\n };\n\n renderMd(rawText: string, extractHeadings: boolean = false): string {\n const opts = extractHeadings ? {\n renderer: this.headingEnhanceRenderer\n } : undefined;\n const res = marked(rawText.toString(), opts);\n return res;\n }\n\n extractHeadings(rawText: string): MarkdownHeading[] {\n this.renderMd(rawText, true);\n this.attachHeadingsDescriptions(rawText);\n const res = this.headings;\n this.headings = [];\n return res;\n } // regexp-based 👎: remark is slow and too big so for now using marked + regexps soup\n\n\n renderMdWithComponents(rawText: string): Array {\n const components = this.options && this.options.allowedMdComponents;\n\n if (!components || Object.keys(components).length === 0) {\n return [this.renderMd(rawText)];\n }\n\n const names = Object.keys(components).join('|');\n const componentsRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, names), 'mig');\n const htmlParts: string[] = [];\n const componentDefs: MDXComponentMeta[] = [];\n let match = componentsRegexp.exec(rawText);\n let lasxtIdx = 0;\n\n while (match) {\n htmlParts.push(rawText.substring(lasxtIdx, match.index));\n lasxtIdx = componentsRegexp.lastIndex;\n const compName = match[1] || match[2] || match[5];\n const componentMeta = components[compName];\n const props = match[3] || match[6];\n const children = match[4];\n\n if (componentMeta) {\n componentDefs.push({\n component: componentMeta.component,\n propsSelector: componentMeta.propsSelector,\n props: { ...parseProps(props),\n ...componentMeta.props,\n children\n }\n });\n }\n\n match = componentsRegexp.exec(rawText);\n }\n\n htmlParts.push(rawText.substring(lasxtIdx));\n const res: any[] = [];\n\n for (let i = 0; i < htmlParts.length; i++) {\n const htmlPart = htmlParts[i];\n\n if (htmlPart) {\n res.push(this.renderMd(htmlPart));\n }\n\n if (componentDefs[i]) {\n res.push(componentDefs[i]);\n }\n }\n\n return res;\n }\n\n}\n\nfunction parseProps(props: string): object {\n if (!props) {\n return {};\n }\n\n const regex = /([\\w-]+)\\s*=\\s*(?:{([^}]+?)}|\"([^\"]+?)\")/gim;\n const parsed = {};\n let match; // tslint:disable-next-line\n\n while ((match = regex.exec(props)) !== null) {\n if (match[3]) {\n // string prop match (in double quotes)\n parsed[match[1]] = match[3];\n } else if (match[2]) {\n // jsx prop match (in curly braces)\n let val;\n\n try {\n val = JSON.parse(match[2]);\n } catch (e) {\n /* noop */\n }\n\n parsed[match[1]] = val;\n }\n }\n\n return parsed;\n}","import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';\nimport { IS_BROWSER } from '../../utils/';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class ApiInfoModel implements OpenAPIInfo {\n title: string;\n version: string;\n description: string;\n termsOfService?: string;\n contact?: OpenAPIContact;\n license?: OpenAPILicense;\n downloadLink?: string;\n downloadFileName?: string;\n\n constructor(private parser: OpenAPIParser) {\n Object.assign(this, parser.spec.info);\n this.description = parser.spec.info.description || '';\n const firstHeadingLinePos = this.description.search(/^##?\\s+/m);\n\n if (firstHeadingLinePos > -1) {\n this.description = this.description.substring(0, firstHeadingLinePos);\n }\n\n this.downloadLink = this.getDownloadLink();\n this.downloadFileName = this.getDownloadFileName();\n }\n\n private getDownloadLink(): string | undefined {\n if (this.parser.specUrl) {\n return this.parser.specUrl;\n }\n\n if (IS_BROWSER && window.Blob && window.URL && window.URL.createObjectURL) {\n const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {\n type: 'application/json'\n });\n return window.URL.createObjectURL(blob);\n }\n }\n\n private getDownloadFileName(): string | undefined {\n if (!this.parser.specUrl) {\n return 'swagger.json';\n }\n\n return undefined;\n }\n\n}","import { OpenAPISecurityRequirement, OpenAPISecurityScheme } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport interface SecurityScheme extends OpenAPISecurityScheme {\n id: string;\n sectionId: string;\n scopes: string[];\n}\nexport class SecurityRequirementModel {\n schemes: SecurityScheme[];\n\n constructor(requirement: OpenAPISecurityRequirement, parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = (Object.keys(requirement || {}).map(id => {\n const scheme = parser.deref(schemes[id]);\n const scopes = requirement[id] || [];\n\n if (!scheme) {\n console.warn(`Non existing security scheme referenced: ${id}. Skipping`);\n return undefined;\n }\n\n return { ...scheme,\n id,\n sectionId: SECURITY_SCHEMES_SECTION_PREFIX + id,\n scopes\n };\n }).filter(scheme => scheme !== undefined) as SecurityScheme[]);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPICallback, Referenced } from '../../types';\nimport { isOperationName, JsonPointer } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { OperationModel } from './Operation';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nexport class CallbackModel {\n @observable\n expanded: boolean;\n name: string;\n operations: OperationModel[] = [];\n\n constructor(parser: OpenAPIParser, name: string, infoOrRef: Referenced, pointer: string, options: RedocNormalizedOptions) {\n this.name = name;\n const paths = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n const operation = new OperationModel(parser, { ...operationInfo,\n pathName,\n pointer: JsonPointer.compile([pointer, name, pathName, operationName]),\n httpVerb: operationName,\n pathParameters: path.parameters || [],\n pathServers: path.servers\n }, undefined, options, true);\n this.operations.push(operation);\n }\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPISchema, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MergedOpenAPISchema } from '../';\nimport { detectType, extractExtensions, humanizeConstraints, isNamedDefinition, isPrimitiveType, JsonPointer, pluralizeType, sortByField, sortByRequired } from '../../utils/';\nimport { l } from '../Labels'; // TODO: refactor this model, maybe use getters instead of copying all the values\n\nexport class SchemaModel {\n pointer: string;\n type: string;\n displayType: string;\n typePrefix: string = '';\n title: string;\n description: string;\n externalDocs?: OpenAPIExternalDocumentation;\n isPrimitive: boolean;\n isCircular: boolean = false;\n format?: string;\n displayFormat?: string;\n nullable: boolean;\n deprecated: boolean;\n pattern?: string;\n example?: any;\n enum: any[];\n default?: any;\n readOnly: boolean;\n writeOnly: boolean;\n constraints: string[];\n fields?: FieldModel[];\n items?: SchemaModel;\n oneOf?: SchemaModel[];\n oneOfType: string;\n discriminatorProp: string;\n @observable\n activeOneOf: number = 0;\n rawSchema: OpenAPISchema;\n schema: MergedOpenAPISchema;\n extensions?: Record;\n /**\n * @param isChild if schema discriminator Child\n * When true forces dereferencing in allOfs even if circular\n */\n\n constructor(parser: OpenAPIParser, schemaOrRef: Referenced, pointer: string, private options: RedocNormalizedOptions, isChild: boolean = false) {\n this.pointer = schemaOrRef.$ref || pointer || '';\n this.rawSchema = parser.deref(schemaOrRef);\n this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild);\n this.init(parser, isChild);\n parser.exitRef(schemaOrRef);\n parser.exitParents(this.schema);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(this.schema, options.showExtensions);\n }\n }\n /**\n * Set specified alternative schema as active\n * @param idx oneOf index\n */\n\n\n @action\n activateOneOf(idx: number) {\n this.activeOneOf = idx;\n }\n\n init(parser: OpenAPIParser, isChild: boolean) {\n const schema = this.schema;\n this.isCircular = schema['x-circular-ref'];\n this.title = schema.title || isNamedDefinition(this.pointer) && JsonPointer.baseName(this.pointer) || '';\n this.description = schema.description || '';\n this.type = schema.type || detectType(schema);\n this.format = schema.format;\n this.nullable = !!schema.nullable;\n this.enum = schema.enum || [];\n this.example = schema.example;\n this.deprecated = !!schema.deprecated;\n this.pattern = schema.pattern;\n this.externalDocs = schema.externalDocs;\n this.constraints = humanizeConstraints(schema);\n this.displayType = this.type;\n this.displayFormat = this.format;\n this.isPrimitive = isPrimitiveType(schema, this.type);\n this.default = schema.default;\n this.readOnly = !!schema.readOnly;\n this.writeOnly = !!schema.writeOnly;\n\n if (this.isCircular) {\n return;\n }\n\n if (!isChild && getDiscriminator(schema) !== undefined) {\n this.initDiscriminator(schema, parser);\n return;\n } else if (isChild && Array.isArray(schema.oneOf) && schema.oneOf.find(s => s.$ref === this.pointer)) {\n // we hit allOf of the schema with the parent discriminator\n delete schema.oneOf;\n }\n\n if (schema.oneOf !== undefined) {\n this.initOneOf(schema.oneOf, parser);\n this.oneOfType = 'One of';\n\n if (schema.anyOf !== undefined) {\n console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${this.pointer}`);\n }\n\n return;\n }\n\n if (schema.anyOf !== undefined) {\n this.initOneOf(schema.anyOf, parser);\n this.oneOfType = 'Any of';\n return;\n }\n\n if (this.type === 'object') {\n this.fields = buildFields(parser, schema, this.pointer, this.options);\n } else if (this.type === 'array' && schema.items) {\n this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options);\n this.displayType = pluralizeType(this.items.displayType);\n this.displayFormat = this.items.format;\n this.typePrefix = this.items.typePrefix + l('arrayOf');\n this.title = this.title || this.items.title;\n this.isPrimitive = this.items.isPrimitive;\n\n if (this.example === undefined && this.items.example !== undefined) {\n this.example = [this.items.example];\n }\n\n if (this.items.isPrimitive) {\n this.enum = this.items.enum;\n }\n }\n\n if (this.enum.length && this.options.sortEnumValuesAlphabetically) {\n this.enum.sort();\n }\n }\n\n private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser) {\n this.oneOf = oneOf!.map((variant, idx) => {\n const derefVariant = parser.deref(variant);\n const merged = parser.mergeAllOf(derefVariant, this.pointer + '/oneOf/' + idx); // try to infer title\n\n const title = isNamedDefinition(variant.$ref) && !merged.title ? JsonPointer.baseName(variant.$ref) : merged.title;\n const schema = new SchemaModel(parser, ( // merge base schema into each of oneOf's subschemas\n { // variant may already have allOf so merge it to not get overwritten\n ...merged,\n title,\n allOf: [{ ...this.schema,\n oneOf: undefined,\n anyOf: undefined\n }]\n } as OpenAPISchema), this.pointer + '/oneOf/' + idx, this.options);\n parser.exitRef(variant); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n parser.exitParents(merged);\n return schema;\n });\n\n if (this.options.simpleOneOfTypeLabel) {\n const types = collectUniqueOneOfTypesDeep(this);\n this.displayType = types.join(' or ');\n } else {\n this.displayType = this.oneOf.map(schema => {\n let name = schema.typePrefix + (schema.title ? `${schema.title} (${schema.displayType})` : schema.displayType);\n\n if (name.indexOf(' or ') > -1) {\n name = `(${name})`;\n }\n\n return name;\n }).join(' or ');\n }\n }\n\n private initDiscriminator(schema: OpenAPISchema & {\n parentRefs?: string[];\n }, parser: OpenAPIParser) {\n const discriminator = getDiscriminator(schema)!;\n this.discriminatorProp = discriminator.propertyName;\n const implicitInversedMapping = parser.findDerived([...(schema.parentRefs || []), this.pointer]);\n\n if (schema.oneOf) {\n for (const variant of schema.oneOf) {\n if (variant.$ref === undefined) {\n continue;\n }\n\n const name = JsonPointer.baseName(variant.$ref);\n implicitInversedMapping[variant.$ref] = name;\n }\n }\n\n const mapping = discriminator.mapping || {}; // Defines if the mapping is exhaustive. This avoids having references\n // that overlap with the mapping entries\n\n let isLimitedToMapping = discriminator['x-explicitMappingOnly'] || false; // if there are no mappings, assume non-exhaustive\n\n if (Object.keys(mapping).length === 0) {\n isLimitedToMapping = false;\n }\n\n const explicitInversedMapping = {};\n\n for (const name in mapping) {\n const $ref = mapping[name];\n\n if (Array.isArray(explicitInversedMapping[$ref])) {\n explicitInversedMapping[$ref].push(name);\n } else {\n // overrides implicit mapping here\n explicitInversedMapping[$ref] = [name];\n }\n }\n\n const inversedMapping = isLimitedToMapping ? { ...explicitInversedMapping\n } : { ...implicitInversedMapping,\n ...explicitInversedMapping\n };\n let refs: Array<{\n $ref;\n name;\n }> = [];\n\n for (const $ref of Object.keys(inversedMapping)) {\n const names = inversedMapping[$ref];\n\n if (Array.isArray(names)) {\n for (const name of names) {\n refs.push({\n $ref,\n name\n });\n }\n } else {\n refs.push({\n $ref,\n name: names\n });\n }\n } // Make the listing respects the mapping\n // in case a mapping is defined, the user usually wants to have the order shown\n // as it was defined in the yaml. This will sort the names given the provided\n // mapping (if provided).\n // The logic is:\n // - If a name is among the mapping, promote it to first\n // - Names among the mapping are sorted by their order in the mapping\n // - Names outside the mapping are sorted alphabetically\n\n\n const names = Object.keys(mapping);\n\n if (names.length !== 0) {\n refs = refs.sort((left, right) => {\n const indexLeft = names.indexOf(left.name);\n const indexRight = names.indexOf(right.name);\n\n if (indexLeft < 0 && indexRight < 0) {\n // out of mapping, order by name\n return left.name.localeCompare(right.name);\n } else if (indexLeft < 0) {\n // the right is found, so mapping wins\n return 1;\n } else if (indexRight < 0) {\n // left wins as it's in mapping\n return -1;\n } else {\n return indexLeft - indexRight;\n }\n });\n }\n\n this.oneOf = refs.map(({\n $ref,\n name\n }) => {\n const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true);\n innerSchema.title = name;\n return innerSchema;\n });\n }\n\n}\n\nfunction buildFields(parser: OpenAPIParser, schema: OpenAPISchema, $ref: string, options: RedocNormalizedOptions): FieldModel[] {\n const props = schema.properties || {};\n const additionalProps = schema.additionalProperties;\n const defaults = schema.default || {};\n let fields = Object.keys(props || []).map(fieldName => {\n let field = props[fieldName];\n\n if (!field) {\n console.warn(`Field \"${fieldName}\" is invalid, skipping.\\n Field must be an object but got ${typeof field} at \"${$ref}\"`);\n field = {};\n }\n\n const required = schema.required === undefined ? false : schema.required.indexOf(fieldName) > -1;\n return new FieldModel(parser, {\n name: fieldName,\n required,\n schema: { ...field,\n default: field.default === undefined ? defaults[fieldName] : field.default\n }\n }, $ref + '/properties/' + fieldName, options);\n });\n\n if (options.sortPropsAlphabetically) {\n fields = sortByField(fields, 'name');\n }\n\n if (options.requiredPropsFirst) {\n // if not sort alphabetically sort in the order from required keyword\n fields = sortByRequired(fields, !options.sortPropsAlphabetically ? schema.required : undefined);\n }\n\n if (typeof additionalProps === 'object' || additionalProps === true) {\n fields.push(new FieldModel(parser, {\n name: (typeof additionalProps === 'object' ? additionalProps['x-additionalPropertiesName'] || 'property name' : 'property name').concat('*'),\n required: false,\n schema: additionalProps === true ? {} : additionalProps,\n kind: 'additionalProperties'\n }, $ref + '/additionalProperties', options));\n }\n\n return fields;\n}\n\nfunction getDiscriminator(schema: OpenAPISchema): OpenAPISchema['discriminator'] {\n return schema.discriminator || schema['x-discriminator'];\n}\n\nfunction collectUniqueOneOfTypesDeep(schema: SchemaModel) {\n const uniqueTypes = new Set();\n\n function crawl(schema: SchemaModel) {\n for (const oneOfType of schema.oneOf || []) {\n if (oneOfType.oneOf) {\n crawl(oneOfType);\n continue;\n }\n\n if (oneOfType.type) {\n uniqueTypes.add(oneOfType.type);\n }\n }\n }\n\n crawl(schema);\n return Array.from(uniqueTypes.values());\n}","import { action, observable } from 'mobx';\nimport { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle, Referenced } from '../../types';\nimport { extractExtensions } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nconst DEFAULT_SERIALIZATION: Record = {\n path: {\n style: 'simple',\n explode: false\n },\n query: {\n style: 'form',\n explode: true\n },\n header: {\n style: 'simple',\n explode: false\n },\n cookie: {\n style: 'form',\n explode: true\n }\n};\n/**\n * Field or Parameter model ready to be used by components\n */\n\nexport class FieldModel {\n @observable\n expanded: boolean | undefined;\n schema: SchemaModel;\n name: string;\n required: boolean;\n description: string;\n example?: string;\n deprecated: boolean;\n in?: OpenAPIParameterLocation;\n kind: string;\n extensions?: Record;\n explode: boolean;\n expandAll: boolean;\n style?: OpenAPIParameterStyle;\n serializationMime?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced & {\n name?: string;\n kind?: string;\n }, pointer: string, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.kind = infoOrRef.kind || 'field';\n this.name = infoOrRef.name || info.name;\n this.in = info.in;\n this.required = !!info.required;\n let fieldSchema = info.schema;\n let serializationMime = '';\n\n if (!fieldSchema && info.in && info.content) {\n serializationMime = Object.keys(info.content)[0];\n fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema;\n }\n\n this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options);\n this.description = info.description === undefined ? this.schema.description || '' : info.description;\n this.example = info.example || this.schema.example;\n\n if (serializationMime) {\n this.serializationMime = serializationMime;\n } else if (info.style) {\n this.style = info.style;\n } else if (this.in) {\n this.style = DEFAULT_SERIALIZATION[this.in].style;\n }\n\n if (info.explode === undefined && this.in) {\n this.explode = DEFAULT_SERIALIZATION[this.in].explode;\n } else {\n this.explode = !!info.explode;\n }\n\n this.deprecated = info.deprecated === undefined ? !!this.schema.deprecated : info.deprecated;\n parser.exitRef(infoOrRef);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(info, options.showExtensions);\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIEncoding, OpenAPIExample, Referenced } from '../../types';\nimport { isFormUrlEncoded, isJsonLike, urlFormEncodePayload } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nconst externalExamplesCache: {\n [url: string]: Promise;\n} = {};\nexport class ExampleModel {\n value: any;\n summary?: string;\n description?: string;\n externalValueUrl?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, public mime: string, encoding?: {\n [field: string]: OpenAPIEncoding;\n }) {\n const example = parser.deref(infoOrRef);\n this.value = example.value;\n this.summary = example.summary;\n this.description = example.description;\n\n if (example.externalValue) {\n this.externalValueUrl = urlResolve(parser.specUrl || '', example.externalValue);\n }\n\n parser.exitRef(infoOrRef);\n\n if (isFormUrlEncoded(mime) && this.value && typeof this.value === 'object') {\n this.value = urlFormEncodePayload(this.value, encoding);\n }\n }\n\n getExternalValue(mimeType: string): Promise {\n if (!this.externalValueUrl) {\n return Promise.resolve(undefined);\n }\n\n if (externalExamplesCache[this.externalValueUrl]) {\n return externalExamplesCache[this.externalValueUrl];\n }\n\n externalExamplesCache[this.externalValueUrl] = fetch(this.externalValueUrl).then(res => {\n return res.text().then(txt => {\n if (!res.ok) {\n return Promise.reject(new Error(txt));\n }\n\n if (isJsonLike(mimeType)) {\n try {\n return JSON.parse(txt);\n } catch (e) {\n return txt;\n }\n } else {\n return txt;\n }\n });\n });\n return externalExamplesCache[this.externalValueUrl];\n }\n\n}","import * as Sampler from 'openapi-sampler';\nimport { OpenAPIMediaType } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nimport { isJsonLike, mapValues } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { ExampleModel } from './Example';\nexport class MediaTypeModel {\n examples?: {\n [name: string]: ExampleModel;\n };\n schema?: SchemaModel;\n name: string;\n isRequestType: boolean;\n onlyRequiredInSamples: boolean;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: RedocNormalizedOptions) {\n this.name = name;\n this.isRequestType = isRequestType;\n this.schema = info.schema && new SchemaModel(parser, info.schema, '', options);\n this.onlyRequiredInSamples = options.onlyRequiredInSamples;\n\n if (info.examples !== undefined) {\n this.examples = mapValues(info.examples, example => new ExampleModel(parser, example, name, info.encoding));\n } else if (info.example !== undefined) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: parser.shalowDeref(info.example)\n }, name, info.encoding)\n };\n } else if (isJsonLike(name)) {\n this.generateExample(parser, info);\n }\n }\n\n generateExample(parser: OpenAPIParser, info: OpenAPIMediaType) {\n const samplerOptions = {\n skipReadOnly: this.isRequestType,\n skipNonRequired: this.isRequestType && this.onlyRequiredInSamples,\n skipWriteOnly: !this.isRequestType\n };\n\n if (this.schema && this.schema.oneOf) {\n this.examples = {};\n\n for (const subSchema of this.schema.oneOf) {\n const sample = Sampler.sample(subSchema.rawSchema, samplerOptions, parser.spec);\n\n if (this.schema.discriminatorProp && typeof sample === 'object' && sample) {\n sample[this.schema.discriminatorProp] = subSchema.title;\n }\n\n this.examples[subSchema.title] = new ExampleModel(parser, {\n value: sample\n }, this.name, info.encoding);\n }\n } else if (this.schema) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: Sampler.sample(info.schema, samplerOptions, parser.spec)\n }, this.name, info.encoding)\n };\n }\n }\n\n}","import { action, computed, observable } from 'mobx';\nimport { OpenAPIMediaType } from '../../types';\nimport { MediaTypeModel } from './MediaType';\nimport { mergeSimilarMediaTypes } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\n/**\n * MediaContent model ready to be sued by React components\n * Contains multiple MediaTypes and keeps track of the currently active one\n */\n\nexport class MediaContentModel {\n mediaTypes: MediaTypeModel[];\n @observable\n activeMimeIdx = 0;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, info: Record, public isRequestType: boolean, options: RedocNormalizedOptions) {\n if (options.unstable_ignoreMimeParameters) {\n info = mergeSimilarMediaTypes(info);\n }\n\n this.mediaTypes = Object.keys(info).map(name => {\n const mime = info[name]; // reset deref cache just in case something is left there\n\n parser.resetVisited();\n return new MediaTypeModel(parser, name, isRequestType, mime, options);\n });\n }\n /**\n * Set active media type by index\n * @param idx media type index\n */\n\n\n @action\n activate(idx: number) {\n this.activeMimeIdx = idx;\n }\n\n @computed\n get active() {\n return this.mediaTypes[this.activeMimeIdx];\n }\n\n get hasSample(): boolean {\n return this.mediaTypes.filter(mime => !!mime.examples).length > 0;\n }\n\n}","import { OpenAPIRequestBody, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { MediaContentModel } from './MediaContent';\nexport class RequestBodyModel {\n description: string;\n required: boolean;\n content?: MediaContentModel;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.description = info.description || '';\n this.required = !!info.required;\n parser.exitRef(infoOrRef);\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, true, options);\n }\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIResponse, Referenced } from '../../types';\nimport { getStatusCodeType } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nexport class ResponseModel {\n @observable\n expanded: boolean;\n content?: MediaContentModel;\n code: string;\n summary: string;\n description: string;\n type: string;\n headers: FieldModel[] = [];\n\n constructor(parser: OpenAPIParser, code: string, defaultAsError: boolean, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n this.expanded = options.expandResponses === 'all' || options.expandResponses[code];\n const info = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n this.code = code;\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, false, options);\n }\n\n if (info['x-summary'] !== undefined) {\n this.summary = info['x-summary'];\n this.description = info.description || '';\n } else {\n this.summary = info.description || '';\n this.description = '';\n }\n\n this.type = getStatusCodeType(code, defaultAsError);\n const headers = info.headers;\n\n if (headers !== undefined) {\n this.headers = Object.keys(headers).map(name => {\n const header = headers[name];\n return new FieldModel(parser, { ...header,\n name\n }, '', options);\n });\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { IMenuItem } from '../MenuStore';\nimport { GroupModel } from './Group.model';\nimport { SecurityRequirementModel } from './SecurityRequirement';\nimport { OpenAPIExternalDocumentation, OpenAPIServer, OpenAPIXCodeSample } from '../../types';\nimport { extractExtensions, getOperationSummary, getStatusCodeType, isStatusCode, memoize, mergeParams, normalizeServers, sortByField, sortByRequired } from '../../utils';\nimport { ContentItemModel, ExtendedOpenAPIOperation } from '../MenuBuilder';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { CallbackModel } from './Callback';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nimport { RequestBodyModel } from './RequestBody';\nimport { ResponseModel } from './Response';\nexport interface XPayloadSample {\n lang: 'payload';\n label: string;\n requestBodyContent: MediaContentModel;\n source: string;\n}\nexport function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample): sample is XPayloadSample {\n return sample.lang === 'payload' && (sample as any).requestBodyContent;\n}\nlet isCodeSamplesWarningPrinted = false;\n/**\n * Operation model ready to be used by components\n */\n\nexport class OperationModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('operation' as const);\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n items: ContentItemModel[] = [];\n depth: number;\n @observable\n ready?: boolean = true;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false; //#endregion\n\n pointer: string;\n operationId?: string;\n httpVerb: string;\n deprecated: boolean;\n path: string;\n servers: OpenAPIServer[];\n security: SecurityRequirementModel[];\n extensions: Record;\n isCallback: boolean;\n isWebhook: boolean;\n\n constructor(private parser: OpenAPIParser, private operationSpec: ExtendedOpenAPIOperation, parent: GroupModel | undefined, private options: RedocNormalizedOptions, isCallback: boolean = false) {\n this.pointer = operationSpec.pointer;\n this.description = operationSpec.description;\n this.parent = parent;\n this.externalDocs = operationSpec.externalDocs;\n this.deprecated = !!operationSpec.deprecated;\n this.httpVerb = operationSpec.httpVerb;\n this.deprecated = !!operationSpec.deprecated;\n this.operationId = operationSpec.operationId;\n this.path = operationSpec.pathName;\n this.isCallback = isCallback;\n this.isWebhook = !!operationSpec.isWebhook;\n this.name = getOperationSummary(operationSpec);\n\n if (this.isCallback) {\n // NOTE: Callbacks by default should not inherit the specification's global `security` definition.\n // Can be defined individually per-callback in the specification. Defaults to none.\n this.security = (operationSpec.security || []).map(security => new SecurityRequirementModel(security, parser)); // TODO: update getting pathInfo for overriding servers on path level\n\n this.servers = normalizeServers('', operationSpec.servers || operationSpec.pathServers || []);\n } else {\n this.id = operationSpec.operationId !== undefined ? 'operation/' + operationSpec.operationId : parent !== undefined ? parent.id + this.pointer : this.pointer;\n this.security = (operationSpec.security || parser.spec.security || []).map(security => new SecurityRequirementModel(security, parser));\n this.servers = normalizeServers(parser.specUrl, operationSpec.servers || operationSpec.pathServers || parser.spec.servers || []);\n }\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(operationSpec, options.showExtensions);\n }\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n /**\n * Toggle expansion in middle panel (for callbacks, which are operations)\n */\n\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n @memoize\n get requestBody() {\n return this.operationSpec.requestBody && new RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options);\n }\n\n @memoize\n get codeSamples() {\n let samples: Array = this.operationSpec['x-codeSamples'] || this.operationSpec['x-code-samples'] || [];\n\n if (this.operationSpec['x-code-samples'] && !isCodeSamplesWarningPrinted) {\n isCodeSamplesWarningPrinted = true;\n console.warn('\"x-code-samples\" is deprecated. Use \"x-codeSamples\" instead');\n }\n\n const requestBodyContent = this.requestBody && this.requestBody.content;\n\n if (requestBodyContent && requestBodyContent.hasSample) {\n const insertInx = Math.min(samples.length, this.options.payloadSampleIdx);\n samples = [...samples.slice(0, insertInx), {\n lang: 'payload',\n label: 'Payload',\n source: '',\n requestBodyContent\n }, ...samples.slice(insertInx)];\n }\n\n return samples;\n }\n\n @memoize\n get parameters() {\n const _parameters = mergeParams(this.parser, this.operationSpec.pathParameters, this.operationSpec.parameters // TODO: fix pointer\n ).map(paramOrRef => new FieldModel(this.parser, paramOrRef, this.pointer, this.options));\n\n if (this.options.sortPropsAlphabetically) {\n return sortByField(_parameters, 'name');\n }\n\n if (this.options.requiredPropsFirst) {\n return sortByRequired(_parameters);\n }\n\n return _parameters;\n }\n\n @memoize\n get responses() {\n let hasSuccessResponses = false;\n return Object.keys(this.operationSpec.responses || []).filter(code => {\n if (code === 'default') {\n return true;\n }\n\n if (getStatusCodeType(code) === 'success') {\n hasSuccessResponses = true;\n }\n\n return isStatusCode(code);\n }) // filter out other props (e.g. x-props)\n .map(code => {\n return new ResponseModel(this.parser, code, hasSuccessResponses, this.operationSpec.responses[code], this.options);\n });\n }\n\n @memoize\n get callbacks() {\n return Object.keys(this.operationSpec.callbacks || []).map(callbackEventName => {\n return new CallbackModel(this.parser, callbackEventName, this.operationSpec.callbacks![callbackEventName], this.pointer, this.options);\n });\n }\n\n}","import { OpenAPIPath, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { OperationModel } from './Operation';\nimport { isOperationName } from '../..';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nexport class WebhookModel {\n operations: OperationModel[] = [];\n\n constructor(parser: OpenAPIParser, options: RedocNormalizedOptions, infoOrRef?: Referenced) {\n const webhooks = parser.deref(infoOrRef || {});\n parser.exitRef(infoOrRef);\n\n for (const webhookName of Object.keys(webhooks)) {\n const webhook = webhooks[webhookName];\n const operations = Object.keys(webhook).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = webhook[operationName];\n const operation = new OperationModel(parser, { ...operationInfo,\n httpVerb: operationName\n }, undefined, options, false);\n this.operations.push(operation);\n }\n }\n }\n\n}","import { OpenAPISecurityScheme, Referenced } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class SecuritySchemeModel {\n id: string;\n sectionId: string;\n type: OpenAPISecurityScheme['type'];\n description: string;\n apiKey?: {\n name: string;\n in: OpenAPISecurityScheme['in'];\n };\n http?: {\n scheme: string;\n bearerFormat?: string;\n };\n flows: OpenAPISecurityScheme['flows'];\n openId?: {\n connectUrl: string;\n };\n\n constructor(parser: OpenAPIParser, id: string, scheme: Referenced) {\n const info = parser.deref(scheme);\n this.id = id;\n this.sectionId = SECURITY_SCHEMES_SECTION_PREFIX + id;\n this.type = info.type;\n this.description = info.description || '';\n\n if (info.type === 'apiKey') {\n this.apiKey = {\n name: info.name!,\n in: info.in\n };\n }\n\n if (info.type === 'http') {\n this.http = {\n scheme: info.scheme!,\n bearerFormat: info.bearerFormat\n };\n }\n\n if (info.type === 'openIdConnect') {\n this.openId = {\n connectUrl: info.openIdConnectUrl!\n };\n }\n\n if (info.type === 'oauth2' && info.flows) {\n this.flows = info.flows;\n }\n }\n\n}\nexport class SecuritySchemesModel {\n schemes: SecuritySchemeModel[];\n\n constructor(parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = Object.keys(schemes).map(name => new SecuritySchemeModel(parser, name, schemes[name]));\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIRef, OpenAPISchema, OpenAPISpec, Referenced } from '../types';\nimport { appendToMdHeading } from '../utils/';\nimport { JsonPointer } from '../utils/JsonPointer';\nimport { isNamedDefinition, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { buildComponentComment, MarkdownRenderer } from './MarkdownRenderer';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type MergedOpenAPISchema = OpenAPISchema & {\n parentRefs?: string[];\n};\n/**\n * Helper class to keep track of visited references to avoid\n * endless recursion because of circular refs\n */\n\nclass RefCounter {\n _counter = {};\n\n reset(): void {\n this._counter = {};\n }\n\n visit(ref: string): void {\n this._counter[ref] = this._counter[ref] ? this._counter[ref] + 1 : 1;\n }\n\n exit(ref: string): void {\n this._counter[ref] = this._counter[ref] && this._counter[ref] - 1;\n }\n\n visited(ref: string): boolean {\n return !!this._counter[ref];\n }\n\n}\n/**\n * Loads and keeps spec. Provides raw spec operations\n */\n\n\nexport class OpenAPIParser {\n specUrl?: string | null;\n spec: OpenAPISpec;\n mergeRefs: Set;\n private _refCounter: RefCounter = new RefCounter();\n\n constructor(spec: OpenAPISpec, specUrl?: string | null, private options: RedocNormalizedOptions = new RedocNormalizedOptions({})) {\n this.validate(spec);\n this.preprocess(spec);\n this.spec = spec;\n this.mergeRefs = new Set();\n const href = '';\n\n if (typeof specUrl === 'string') {\n this.specUrl = urlResolve(href, specUrl);\n }\n }\n\n validate(spec: any) {\n if (spec.openapi === undefined) {\n throw new Error('Document must be valid OpenAPI 3.0.0 definition');\n }\n }\n\n preprocess(spec: OpenAPISpec) {\n if (!this.options.noAutoAuth && spec.info && spec.components && spec.components.securitySchemes) {\n // Automatically inject Authentication section with SecurityDefinitions component\n const description = spec.info.description || '';\n\n if (!MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_COMPONENT_NAME) && !MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_JSX_NAME)) {\n const comment = buildComponentComment(SECURITY_DEFINITIONS_COMPONENT_NAME);\n spec.info.description = appendToMdHeading(description, 'Authentication', comment);\n }\n }\n }\n /**\n * get spec part by JsonPointer ($ref)\n */\n\n\n byRef = (ref: string): T | undefined => {\n let res;\n\n if (!this.spec) {\n return;\n }\n\n if (ref.charAt(0) !== '#') {\n ref = '#' + ref;\n }\n\n ref = decodeURIComponent(ref);\n\n try {\n res = JsonPointer.get(this.spec, ref);\n } catch (e) {// do nothing\n }\n\n return res || {};\n };\n /**\n * checks if the object is OpenAPI reference (contains $ref property)\n */\n\n isRef(obj: any): obj is OpenAPIRef {\n if (!obj) {\n return false;\n }\n\n return obj.$ref !== undefined && obj.$ref !== null;\n }\n /**\n * resets visited endpoints. should be run after\n */\n\n\n resetVisited() {\n if (process.env.NODE_ENV !== 'production') {\n // check in dev mode\n for (const k in this._refCounter._counter) {\n if (this._refCounter._counter[k] > 0) {\n console.warn('Not exited reference: ' + k);\n }\n }\n }\n\n this._refCounter = new RefCounter();\n }\n\n exitRef(ref: Referenced) {\n if (!this.isRef(ref)) {\n return;\n }\n\n this._refCounter.exit(ref.$ref);\n }\n /**\n * Resolve given reference object or return as is if it is not a reference\n * @param obj object to dereference\n * @param forceCircular whether to dereference even if it is circular ref\n */\n\n\n deref(obj: OpenAPIRef | T, forceCircular = false): T {\n if (this.isRef(obj)) {\n const resolved = this.byRef(obj.$ref)!;\n\n const visited = this._refCounter.visited(obj.$ref);\n\n this._refCounter.visit(obj.$ref);\n\n if (visited && !forceCircular) {\n // circular reference detected\n // tslint:disable-next-line\n return Object.assign({}, resolved, {\n 'x-circular-ref': true\n });\n } // deref again in case one more $ref is here\n\n\n if (this.isRef(resolved)) {\n const res = this.deref(resolved);\n this.exitRef(resolved);\n return res;\n }\n\n return resolved;\n }\n\n return obj;\n }\n\n shalowDeref(obj: OpenAPIRef | T): T {\n if (this.isRef(obj)) {\n return this.byRef(obj.$ref)!;\n }\n\n return obj;\n }\n /**\n * Merge allOf constraints.\n * @param schema schema with allOF\n * @param $ref pointer of the schema\n * @param forceCircular whether to dereference children even if it is a circular ref\n */\n\n\n mergeAllOf(schema: OpenAPISchema, $ref?: string, forceCircular: boolean = false, used$Refs = new Set()): MergedOpenAPISchema {\n if ($ref) {\n used$Refs.add($ref);\n }\n\n schema = this.hoistOneOfs(schema);\n\n if (schema.allOf === undefined) {\n return schema;\n }\n\n let receiver: MergedOpenAPISchema = { ...schema,\n allOf: undefined,\n parentRefs: [],\n title: schema.title || (isNamedDefinition($ref) ? JsonPointer.baseName($ref) : undefined)\n }; // avoid mutating inner objects\n\n if (receiver.properties !== undefined && typeof receiver.properties === 'object') {\n receiver.properties = { ...receiver.properties\n };\n }\n\n if (receiver.items !== undefined && typeof receiver.items === 'object') {\n receiver.items = { ...receiver.items\n };\n }\n\n const allOfSchemas = (schema.allOf.map(subSchema => {\n if (subSchema && subSchema.$ref && used$Refs.has(subSchema.$ref)) {\n return undefined;\n }\n\n const resolved = this.deref(subSchema, forceCircular);\n const subRef = subSchema.$ref || undefined;\n const subMerged = this.mergeAllOf(resolved, subRef, forceCircular, used$Refs);\n receiver.parentRefs!.push(...(subMerged.parentRefs || []));\n return {\n $ref: subRef,\n schema: subMerged\n };\n }).filter(child => child !== undefined) as Array<{\n $ref: string | undefined;\n schema: MergedOpenAPISchema;\n }>);\n\n for (const {\n $ref: subSchemaRef,\n schema: subSchema\n } of allOfSchemas) {\n if (receiver.type !== subSchema.type && receiver.type !== undefined && subSchema.type !== undefined) {\n console.warn(`Incompatible types in allOf at \"${$ref}\": \"${receiver.type}\" and \"${subSchema.type}\"`);\n }\n\n if (subSchema.type !== undefined) {\n receiver.type = subSchema.type;\n }\n\n if (subSchema.properties !== undefined) {\n receiver.properties = receiver.properties || {};\n\n for (const prop in subSchema.properties) {\n if (!receiver.properties[prop]) {\n receiver.properties[prop] = subSchema.properties[prop];\n } else {\n // merge inner properties\n receiver.properties[prop] = this.mergeAllOf({\n allOf: [receiver.properties[prop], subSchema.properties[prop]]\n }, $ref + '/properties/' + prop);\n }\n }\n }\n\n if (subSchema.items !== undefined) {\n receiver.items = receiver.items || {}; // merge inner properties\n\n receiver.items = this.mergeAllOf({\n allOf: [receiver.items, subSchema.items]\n }, $ref + '/items');\n }\n\n if (subSchema.required !== undefined) {\n receiver.required = (receiver.required || []).concat(subSchema.required);\n } // merge rest of constraints\n // TODO: do more intelligent merge\n\n\n receiver = { ...subSchema,\n ...receiver\n };\n\n if (subSchemaRef) {\n receiver.parentRefs!.push(subSchemaRef);\n\n if (receiver.title === undefined && isNamedDefinition(subSchemaRef)) {// this is not so correct behaviour. commented out for now\n // ref: https://github.com/Redocly/redoc/issues/601\n // receiver.title = JsonPointer.baseName(subSchemaRef);\n }\n }\n }\n\n return receiver;\n }\n /**\n * Find all derived definitions among #/components/schemas from any of $refs\n * returns map of definition pointer to definition name\n * @param $refs array of references to find derived from\n */\n\n\n findDerived($refs: string[]): Record {\n const res: Record = {};\n const schemas = this.spec.components && this.spec.components.schemas || {};\n\n for (const defName in schemas) {\n const def = this.deref(schemas[defName]);\n\n if (def.allOf !== undefined && def.allOf.find(obj => obj.$ref !== undefined && $refs.indexOf(obj.$ref) > -1)) {\n res['#/components/schemas/' + defName] = [def['x-discriminator-value'] || defName];\n }\n }\n\n return res;\n }\n\n exitParents(shema: MergedOpenAPISchema) {\n for (const parent$ref of shema.parentRefs || []) {\n this.exitRef({\n $ref: parent$ref\n });\n }\n }\n\n private hoistOneOfs(schema: OpenAPISchema) {\n if (schema.allOf === undefined) {\n return schema;\n }\n\n const allOf = schema.allOf;\n\n for (let i = 0; i < allOf.length; i++) {\n const sub = allOf[i];\n\n if (Array.isArray(sub.oneOf)) {\n const beforeAllOf = allOf.slice(0, i);\n const afterAllOf = allOf.slice(i + 1);\n return {\n oneOf: sub.oneOf.map(part => {\n const merged = this.mergeAllOf({\n allOf: [...beforeAllOf, part, ...afterAllOf]\n }); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n this.exitParents(merged);\n return merged;\n })\n };\n }\n }\n\n return schema;\n }\n\n}","import { OpenAPIExternalDocumentation, OpenAPISpec } from '../types';\nimport { ContentItemModel, MenuBuilder } from './MenuBuilder';\nimport { ApiInfoModel } from './models/ApiInfo';\nimport { WebhookModel } from './models/Webhook';\nimport { SecuritySchemesModel } from './models/SecuritySchemes';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\n/**\n * Store that contains all the specification related information in the form of tree\n */\n\nexport class SpecStore {\n parser: OpenAPIParser;\n info: ApiInfoModel;\n externalDocs?: OpenAPIExternalDocumentation;\n contentItems: ContentItemModel[];\n securitySchemes: SecuritySchemesModel;\n webhooks?: WebhookModel;\n\n constructor(spec: OpenAPISpec, specUrl: string | undefined | null, private options: RedocNormalizedOptions) {\n this.parser = new OpenAPIParser(spec, specUrl, options);\n this.info = new ApiInfoModel(this.parser);\n this.externalDocs = this.parser.spec.externalDocs;\n this.contentItems = MenuBuilder.buildStructure(this.parser, this.options);\n this.securitySchemes = new SecuritySchemesModel(this.parser);\n this.webhooks = new WebhookModel(this.parser, options, this.parser.spec['x-webhooks']);\n }\n\n}","import { action, observable } from 'mobx';\nimport { ContentItemModel } from '..';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { IMenuItem } from '../MenuStore';\nexport class ExtraContent implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('extra' as const);\n content: JSX.Element;\n items: ContentItemModel[] = [];\n parent?: ExtraContent;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number;\n\n constructor({\n id,\n name,\n depth\n }) {\n this.id = id;\n this.name = name;\n this.depth = depth;\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPITag } from '../../types';\nimport { safeSlugify } from '../../utils';\nimport { MarkdownHeading, MarkdownRenderer } from '../MarkdownRenderer';\nimport { ContentItemModel } from '../MenuBuilder';\nimport { IMenuItem, MenuItemGroupType } from '../MenuStore';\n/**\n * Operations Group model ready to be used by components\n */\n\nexport class GroupModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type: MenuItemGroupType;\n items: ContentItemModel[] = [];\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number; //#endregion\n\n constructor(type: MenuItemGroupType, tagOrGroup: OpenAPITag | MarkdownHeading, parent?: GroupModel) {\n // markdown headings already have ids calculated as they are needed for heading anchors\n this.id = (tagOrGroup as MarkdownHeading).id || type + '/' + safeSlugify(tagOrGroup.name);\n this.type = type;\n this.name = tagOrGroup['x-displayName'] || tagOrGroup.name;\n this.level = (tagOrGroup as MarkdownHeading).level || 1; // remove sections from markdown, same as in ApiInfo\n\n this.description = tagOrGroup.description || '';\n const items = (tagOrGroup as MarkdownHeading).items;\n\n if (items && items.length) {\n this.description = MarkdownRenderer.getTextBeforeHading(this.description, items[0].name);\n }\n\n this.parent = parent;\n this.externalDocs = (tagOrGroup as OpenAPITag).externalDocs; // groups are active (expanded) by default\n\n if (this.type === 'group') {\n this.expanded = true;\n }\n }\n\n @action\n activate() {\n this.active = true;\n }\n\n @action\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n\n this.expanded = true;\n }\n\n @action\n collapse() {\n // disallow collapsing groups\n if (this.type === 'group') {\n return;\n }\n\n this.expanded = false;\n }\n\n @action\n deactivate() {\n this.active = false;\n }\n\n}","export * from '../SpecStore';\nexport * from './ApiInfo';\nexport * from './Callback';\nexport * from './Example';\nexport * from './ExtraContent';\nexport * from './Field';\nexport * from './Group.model';\nexport * from './MediaContent';\nexport * from './MediaType';\nexport * from './Operation';\nexport * from './RequestBody';\nexport * from './Response';\nexport * from './Schema';\nexport * from './SecuritySchemes';","import { OpenAPIOperation, OpenAPIParameter, OpenAPISpec, OpenAPITag, Referenced, OpenAPIServer, OpenAPIPaths } from '../types';\nimport { isOperationName, SECURITY_DEFINITIONS_COMPONENT_NAME, setSecuritySchemePrefix, JsonPointer } from '../utils';\nimport { MarkdownRenderer } from './MarkdownRenderer';\nimport { GroupModel, OperationModel } from './models';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type TagInfo = OpenAPITag & {\n operations: ExtendedOpenAPIOperation[];\n used?: boolean;\n};\nexport type ExtendedOpenAPIOperation = {\n pointer: string;\n pathName: string;\n httpVerb: string;\n pathParameters: Array>;\n pathServers: Array | undefined;\n isWebhook: boolean;\n} & OpenAPIOperation;\nexport type TagsInfoMap = Record;\nexport interface TagGroup {\n name: string;\n tags: string[];\n}\nexport const GROUP_DEPTH = 0;\nexport type ContentItemModel = GroupModel | OperationModel;\nexport class MenuBuilder {\n /**\n * Builds page content structure based on tags\n */\n static buildStructure(parser: OpenAPIParser, options: RedocNormalizedOptions): ContentItemModel[] {\n const spec = parser.spec;\n const items: ContentItemModel[] = [];\n const tagsMap = MenuBuilder.getTagsWithOperations(spec);\n items.push(...MenuBuilder.addMarkdownItems(spec.info.description || '', undefined, 1, options));\n\n if (spec['x-tagGroups'] && spec['x-tagGroups'].length > 0) {\n items.push(...MenuBuilder.getTagGroupsItems(parser, undefined, spec['x-tagGroups'], tagsMap, options));\n } else {\n items.push(...MenuBuilder.getTagsItems(parser, tagsMap, undefined, undefined, options));\n }\n\n return items;\n }\n /**\n * extracts items from markdown description\n * @param description - markdown source\n */\n\n\n static addMarkdownItems(description: string, parent: GroupModel | undefined, initialDepth: number, options: RedocNormalizedOptions): ContentItemModel[] {\n const renderer = new MarkdownRenderer(options);\n const headings = renderer.extractHeadings(description || '');\n\n if (headings.length && parent && parent.description) {\n parent.description = MarkdownRenderer.getTextBeforeHading(parent.description, headings[0].name);\n }\n\n const mapHeadingsDeep = (_parent, items, depth = 1) => items.map(heading => {\n const group = new GroupModel('section', heading, _parent);\n group.depth = depth;\n\n if (heading.items) {\n group.items = mapHeadingsDeep(group, heading.items, depth + 1);\n }\n\n if (MarkdownRenderer.containsComponent(group.description || '', SECURITY_DEFINITIONS_COMPONENT_NAME)) {\n setSecuritySchemePrefix(group.id + '/');\n }\n\n return group;\n });\n\n return mapHeadingsDeep(parent, headings, initialDepth);\n }\n /**\n * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension)\n * @param tags value of `x-tagGroups` vendor extension\n */\n\n\n static getTagGroupsItems(parser: OpenAPIParser, parent: GroupModel | undefined, groups: TagGroup[], tags: TagsInfoMap, options: RedocNormalizedOptions): GroupModel[] {\n const res: GroupModel[] = [];\n\n for (const group of groups) {\n const item = new GroupModel('group', group, parent);\n item.depth = GROUP_DEPTH;\n item.items = MenuBuilder.getTagsItems(parser, tags, item, group, options);\n res.push(item);\n } // TODO checkAllTagsUsedInGroups\n\n\n return res;\n }\n /**\n * Returns array of OperationsGroup items for the tags of the group or for all tags\n * @param tagsMap tags info returned from `getTagsWithOperations`\n * @param parent parent item\n * @param group group which this tag belongs to. if not provided gets all tags\n */\n\n\n static getTagsItems(parser: OpenAPIParser, tagsMap: TagsInfoMap, parent: GroupModel | undefined, group: TagGroup | undefined, options: RedocNormalizedOptions): ContentItemModel[] {\n let tagNames;\n\n if (group === undefined) {\n tagNames = Object.keys(tagsMap); // all tags\n } else {\n tagNames = group.tags;\n }\n\n const tags = tagNames.map(tagName => {\n if (!tagsMap[tagName]) {\n console.warn(`Non-existing tag \"${tagName}\" is added to the group \"${group!.name}\"`);\n return null;\n }\n\n tagsMap[tagName].used = true;\n return tagsMap[tagName];\n });\n const res: Array = [];\n\n for (const tag of tags) {\n if (!tag) {\n continue;\n }\n\n const item = new GroupModel('tag', tag, parent);\n item.depth = GROUP_DEPTH + 1; // don't put empty tag into content, instead put its operations\n\n if (tag.name === '') {\n const items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, undefined, tag, item.depth + 1, options)];\n res.push(...items);\n continue;\n }\n\n item.items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, item, tag, item.depth + 1, options)];\n res.push(item);\n }\n\n return res;\n }\n /**\n * Returns array of Operation items for the tag\n * @param parent parent OperationsGroup\n * @param tag tag info returned from `getTagsWithOperations`\n * @param depth items depth\n */\n\n\n static getOperationsItems(parser: OpenAPIParser, parent: GroupModel | undefined, tag: TagInfo, depth: number, options: RedocNormalizedOptions): OperationModel[] {\n if (tag.operations.length === 0) {\n return [];\n }\n\n const res: OperationModel[] = [];\n\n for (const operationInfo of tag.operations) {\n const operation = new OperationModel(parser, operationInfo, parent, options);\n operation.depth = depth;\n res.push(operation);\n }\n\n return res;\n }\n /**\n * collects tags and maps each tag to list of operations belonging to this tag\n */\n\n\n static getTagsWithOperations(spec: OpenAPISpec): TagsInfoMap {\n const tags: TagsInfoMap = {};\n\n for (const tag of spec.tags || []) {\n tags[tag.name] = { ...tag,\n operations: []\n };\n }\n\n getTags(spec.paths);\n\n if (spec['x-webhooks']) {\n getTags(spec['x-webhooks'], true);\n }\n\n function getTags(paths: OpenAPIPaths, isWebhook?: boolean) {\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n let operationTags = operationInfo.tags;\n\n if (!operationTags || !operationTags.length) {\n // empty tag\n operationTags = [''];\n }\n\n for (const tagName of operationTags) {\n let tag = tags[tagName];\n\n if (tag === undefined) {\n tag = {\n name: tagName,\n operations: []\n };\n tags[tagName] = tag;\n }\n\n if (tag['x-traitTag']) {\n continue;\n }\n\n tag.operations.push({ ...operationInfo,\n pathName,\n pointer: JsonPointer.compile(['paths', pathName, operationName]),\n httpVerb: operationName,\n pathParameters: path.parameters || [],\n pathServers: path.servers,\n isWebhook: !!isWebhook\n });\n }\n }\n }\n }\n\n return tags;\n }\n\n}","import { action, observable } from 'mobx';\nimport { flattenByProp, SECURITY_SCHEMES_SECTION_PREFIX } from '../utils';\nimport { querySelector } from '../utils/dom';\nimport { history as historyInst, HistoryService } from './HistoryService';\nimport { GROUP_DEPTH } from './MenuBuilder';\nimport { SpecStore } from './models';\nimport { ScrollService } from './ScrollService';\nimport { ExtraContent } from './models/ExtraContent';\nimport { MarkdownIndex } from '../markdown';\nexport type MenuItemGroupType = 'group' | 'tag' | 'section' | 'extra';\nexport type MenuItemType = MenuItemGroupType | 'operation';\n/** Generic interface for MenuItems */\n\nexport interface IMenuItem {\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n depth: number;\n active: boolean;\n expanded: boolean;\n items: IMenuItem[];\n parent?: IMenuItem;\n deprecated?: boolean;\n type: MenuItemType;\n deactivate(): void;\n activate(): void;\n collapse(): void;\n expand(): void;\n}\nexport const SECTION_ATTR = 'data-section-id';\n/**\n * Stores all side-menu related information\n */\n\nexport class MenuStore {\n /**\n * Statically try update scroll position\n * Used before hydrating from server-side rendered html to scroll page faster\n */\n static updateOnHistory(id: string = historyInst.currentId, scroll: ScrollService) {\n if (!id) {\n return;\n }\n\n scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n /**\n * active item absolute index (when flattened). -1 means nothing is selected\n */\n\n\n @observable\n activeItemIdx: number = -1;\n /**\n * whether sidebar with menu is opened or not\n */\n\n @observable\n sideBarOpened: boolean = false;\n items: IMenuItem[];\n flatItems: IMenuItem[];\n /**\n * cached flattened menu items to support absolute indexing\n */\n\n private _unsubscribe: () => void;\n private _hashUnsubscribe: () => void;\n /**\n *\n * @param spec [SpecStore](#SpecStore) which contains page content structure\n * @param scroll scroll service instance used by this menu\n */\n\n constructor(spec: SpecStore, public scroll: ScrollService, public history: HistoryService, markdownIndex?: MarkdownIndex) {\n const {\n headings: extraHeadings\n } = markdownIndex || {};\n const extraItems = extraHeadings ? extraHeadings.map(({\n id,\n text,\n depth\n }) => new ExtraContent({\n id,\n name: text,\n depth\n })) : [];\n this.items = [...extraItems, ...spec.contentItems];\n this.flatItems = flattenByProp(this.items || [], 'items');\n this.flatItems.forEach((item, idx) => item.absoluteIdx = idx);\n this.subscribe();\n }\n\n subscribe() {\n this._unsubscribe = this.scroll.subscribe(this.updateOnScroll);\n this._hashUnsubscribe = this.history.subscribe(this.updateOnHistory);\n }\n\n @action\n toggleSidebar() {\n this.sideBarOpened = this.sideBarOpened ? false : true;\n }\n\n @action\n closeSidebar() {\n this.sideBarOpened = false;\n }\n /**\n * update active items on scroll\n * @param isScrolledDown whether last scroll was downside\n */\n\n\n updateOnScroll = (isScrolledDown: boolean): void => {\n const step = isScrolledDown ? 1 : -1;\n let itemIdx = this.activeItemIdx;\n\n while (true) {\n if (itemIdx === -1 && !isScrolledDown) {\n break;\n }\n\n if (itemIdx >= this.flatItems.length - 1 && isScrolledDown) {\n break;\n }\n\n if (isScrolledDown) {\n const el = this.getElementAtOrFirstChild(itemIdx + 1);\n\n if (this.scroll.isElementBellow(el)) {\n break;\n }\n } else {\n const el = this.getElementAt(itemIdx);\n\n if (this.scroll.isElementAbove(el)) {\n break;\n }\n }\n\n itemIdx += step;\n }\n\n this.activate(this.flatItems[itemIdx], true, true);\n };\n /**\n * update active items on hash change\n * @param id current hash\n */\n\n updateOnHistory = (id: string = this.history.currentId) => {\n if (!id) {\n return;\n }\n\n let item: IMenuItem | undefined;\n item = this.flatItems.find(i => i.id === id);\n\n if (item) {\n this.activateAndScroll(item, false);\n } else {\n if (id.startsWith(SECURITY_SCHEMES_SECTION_PREFIX)) {\n item = this.flatItems.find(i => SECURITY_SCHEMES_SECTION_PREFIX.startsWith(i.id));\n this.activate(item);\n }\n\n this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n };\n /**\n * get section/operation DOM Node related to the item or null if it doesn't exist\n * @param idx item absolute index\n */\n\n getElementAt(idx: number): Element | null {\n const item = this.flatItems[idx];\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * get section/operation DOM Node related to the item or if it is group item, returns first item of the group\n * @param idx item absolute index\n */\n\n\n getElementAtOrFirstChild(idx: number): Element | null {\n let item = this.flatItems[idx];\n\n if (item && item.type === 'group') {\n item = item.items[0];\n }\n\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * current active item\n */\n\n\n get activeItem(): IMenuItem {\n return this.flatItems[this.activeItemIdx] || undefined;\n }\n\n getItemById = (id: string) => {\n return this.flatItems.find(item => item.id === id);\n };\n /**\n * activate menu item\n * @param item item to activate\n * @param updateLocation [true] whether to update location\n * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry)\n */\n\n @action\n activate(item: IMenuItem | undefined, updateLocation: boolean = true, rewriteHistory: boolean = false) {\n if ((this.activeItem && this.activeItem.id) === (item && item.id)) {\n return;\n }\n\n if (item && item.type === 'group') {\n return;\n }\n\n this.deactivate(this.activeItem);\n\n if (!item) {\n this.history.replace('', rewriteHistory);\n return;\n } // do not allow activating group items\n // TODO: control over options\n\n\n if (item.depth <= GROUP_DEPTH) {\n return;\n }\n\n this.activeItemIdx = item.absoluteIdx!;\n\n if (updateLocation) {\n this.history.replace(item.id, rewriteHistory);\n }\n\n item.activate();\n item.expand();\n }\n /**\n * makes item and all the parents not active\n * @param item item to deactivate\n */\n\n\n deactivate(item: IMenuItem | undefined) {\n if (item === undefined) {\n return;\n }\n\n item.deactivate();\n\n while (item !== undefined) {\n item.collapse();\n item = item.parent;\n }\n }\n /**\n * activate menu item and scroll to it\n * @see MenuStore.activate\n */\n\n\n @action.bound\n activateAndScroll(item: IMenuItem | undefined, updateLocation?: boolean, rewriteHistory?: boolean) {\n // item here can be a copy from search results so find corresponding item from menu\n const menuItem = item && this.getItemById(item.id) || item;\n this.activate(menuItem, updateLocation, rewriteHistory);\n this.scrollToActive();\n\n if (!menuItem || !menuItem.items.length) {\n this.closeSidebar();\n }\n }\n /**\n * scrolls to active section\n */\n\n\n scrollToActive(): void {\n this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx));\n }\n\n dispose() {\n this._unsubscribe();\n\n this._hashUnsubscribe();\n }\n\n}","import { bind } from 'decko';\nimport * as EventEmitter from 'eventemitter3';\nimport { IS_BROWSER, querySelector, Throttle } from '../utils';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst EVENT = 'scroll';\nexport class ScrollService {\n private _scrollParent: Window | HTMLElement | undefined;\n private _emiter: EventEmitter;\n private _prevOffsetY = 0;\n\n constructor(private options: RedocNormalizedOptions) {\n this._scrollParent = IS_BROWSER ? window : undefined;\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n bind() {\n this._prevOffsetY = this.scrollY();\n\n if (this._scrollParent) {\n this._scrollParent.addEventListener('scroll', this.handleScroll);\n }\n }\n\n dispose() {\n if (this._scrollParent) {\n this._scrollParent.removeEventListener('scroll', this.handleScroll);\n }\n\n this._emiter.removeAllListeners(EVENT);\n }\n\n scrollY(): number {\n if (typeof HTMLElement !== 'undefined' && this._scrollParent instanceof HTMLElement) {\n return this._scrollParent.scrollTop;\n } else if (this._scrollParent !== undefined) {\n return (this._scrollParent as Window).pageYOffset;\n } else {\n return 0;\n }\n }\n\n isElementBellow(el: Element | null) {\n if (el === null) {\n return;\n }\n\n return el.getBoundingClientRect().top > this.options.scrollYOffset();\n }\n\n isElementAbove(el: Element | null) {\n if (el === null) {\n return;\n }\n\n const top = el.getBoundingClientRect().top;\n return (top > 0 ? Math.floor(top) : Math.ceil(top)) <= this.options.scrollYOffset();\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n scrollIntoView(element: Element | null) {\n if (element === null) {\n return;\n }\n\n element.scrollIntoView();\n\n if (this._scrollParent && this._scrollParent.scrollBy) {\n // adding 1 account rounding errors in case scrollYOffset is float-number\n (this._scrollParent.scrollBy as any)(0, -this.options.scrollYOffset() + 1);\n }\n }\n\n scrollIntoViewBySelector(selector: string) {\n const element = querySelector(selector);\n this.scrollIntoView(element);\n }\n\n @bind\n @Throttle(100)\n handleScroll() {\n const scrollY = this.scrollY();\n const isScrolledDown = scrollY - this._prevOffsetY > 0;\n this._prevOffsetY = this.scrollY();\n\n this._emiter.emit(EVENT, isScrolledDown);\n }\n\n}","import { IS_BROWSER } from '../utils/';\nimport { IMenuItem } from './MenuStore';\nimport { OperationModel } from './models';\nimport Worker from './SearchWorker.worker';\n\nfunction getWorker() {\n let worker: new () => Worker;\n\n if (IS_BROWSER) {\n try {\n // tslint:disable-next-line\n worker = require('workerize-loader?inline&fallback=false!./SearchWorker.worker');\n } catch (e) {\n worker = require('./SearchWorker.worker').default;\n }\n } else {\n worker = require('./SearchWorker.worker').default;\n }\n\n return new worker();\n}\n\nexport class SearchStore {\n searchWorker = getWorker();\n\n indexItems(groups: Array) {\n const recurse = items => {\n items.forEach(group => {\n if (group.type !== 'group') {\n this.add(group.name, group.description || '', group.id);\n }\n\n recurse(group.items);\n });\n };\n\n recurse(groups);\n this.searchWorker.done();\n }\n\n add(title: string, body: string, meta?: T) {\n this.searchWorker.add(title, body, meta);\n }\n\n dispose() {\n (this.searchWorker as any).terminate();\n (this.searchWorker as any).dispose();\n }\n\n search(q: string) {\n return this.searchWorker.search(q);\n }\n\n async toJS() {\n return this.searchWorker.toJS();\n }\n\n load(state: any) {\n this.searchWorker.load(state);\n }\n\n}","import { SECTION_ATTR } from '../services/MenuStore';\nimport styled, { media } from '../styled-components';\nexport const MiddlePanel = styled.div<{\n compact?: boolean;\n}>`\n width: calc(100% - ${props => props.theme.rightPanel.width});\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${({\n compact,\n theme\n}) => media.lessThan('medium', true)`\n width: 100%;\n padding: ${`${compact ? 0 : theme.spacing.sectionVertical}px ${theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const Section = styled.div.attrs(props => ({\n [SECTION_ATTR]: props.id\n}))<{\n underlined?: boolean;\n}>`\n padding: ${props => props.theme.spacing.sectionVertical}px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ${media.lessThan('medium', true)`\n padding: 0;\n `}\n ${(props: any) => props.underlined && `\n position: relative;\n\n &:not(:last-of-type):after {\n position: absolute;\n bottom: 0;\n width: 100%;\n display: block;\n content: '';\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n }\n ` || ''}\n`;\nexport const RightPanel = styled.div`\n width: ${props => props.theme.rightPanel.width};\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${media.lessThan('medium', true)`\n width: 100%;\n padding: ${props => `${props.theme.spacing.sectionVertical}px ${props.theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const DarkRightPanel = styled(RightPanel)`\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n`;\nexport const Row = styled.div`\n display: flex;\n width: 100%;\n padding: 0;\n\n ${media.lessThan('medium', true)`\n flex-direction: column;\n `};\n`;","import styled, { css, extensionsHook } from '../styled-components';\nconst headerFontSize = {\n 1: '1.85714em',\n 2: '1.57143em',\n 3: '1.27em'\n};\nexport const headerCommonMixin = level => css`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-weight: ${({\n theme\n}) => theme.typography.headings.fontWeight};\n font-size: ${headerFontSize[level]};\n line-height: ${({\n theme\n}) => theme.typography.headings.lineHeight};\n`;\nexport const H1 = styled.h1`\n ${headerCommonMixin(1)};\n color: ${({\n theme\n}) => theme.colors.primary.main};\n\n ${extensionsHook('H1')};\n`;\nexport const H2 = styled.h2`\n ${headerCommonMixin(2)};\n color: black;\n\n ${extensionsHook('H2')};\n`;\nexport const H3 = styled.h2`\n ${headerCommonMixin(3)};\n color: black;\n\n ${extensionsHook('H3')};\n`;\nexport const RightPanelHeader = styled.h3`\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n\n ${extensionsHook('RightPanelHeader')};\n`;\nexport const UnderlinedHeader = styled.h5`\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ${extensionsHook('UnderlinedHeader')};\n`;","import * as memoize from 'memoize-one/dist/memoize-one.cjs'; // fixme: https://github.com/alexreardon/memoize-one/issues/37\n\nimport { Component, createContext } from 'react';\nimport { AppStore } from '../services/';\nimport { RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { loadAndBundleSpec } from '../utils';\nexport interface StoreBuilderProps {\n specUrl?: string;\n spec?: object;\n store?: AppStore;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => void;\n children: (props: {\n loading: boolean;\n store?: AppStore;\n }) => any;\n}\nexport interface StoreBuilderState {\n error?: Error;\n loading: boolean;\n resolvedSpec?: any;\n prevSpec?: any;\n prevSpecUrl?: string;\n}\nconst {\n Provider,\n Consumer\n} = createContext(undefined);\nexport { Provider as StoreProvider, Consumer as StoreConsumer };\nexport class StoreBuilder extends Component {\n static getDerivedStateFromProps(nextProps: StoreBuilderProps, prevState: StoreBuilderState) {\n if (nextProps.specUrl !== prevState.prevSpecUrl || nextProps.spec !== prevState.prevSpec) {\n return {\n loading: true,\n resolvedSpec: null,\n prevSpec: nextProps.spec,\n prevSpecUrl: nextProps.specUrl\n };\n }\n\n return null;\n }\n\n state: StoreBuilderState = {\n loading: true,\n resolvedSpec: null\n };\n\n @memoize\n makeStore(spec, specUrl, options) {\n if (!spec) {\n return undefined;\n }\n\n try {\n return new AppStore(spec, specUrl, options);\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n throw e;\n }\n }\n\n componentDidMount() {\n this.load();\n }\n\n componentDidUpdate() {\n if (this.state.resolvedSpec === null) {\n this.load();\n } else if (!this.state.loading && this.props.onLoaded) {\n // may run multiple time\n this.props.onLoaded();\n }\n }\n\n async load() {\n const {\n specUrl,\n spec\n } = this.props;\n\n try {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl!);\n this.setState({\n resolvedSpec,\n loading: false\n });\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n this.setState({\n error: e\n });\n }\n }\n\n render() {\n if (this.state.error) {\n throw this.state.error;\n }\n\n const {\n specUrl,\n options\n } = this.props;\n const {\n loading,\n resolvedSpec\n } = this.state;\n return this.props.children({\n loading,\n store: this.makeStore(resolvedSpec, specUrl, options)\n });\n }\n\n}","import * as React from 'react';\nimport { StoreConsumer } from '../components/StoreBuilder';\nimport styled, { css } from '../styled-components';\nimport { HistoryService } from '../services'; // tslint:disable-next-line\n\nexport const linkifyMixin = className => css`\n ${className} {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n outline: 0;\n }\n ${className}:before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ${className}::before, h2:hover > ${className}::before, ${className}:hover::before {\n visibility: visible;\n }\n`;\n\nconst isModifiedEvent = event => !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n\nexport class Link extends React.Component<{\n to: string;\n className?: string;\n children?: any;\n}> {\n navigate = (history: HistoryService, event) => {\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n history.replace(this.props.to);\n }\n };\n\n render() {\n return \n {store => \n {this.props.children}\n }\n ;\n }\n\n}\nconst StyledShareLink = styled(Link)`\n ${linkifyMixin('&')};\n`;\nexport function ShareLink(props: {\n to: string;\n}) {\n return ;\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst directionMap = {\n left: '90deg',\n right: '-90deg',\n up: '-180deg',\n down: '0'\n};\n\nclass IntShelfIcon extends React.PureComponent<{\n className?: string;\n float?: 'left' | 'right';\n size?: string;\n color?: string;\n direction: 'left' | 'right' | 'up' | 'down';\n style?: React.CSSProperties;\n}> {\n render() {\n return \n \n ;\n }\n\n}\n\nexport const ShelfIcon = styled(IntShelfIcon)`\n height: ${props => props.size || '18px'};\n width: ${props => props.size || '18px'};\n vertical-align: middle;\n float: ${props => props.float || ''};\n transition: transform 0.2s ease-out;\n transform: rotateZ(${props => directionMap[props.direction || 'down']});\n\n polygon {\n fill: ${props => props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main || props.color};\n }\n`;\nexport const Badge = styled.span<{\n type: string;\n}>`\n display: inline-block;\n padding: 2px 8px;\n margin: 0;\n background-color: ${props => props.theme.colors[props.type].main};\n color: ${props => props.theme.colors[props.type].contrastText};\n font-size: ${props => props.theme.typography.code.fontSize};\n vertical-align: middle;\n line-height: 1.6;\n border-radius: 4px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n font-size: 12px;\n + span[type] {\n margin-left: 4px;\n }\n`;","import { css } from '../styled-components';\nexport const deprecatedCss = css`\n text-decoration: line-through;\n color: #bdccd3;\n`;","// import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { deprecatedCss } from './mixins';\nexport const PropertiesTableCaption = styled.caption`\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ${props => props.theme.colors.text.secondary};\n`;\nexport const PropertyCell = styled.td<{\n kind?: string;\n}>`\n border-left: 1px solid ${props => props.theme.schema.linesColor};\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ${props => props.theme.schema.linesColor} 22px,\n ${props => props.theme.schema.linesColor} 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ${props => props.theme.schema.linesColor} 0%,\n ${props => props.theme.schema.linesColor} 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n`;\nexport const PropertyCellWithInner = styled(PropertyCell)`\n padding: 0;\n`;\nexport const PropertyNameCell = styled(PropertyCell)`\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 13px;\n font-family: ${props => props.theme.typography.code.fontFamily};\n\n &.deprecated {\n ${deprecatedCss};\n }\n\n ${({\n kind\n}) => kind !== 'field' ? 'font-style: italic' : ''};\n\n ${extensionsHook('PropertyNameCell')};\n`;\nexport const PropertyDetailsCell = styled.td`\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ${props => props.theme.schema.defaultDetailsWidth};\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n`;\nexport const PropertyBullet = styled.span`\n color: ${props => props.theme.schema.linesColor};\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ${props => props.theme.schema.linesColor};\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ${props => props.theme.schema.linesColor};\n height: 7px;\n }\n`;\nexport const InnerPropertiesWrap = styled.div`\n padding: ${({\n theme\n}) => theme.schema.nestingSpacing};\n`;\nexport const PropertiesTable = styled.table`\n border-collapse: separate;\n border-radius: 3px;\n font-size: ${props => props.theme.typography.fontSize};\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n margin: ${({\n theme\n}) => theme.schema.nestingSpacing};\n margin-right: 0;\n background: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n background: #ffffff;\n }\n`;","import styled from '../styled-components';\nimport { darken } from 'polished';\nexport const OneOfList = styled.div`\n margin: 0 0 3px 0;\n display: inline-block;\n`;\nexport const OneOfLabel = styled.span`\n font-size: 0.9em;\n margin-right: 10px;\n color: ${props => props.theme.colors.primary.main};\n font-family: ${props => props.theme.typography.headings.fontFamily};\n}\n`;\nexport const OneOfButton = styled.button<{\n active: boolean;\n}>`\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ${props => props.theme.colors.primary.main};\n padding: 2px 10px;\n line-height: 1.5em;\n outline: none;\n &:focus {\n box-shadow: 0 0 0 1px ${props => props.theme.colors.primary.main};\n }\n\n ${props => {\n if (props.active) {\n return `\n color: white;\n background-color: ${props.theme.colors.primary.main};\n &:focus {\n box-shadow: none;\n background-color: ${darken(0.15, props.theme.colors.primary.main)};\n }\n `;\n } else {\n return `\n color: ${props.theme.colors.primary.main};\n background-color: white;\n `;\n }\n}}\n`;\nexport const ArrayOpenningLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ' [';\n }\n`;\nexport const ArrayClosingLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ']';\n }\n`;","import Dropdown from 'react-dropdown-aria';\nimport styled from '../styled-components';\nexport interface DropdownOption {\n idx: number;\n value: string;\n}\nexport interface DropdownProps {\n options: DropdownOption[];\n value: string;\n onChange: (option: DropdownOption) => void;\n ariaLabel: string;\n}\nexport const StyledDropdown = styled(Dropdown)`\n && {\n box-sizing: border-box;\n min-width: 100px;\n outline: none;\n display: inline-block;\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.5);\n vertical-align: bottom;\n padding: 2px 0px 2px 6px;\n position: relative;\n width: auto;\n background: white;\n color: #263238;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n font-size: 0.929em;\n line-height: 1.5em;\n cursor: pointer;\n transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;\n &:hover,\n &:focus-within {\n border: 1px solid ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n box-shadow: 0px 0px 0px 1px ${props => props.theme.colors.primary.main};\n }\n .dropdown-selector {\n display: inline-flex;\n padding: 0;\n height: auto;\n padding-right: 20px;\n position: relative;\n margin-bottom: 5px;\n }\n .dropdown-selector-value {\n font-family: ${props => props.theme.typography.headings.fontFamily};\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1;\n vertical-align: middle;\n color: #263238;\n left: 0;\n transition: color 0.25s ease, text-shadow 0.25s ease;\n }\n .dropdown-arrow {\n position: absolute;\n right: 3px;\n top: 50%;\n transform: translateY(-50%);\n border-color: ${props => props.theme.colors.primary.main} transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n width: 0;\n svg {\n display: none;\n }\n }\n\n .dropdown-selector-content {\n position: absolute;\n margin-top: 2px;\n left: -2px;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &[aria-selected='true'] {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n input {\n cursor: pointer;\n height: 1px;\n }\n }\n`;\nexport const SimpleDropdown = styled(StyledDropdown)`\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n .dropdown-selector-value {\n color: ${props => props.theme.colors.primary.main};\n text-shadow: 0px 0px 0px ${props => props.theme.colors.primary.main};\n }\n }\n }\n`;\nexport const MimeLabel = styled.span`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n`;","import { darken } from 'polished';\nimport { Tabs as ReactTabs } from 'react-tabs';\nimport styled from '../styled-components';\nexport { Tab, TabList, TabPanel } from 'react-tabs';\nexport const Tabs = styled(ReactTabs)`\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n margin: 0\n ${({\n theme\n}) => `${theme.spacing.unit}px ${theme.spacing.unit}px ${theme.spacing.unit}px`};\n border: 1px solid ${({\n theme\n}) => darken(0.05, theme.codeBlock.backgroundColor)};\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ${props => props.theme.colors.text.primary};\n background: ${({\n theme\n}) => theme.rightPanel.textColor};\n &:focus {\n outline: auto;\n }\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ${props => props.theme.colors.responses.success.color};\n }\n\n &.tab-redirect {\n color: ${props => props.theme.colors.responses.redirect.color};\n }\n\n &.tab-info {\n color: ${props => props.theme.colors.responses.info.color};\n }\n\n &.tab-error {\n color: ${props => props.theme.colors.responses.error.color};\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n`;\nexport const SmallTabs = styled(Tabs)`\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 2}px 0;\n }\n }\n`;","import styled, { extensionsHook } from '../styled-components';\nexport const PrismDiv = styled.div`\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n .token.property.string {\n color: white;\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ${extensionsHook('Prism')};\n`;","import styled from '../styled-components';\nimport { PrismDiv } from './PrismDiv';\nexport const SampleControls = styled.div`\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n &:focus-within {\n opacity: 1;\n }\n > button {\n background-color: transparent;\n border: 0;\n color: inherit;\n padding: 2px 10px;\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-size: ${({\n theme\n}) => theme.typography.fontSize};\n line-height: ${({\n theme\n}) => theme.typography.lineHeight};\n cursor: pointer;\n outline: 0;\n\n :hover,\n :focus {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\nexport const SampleControlsWrap = styled.div`\n &:hover ${SampleControls} {\n opacity: 1;\n }\n`;\nexport const StyledPre = styled(PrismDiv.withComponent('pre'))`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n overflow-x: auto;\n margin: 0;\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n`;","import * as React from 'react';\nimport PerfectScrollbarType, * as PerfectScrollbarNamespace from 'perfect-scrollbar';\nimport { OptionsContext } from '../components/OptionsProvider';\nimport styled from '../styled-components';\n/*\n * perfect scrollbar umd bundle uses exports assignment while module uses default export\n * so when bundled with webpack default export works but with jest it crashes\n * That's why the following ugly fix is required\n */\n\nconst PerfectScrollbarConstructor = PerfectScrollbarNamespace.default || ((PerfectScrollbarNamespace as any) as PerfectScrollbarType); // const PSStyling = createGlobalStyle`${require('perfect-scrollbar/css/perfect-scrollbar.css').toString()}`;\n\nconst StyledScrollWrapper = styled.div`\n position: relative;\n`;\nexport interface PerfectScrollbarProps {\n options?: PerfectScrollbarType.Options;\n className?: string;\n updateFn?: (fn) => void;\n}\nexport class PerfectScrollbar extends React.Component {\n private _container: HTMLElement;\n private inst: PerfectScrollbarType;\n\n componentDidMount() {\n const offset = this._container.parentElement && this._container.parentElement.scrollTop || 0;\n this.inst = new PerfectScrollbarConstructor(this._container, this.props.options || {});\n\n if (this._container.scrollTo) {\n this._container.scrollTo(0, offset);\n }\n }\n\n componentDidUpdate() {\n this.inst.update();\n }\n\n componentWillUnmount() {\n this.inst.destroy();\n }\n\n handleRef = ref => {\n this._container = ref;\n };\n\n render() {\n const {\n children,\n className,\n updateFn\n } = this.props;\n\n if (updateFn) {\n updateFn(this.componentDidUpdate.bind(this));\n }\n\n return <>\n {\n /* */\n }\n \n {children}\n \n ;\n }\n\n}\nexport function PerfectScrollbarWrap(props: PerfectScrollbarProps & {\n children: JSX.Element[] | JSX.Element;\n}) {\n return \n {options => !options.nativeScrollbars ? {props.children} :
\n {props.children}\n
}\n
;\n}","import styled from '../styled-components';\ntype FlexProps = {\n justifyContent?: string;\n};\nexport const Flex = styled.div.attrs((props: FlexProps) => ({\n justifyContent: props.justifyContent\n}))`\n display: flex;\n justify-content: ${props => props.justifyContent};\n width: 100%;\n`;\nexport const HFlex = styled(Flex)`\n flex-direction: row;\n`;\nexport const VFlex = styled(Flex)`\n flex-direction: column;\n`;","export * from './panels';\nexport * from './headers';\nexport * from './linkify';\nexport * from './shelfs';\nexport * from './fields-layout';\nexport * from './schema';\nexport * from './dropdown';\nexport * from './mixins';\nexport * from './tabs';\nexport * from './samples';\nexport * from './perfect-scrollbar';\nexport * as Flex from './flex';","import * as React from 'react';\nimport { DropdownProps, MimeLabel, SimpleDropdown } from '../../common-elements/dropdown';\nexport interface DropdownOrLabelProps extends DropdownProps {\n Label?: React.ComponentClass;\n Dropdown?: React.ComponentClass;\n}\nexport function DropdownOrLabel(props: DropdownOrLabelProps): JSX.Element {\n const {\n Label = MimeLabel,\n Dropdown = SimpleDropdown\n } = props;\n\n if (props.options.length === 1) {\n return ;\n }\n\n return ;\n}","import { headerCommonMixin, linkifyMixin } from '../../common-elements';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport styled, { css, extensionsHook, ResolvedThemeInterface } from '../../styled-components';\nimport { StyledComponent } from 'styled-components';\nexport const linksCss = css`\n a {\n text-decoration: none;\n color: ${props => props.theme.typography.links.color};\n\n &:visited {\n color: ${props => props.theme.typography.links.visited};\n }\n\n &:hover {\n color: ${props => props.theme.typography.links.hover};\n }\n }\n`;\nexport const StyledMarkdownBlock = styled((PrismDiv as StyledComponent<'div', ResolvedThemeInterface, {\n compact?: boolean;\n inline?: boolean;\n}>))`\n\n font-family: ${props => props.theme.typography.fontFamily};\n font-weight: ${props => props.theme.typography.fontWeightRegular};\n line-height: ${props => props.theme.typography.lineHeight};\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${({\n compact\n}) => compact && `\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n `}\n\n ${({\n inline\n}) => inline && ` p {\n display: inline-block;\n }`}\n\n h1 {\n ${headerCommonMixin(1)};\n color: ${props => props.theme.colors.primary.main};\n margin-top: 0;\n }\n\n h2 {\n ${headerCommonMixin(2)};\n color: ${props => props.theme.colors.text.primary};\n }\n\n code {\n color: ${({\n theme\n}) => theme.typography.code.color};\n background-color: ${({\n theme\n}) => theme.typography.code.backgroundColor};\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ${({\n theme\n}) => theme.spacing.unit}px;\n font-size: ${props => props.theme.typography.code.fontSize};\n font-weight: ${({\n theme\n}) => theme.typography.code.fontWeight};\n\n word-break: break-word;\n }\n\n pre {\n font-family: ${props => props.theme.typography.code.fontFamily};\n white-space:${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n background-color: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n color: white;\n padding: ${props => props.theme.spacing.unit * 4}px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ${linkifyMixin('.share-link')};\n\n ${linksCss}\n\n ${extensionsHook('Markdown')};\n`;","import * as DOMPurify from 'dompurify';\nimport * as React from 'react';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StylingMarkdownProps } from './Markdown';\nimport { StyledMarkdownBlock } from './styled.elements';\nconst StyledMarkdownSpan = StyledMarkdownBlock.withComponent('span');\n\nconst sanitize = (untrustedSpec, html) => untrustedSpec ? DOMPurify.sanitize(html) : html;\n\nexport function SanitizedMarkdownHTML(props: StylingMarkdownProps & {\n html: string;\n className?: string;\n 'data-role'?: string;\n}) {\n const Wrap = props.inline ? StyledMarkdownSpan : StyledMarkdownBlock;\n return \n {options => }\n ;\n}","import * as React from 'react';\nimport { MarkdownRenderer } from '../../services';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nexport interface StylingMarkdownProps {\n compact?: boolean;\n inline?: boolean;\n}\nexport interface BaseMarkdownProps {\n sanitize?: boolean;\n source: string;\n}\nexport type MarkdownProps = BaseMarkdownProps & StylingMarkdownProps & {\n source: string;\n className?: string;\n 'data-role'?: string;\n};\nexport class Markdown extends React.Component {\n render() {\n const {\n source,\n inline,\n compact,\n className,\n 'data-role': dataRole\n } = this.props;\n const renderer = new MarkdownRenderer();\n return ;\n }\n\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Tip = styled.div`\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n`;\nconst Content = styled.div`\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n`;\nconst Arrow = styled.div`\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n`;\nconst Gap = styled.div`\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n`;\nexport interface TooltipProps {\n open: boolean;\n title: string;\n}\nexport class Tooltip extends React.Component {\n render() {\n const {\n open,\n title,\n children\n } = this.props;\n return \n {children}\n {open && \n {title}\n \n \n }\n ;\n }\n\n}","const isSupported = typeof document !== 'undefined' && document.queryCommandSupported && document.queryCommandSupported('copy');\nexport class ClipboardService {\n static isSupported(): boolean {\n return isSupported;\n }\n\n static selectElement(element: any): void {\n let range;\n let selection;\n\n if ((document.body as any).createTextRange) {\n range = (document.body as any).createTextRange();\n range.moveToElementText(element);\n range.select();\n } else if (document.createRange && window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n static deselect(): void {\n if ((document as any).selection) {\n (document as any).selection.empty();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n }\n }\n }\n\n static copySelected(): boolean {\n let result;\n\n try {\n result = document.execCommand('copy');\n } catch (err) {\n result = false;\n }\n\n return result;\n }\n\n static copyElement(element: any): boolean {\n ClipboardService.selectElement(element);\n const res = ClipboardService.copySelected();\n\n if (res) {\n ClipboardService.deselect();\n }\n\n return res;\n }\n\n static copyCustom(text: string): boolean {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.top = '0';\n textArea.style.left = '0'; // Ensure it has a small width and height. Setting to 1px / 1em\n // doesn't work as this gives a negative w/h on some browsers.\n\n textArea.style.width = '2em';\n textArea.style.height = '2em'; // We don't need padding, reducing the size if it does flash render.\n\n textArea.style.padding = '0'; // Clean up any borders.\n\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none'; // Avoid flash of white box if rendered for any reason.\n\n textArea.style.background = 'transparent';\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n const res = ClipboardService.copySelected();\n document.body.removeChild(textArea);\n return res;\n }\n\n}","import * as React from 'react';\nimport { Tooltip } from '../common-elements/Tooltip';\nimport { ClipboardService } from '../services/ClipboardService';\nexport interface CopyButtonWrapperProps {\n data: any;\n children: (props: {\n renderCopyButton: () => React.ReactNode;\n }) => React.ReactNode;\n}\nexport class CopyButtonWrapper extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n tooltipShown: false\n };\n }\n\n render() {\n return this.props.children({\n renderCopyButton: this.renderCopyButton\n });\n }\n\n copy = () => {\n const content = typeof this.props.data === 'string' ? this.props.data : JSON.stringify(this.props.data, null, 2);\n ClipboardService.copyCustom(content);\n this.showTooltip();\n };\n renderCopyButton = () => {\n return ;\n };\n\n showTooltip() {\n this.setState({\n tooltipShown: true\n });\n setTimeout(() => {\n this.setState({\n tooltipShown: false\n });\n }, 1500);\n }\n\n}","let level = 1;\nexport function jsonToHTML(json, maxExpandLevel) {\n level = 1;\n let output = '';\n output += '
';\n output += '';\n output += valueToHTML(json, maxExpandLevel);\n output += '';\n output += '
';\n return output;\n}\n\nfunction htmlEncode(t) {\n return t !== undefined ? t.toString().replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>') : '';\n}\n\nfunction stringifyStringLiteral(str: string) {\n return JSON.stringify(str).slice(1, -1);\n}\n\nfunction decorateWithSpan(value, className) {\n return '' + htmlEncode(value) + '';\n}\n\nfunction punctuation(val) {\n return '' + val + '';\n}\n\nfunction valueToHTML(value, maxExpandLevel: number) {\n const valueType = typeof value;\n let output = '';\n\n if (value === undefined || value === null) {\n output += decorateWithSpan('null', 'token keyword');\n } else if (value && value.constructor === Array) {\n level++;\n output += arrayToHTML(value, maxExpandLevel);\n level--;\n } else if (value && value.constructor === Date) {\n output += decorateWithSpan('\"' + value.toISOString() + '\"', 'token string');\n } else if (valueType === 'object') {\n level++;\n output += objectToHTML(value, maxExpandLevel);\n level--;\n } else if (valueType === 'number') {\n output += decorateWithSpan(value, 'token number');\n } else if (valueType === 'string') {\n if (/^(http|https):\\/\\/[^\\s]+$/.test(value)) {\n output += decorateWithSpan('\"', 'token string') + '' + htmlEncode(stringifyStringLiteral(value)) + '' + decorateWithSpan('\"', 'token string');\n } else {\n output += decorateWithSpan('\"' + stringifyStringLiteral(value) + '\"', 'token string');\n }\n } else if (valueType === 'boolean') {\n output += decorateWithSpan(value, 'token boolean');\n }\n\n return output;\n}\n\nfunction arrayToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n let output = `
${punctuation('[')}
    `;\n let hasContents = false;\n const length = json.length;\n\n for (let i = 0; i < length; i++) {\n hasContents = true;\n output += '
  • ';\n output += valueToHTML(json[i], maxExpandLevel);\n\n if (i < length - 1) {\n output += ',';\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation(']')}`;\n\n if (!hasContents) {\n output = punctuation('[ ]');\n }\n\n return output;\n}\n\nfunction objectToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n const keys = Object.keys(json);\n const length = keys.length;\n let output = `
${punctuation('{')}
    `;\n let hasContents = false;\n\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n hasContents = true;\n output += '
  • ';\n output += '\"' + htmlEncode(key) + '\": ';\n output += valueToHTML(json[key], maxExpandLevel);\n\n if (i < length - 1) {\n output += punctuation(',');\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation('}')}`;\n\n if (!hasContents) {\n output = punctuation('{ }');\n }\n\n return output;\n}","import { css } from '../../styled-components';\nexport const jsonStyles = css`\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' … ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { SampleControls } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport { jsonToHTML } from '../../utils/jsonToHtml';\nimport { OptionsContext } from '../OptionsProvider';\nimport { jsonStyles } from './style';\nexport interface JsonProps {\n data: any;\n className?: string;\n}\nconst JsonViewerWrap = styled.div`\n &:hover > ${SampleControls} {\n opacity: 1;\n }\n`;\n\nclass Json extends React.PureComponent {\n node: HTMLDivElement;\n\n render() {\n return {this.renderInner};\n }\n\n renderInner = ({\n renderCopyButton\n }) => \n \n {renderCopyButton()}\n \n \n \n \n {options => this.node = node!} dangerouslySetInnerHTML={{\n __html: jsonToHTML(this.props.data, options.jsonSampleExpandLevel)\n }} />}\n \n ;\n expandAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const collapsed of Array.prototype.slice.call(elements)) {\n (collapsed.parentNode as Element)!.classList.remove('collapsed');\n }\n };\n collapseAll = () => {\n const elements = this.node.getElementsByClassName('collapsible'); // skip first item to avoid collapsing whole object/array\n\n const elementsArr = Array.prototype.slice.call(elements, 1);\n\n for (const expanded of elementsArr) {\n (expanded.parentNode as Element)!.classList.add('collapsed');\n }\n };\n clickListener = (event: MouseEvent) => {\n let collapsed;\n const target = (event.target as HTMLElement);\n\n if (target.className === 'collapser') {\n collapsed = target.parentElement!.getElementsByClassName('collapsible')[0];\n\n if (collapsed.parentElement.classList.contains('collapsed')) {\n collapsed.parentElement.classList.remove('collapsed');\n } else {\n collapsed.parentElement.classList.add('collapsed');\n }\n }\n };\n\n componentDidMount() {\n this.node!.addEventListener('click', this.clickListener);\n }\n\n componentWillUnmount() {\n this.node!.removeEventListener('click', this.clickListener);\n }\n\n}\n\nexport const JsonViewer = styled(Json)`\n ${jsonStyles};\n`;","import * as React from 'react';\nimport { highlight } from '../../utils';\nimport { SampleControls, SampleControlsWrap, StyledPre } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nexport interface SourceCodeProps {\n source: string;\n lang: string;\n}\nexport class SourceCode extends React.PureComponent {\n render() {\n const {\n source,\n lang\n } = this.props;\n return ;\n }\n\n}\nexport class SourceCodeWithCopy extends React.PureComponent {\n render() {\n return \n {({\n renderCopyButton\n }) => \n {renderCopyButton()}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { isJsonLike, langFromMime } from '../../utils/openapi';\nimport { JsonViewer } from '../JsonViewer/JsonViewer';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nexport interface ExampleValueProps {\n value: any;\n mimeType: string;\n}\nexport function ExampleValue({\n value,\n mimeType\n}: ExampleValueProps) {\n if (isJsonLike(mimeType)) {\n return ;\n } else {\n if (typeof value === 'object') {\n // just in case example was cached as json but used as non-json\n value = JSON.stringify(value, null, 2);\n }\n\n return ;\n }\n}","import { useEffect, useRef, useState } from 'react';\nimport { ExampleModel } from '../../services/models/Example';\nexport function useExternalExample(example: ExampleModel, mimeType: string) {\n const [, setIsLoading] = useState(true); // to trigger component reload\n\n const value = useRef(undefined);\n const prevRef = useRef(undefined);\n\n if (prevRef.current !== example) {\n value.current = undefined;\n }\n\n prevRef.current = example;\n useEffect(() => {\n const load = async () => {\n setIsLoading(true);\n\n try {\n value.current = await example.getExternalValue(mimeType);\n } catch (e) {\n value.current = e;\n }\n\n setIsLoading(false);\n };\n\n load();\n }, [example, mimeType]);\n return value.current;\n}","import * as React from 'react';\nimport { StyledPre } from '../../common-elements/samples';\nimport { ExampleModel } from '../../services/models';\nimport { ExampleValue } from './ExampleValue';\nimport { useExternalExample } from './exernalExampleHook';\nexport interface ExampleProps {\n example: ExampleModel;\n mimeType: string;\n}\nexport function Example({\n example,\n mimeType\n}: ExampleProps) {\n if (example.value === undefined && example.externalValueUrl) {\n return ;\n } else {\n return ;\n }\n}\nexport function ExternalExample({\n example,\n mimeType\n}: ExampleProps) {\n const value = useExternalExample(example, mimeType);\n\n if (value === undefined) {\n return Loading...;\n }\n\n if (value instanceof Error) {\n return \n Error loading external example:
\n \n {example.externalValueUrl}\n \n
;\n }\n\n return ;\n}","import { transparentize } from 'polished';\nimport styled from '../../styled-components';\nimport { StyledDropdown } from '../../common-elements';\nexport const MimeLabel = styled.div`\n padding: 0.9em;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n margin: 0 0 10px 0;\n display: block;\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 0.929em;\n line-height: 1.5em;\n`;\nexport const DropdownLabel = styled.span`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.textColor)};\n`;\nexport const DropdownWrapper = styled.div`\n position: relative;\n`;\nexport const InvertedSimpleDropdown = styled(StyledDropdown)`\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n box-shadow: none;\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n }\n &:focus-within {\n background-color: ${({\n theme\n}) => transparentize(0.3, theme.rightPanel.backgroundColor)};\n }\n\n .dropdown-arrow {\n border-top-color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n .dropdown-selector-value {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n\n .dropdown-selector-content {\n margin: 0;\n margin-top: 2px;\n .dropdown-option {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n }\n }\n`;\nexport const NoSampleLabel = styled.div`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: 12px;\n color: #ee807f;\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { MediaTypeModel } from '../../services/models';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Example } from './Example';\nimport { DropdownLabel, DropdownWrapper, NoSampleLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n mediaType: MediaTypeModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\ninterface MediaTypeSamplesState {\n activeIdx: number;\n}\nexport class MediaTypeSamples extends React.Component {\n state = {\n activeIdx: 0\n };\n switchMedia = ({\n idx\n }) => {\n this.setState({\n activeIdx: idx\n });\n };\n\n render() {\n const {\n activeIdx\n } = this.state;\n const examples = this.props.mediaType.examples || {};\n const mimeType = this.props.mediaType.name;\n const noSample = No sample;\n const examplesNames = Object.keys(examples);\n\n if (examplesNames.length === 0) {\n return noSample;\n }\n\n if (examplesNames.length > 1) {\n const options = examplesNames.map((name, idx) => {\n return {\n value: examples[name].summary || name,\n idx\n };\n });\n const example = examples[examplesNames[activeIdx]];\n const description = example.description;\n return \n \n Example\n {this.props.renderDropdown({\n value: options[activeIdx].value,\n options,\n onChange: this.switchMedia,\n ariaLabel: 'Example'\n })}\n \n
\n {description && }\n \n
\n
;\n } else {\n const example = examples[examplesNames[0]];\n return \n {example.description && }\n \n ;\n }\n }\n\n}\nconst SamplesWrapper = styled.div`\n margin-top: 15px;\n`;","import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { PropertyNameCell } from './fields-layout';\nimport { ShelfIcon } from './shelfs';\nexport const ClickablePropertyNameCell = styled(PropertyNameCell)`\n button {\n background-color: transparent;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-family: ${props => props.theme.typography.code.fontFamily};\n cursor: pointer;\n padding: 0;\n color: ${props => props.theme.colors.text.primary};\n &:focus {\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n }\n }\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.schema.arrow.size};\n width: ${({\n theme\n}) => theme.schema.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.schema.arrow.color};\n }\n }\n`;\nexport const FieldLabel = styled.span`\n vertical-align: middle;\n font-size: ${({\n theme\n}) => theme.typography.code.fontSize};\n line-height: 20px;\n`;\nexport const TypePrefix = styled(FieldLabel)`\n color: ${props => transparentize(0.2, props.theme.schema.typeNameColor)};\n`;\nexport const TypeName = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeNameColor};\n`;\nexport const TypeTitle = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeTitleColor};\n word-break: break-word;\n`;\nexport const TypeFormat = TypeName;\nexport const RequiredLabel = styled(FieldLabel.withComponent('div'))`\n color: ${props => props.theme.schema.requireLabelColor};\n font-size: ${props => props.theme.schema.labelsTextSize};\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n`;\nexport const RecursiveLabel = styled(FieldLabel)`\n color: ${({\n theme\n}) => theme.colors.warning.main};\n font-size: 13px;\n`;\nexport const NullableLabel = styled(FieldLabel)`\n color: #3195a6;\n font-size: 13px;\n`;\nexport const PatternLabel = styled(FieldLabel)`\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n`;\nexport const ExampleValue = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.text.primary)};\n color: ${transparentize(0.1, theme.colors.text.primary)};\n\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.text.primary)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ExampleValue')};\n`;\nexport const ExtensionValue = styled(ExampleValue)``;\nexport const ConstraintItem = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.primary.light)};\n color: ${transparentize(0.1, theme.colors.primary.main)};\n\n margin: 0 ${theme.spacing.unit}px;\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.primary.main)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ConstraintItem')};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { linksCss } from '../Markdown/styled.elements';\nconst LinkWrap = styled.div<{\n compact?: boolean;\n}>`\n ${linksCss};\n ${({\n compact\n}) => !compact ? 'margin: 1em 0' : ''}\n`;\n@observer\nexport class ExternalDocumentation extends React.Component<{\n externalDocs: OpenAPIExternalDocumentation;\n compact?: boolean;\n}> {\n render() {\n const {\n externalDocs\n } = this.props;\n\n if (!externalDocs || !externalDocs.url) {\n return null;\n }\n\n return \n {externalDocs.description || externalDocs.url}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nimport styled from '../../styled-components';\nimport { RedocRawOptions } from '../../services/RedocNormalizedOptions';\nexport interface EnumValuesProps {\n values: string[];\n type: string;\n}\nexport interface EnumValuesState {\n collapsed: boolean;\n}\nexport class EnumValues extends React.PureComponent {\n state: EnumValuesState = {\n collapsed: true\n };\n static contextType = OptionsContext;\n\n private toggle() {\n this.setState({\n collapsed: !this.state.collapsed\n });\n }\n\n render() {\n const {\n values,\n type\n } = this.props;\n const {\n collapsed\n } = this.state; // TODO: provide context interface in more elegant way\n\n const {\n enumSkipQuotes,\n maxDisplayedEnumValues\n } = (this.context as RedocRawOptions);\n\n if (!values.length) {\n return null;\n }\n\n const displayedItems = this.state.collapsed && maxDisplayedEnumValues ? values.slice(0, maxDisplayedEnumValues) : values;\n const showToggleButton = maxDisplayedEnumValues ? values.length > maxDisplayedEnumValues : false;\n const toggleButtonText = maxDisplayedEnumValues ? collapsed ? `… ${values.length - maxDisplayedEnumValues} more` : 'Hide' : '';\n return
\n \n {type === 'array' ? l('enumArray') : ''}{' '}\n {values.length === 1 ? l('enumSingleValue') : l('enum')}:\n {' '}\n {displayedItems.map((value, idx) => {\n const exampleValue = enumSkipQuotes ? value : JSON.stringify(value);\n return \n {exampleValue}{' '}\n ;\n })}\n {showToggleButton ? {\n this.toggle();\n }}>\n {toggleButtonText}\n : null}\n
;\n }\n\n}\nconst ToggleButton = styled.span`\n color: ${props => props.theme.colors.primary.main};\n vertical-align: middle;\n font-size: 13px;\n line-height: 20px;\n padding: 0 5px;\n cursor: pointer;\n`;","import * as React from 'react';\nimport { ExtensionValue, FieldLabel } from '../../common-elements/fields';\nimport styled from '../../styled-components';\nimport { OptionsContext } from '../OptionsProvider';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst Extension = styled(StyledMarkdownBlock)`\n margin: 2px 0;\n`;\nexport interface ExtensionsProps {\n extensions: {\n [k: string]: any;\n };\n}\nexport class Extensions extends React.PureComponent {\n render() {\n const exts = this.props.extensions;\n return \n {options => <>\n {options.showExtensions && Object.keys(exts).map(key => \n {key.substring(2)}: {' '}\n \n {typeof exts[key] === 'string' ? exts[key] : JSON.stringify(exts[key])}\n \n )}\n }\n ;\n }\n\n}","import * as React from 'react';\nimport { ConstraintItem } from '../../common-elements/fields';\nexport interface ConstraintsViewProps {\n constraints: string[];\n}\nexport class ConstraintsView extends React.PureComponent {\n render() {\n if (this.props.constraints.length === 0) {\n return null;\n }\n\n return \n {' '}\n {this.props.constraints.map(constraint => {constraint} )}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nexport interface FieldDetailProps {\n value?: any;\n label: string;\n raw?: boolean;\n}\nexport class FieldDetail extends React.PureComponent {\n render() {\n if (this.props.value === undefined) {\n return null;\n }\n\n const value = this.props.raw ? this.props.value : JSON.stringify(this.props.value);\n return
\n {this.props.label} {value}\n
;\n }\n\n}","import * as React from 'react';\nimport { NullableLabel, PatternLabel, RecursiveLabel, TypeFormat, TypeName, TypePrefix, TypeTitle } from '../../common-elements/fields';\nimport { serializeParameterValue } from '../../utils/openapi';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { EnumValues } from './EnumValues';\nimport { Extensions } from './Extensions';\nimport { FieldProps } from './Field';\nimport { ConstraintsView } from './FieldContstraints';\nimport { FieldDetail } from './FieldDetail';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nconst MAX_PATTERN_LENGTH = 45;\nexport class FieldDetails extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n showExamples,\n field,\n renderDiscriminatorSwitch\n } = this.props;\n const {\n enumSkipQuotes,\n hideSchemaTitles\n } = this.context;\n const {\n schema,\n description,\n example,\n deprecated\n } = field;\n const rawDefault = !!enumSkipQuotes || field.in === 'header'; // having quotes around header field default values is confusing and inappropriate\n\n let exampleField: JSX.Element | null = null;\n\n if (showExamples && example !== undefined) {\n const label = l('example') + ':';\n\n if (field.in && (field.style || field.serializationMime)) {\n // decode for better readability in examples: see https://github.com/Redocly/redoc/issues/1138\n const serializedValue = decodeURIComponent(serializeParameterValue(field, example));\n exampleField = ;\n } else {\n exampleField = ;\n }\n }\n\n return
\n
\n {schema.typePrefix}\n {schema.displayType}\n {schema.displayFormat && \n {' '}\n <\n {schema.displayFormat}\n >{' '}\n }\n {schema.title && !hideSchemaTitles && ({schema.title}) }\n \n {schema.nullable && {l('nullable')} }\n {schema.pattern && schema.pattern.length < MAX_PATTERN_LENGTH && {schema.pattern} }\n {schema.isCircular && {l('recursive')} }\n
\n {deprecated &&
\n {l('deprecated')} \n
}\n \n {!renderDiscriminatorSwitch && }{' '}\n {exampleField}\n {}\n
\n \n
\n {schema.externalDocs && }\n {renderDiscriminatorSwitch && renderDiscriminatorSwitch(this.props) || null}\n
;\n }\n\n}","import * as React from 'react';\nimport { Schema, SchemaProps } from './Schema';\nimport { ArrayClosingLabel, ArrayOpenningLabel } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { humanizeConstraints } from \"../../utils\";\nconst PaddedSchema = styled.div`\n padding-left: ${({\n theme\n}) => theme.spacing.unit * 2}px;\n`;\nexport class ArraySchema extends React.PureComponent {\n render() {\n const itemsSchema = this.props.schema.items!;\n\n const itemConstraintSchema = (min: number | undefined = undefined, max: number | undefined = undefined) => ({\n type: 'array',\n minItems: min,\n maxItems: max\n });\n\n const minMaxItems = humanizeConstraints(itemConstraintSchema(itemsSchema.schema.minItems, itemsSchema.schema.maxItems));\n return
\n Array ({minMaxItems})\n \n \n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ClickablePropertyNameCell, RequiredLabel } from '../../common-elements/fields';\nimport { FieldDetails } from './FieldDetails';\nimport { InnerPropertiesWrap, PropertyBullet, PropertyCellWithInner, PropertyDetailsCell, PropertyNameCell } from '../../common-elements/fields-layout';\nimport { ShelfIcon } from '../../common-elements/';\nimport { FieldModel } from '../../services/models';\nimport { Schema, SchemaOptions } from '../Schema/Schema';\nexport interface FieldProps extends SchemaOptions {\n className?: string;\n isLast?: boolean;\n showExamples?: boolean;\n field: FieldModel;\n expandByDefault?: boolean;\n expandAllFields?: boolean;\n renderDiscriminatorSwitch?: (opts: FieldProps) => JSX.Element;\n}\n@observer\nexport class Field extends React.Component {\n toggle = () => {\n if (this.props.field.expanded === undefined && !this.props.field.expandAll && this.props.expandByDefault) {\n this.props.field.expanded = false;\n } else {\n this.props.field.toggle();\n }\n };\n handleKeyPress = e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.toggle();\n }\n };\n\n render() {\n const {\n className,\n field,\n isLast,\n expandByDefault,\n expandAllFields\n } = this.props;\n const {\n name,\n deprecated,\n required,\n kind\n } = field;\n const withSubSchema = !field.schema.isPrimitive && !field.schema.isCircular;\n const expandChildren = field.expandAll === undefined ? expandAllFields : field.expandAll;\n const expanded = field.expanded === undefined ? expandChildren || expandByDefault : field.expanded;\n const paramName = withSubSchema ? \n \n \n {required && required }\n : \n \n {name}\n {required && required }\n ;\n return <>\n \n {paramName}\n \n \n \n \n {expanded && withSubSchema && \n \n \n \n \n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownOption, StyledDropdown } from '../../common-elements/dropdown';\nimport { SchemaModel } from '../../services/models';\n@observer\nexport class DiscriminatorDropdown extends React.Component<{\n parent: SchemaModel;\n enumValues: string[];\n}> {\n sortOptions(options: DropdownOption[], enumValues: string[]): void {\n if (enumValues.length === 0) {\n return;\n }\n\n const enumOrder = {};\n enumValues.forEach((enumItem, idx) => {\n enumOrder[enumItem] = idx;\n });\n options.sort((a, b) => {\n return enumOrder[a.value] > enumOrder[b.value] ? 1 : -1;\n });\n }\n\n render() {\n const {\n parent,\n enumValues\n } = this.props;\n\n if (parent.oneOf === undefined) {\n return null;\n }\n\n const options = parent.oneOf.map((subSchema, idx) => {\n return {\n value: subSchema.title,\n idx\n };\n });\n this.sortOptions(options, enumValues);\n return ;\n }\n\n changeActiveChild = (option: DropdownOption) => {\n this.props.parent.activateOneOf(option.idx);\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { SchemaModel } from '../../services/models';\nimport { PropertiesTable, PropertiesTableCaption } from '../../common-elements/fields-layout';\nimport { Field } from '../Fields/Field';\nimport { DiscriminatorDropdown } from './DiscriminatorDropdown';\nimport { SchemaProps } from './Schema';\nimport { mapWithLast } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface ObjectSchemaProps extends SchemaProps {\n discriminator?: {\n fieldName: string;\n parentSchema: SchemaModel;\n };\n}\n@observer\nexport class ObjectSchema extends React.Component {\n static contextType = OptionsContext;\n\n get parentSchema() {\n return this.props.discriminator!.parentSchema;\n }\n\n render() {\n const {\n schema: {\n fields = []\n },\n showTitle,\n discriminator\n } = this.props;\n const needFilter = this.props.skipReadOnly || this.props.skipWriteOnly;\n const filteredFields = needFilter ? fields.filter(item => {\n return !(this.props.skipReadOnly && item.schema.readOnly || this.props.skipWriteOnly && item.schema.writeOnly);\n }) : fields;\n const expandByDefault = this.context.expandSingleSchemaField && filteredFields.length === 1;\n const expandAllFields = this.context.expandAllSchemaFields;\n return \n {showTitle && {this.props.schema.title}}\n \n {mapWithLast(filteredFields, (field, isLast) => {\n return ) || undefined} className={field.expanded ? 'expanded' : undefined} showExamples={false} skipReadOnly={this.props.skipReadOnly} skipWriteOnly={this.props.skipWriteOnly} showTitle={this.props.showTitle} />;\n })}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OneOfButton as StyledOneOfButton, OneOfLabel, OneOfList } from '../../common-elements/schema';\nimport { SchemaModel } from '../../services/models';\nimport { Schema, SchemaProps } from './Schema';\nexport interface OneOfButtonProps {\n subSchema: SchemaModel;\n idx: number;\n schema: SchemaModel;\n}\n@observer\nexport class OneOfButton extends React.Component {\n render() {\n const {\n idx,\n schema,\n subSchema\n } = this.props;\n return \n {subSchema.title || subSchema.typePrefix + subSchema.displayType}\n ;\n }\n\n activateOneOf = () => {\n this.props.schema.activateOneOf(this.props.idx);\n };\n}\n@observer\nexport class OneOfSchema extends React.Component {\n render() {\n const {\n schema: {\n oneOf\n },\n schema\n } = this.props;\n\n if (oneOf === undefined) {\n return null;\n }\n\n return
\n {schema.oneOfType} \n \n {oneOf.map((subSchema, idx) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { RecursiveLabel, TypeName, TypeTitle } from '../../common-elements/fields';\nimport { FieldDetails } from '../Fields/FieldDetails';\nimport { FieldModel, SchemaModel } from '../../services/models';\nimport { ArraySchema } from './ArraySchema';\nimport { ObjectSchema } from './ObjectSchema';\nimport { OneOfSchema } from './OneOfSchema';\nimport { l } from '../../services/Labels';\nexport interface SchemaOptions {\n expandAllFields?: boolean | string;\n showTitle?: boolean;\n skipReadOnly?: boolean;\n skipWriteOnly?: boolean;\n}\nexport interface SchemaProps extends SchemaOptions {\n schema: SchemaModel;\n}\n@observer\nexport class Schema extends React.Component> {\n render() {\n const {\n schema\n } = this.props;\n\n if (!schema) {\n return Schema not provided ;\n }\n\n const {\n type,\n oneOf,\n discriminatorProp,\n isCircular\n } = schema;\n\n if (isCircular) {\n return
\n {schema.displayType}\n {schema.title && {schema.title} }\n {l('recursive')} \n
;\n }\n\n if (discriminatorProp !== undefined) {\n if (!oneOf || !oneOf.length) {\n console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${schema.title}`);\n return null;\n }\n\n return ;\n }\n\n if (oneOf !== undefined) {\n return ;\n }\n\n switch (type) {\n case 'object':\n return ;\n\n case 'array':\n return ;\n } // TODO: maybe adjust FieldDetails to accept schema\n\n\n const field = (({\n schema,\n name: '',\n required: false,\n description: schema.description,\n externalDocs: schema.externalDocs,\n deprecated: false,\n toggle: () => null,\n expanded: false\n } as any) as FieldModel); // cast needed for hot-loader to not fail\n\n return
\n \n
;\n }\n\n}","export * from './Schema';\nexport * from './ObjectSchema';\nexport * from './OneOfSchema';\nexport * from './ArraySchema';\nexport * from './DiscriminatorDropdown';","import * as React from 'react';\nimport { DarkRightPanel, MiddlePanel, MimeLabel, Row, Section } from '../../common-elements';\nimport { MediaTypeModel, OpenAPIParser, RedocNormalizedOptions } from '../../services';\nimport styled from '../../styled-components';\nimport { OpenAPIMediaType } from '../../types';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypeSamples } from '../PayloadSamples/MediaTypeSamples';\nimport { InvertedSimpleDropdown } from '../PayloadSamples/styled.elements';\nimport { Schema } from '../Schema';\nexport interface ObjectDescriptionProps {\n schemaRef: string;\n exampleRef?: string;\n showReadOnly?: boolean;\n showWriteOnly?: boolean;\n parser: OpenAPIParser;\n options: RedocNormalizedOptions;\n}\nexport class SchemaDefinition extends React.PureComponent {\n private static getMediaType(schemaRef: string, exampleRef?: string): OpenAPIMediaType {\n if (!schemaRef) {\n return {};\n }\n\n const info: OpenAPIMediaType = {\n schema: {\n $ref: schemaRef\n }\n };\n\n if (exampleRef) {\n info.examples = {\n example: {\n $ref: exampleRef\n }\n };\n }\n\n return info;\n }\n\n private _mediaModel: MediaTypeModel;\n\n private get mediaModel() {\n const {\n parser,\n schemaRef,\n exampleRef,\n options\n } = this.props;\n\n if (!this._mediaModel) {\n this._mediaModel = new MediaTypeModel(parser, 'json', false, SchemaDefinition.getMediaType(schemaRef, exampleRef), options);\n }\n\n return this._mediaModel;\n }\n\n render() {\n const {\n showReadOnly = true,\n showWriteOnly = false\n } = this.props;\n return
\n \n \n \n \n \n \n \n \n \n \n
;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}\nconst MediaSamplesWrap = styled.div`\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n`;","import * as React from 'react';\nimport { SecuritySchemesModel } from '../../services/models';\nimport { H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { OpenAPISecurityScheme } from '../../types';\nimport { titleize } from '../../utils/helpers';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst AUTH_TYPES = {\n oauth2: 'OAuth2',\n apiKey: 'API Key',\n http: 'HTTP',\n openIdConnect: 'Open ID Connect'\n};\nexport interface OAuthFlowProps {\n type: string;\n flow: OpenAPISecurityScheme['flows'][keyof OpenAPISecurityScheme['flows']];\n}\nexport class OAuthFlow extends React.PureComponent {\n render() {\n const {\n type,\n flow\n } = this.props;\n return \n {type} OAuth Flow \n \n {type === 'implicit' || type === 'authorizationCode' ?
\n Authorization URL: \n {(flow as any).authorizationUrl}\n
: null}\n {type === 'password' || type === 'clientCredentials' || type === 'authorizationCode' ?
\n Token URL: \n {(flow as any).tokenUrl}\n
: null}\n {flow!.refreshUrl &&
\n Refresh URL: \n {flow!.refreshUrl}\n
}\n
\n Scopes: \n
\n
    \n {Object.keys(flow!.scopes || {}).map(scope =>
  • \n {scope} - \n
  • )}\n
\n \n ;\n }\n\n}\nexport interface SecurityDefsProps {\n securitySchemes: SecuritySchemesModel;\n}\nexport class SecurityDefs extends React.PureComponent {\n render() {\n return this.props.securitySchemes.schemes.map(scheme =>
\n \n \n

\n \n {scheme.id}\n

\n \n \n \n \n \n \n \n \n {scheme.apiKey ? \n \n \n : scheme.http ? [\n \n \n , scheme.http.scheme === 'bearer' && scheme.http.bearerFormat && \n \n \n ] : scheme.openId ? \n \n \n : scheme.flows ? Object.keys(scheme.flows).map(type => ) : null}\n \n
Security Scheme Type {AUTH_TYPES[scheme.type] || scheme.type}
{titleize(scheme.apiKey.in || '')} parameter name: {scheme.apiKey.name}
HTTP Authorization Scheme {scheme.http.scheme}
Bearer format "{scheme.http.bearerFormat}"
Connect URL \n \n {scheme.openId.connectUrl}\n \n
\n
\n
\n
\n
);\n }\n\n}","import { Lambda, observe } from 'mobx';\nimport { OpenAPISpec } from '../types';\nimport { loadAndBundleSpec } from '../utils/loadAndBundleSpec';\nimport { history } from './HistoryService';\nimport { MarkerService } from './MarkerService';\nimport { MenuStore } from './MenuStore';\nimport { SpecStore } from './models';\nimport { RedocNormalizedOptions, RedocRawOptions } from './RedocNormalizedOptions';\nimport { ScrollService } from './ScrollService';\nimport { SearchStore } from './SearchStore';\nimport { SchemaDefinition } from '../components/SchemaDefinition/SchemaDefinition';\nimport { SecurityDefs } from '../components/SecuritySchemes/SecuritySchemes';\nimport { SCHEMA_DEFINITION_JSX_NAME, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { IS_BROWSER } from '../utils';\nimport { MarkdownIndex } from '../markdown';\nexport interface StoreState {\n menu: {\n activeItemIdx: number;\n };\n spec: {\n url?: string | null;\n data: any;\n };\n searchIndex: any;\n options: RedocRawOptions;\n markdownIndex?: MarkdownIndex;\n}\nexport async function createStore(spec: object, specUrl: string | undefined | null, options: RedocRawOptions = {}, markdownIndex?: MarkdownIndex) {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl);\n return new AppStore(resolvedSpec, specUrl, options, true, markdownIndex);\n}\nexport class AppStore {\n /**\n * deserialize store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO:\n static fromJS(state: StoreState, markdownIndex?: MarkdownIndex): AppStore {\n const inst = new AppStore(state.spec.data, state.spec.url, state.options, false, markdownIndex);\n inst.menu.activeItemIdx = state.menu.activeItemIdx || 0;\n inst.menu.activate(inst.menu.flatItems[inst.menu.activeItemIdx]);\n\n if (!inst.options.disableSearch) {\n inst.search!.load(state.searchIndex);\n }\n\n return inst;\n }\n\n menu: MenuStore;\n spec: SpecStore;\n rawOptions: RedocRawOptions;\n options: RedocNormalizedOptions;\n search?: SearchStore;\n marker = new MarkerService();\n markdownIndex?: MarkdownIndex;\n private scroll: ScrollService;\n private disposer: Lambda | null = null;\n\n constructor(spec: OpenAPISpec, specUrl?: string | null, options: RedocRawOptions = {}, createSearchIndex: boolean = true, markdownIndex?: MarkdownIndex) {\n this.rawOptions = options;\n this.options = new RedocNormalizedOptions(options, DEFAULT_OPTIONS);\n this.scroll = new ScrollService(this.options); // update position statically based on hash (in case of SSR)\n\n MenuStore.updateOnHistory(history.currentId, this.scroll);\n this.spec = new SpecStore(spec, specUrl, this.options);\n this.menu = new MenuStore(this.spec, this.scroll, history, markdownIndex);\n this.markdownIndex = markdownIndex;\n\n if (!this.options.disableSearch) {\n this.search = new SearchStore();\n\n if (createSearchIndex) {\n this.search.indexItems(this.menu.items);\n }\n\n this.disposer = observe(this.menu, 'activeItemIdx', change => {\n this.updateMarkOnMenu((change.newValue as number));\n });\n }\n }\n\n onDidMount() {\n this.menu.updateOnHistory();\n this.updateMarkOnMenu(this.menu.activeItemIdx);\n }\n\n dispose() {\n this.scroll.dispose();\n this.menu.dispose();\n\n if (this.search) {\n this.search.dispose();\n }\n\n if (this.disposer != null) {\n this.disposer();\n }\n }\n /**\n * serializes store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO: improve\n\n\n async toJS(): Promise {\n return {\n menu: {\n activeItemIdx: this.menu.activeItemIdx\n },\n spec: {\n url: this.spec.parser.specUrl || null,\n data: this.spec.parser.spec\n },\n searchIndex: this.search ? await this.search.toJS() : undefined,\n options: this.rawOptions,\n markdownIndex: this.markdownIndex\n };\n }\n\n private updateMarkOnMenu(idx: number) {\n const start = Math.max(0, idx);\n const end = Math.min(this.menu.flatItems.length, start + 5);\n const elements: Element[] = [];\n\n for (let i = start; i < end; i++) {\n const elem = this.menu.getElementAt(i);\n\n if (!elem) {\n continue;\n }\n\n elements.push(elem);\n }\n\n if (idx === -1 && IS_BROWSER) {\n const $description = document.querySelector('[data-role=\"redoc-description\"]');\n if ($description) elements.push($description);\n }\n\n this.marker.addOnly(elements);\n this.marker.mark();\n }\n\n}\nconst DEFAULT_OPTIONS: RedocRawOptions = {\n allowedMdComponents: {\n [SECURITY_DEFINITIONS_COMPONENT_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SECURITY_DEFINITIONS_JSX_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SCHEMA_DEFINITION_JSX_NAME]: {\n component: SchemaDefinition,\n propsSelector: (store: AppStore) => ({\n parser: store.spec.parser,\n options: store.options\n })\n }\n }\n};","export * from './AppStore';\nexport * from './OpenAPIParser';\nexport * from './MarkdownRenderer';\nexport * from './MenuStore';\nexport * from './ScrollService';\nexport * from './SpecStore';\nexport * from './ClipboardService';\nexport * from './HistoryService';\nexport * from './models';\nexport * from './RedocNormalizedOptions';\nexport * from './MenuBuilder';\nexport * from './SearchStore';\nexport * from './MarkerService';","import { H1, MiddlePanel } from '../../common-elements';\nimport styled, { extensionsHook } from '../../styled-components';\nconst delimiterWidth = 15;\nexport const ApiInfoWrap = MiddlePanel;\nexport const ApiHeader = styled(H1)`\n margin-top: 0;\n margin-bottom: 0.5em;\n\n ${extensionsHook('ApiHeader')};\n`;\nexport const DownloadButton = styled.a`\n border: 1px solid ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n font-weight: normal;\n margin-left: 0.5em;\n padding: 4px 8px 4px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n\n ${extensionsHook('DownloadButton')};\n`;\nexport const InfoSpan = styled.span`\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ${delimiterWidth}px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n`;\nexport const InfoSpanBoxWrap = styled.div`\n overflow: hidden;\n`;\nexport const InfoSpanBox = styled.div`\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -${delimiterWidth}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { AppStore } from '../../services/AppStore';\nimport { MiddlePanel, Row, Section } from '../../common-elements/';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nimport { ApiHeader, DownloadButton, InfoSpan, InfoSpanBox, InfoSpanBoxWrap } from './styled.elements';\nexport interface ApiInfoProps {\n store: AppStore;\n}\n@observer\nexport class ApiInfo extends React.Component {\n handleDownloadClick = e => {\n if (!e.target.href) {\n e.target.href = this.props.store.spec.info.downloadLink;\n }\n };\n\n render() {\n const {\n store\n } = this.props;\n const {\n info,\n externalDocs\n } = store.spec;\n const hideDownloadButton = store.options.hideDownloadButton;\n const downloadFilename = info.downloadFileName;\n const downloadLink = info.downloadLink;\n const license = info.license && \n License: {info.license.name}\n || null;\n const website = info.contact && info.contact.url && \n URL: {info.contact.url}\n || null;\n const email = info.contact && info.contact.email && \n {info.contact.name || 'E-mail'}:{' '}\n {info.contact.email}\n || null;\n const terms = info.termsOfService && \n Terms of Service\n || null;\n const version = info.version && ({info.version}) || null;\n return
\n \n \n \n {info.title} {version}\n \n {!hideDownloadButton &&

\n Download OpenAPI specification:\n \n Download\n \n

}\n \n {(info.license || info.contact || info.termsOfService) && \n \n {email} {website} {license} {terms}\n \n || null}\n \n \n {externalDocs && }\n
\n
\n
;\n }\n\n}","export { ApiInfo } from './ApiInfo';","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const LogoImgEl = styled.img`\n max-height: ${props => props.theme.logo.maxHeight};\n max-width: ${props => props.theme.logo.maxWidth};\n padding: ${props => props.theme.logo.gutter};\n width: 100%;\n display: block;\n`;\nexport const LogoWrap = styled.div`\n text-align: center;\n`;\nconst Link = styled.a`\n display: inline-block;\n`;\nexport const LinkWrap = url => Component => {Component};","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OpenAPIInfo } from '../../types';\nimport { LinkWrap, LogoImgEl, LogoWrap } from './styled.elements';\n@observer\nexport class ApiLogo extends React.Component<{\n info: OpenAPIInfo;\n}> {\n render() {\n const {\n info\n } = this.props;\n const logoInfo = info['x-logo'];\n\n if (!logoInfo || !logoInfo.url) {\n return null;\n }\n\n const logoHref = logoInfo.href || info.contact && info.contact.url; // Use the english word logo if no alt text is provided\n\n const altText = logoInfo.altText ? logoInfo.altText : 'logo';\n const logo = ;\n return \n {logoHref ? LinkWrap(logoHref)(logo) : logo}\n ;\n }\n\n}","import * as React from 'react';\nimport { AppStore, MarkdownRenderer, RedocNormalizedOptions } from '../../services';\nimport { BaseMarkdownProps } from './Markdown';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StoreConsumer } from '../StoreBuilder';\nexport interface AdvancedMarkdownProps extends BaseMarkdownProps {\n htmlWrap?: (part: JSX.Element) => JSX.Element;\n}\nexport class AdvancedMarkdown extends React.Component {\n render() {\n return \n {options => {store => this.renderWithOptionsAndStore(options, store)}}\n ;\n }\n\n renderWithOptionsAndStore(options: RedocNormalizedOptions, store?: AppStore) {\n const {\n source,\n htmlWrap = i => i\n } = this.props;\n\n if (!store) {\n throw new Error('When using components in markdown, store prop must be provided');\n }\n\n const renderer = new MarkdownRenderer(options);\n const parts = renderer.renderMdWithComponents(source);\n\n if (!parts.length) {\n return null;\n }\n\n return parts.map((part, idx) => {\n if (typeof part === 'string') {\n return React.cloneElement(htmlWrap(), {\n key: idx\n });\n }\n\n return ;\n });\n }\n\n}","import * as classnames from 'classnames';\nimport { darken } from 'polished';\nimport { deprecatedCss, ShelfIcon } from '../../common-elements';\nimport styled, { css, ResolvedThemeInterface } from '../../styled-components';\nexport const OperationBadge = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `operation-type ${props.type}`\n}))<{\n type: string;\n}>`\n width: 32px;\n display: inline-block;\n height: ${props => props.theme.typography.code.fontSize};\n line-height: ${props => props.theme.typography.code.fontSize};\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ${props => props.theme.colors.http.get};\n }\n\n &.post {\n background-color: ${props => props.theme.colors.http.post};\n }\n\n &.put {\n background-color: ${props => props.theme.colors.http.put};\n }\n\n &.options {\n background-color: ${props => props.theme.colors.http.options};\n }\n\n &.patch {\n background-color: ${props => props.theme.colors.http.patch};\n }\n\n &.delete {\n background-color: ${props => props.theme.colors.http.delete};\n }\n\n &.basic {\n background-color: ${props => props.theme.colors.http.basic};\n }\n\n &.link {\n background-color: ${props => props.theme.colors.http.link};\n }\n\n &.head {\n background-color: ${props => props.theme.colors.http.head};\n }\n\n &.hook {\n background-color: ${props => props.theme.colors.primary.main};\n }\n`;\n\nfunction menuItemActiveBg(depth, {\n theme\n}: {\n theme: ResolvedThemeInterface;\n}): string {\n if (depth > 1) {\n return darken(0.1, theme.sidebar.backgroundColor);\n } else if (depth === 1) {\n return darken(0.05, theme.sidebar.backgroundColor);\n } else {\n return '';\n }\n}\n\nexport const MenuItemUl = styled.ul<{\n expanded: boolean;\n}>`\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ${props => props.expanded ? '' : 'display: none;'};\n`;\nexport const MenuItemLi = styled.li<{\n depth: number;\n}>`\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ${props => props.depth === 0 ? 'margin-top: 15px' : ''};\n`;\nexport const menuItemDepth = {\n 0: css`\n opacity: 0.7;\n text-transform: ${({\n theme\n }) => theme.sidebar.groupItems.textTransform};\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ${props => props.theme.sidebar.textColor};\n `,\n 1: css`\n font-size: 0.929em;\n text-transform: ${({\n theme\n }) => theme.sidebar.level1Items.textTransform};\n font-weight: ${({\n theme\n }) => theme.sidebar.level1Items.fw};\n font-size: ${({\n theme\n }) => theme.sidebar.level1Items.fontSize};\n color: ${({\n theme\n }) => theme.sidebar.level1Items.color};\n\n &:hover {\n color: ${props => props.theme.sidebar.activeTextColor};\n }\n `,\n 2: css`\n color: ${({\n theme\n }) => theme.sidebar.level1Items.color};\n font-size: ${({\n theme\n }) => theme.sidebar.level2Items.fontSize};\n `\n};\nexport interface MenuItemLabelType {\n depth: number;\n active: boolean;\n deprecated?: boolean;\n type?: string;\n}\nexport const MenuItemLabel = styled.label.attrs((props: MenuItemLabelType) => ({\n role: 'menuitem',\n className: classnames('-depth' + props.depth, {\n active: props.active\n })\n}))`\n cursor: pointer;\n color: ${props => props.active ? props.theme.sidebar.activeTextColor : props.theme.sidebar.textColor};\n margin: 0;\n padding: 12.5px ${props => !props.depth || props.depth === 0 ? `${props.theme.spacing.unit * 2}px` : `${props.depth}rem`};\n ${({\n depth,\n type,\n theme\n}) => type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;' || ''}\n display: flex;\n justify-content: space-between;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n ${props => menuItemDepth[props.depth]};\n background-color: ${props => props.active ? menuItemActiveBg(props.depth, props) : ''};\n\n ${props => props.deprecated && deprecatedCss || ''};\n\n &:hover {\n background-color: ${props => menuItemActiveBg(props.depth, props)};\n }\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.sidebar.arrow.size};\n width: ${({\n theme\n}) => theme.sidebar.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.sidebar.arrow.color};\n }\n }\n`;\nexport const MenuItemTitle = styled.span<{\n width?: string;\n}>`\n display: inline-block;\n vertical-align: middle;\n width: ${props => props.width ? props.width : 'auto'};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexport const RedocAttribution = styled.div`\n ${({\n theme\n}) => `\n font-size: 0.8em;\n margin-top: ${theme.spacing.unit * 2}px;\n padding: 0 ${theme.spacing.unit * 4}px;\n text-align: left;\n\n opacity: 0.7;\n\n a,\n a:visited,\n a:hover {\n color: ${theme.sidebar.textColor} !important;\n border-top: 1px solid ${darken(0.1, theme.sidebar.backgroundColor)};\n padding: ${theme.spacing.unit}px 0;\n display: block;\n }\n`};\n`;","import * as React from 'react';\nimport { darken } from 'polished';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationBadge } from '../SideMenu/styled.elements';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport styled from '../../styled-components';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nexport interface CallbackTitleProps {\n name: string;\n opened?: boolean;\n httpVerb: string;\n deprecated?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class CallbackTitle extends React.PureComponent {\n render() {\n const {\n name,\n opened,\n className,\n onClick,\n httpVerb,\n deprecated\n } = this.props;\n return \n {shortenHTTPVerb(httpVerb)}\n \n {name}\n {deprecated ? {l('deprecated')} : null}\n ;\n }\n\n}\nconst CallbackTitleWrapper = styled.div`\n & > * {\n vertical-align: middle;\n }\n\n ${ShelfIcon} {\n polygon {\n fill: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.colors.gray[100])};\n }\n }\n`;\nconst CallbackName = styled.span<{\n deprecated?: boolean;\n}>`\n text-decoration: ${props => props.deprecated ? 'line-through' : 'none'};\n margin-right: 8px;\n`;\nconst OperationBadgeStyled = styled(OperationBadge)`\n margin: 0px 5px 0px 0px;\n`;","import styled from '../../styled-components';\nimport { CallbackTitle } from './CallbackTitle';\nexport const StyledCallbackTitle = styled(CallbackTitle)`\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: ${({\n theme\n}) => theme.colors.gray[100]};\n cursor: pointer;\n`;\nexport const CallbackDetailsWrap = styled.div`\n padding: 10px 25px;\n background-color: ${({\n theme\n}) => theme.colors.gray[50]};\n margin-bottom: 5px;\n margin-top: 5px;\n`;","import * as React from 'react';\nimport { ClipboardService } from '../../services';\nexport class SelectOnClick extends React.PureComponent {\n private child: HTMLDivElement | null;\n selectElement = () => {\n ClipboardService.selectElement(this.child);\n };\n\n render() {\n const {\n children\n } = this.props;\n return
this.child = (el as HTMLDivElement)} onClick={this.selectElement} onFocus={this.selectElement} tabIndex={0} role=\"button\">\n {children}\n
;\n }\n\n}","import styled from '../../styled-components';\nexport const OperationEndpointWrap = styled.div`\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n`;\nexport const ServerRelativeURL = styled.span`\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n`;\nexport const EndpointInfo = styled.button<{\n expanded?: boolean;\n inverted?: boolean;\n}>`\n outline: 0;\n color: inherit;\n width: 100%;\n text-align: left;\n cursor: pointer;\n padding: 10px 30px 10px ${props => props.inverted ? '10px' : '20px'};\n border-radius: ${props => props.inverted ? '0' : '4px 4px 0 0'};\n background-color: ${props => props.inverted ? 'transparent' : props.theme.codeBlock.backgroundColor};\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ${props => props.inverted ? '0' : '1px solid transparent'};\n border-bottom: ${props => props.inverted ? '1px solid #ccc' : '0'};\n transition: border-color 0.25s ease;\n\n ${props => props.expanded && !props.inverted && `border-color: ${props.theme.colors.border.dark};` || ''}\n\n .${ServerRelativeURL} {\n color: ${props => props.inverted ? props.theme.colors.text.primary : '#ffffff'}\n }\n &:focus {\n box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);\n }\n`;\nexport const HttpVerb = styled.span.attrs((props: {\n type: string;\n compact?: boolean;\n}) => ({\n className: `http-verb ${props.type}`\n}))<{\n type: string;\n compact?: boolean;\n}>`\n font-size: ${props => props.compact ? '0.8em' : '0.929em'};\n line-height: ${props => props.compact ? '18px' : '20px'};\n background-color: ${props => props.theme.colors.http[props.type] || '#999999'};\n color: #ffffff;\n padding: ${props => props.compact ? '2px 8px' : '3px 10px'};\n text-transform: uppercase;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n margin: 0;\n`;\nexport const ServersOverlay = styled.div<{\n expanded: boolean;\n}>`\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0.25s ease;\n visibility: hidden;\n ${props => props.expanded ? 'visibility: visible;' : 'transform: translateY(-50%) scaleY(0);'}\n`;\nexport const ServerItem = styled.div`\n padding: 10px;\n`;\nexport const ServerUrl = styled.div`\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ${props => props.theme.colors.primary.main};\n > span {\n color: ${props => props.theme.colors.text.primary};\n }\n`;","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationModel } from '../../services';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { SelectOnClick } from '../SelectOnClick/SelectOnClick';\nimport { expandDefaultServerVariables, getBasePath } from '../../utils';\nimport { EndpointInfo, HttpVerb, OperationEndpointWrap, ServerItem, ServerRelativeURL, ServersOverlay, ServerUrl } from './styled.elements';\nexport interface EndpointProps {\n operation: OperationModel;\n hideHostname?: boolean;\n inverted?: boolean;\n compact?: boolean;\n}\nexport interface EndpointState {\n expanded: boolean;\n}\nexport class Endpoint extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false\n };\n }\n\n toggle = () => {\n this.setState({\n expanded: !this.state.expanded\n });\n };\n\n render() {\n const {\n operation,\n inverted,\n hideHostname\n } = this.props;\n const {\n expanded\n } = this.state; // TODO: highlight server variables, e.g. https://{user}.test.com\n\n return \n {options => \n \n \n {operation.httpVerb}\n \n {operation.path}\n \n \n \n {operation.servers.map(server => {\n const normalizedUrl = options.expandDefaultServerVariables ? expandDefaultServerVariables(server.url, server.variables) : server.url;\n return \n \n \n \n \n {hideHostname || options.hideHostname ? getBasePath(normalizedUrl) : normalizedUrl}\n \n {operation.path}\n \n \n ;\n })}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { Field } from '../Fields/Field';\nimport { mapWithLast } from '../../utils';\nexport interface ParametersGroupProps {\n place: string;\n parameters: FieldModel[];\n}\nexport class ParametersGroup extends React.PureComponent {\n render() {\n const {\n place,\n parameters\n } = this.props;\n\n if (!parameters || !parameters.length) {\n return null;\n }\n\n return
\n {place} Parameters\n \n \n {mapWithLast(parameters, (field, isLast) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps } from '../../common-elements/dropdown';\nimport { MediaContentModel, MediaTypeModel, SchemaModel } from '../../services/models';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface MediaTypeChildProps {\n schema: SchemaModel;\n mime?: string;\n}\nexport interface MediaTypesSwitchProps {\n content?: MediaContentModel;\n withLabel?: boolean;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeMime: MediaTypeModel) => JSX.Element;\n}\n@observer\nexport class MediaTypesSwitch extends React.Component {\n switchMedia = ({\n idx\n }) => {\n if (this.props.content) {\n this.props.content.activate(idx);\n }\n };\n\n render() {\n const {\n content\n } = this.props;\n\n if (!content || !content.mediaTypes || !content.mediaTypes.length) {\n return null;\n }\n\n const activeMimeIdx = content.activeMimeIdx;\n const options = content.mediaTypes.map((mime, idx) => {\n return {\n value: mime.name,\n idx\n };\n });\n\n const Wrapper = ({\n children\n }) => this.props.withLabel ? \n Content type\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: options[activeMimeIdx].value,\n options,\n onChange: this.switchMedia,\n ariaLabel: 'Content type'\n })}\n \n {this.props.children(content.active)}\n ;\n }\n\n}","import * as React from 'react';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { ParametersGroup } from './ParametersGroup';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { MediaContentModel } from '../../services';\nimport { FieldModel, RequestBodyModel } from '../../services/models';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\n\nfunction safePush(obj, prop, item) {\n if (!obj[prop]) {\n obj[prop] = [];\n }\n\n obj[prop].push(item);\n}\n\nexport interface ParametersProps {\n parameters?: FieldModel[];\n body?: RequestBodyModel;\n}\nconst PARAM_PLACES = ['path', 'query', 'cookie', 'header'];\nexport class Parameters extends React.PureComponent {\n orderParams(params: FieldModel[]): Record {\n const res = {};\n params.forEach(param => {\n safePush(res, param.in, param);\n });\n return res;\n }\n\n render() {\n const {\n body,\n parameters = []\n } = this.props;\n\n if (body === undefined && parameters === undefined) {\n return null;\n }\n\n const paramsMap = this.orderParams(parameters);\n const paramsPlaces = parameters.length > 0 ? PARAM_PLACES : [];\n const bodyContent = body && body.content;\n const bodyDescription = body && body.description;\n return <>\n {paramsPlaces.map(place => )}\n {bodyContent && }\n ;\n }\n\n}\n\nfunction DropdownWithinHeader(props) {\n return \n Request Body schema: \n ;\n}\n\nexport function BodyContent(props: {\n content: MediaContentModel;\n description?: string;\n}): JSX.Element {\n const {\n content,\n description\n } = props;\n return \n {({\n schema\n }) => {\n return <>\n {description !== undefined && }\n \n ;\n }}\n ;\n}","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { Markdown } from '../Markdown/Markdown';\nexport interface ResponseTitleProps {\n code: string;\n title: string;\n type: string;\n empty?: boolean;\n opened?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class ResponseTitle extends React.PureComponent {\n render() {\n const {\n title,\n type,\n empty,\n code,\n opened,\n className,\n onClick\n } = this.props;\n return ;\n }\n\n}","// import { transparentize } from 'polished';\nimport { UnderlinedHeader } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { ResponseTitle } from './ResponseTitle';\nexport const StyledResponseTitle = styled(ResponseTitle)`\n display: block;\n border: 0;\n width: 100%;\n text-align: left;\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ${props => props.theme.colors.responses[props.type].color};\n background-color: ${props => props.theme.colors.responses[props.type].backgroundColor};\n &:focus {\n outline: auto;\n outline-color: ${props => props.theme.colors.responses[props.type].color};\n }\n ${props => props.empty && `\ncursor: default;\n&::before {\n content: \"—\";\n font-weight: bold;\n width: 1.5em;\n text-align: center;\n display: inline-block;\n}\n&:focus {\n outline: 0;\n}\n` || ''};\n`;\nexport const ResponseDetailsWrap = styled.div`\n padding: 10px;\n`;\nexport const HeadersCaption = styled(UnderlinedHeader.withComponent('caption'))`\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n`;","import * as React from 'react';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { mapWithLast } from '../../utils';\nimport { Field } from '../Fields/Field';\nimport { HeadersCaption } from './styled.elements';\nexport interface ResponseHeadersProps {\n headers?: FieldModel[];\n}\nexport class ResponseHeaders extends React.PureComponent {\n render() {\n const {\n headers\n } = this.props;\n\n if (headers === undefined || headers.length === 0) {\n return null;\n }\n\n return \n Response Headers \n \n {mapWithLast(headers, (header, isLast) => )}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\nimport { ResponseHeaders } from './ResponseHeaders';\nexport class ResponseDetails extends React.PureComponent<{\n response: ResponseModel;\n}> {\n render() {\n const {\n description,\n headers,\n content\n } = this.props.response;\n return <>\n {description && }\n \n \n {({\n schema\n }) => {\n return ;\n }}\n \n ;\n }\n\n private renderDropdown = props => {\n return \n Response Schema: \n ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { ResponseDetails } from './ResponseDetails';\nimport { ResponseDetailsWrap, StyledResponseTitle } from './styled.elements';\n@observer\nexport class ResponseView extends React.Component<{\n response: ResponseModel;\n}> {\n toggle = () => {\n this.props.response.toggle();\n };\n\n render() {\n const {\n headers,\n type,\n summary,\n description,\n code,\n expanded,\n content\n } = this.props.response;\n const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined);\n const empty = headers.length === 0 && mimes.length === 0 && !description;\n return
\n \n {expanded && !empty && \n \n }\n
;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { ResponseView } from './Response';\nconst ResponsesHeader = styled.h3`\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ${({\n theme\n}) => theme.colors.text.primary};\n font-weight: normal;\n`;\nexport interface ResponseListProps {\n responses: ResponseModel[];\n isCallback?: boolean;\n}\nexport class ResponsesList extends React.PureComponent {\n render() {\n const {\n responses,\n isCallback\n } = this.props;\n\n if (!responses || responses.length === 0) {\n return null;\n }\n\n return
\n {isCallback ? 'Callback responses' : 'Responses'}\n {responses.map(response => {\n return ;\n })}\n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { Link, UnderlinedHeader } from '../../common-elements/';\nimport { SecurityRequirementModel } from '../../services/models/SecurityRequirement';\nimport { linksCss } from '../Markdown/styled.elements';\nconst ScopeName = styled.code`\n font-size: ${props => props.theme.typography.code.fontSize};\n font-family: ${props => props.theme.typography.code.fontFamily};\n border: 1px solid ${({\n theme\n}) => theme.colors.border.dark};\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n`;\nconst SecurityRequirementAndWrap = styled.span`\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nconst SecurityRequirementOrWrap = styled.span`\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nexport interface SecurityRequirementProps {\n security: SecurityRequirementModel;\n}\nexport class SecurityRequirement extends React.PureComponent {\n render() {\n const security = this.props.security;\n return \n {security.schemes.map(scheme => {\n return \n {scheme.id}\n {scheme.scopes.length > 0 && ' ('}\n {scheme.scopes.map(scope => {scope})}\n {scheme.scopes.length > 0 && ') '}\n ;\n })}\n ;\n }\n\n}\nconst AuthHeaderColumn = styled.div`\n flex: 1;\n`;\nconst SecuritiesColumn = styled.div`\n width: ${props => props.theme.schema.defaultDetailsWidth};\n`;\nconst AuthHeader = styled(UnderlinedHeader)`\n display: inline-block;\n margin: 0;\n`;\nconst Wrap = styled.div`\n width: 100%;\n display: flex;\n margin: 1em 0;\n`;\nexport interface SecurityRequirementsProps {\n securities: SecurityRequirementModel[];\n}\nexport class SecurityRequirements extends React.PureComponent {\n render() {\n const securities = this.props.securities;\n\n if (!securities.length) {\n return null;\n }\n\n return \n \n Authorizations: \n \n \n {securities.map((security, idx) => )}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Parameters } from '../Parameters/Parameters';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nimport { CallbackDetailsWrap } from './styled.elements';\nexport interface CallbackDetailsProps {\n operation: OperationModel;\n}\n@observer\nexport class CallbackDetails extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n description,\n externalDocs\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n \n \n \n \n \n ;\n }\n\n}\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 3}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { StyledCallbackTitle } from './styled.elements';\nimport { CallbackDetails } from './CallbackDetails';\n@observer\nexport class CallbackOperation extends React.Component<{\n callbackOperation: OperationModel;\n}> {\n toggle = () => {\n this.props.callbackOperation.toggle();\n };\n\n render() {\n const {\n name,\n expanded,\n httpVerb,\n deprecated\n } = this.props.callbackOperation;\n return <>\n \n {expanded && }\n ;\n }\n\n}","import * as React from 'react';\nimport { CallbackModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { CallbackOperation } from './CallbackOperation';\nexport interface CallbacksListProps {\n callbacks: CallbackModel[];\n}\nexport class CallbacksList extends React.PureComponent {\n render() {\n const {\n callbacks\n } = this.props;\n\n if (!callbacks || callbacks.length === 0) {\n return null;\n }\n\n return
\n Callbacks \n {callbacks.map(callback => {\n return callback.operations.map((operation, index) => {\n return ;\n });\n })}\n
;\n }\n\n}\nconst CallbacksHeader = styled.h3`\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ${({\n theme\n}) => theme.colors.text.primary};\n font-weight: normal;\n`;","export * from './CallbackOperation';\nexport * from './CallbackTitle';\nexport * from './CallbacksList';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps, DropdownOption } from '../../common-elements/dropdown';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface GenericChildrenSwitcherProps {\n items?: T[];\n options: DropdownOption[];\n label?: string;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeItem: T) => JSX.Element;\n}\nexport interface GenericChildrenSwitcherState {\n activeItemIdx: number;\n}\n/**\n * TODO: Refactor this component:\n * Implement rendering dropdown/label directly in this component\n * Accept as a parameter mapper-function for building dropdown option labels\n */\n\n@observer\nexport class GenericChildrenSwitcher extends React.Component, GenericChildrenSwitcherState> {\n constructor(props) {\n super(props);\n this.state = {\n activeItemIdx: 0\n };\n }\n\n switchItem = ({\n idx\n }) => {\n if (this.props.items) {\n this.setState({\n activeItemIdx: idx\n });\n }\n };\n\n render() {\n const {\n items\n } = this.props;\n\n if (!items || !items.length) {\n return null;\n }\n\n const Wrapper = ({\n children\n }) => this.props.label ? \n {this.props.label}\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: this.props.options[this.state.activeItemIdx].value,\n options: this.props.options,\n onChange: this.switchItem,\n ariaLabel: this.props.label || 'Callback'\n })}\n \n\n {this.props.children(items[this.state.activeItemIdx])}\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MediaTypeSamples } from './MediaTypeSamples';\nimport { MediaContentModel } from '../../services/models';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { InvertedSimpleDropdown, MimeLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n content: MediaContentModel;\n}\n@observer\nexport class PayloadSamples extends React.Component {\n render() {\n const mimeContent = this.props.content;\n\n if (mimeContent === undefined) {\n return null;\n }\n\n return \n {mediaType => }\n ;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { OperationModel } from '../../services/models';\nimport { XPayloadSample } from '../../services/models/Operation';\nimport { isPayloadSample } from '../../services';\nexport interface PayloadSampleProps {\n callback: OperationModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\nexport class CallbackPayloadSample extends React.Component {\n render() {\n const payloadSample = (this.props.callback.codeSamples.find(sample => isPayloadSample(sample)) as XPayloadSample | undefined);\n\n if (!payloadSample) {\n return null;\n }\n\n return \n \n ;\n }\n\n}\nexport const PayloadSampleWrapper = styled.div`\n margin-top: 15px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { RightPanelHeader } from '../../common-elements';\nimport { RedocNormalizedOptions } from '../../services';\nimport { CallbackModel } from '../../services/models';\nimport { OptionsContext } from '../OptionsProvider';\nimport { GenericChildrenSwitcher } from '../GenericChildrenSwitcher/GenericChildrenSwitcher';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { InvertedSimpleDropdown, MimeLabel } from '../PayloadSamples/styled.elements';\nimport { CallbackPayloadSample } from './CallbackReqSamples';\nexport interface CallbackSamplesProps {\n callbacks: CallbackModel[];\n}\n@observer\nexport class CallbackSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n private renderDropdown = props => {\n return ;\n };\n\n render() {\n const {\n callbacks\n } = this.props;\n\n if (!callbacks || callbacks.length === 0) {\n return null;\n }\n\n const operations = callbacks.map(callback => callback.operations.map(operation => operation)).reduce((a, b) => a.concat(b), []);\n const hasSamples = operations.some(operation => operation.codeSamples.length > 0);\n\n if (!hasSamples) {\n return null;\n }\n\n const dropdownOptions = operations.map((callback, idx) => {\n return {\n value: `${callback.httpVerb.toUpperCase()}: ${callback.name}`,\n idx\n };\n });\n return
\n Callback payload samples \n\n \n \n {callback => }\n \n \n
;\n }\n\n}\nexport const SamplesWrapper = styled.div`\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n padding: ${props => props.theme.spacing.unit * 4}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { isPayloadSample, OperationModel, RedocNormalizedOptions } from '../../services';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface RequestSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class RequestSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const samples = operation.codeSamples;\n const hasSamples = samples.length > 0;\n const hideTabList = samples.length === 1 ? this.context.hideSingleRequestSampleTab : false;\n return hasSamples &&
\n Request samples \n\n \n \n {samples.map(sample => \n {isPayloadSample(sample) ?
\n \n
: }\n
)}\n
\n
|| null;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nexport interface ResponseSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class ResponseSamples extends React.Component {\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const responses = operation.responses.filter(response => {\n return response.content && response.content.hasSample;\n });\n return responses.length > 0 &&
\n Response samples \n\n \n \n {responses.map(response => \n {response.code}\n )}\n \n {responses.map(response => \n
\n \n
\n
)}\n
\n
|| null;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { Badge, DarkRightPanel, H2, MiddlePanel, Row } from '../../common-elements';\nimport { ShareLink } from '../../common-elements/linkify';\nimport { OperationModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { CallbacksList } from '../Callbacks';\nimport { CallbackSamples } from '../CallbackSamples/CallbackSamples';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { Parameters } from '../Parameters/Parameters';\nimport { RequestSamples } from '../RequestSamples/RequestSamples';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { ResponseSamples } from '../ResponseSamples/ResponseSamples';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nconst OperationRow = styled(Row)`\n backface-visibility: hidden;\n contain: content;\n overflow: hidden;\n`;\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 6}px;\n`;\nexport interface OperationProps {\n operation: OperationModel;\n}\n@observer\nexport class Operation extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n name: summary,\n description,\n deprecated,\n externalDocs,\n isWebhook\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {options => \n \n

\n \n {summary} {deprecated && Deprecated }\n {isWebhook && Webhook }\n

\n {options.pathInMiddlePanel && !isWebhook && }\n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n \n \n \n \n \n
\n \n {!options.pathInMiddlePanel && !isWebhook && }\n \n \n \n \n
}\n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { AdvancedMarkdown } from '../Markdown/AdvancedMarkdown';\nimport { H1, H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { ContentItemModel } from '../../services/MenuBuilder';\nimport { GroupModel, OperationModel } from '../../services/models';\nimport { Operation } from '../Operation/Operation';\n@observer\nexport class ContentItems extends React.Component<{\n items: ContentItemModel[];\n}> {\n render() {\n const items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n return items.filter(item => item.type !== 'extra').map(item => {\n return ;\n });\n }\n\n}\nexport interface ContentItemProps {\n item: ContentItemModel;\n}\n@observer\nexport class ContentItem extends React.Component {\n render() {\n const item = this.props.item;\n let content;\n const {\n type\n } = item;\n\n switch (type) {\n case 'group':\n content = null;\n break;\n\n case 'tag':\n case 'section':\n content = ;\n break;\n\n case 'operation':\n content = ;\n break;\n\n default:\n content = ;\n }\n\n return <>\n {content &&
\n {content}\n
}\n {item.items && }\n ;\n }\n\n}\n\nconst middlePanelWrap = component => {component};\n\n@observer\nexport class SectionItem extends React.Component {\n render() {\n const {\n name,\n description,\n externalDocs,\n level\n } = (this.props.item as GroupModel);\n const Header = level === 2 ? H2 : H1;\n return <>\n \n \n
\n \n {name}\n
\n
\n
\n \n {externalDocs && \n \n \n \n }\n ;\n }\n\n}\n@observer\nexport class OperationItem extends React.Component<{\n item: OperationModel;\n}> {\n render() {\n return ;\n }\n\n}","// import { observe } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ShelfIcon } from '../../common-elements/shelfs';\nimport { IMenuItem, OperationModel } from '../../services';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport { MenuItems } from './MenuItems';\nimport { MenuItemLabel, MenuItemLi, MenuItemTitle, OperationBadge } from './styled.elements';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface MenuItemProps {\n item: IMenuItem;\n onActivate?: (item: IMenuItem) => void;\n withoutChildren?: boolean;\n}\n@observer\nexport class MenuItem extends React.Component {\n static contextType = OptionsContext;\n ref = React.createRef();\n activate = (evt: React.MouseEvent) => {\n this.props.onActivate!(this.props.item);\n evt.stopPropagation();\n };\n\n componentDidMount() {\n this.scrollIntoViewIfActive();\n }\n\n componentDidUpdate() {\n this.scrollIntoViewIfActive();\n }\n\n scrollIntoViewIfActive() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item,\n withoutChildren\n } = this.props;\n const hideShelfIcon = this.context.hideShelfIcon;\n return \n {item.type === 'operation' ? : \n \n {item.name}\n {this.props.children}\n \n {!hideShelfIcon && item.depth > 0 && item.items.length > 0 && || null}\n }\n {!withoutChildren && item.items && item.items.length > 0 && }\n ;\n }\n\n}\nexport interface OperationMenuItemContentProps {\n item: OperationModel;\n}\n@observer\nexport class OperationMenuItemContent extends React.Component {\n static contextType = OptionsContext;\n ref = React.createRef();\n\n componentDidUpdate() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item\n } = this.props;\n const hideHttpVerbsMenu = this.context.hideHttpVerbs;\n return \n {item.isWebhook ? {l('webhook')} : !hideHttpVerbsMenu && {shortenHTTPVerb(item.httpVerb)}}\n \n {item.name}\n {this.props.children}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem } from '../../services';\nimport { ExtraContent } from '../../services/models/ExtraContent';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemUl } from './styled.elements';\nexport interface MenuItemsProps {\n items: IMenuItem[];\n expanded?: boolean;\n onActivate?: (item: IMenuItem) => void;\n style?: React.CSSProperties;\n root?: boolean;\n extra?: any;\n className?: string;\n}\n@observer\nexport class MenuItems extends React.Component {\n render() {\n const {\n items,\n root,\n className,\n extra\n } = this.props;\n const expanded = this.props.expanded == null ? true : this.props.expanded;\n return \n {extra && extra.map((headline, ids) => )}\n {items.map((item, idx) => )}\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem, MenuStore } from '../../services/MenuStore';\nimport { OptionsContext } from '../OptionsProvider';\nimport { MenuItems } from './MenuItems';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { RedocAttribution } from './styled.elements';\n@observer\nexport class SideMenu extends React.Component<{\n menu: MenuStore;\n className?: string;\n extra?: any;\n}> {\n static contextType = OptionsContext;\n private _updateScroll?: () => void;\n\n render() {\n const store = this.props.menu;\n return \n \n \n \n Documentation Powered by ReDoc\n \n \n ;\n }\n\n activate = (item: IMenuItem) => {\n if (item && item.active && this.context.menuToggle) {\n return item.expanded ? item.collapse() : item.expand();\n }\n\n this.props.menu.activateAndScroll(item, true);\n setTimeout(() => {\n if (this._updateScroll) {\n this._updateScroll();\n }\n });\n };\n private saveScrollUpdate = upd => {\n this._updateScroll = upd;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const AnimatedChevronButton = ({\n open\n}: {\n open: boolean;\n}) => {\n const iconOffset = open ? 8 : -4;\n return \n \n \n ;\n}; // adapted from reactjs.org\n\nconst ChevronSvg = ({\n size = 10,\n className = '',\n style\n}) => \n \n \n \n ;\n\nconst ChevronContainer = styled.div`\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ${props => props.theme.colors.primary.main};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MenuStore } from '../../services/MenuStore';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../../services/RedocNormalizedOptions';\nimport styled, { media } from '../../styled-components';\nimport { IS_BROWSER } from '../../utils/index';\nimport { OptionsContext } from '../OptionsProvider';\nimport { AnimatedChevronButton } from './ChevronSvg';\nlet Stickyfill;\n\nif (IS_BROWSER) {\n Stickyfill = require('stickyfill');\n}\n\nexport interface StickySidebarProps {\n className?: string;\n scrollYOffset?: RedocRawOptions['scrollYOffset']; // passed directly or via context\n\n menu: MenuStore;\n}\nexport interface StickySidebarState {\n offsetTop?: string;\n}\nconst stickyfill = Stickyfill && Stickyfill();\nconst StyledStickySidebar = styled.div<{\n open?: boolean;\n}>`\n width: ${props => props.theme.sidebar.width};\n background-color: ${props => props.theme.sidebar.backgroundColor};\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ${media.lessThan('small')`\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ${({\n theme\n}) => theme.sidebar.backgroundColor};\n display: ${props => props.open ? 'flex' : 'none'};\n `};\n\n @media print {\n display: none;\n }\n`;\nconst FloatingButton = styled.div`\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ${props => props.theme.colors.primary.main};\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ${media.lessThan('small')`\n display: flex;\n `};\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n`;\n@observer\nexport class StickyResponsiveSidebar extends React.Component {\n static contextType = OptionsContext;\n context!: React.ContextType;\n state: StickySidebarState = {\n offsetTop: '0px'\n };\n stickyElement: Element;\n\n componentDidMount() {\n if (stickyfill) {\n stickyfill.add(this.stickyElement);\n } // rerender when hydrating from SSR\n // see https://github.com/facebook/react/issues/8017#issuecomment-256351955\n\n\n this.setState({\n offsetTop: this.getScrollYOffset(this.context)\n });\n }\n\n componentWillUnmount() {\n if (stickyfill) {\n stickyfill.remove(this.stickyElement);\n }\n }\n\n getScrollYOffset(options: RedocNormalizedOptions) {\n let top;\n\n if (this.props.scrollYOffset !== undefined) {\n top = RedocNormalizedOptions.normalizeScrollYOffset(this.props.scrollYOffset)();\n } else {\n top = options.scrollYOffset();\n }\n\n return top + 'px';\n }\n\n render() {\n const open = this.props.menu.sideBarOpened;\n const top = this.state.offsetTop;\n return <>\n {\n this.stickyElement = (el as any);\n }}>\n {this.props.children}\n \n \n \n \n ;\n }\n\n private toggleNavMenu = () => {\n this.props.menu.toggleSidebar();\n };\n}","import styled, { media } from '../../styled-components';\nexport const RedocWrap = styled.div`\n ${({\n theme\n}) => `\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize};\n font-weight: ${theme.typography.fontWeightRegular};\n line-height: ${theme.typography.lineHeight};\n color: ${theme.colors.text.primary};\n display: flex;\n position: relative;\n text-align: left;\n\n -webkit-font-smoothing: ${theme.typography.smoothing};\n font-smoothing: ${theme.typography.smoothing};\n ${theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important' || ''};\n\n tap-highlight-color: rgba(0, 0, 0, 0);\n text-size-adjust: 100%;\n\n * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n }\n`};\n`;\nexport const ApiContentWrap = styled.div`\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ${props => props.theme.sidebar.width});\n ${media.lessThan('small', true)`\n width: 100%;\n `};\n\n contain: layout;\n`;\nexport const BackgroundStub = styled.div`\n background: ${({\n theme\n}) => theme.rightPanel.backgroundColor};\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ${({\n theme\n}) => {\n if (theme.rightPanel.width.endsWith('%')) {\n const percents = parseInt(theme.rightPanel.width, 10);\n return `calc((100% - ${theme.sidebar.width}) * ${percents / 100})`;\n } else {\n return theme.rightPanel.width;\n }\n}};\n ${media.lessThan('medium', true)`\n display: none;\n `};\n`;","import * as React from 'react';\nimport { darken, getLuminance, lighten } from 'polished';\nimport styled from '../../styled-components';\nimport { MenuItemLabel } from '../SideMenu/styled.elements';\nexport const SearchWrap = styled.div`\n padding: 5px 0;\n`;\nexport const SearchInput = styled.input.attrs(() => ({\n className: 'search-input'\n}))`\n width: calc(100% - ${props => props.theme.spacing.unit * 8}px);\n box-sizing: border-box;\n margin: 0 ${props => props.theme.spacing.unit * 4}px;\n padding: 5px ${props => props.theme.spacing.unit * 2}px 5px\n ${props => props.theme.spacing.unit * 4}px;\n border: 0;\n border-bottom: 1px solid\n ${({\n theme\n}) => (getLuminance(theme.sidebar.backgroundColor) > 0.5 ? darken : lighten)(0.1, theme.sidebar.backgroundColor)};\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-weight: bold;\n font-size: 13px;\n color: ${props => props.theme.sidebar.textColor};\n background-color: transparent;\n outline: none;\n`;\nexport const SearchIcon = styled((props: {\n className?: string;\n}) => \n \n ).attrs({\n className: 'search-icon'\n})`\n position: absolute;\n left: ${props => props.theme.spacing.unit * 4}px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ${props => props.theme.sidebar.textColor};\n }\n`;\nexport const SearchResultsBox = styled.div`\n padding: ${props => props.theme.spacing.unit}px 0;\n background-color: ${({\n theme\n}) => darken(0.05, theme.sidebar.backgroundColor)}};\n color: ${props => props.theme.sidebar.textColor};\n min-height: 150px;\n max-height: 250px;\n border-top: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)}};\n border-bottom: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)}};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ${MenuItemLabel} {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)};\n }\n\n > svg {\n display: none;\n }\n }\n`;\nexport const ClearIcon = styled.i`\n position: absolute;\n display: inline-block;\n width: ${props => props.theme.spacing.unit * 2}px;\n text-align: center;\n right: ${props => props.theme.spacing.unit * 4}px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n`;","import * as React from 'react';\nimport { IMenuItem } from '../../services/MenuStore';\nimport { SearchStore } from '../../services/SearchStore';\nimport { MenuItem } from '../SideMenu/MenuItem';\nimport { MarkerService } from '../../services/MarkerService';\nimport { SearchResult } from '../../services/SearchWorker.worker';\nimport { bind, debounce } from 'decko';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { ClearIcon, SearchIcon, SearchInput, SearchResultsBox, SearchWrap } from './styled.elements';\nexport interface SearchBoxProps {\n search: SearchStore;\n marker: MarkerService;\n getItemById: (id: string) => IMenuItem | undefined;\n onActivate: (item: IMenuItem) => void;\n className?: string;\n}\nexport interface SearchBoxState {\n results: SearchResult[];\n term: string;\n activeItemIdx: number;\n}\nexport class SearchBox extends React.PureComponent {\n activeItemRef: MenuItem | null = null;\n\n constructor(props) {\n super(props);\n this.state = {\n results: [],\n term: '',\n activeItemIdx: -1\n };\n }\n\n clearResults(term: string) {\n this.setState({\n results: [],\n term\n });\n this.props.marker.unmark();\n }\n\n clear = () => {\n this.setState({\n results: [],\n term: '',\n activeItemIdx: -1\n });\n this.props.marker.unmark();\n };\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 27) {\n // ESQ\n this.clear();\n }\n\n if (event.keyCode === 40) {\n // Arrow down\n this.setState({\n activeItemIdx: Math.min(this.state.activeItemIdx + 1, this.state.results.length - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 38) {\n // Arrow up\n this.setState({\n activeItemIdx: Math.max(0, this.state.activeItemIdx - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 13) {\n // enter\n const activeResult = this.state.results[this.state.activeItemIdx];\n\n if (activeResult) {\n const item = this.props.getItemById(activeResult.meta);\n\n if (item) {\n this.props.onActivate(item);\n }\n }\n }\n };\n\n setResults(results: SearchResult[], term: string) {\n this.setState({\n results\n });\n this.props.marker.mark(term);\n }\n\n @bind\n @debounce(400)\n searchCallback(searchTerm: string) {\n this.props.search.search(searchTerm).then(res => {\n this.setResults(res, searchTerm);\n });\n }\n\n search = (event: React.ChangeEvent) => {\n const q = event.target.value;\n\n if (q.length < 3) {\n this.clearResults(q);\n return;\n }\n\n this.setState({\n term: q\n }, () => this.searchCallback(this.state.term));\n };\n\n render() {\n const {\n activeItemIdx\n } = this.state;\n const results = this.state.results.map(res => ({\n item: this.props.getItemById(res.meta)!,\n score: res.score\n }));\n results.sort((a, b) => b.score - a.score);\n return \n {this.state.term && ×}\n \n \n {results.length > 0 && \n \n {results.map((res, idx) => )}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport Highlight, { defaultProps, Language } from 'prism-react-renderer';\nimport styled from '../../../styled-components';\ntype Props = {\n className: string;\n style: any;\n componentId?: string;\n};\nconst OverflowHighlighter = styled.pre`\n overflow-x: scroll;\n`;\n\nconst Highlighter: React.FC = ({\n children,\n className\n}) => {\n const language = className ? className.replace(/language-/, '').trim() : 'bash';\n\n if (!children) {\n return null;\n }\n\n return \n {({\n className,\n style,\n tokens,\n getLineProps,\n getTokenProps\n }) => \n {tokens.map((line, i) =>
\n {line.map((token, key) => )}\n
)}\n
}\n
;\n};\n\nexport default Highlighter;","import * as React from 'react';\nimport { DarkRightPanel, H1, H2, MiddlePanel, PropertiesTable, Row, Section, ShareLink } from '../common-elements';\nimport Highlighter from './code/Highlighter';\n\nconst H1Comp = ({\n children,\n ...props\n}) => {\n return

\n \n {children}\n

;\n};\n\nconst H2Comp = ({\n children,\n ...props\n}) =>

\n \n {children}\n

;\n\nconst Wrapper = ({\n children\n}) => {\n const getSections = children => {\n let currentSection: any[] = [];\n let currentId: number | null = null;\n let currentCodeBlocks: any[] = [];\n const result: any[] = [];\n children.forEach(child => {\n const type = child.props.mdxType;\n\n if (['h1', 'h2', 'h3', 'h4', 'h5'].includes(type)) {\n if (currentSection.length > 0) {\n result.push({\n id: currentId,\n middle: currentSection,\n right: currentCodeBlocks\n });\n }\n\n currentId = child.props.id;\n currentSection = [];\n currentCodeBlocks = [];\n }\n\n if (['code', 'pre', 'blockquote'].includes(type)) {\n currentCodeBlocks.push(child);\n } else {\n currentSection.push(child);\n }\n });\n\n if (currentSection.length > 0) {\n result.push({\n id: currentId,\n middle: currentSection,\n right: currentCodeBlocks\n });\n }\n\n return result;\n };\n\n const sections = getSections(children);\n return <>\n {sections.map(section =>
\n \n {section.middle && {section.middle}}\n {section.right && {section.right}}\n \n
)}\n ;\n};\n\nexport default {\n code: Highlighter,\n h1: H1Comp,\n h2: H2Comp,\n table: PropertiesTable,\n wrapper: Wrapper\n};","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { MDXProvider } from '@mdx-js/react';\nimport { ThemeProvider } from '../../styled-components';\nimport { OptionsProvider } from '../OptionsProvider';\nimport { AppStore } from '../../services';\nimport { ApiInfo } from '../ApiInfo/';\nimport { ApiLogo } from '../ApiLogo/ApiLogo';\nimport { ContentItems } from '../ContentItems/ContentItems';\nimport { SideMenu } from '../SideMenu/SideMenu';\nimport { StickyResponsiveSidebar } from '../StickySidebar/StickyResponsiveSidebar';\nimport { ApiContentWrap, BackgroundStub, RedocWrap } from './styled.elements';\nimport { SearchBox } from '../SearchBox/SearchBox';\nimport { StoreProvider } from '../StoreBuilder';\nimport components from '../../markdown/components';\nexport interface RedocProps {\n store: AppStore;\n}\nexport class Redoc extends React.Component {\n static propTypes = {\n store: PropTypes.instanceOf(AppStore).isRequired\n };\n\n componentDidMount() {\n this.props.store.onDidMount();\n }\n\n componentWillUnmount() {\n this.props.store.dispose();\n }\n\n render() {\n const {\n store: {\n spec,\n menu,\n options,\n search,\n marker,\n markdownIndex\n }\n } = this.props;\n const store = this.props.store;\n return \n \n \n \n \n \n \n {!options.disableSearch && || null}\n \n \n \n \n {markdownIndex && markdownIndex.components.map((MDXComponent, idx) => {\n return ;\n })}\n \n \n \n \n \n \n \n ;\n }\n\n}","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { Loading } from './Loading/Loading';\nimport { Redoc } from './Redoc/Redoc';\nimport { StoreBuilder } from './StoreBuilder';\nimport { MarkdownIndex } from '../markdown';\nexport interface RedocStandaloneProps {\n spec?: object;\n specUrl?: string;\n options?: RedocRawOptions;\n markdownIndex?: MarkdownIndex;\n onLoaded?: (e?: Error) => any;\n}\nexport class RedocStandalone extends React.PureComponent {\n static propTypes = {\n spec: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n specUrl: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n options: PropTypes.any,\n onLoaded: PropTypes.any\n };\n\n render() {\n const {\n spec,\n specUrl,\n options = {},\n onLoaded\n } = this.props;\n const hideLoading = options.hideLoading !== undefined;\n const normalizedOpts = new RedocNormalizedOptions(options);\n return \n \n {({\n loading,\n store\n }) => !loading ? : hideLoading ? null : }\n \n ;\n }\n\n}","export * from './JsonViewer';","export * from './MenuItem';\nexport * from './MenuItems';\nexport * from './SideMenu';\nexport * from './styled.elements';","export * from './RedocStandalone';\nexport * from './Redoc/Redoc';\nexport * from './ApiInfo/ApiInfo';\nexport * from './ApiLogo/ApiLogo';\nexport * from './ContentItems/ContentItems';\nexport { ApiContentWrap, BackgroundStub, RedocWrap } from './Redoc/styled.elements';\nexport * from './Schema/';\nexport * from './SearchBox/SearchBox';\nexport * from './Operation/Operation';\nexport * from './Loading/Loading';\nexport * from './JsonViewer';\nexport * from './Markdown/Markdown';\nexport { StyledMarkdownBlock } from './Markdown/styled.elements';\nexport * from './SecuritySchemes/SecuritySchemes';\nexport * from './Responses/Response';\nexport * from './Responses/ResponseDetails';\nexport * from './Responses/ResponseHeaders';\nexport * from './Responses/ResponsesList';\nexport * from './Responses/ResponseTitle';\nexport * from './ResponseSamples/ResponseSamples';\nexport * from './PayloadSamples/PayloadSamples';\nexport * from './MediaTypeSwitch/MediaTypesSwitch';\nexport * from './Parameters/Parameters';\nexport * from './PayloadSamples/Example';\nexport * from './ErrorBoundary';\nexport * from './StoreBuilder';\nexport * from './OptionsProvider';\nexport * from './SideMenu/';\nexport * from './StickySidebar/StickyResponsiveSidebar';\nexport * from './SearchBox/SearchBox';\nexport * from './SchemaDefinition/SchemaDefinition';\nexport * from './SourceCode/SourceCode';","const TocPlugin = require('./plugins/export-toc');\n\ntype Header = {\n depth: number;\n id: number;\n text: string;\n};\nexport type MarkdownDocument = {\n component: (props: any) => JSX.Element;\n headings: Header[];\n};\nexport type MarkdownIndex = {\n components: ((props: any) => JSX.Element)[];\n headings: Header[];\n};\nexport const loadMarkdownIndexFromComponents = mdxComponents => {\n const components = mdxComponents.map(sect => sect.default);\n const headings = mdxComponents.reduce((acc, section) => [...acc, ...section.headings], []);\n return {\n components,\n headings\n };\n};\nexport default {\n remarkPlugins: [TocPlugin]\n};","export * from './components';\nexport { MiddlePanel, Row, RightPanel, Section, Flex } from './common-elements/';\nexport { OpenAPIEncoding } from './types';\nexport * from './services';\nexport * from './utils';\nexport * from './styled-components';\nexport { default as styled } from './styled-components';\nexport * from './markdown';"],"sourceRoot":""} \ No newline at end of file diff --git a/bundles/redoc.standalone.js b/bundles/redoc.standalone.js index ffede066..18baaded 100644 --- a/bundles/redoc.standalone.js +++ b/bundles/redoc.standalone.js @@ -92,7 +92,7 @@ e.exports=function(){"use strict";var e=Object.hasOwnProperty,t=Object.setProtot * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,l=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,p=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,d=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,g=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,v=r?Symbol.for("react.block"):60121,b=r?Symbol.for("react.fundamental"):60117,w=r?Symbol.for("react.responder"):60118,x=r?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case p:case f:case a:case l:case s:case h:return e;default:switch(e=e&&e.$$typeof){case u:case d:case y:case g:case c:return e;default:return t}}case i:return t}}}function E(e){return k(e)===f}t.AsyncMode=p,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=c,t.Element=o,t.ForwardRef=d,t.Fragment=a,t.Lazy=y,t.Memo=g,t.Portal=i,t.Profiler=l,t.StrictMode=s,t.Suspense=h,t.isAsyncMode=function(e){return E(e)||k(e)===p},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===y},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===i},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===s},t.isSuspense=function(e){return k(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===f||e===l||e===s||e===h||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===c||e.$$typeof===u||e.$$typeof===d||e.$$typeof===b||e.$$typeof===w||e.$$typeof===x||e.$$typeof===v)},t.typeOf=k},function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=c(e),a=r[0],s=r[1],l=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),u=0,p=s>0?a-4:a;for(n=0;n>16&255,l[u++]=t>>8&255,l[u++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,l[u++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t);return l},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,l=(1<>1,u=-7,p=n?o-1:0,f=n?-1:1,d=e[t+p];for(p+=f,i=d&(1<<-u)-1,d>>=-u,u+=s;u>0;i=256*i+e[t+p],p+=f,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=r;u>0;a=256*a+e[t+p],p+=f,u-=8);if(0===i)i=1-c;else{if(i===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),i-=c}return(d?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,l,c=8*i-o-1,u=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:i-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+p>=1?f/l:f*Math.pow(2,1-p))*l>=2&&(a++,l/=2),a+p>=u?(s=0,a=u):a+p>=1?(s=(t*l-1)*Math.pow(2,o),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,o),a=0));o>=8;e[n+d]=255&s,d+=h,s/=256,o-=8);for(a=a<0;e[n+d]=255&a,d+=h,a/=256,c-=8);e[n+d-h]|=128*m}},function(e,t,n){"use strict";(function(t){e.exports={order:100,allowEmpty:!0,canParse:".json",parse:function(e){return new Promise((function(n,r){var o=e.data;t.isBuffer(o)&&(o=o.toString()),"string"==typeof o?0===o.trim().length?n(void 0):n(JSON.parse(o)):n(o)}))}}}).call(this,n(14).Buffer)},function(e,t,n){"use strict";(function(t){var r=n(130);e.exports={order:200,allowEmpty:!0,canParse:[".yaml",".yml",".json"],parse:function(e){return new Promise((function(n,o){var i=e.data;t.isBuffer(i)&&(i=i.toString()),n("string"==typeof i?r.parse(i):i)}))}}}).call(this,n(14).Buffer)},function(e,t,n){"use strict";var r=n(241);e.exports=r},function(e,t,n){"use strict";var r=n(242),o=n(261);function i(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=n(6),e.exports.Schema=n(36),e.exports.FAILSAFE_SCHEMA=n(87),e.exports.JSON_SCHEMA=n(132),e.exports.CORE_SCHEMA=n(131),e.exports.DEFAULT_SAFE_SCHEMA=n(55),e.exports.DEFAULT_FULL_SCHEMA=n(88),e.exports.load=r.load,e.exports.loadAll=r.loadAll,e.exports.safeLoad=r.safeLoad,e.exports.safeLoadAll=r.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(54),e.exports.MINIMAL_SCHEMA=n(87),e.exports.SAFE_SCHEMA=n(55),e.exports.DEFAULT_SCHEMA=n(88),e.exports.scan=i("scan"),e.exports.parse=i("parse"),e.exports.compose=i("compose"),e.exports.addConstructor=i("addConstructor")},function(e,t,n){"use strict";var r=n(46),o=n(54),i=n(243),a=n(55),s=n(88),l=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,u=/[\x85\u2028\u2029]/,p=/[,\[\]\{\}]/,f=/^(?:!|!!|![a-z\-]+!)$/i,d=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function h(e){return Object.prototype.toString.call(e)}function m(e){return 10===e||13===e}function g(e){return 9===e||32===e}function y(e){return 9===e||32===e||10===e||13===e}function v(e){return 44===e||91===e||93===e||123===e||125===e}function b(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function w(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function x(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var k=new Array(256),E=new Array(256),O=0;O<256;O++)k[O]=w(O)?1:0,E[O]=w(O);function S(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function _(e,t){return new o(t,new i(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function T(e,t){throw _(e,t)}function A(e,t){e.onWarning&&e.onWarning.call(null,_(e,t))}var j={YAML:function(e,t,n){var r,o,i;null!==e.version&&T(e,"duplication of %YAML directive"),1!==n.length&&T(e,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&T(e,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),i=parseInt(r[2],10),1!==o&&T(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=i<2,1!==i&&2!==i&&A(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,o;2!==n.length&&T(e,"TAG directive accepts exactly two arguments"),r=n[0],o=n[1],f.test(r)||T(e,"ill-formed tag handle (first argument) of the TAG directive"),l.call(e.tagMap,r)&&T(e,'there is a previously declared suffix for "'+r+'" tag handle'),d.test(o)||T(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=o}};function I(e,t,n,r){var o,i,a,s;if(t1&&(e.result+=r.repeat("\n",t-1))}function D(e,t){var n,r,o=e.tag,i=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),r=e.input.charCodeAt(e.position);0!==r&&45===r&&y(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,N(e,!0,-1)&&e.lineIndent<=t)a.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,U(e,t,3,!1,!0),a.push(e.result),N(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)T(e,"bad indentation of a sequence entry");else if(e.lineIndentt?w=1:e.lineIndent===t?w=0:e.lineIndentt?w=1:e.lineIndent===t?w=0:e.lineIndentt)&&(U(e,t,4,!0,o)&&(m?d=e.result:h=e.result),m||(R(e,u,p,f,d,h,i,a),f=d=h=null),N(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)T(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?T(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?T(e,"repeat of an indentation width identifier"):(p=t+i-1,u=!0)}if(g(a)){do{a=e.input.charCodeAt(++e.position)}while(g(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!m(a)&&0!==a)}for(;0!==a;){for(P(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!u||e.lineIndentp&&(p=e.lineIndent),m(a))f++;else{if(e.lineIndent0){for(o=a,i=0;o>0;o--)(a=b(s=e.input.charCodeAt(++e.position)))>=0?i=(i<<4)+a:T(e,"expected hexadecimal character");e.result+=x(i),e.position++}else T(e,"unknown escape sequence");n=r=e.position}else m(s)?(I(e,n,r,!0),M(e,N(e,!1,t)),n=r=e.position):e.position===e.lineStart&&L(e)?T(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}T(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?S=!0:!function(e){var t,n,r;if(42!==(r=e.input.charCodeAt(e.position)))return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!y(r)&&!v(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&T(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||T(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],N(e,!0,-1),!0}(e)?function(e,t,n){var r,o,i,a,s,l,c,u,p=e.kind,f=e.result;if(y(u=e.input.charCodeAt(e.position))||v(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(y(r=e.input.charCodeAt(e.position+1))||n&&v(r)))return!1;for(e.kind="scalar",e.result="",o=i=e.position,a=!1;0!==u;){if(58===u){if(y(r=e.input.charCodeAt(e.position+1))||n&&v(r))break}else if(35===u){if(y(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&L(e)||n&&v(u))break;if(m(u)){if(s=e.line,l=e.lineStart,c=e.lineIndent,N(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=i,e.line=s,e.lineStart=l,e.lineIndent=c;break}}a&&(I(e,o,i,!1),M(e,e.line-s),o=i=e.position,a=!1),g(u)||(i=e.position+1),u=e.input.charCodeAt(++e.position)}return I(e,o,i,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,d,1===n)&&(S=!0,null===e.tag&&(e.tag="?")):(S=!0,null===e.tag&&null===e.anchor||T(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===w&&(S=c&&D(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,p=e.implicitTypes.length;u tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result)?(e.result=f.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):T(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):T(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||S}function B(e){var t,n,r,o,i=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(N(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(a=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!y(o);)o=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&T(e,"directive name must not be less than one character in length");0!==o;){for(;g(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!m(o));break}if(m(o))break;for(t=e.position;0!==o&&!y(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==o&&P(e),l.call(j,n)?j[n](e,n,r):A(e,'unknown document directive "'+n+'"')}N(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,N(e,!0,-1)):a&&T(e,"directives end mark is expected"),U(e,e.lineIndent-1,4,!1,!0),N(e,!0,-1),e.checkLineBreaks&&u.test(e.input.slice(i,e.position))&&A(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&L(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,N(e,!0,-1)):e.position0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o-1));)if(o-=1,this.position-o>t/2-1){n=" ... ",o+=5;break}for(i="",a=this.position;at/2-1){i=" ... ",a-=5;break}return s=this.buffer.slice(o,a),r.repeat(" ",e)+n+s+i+"\n"+r.repeat(" ",e+this.position-o+n.length)+"^"},o.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},e.exports=o},function(e,t,n){"use strict";var r=n(6);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(6);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(6);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";var r=n(6);e.exports=new r("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(6);e.exports=new r("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(46),o=n(6);function i(e){return 48<=e&&e<=55}function a(e){return 48<=e&&e<=57}e.exports=new o("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=e.length,o=0,s=!1;if(!r)return!1;if("-"!==(t=e[o])&&"+"!==t||(t=e[++o]),"0"===t){if(o+1===r)return!0;if("b"===(t=e[++o])){for(o++;o=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";var r=n(46),o=n(6),i=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;e.exports=new o("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!i.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,r,o;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){o.unshift(parseFloat(e,10))})),t=0,r=1,o.forEach((function(e){t+=e*r,r*=60})),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||r.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(r.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(6),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new r("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==o.exec(e)||null!==i.exec(e))},construct:function(e){var t,n,r,a,s,l,c,u,p=0,f=null;if(null===(t=o.exec(e))&&(t=i.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(n,r,a));if(s=+t[4],l=+t[5],c=+t[6],t[7]){for(p=t[7].slice(0,3);p.length<3;)p+="0";p=+p}return t[9]&&(f=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(f=-f)),u=new Date(Date.UTC(n,r,a,s,l,c,p)),f&&u.setTime(u.getTime()-f),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},function(e,t,n){"use strict";var r=n(6);e.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},function(e,t,n){"use strict";var r;try{r=n(14).Buffer}catch(e){}var o=n(6),i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new o("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=0,o=e.length,a=i;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8==0},construct:function(e){var t,n,o=e.replace(/[\r\n=]/g,""),a=o.length,s=i,l=0,c=[];for(t=0;t>16&255),c.push(l>>8&255),c.push(255&l)),l=l<<6|s.indexOf(o.charAt(t));return 0===(n=a%4*6)?(c.push(l>>16&255),c.push(l>>8&255),c.push(255&l)):18===n?(c.push(l>>10&255),c.push(l>>2&255)):12===n&&c.push(l>>4&255),r?r.from?r.from(c):new r(c):c},predicate:function(e){return r&&r.isBuffer(e)},represent:function(e){var t,n,r="",o=0,a=e.length,s=i;for(t=0;t>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]),o=(o<<8)+e[t];return 0===(n=a%3)?(r+=s[o>>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]):2===n?(r+=s[o>>10&63],r+=s[o>>4&63],r+=s[o<<2&63],r+=s[64]):1===n&&(r+=s[o>>2&63],r+=s[o<<4&63],r+=s[64],r+=s[64]),r}})},function(e,t,n){"use strict";var r=n(6),o=Object.prototype.hasOwnProperty,i=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,a,s,l=[],c=e;for(t=0,n=c.length;t3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0},construct:function(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},function(e,t,n){"use strict";var r;try{r=n(260)}catch(e){"undefined"!=typeof window&&(r=window.esprima)}var o=n(6);e.exports=new o("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",n=r.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,n="("+e+")",o=r.parse(n,{range:!0}),i=[];if("Program"!==o.type||1!==o.body.length||"ExpressionStatement"!==o.body[0].type||"ArrowFunctionExpression"!==o.body[0].expression.type&&"FunctionExpression"!==o.body[0].expression.type)throw new Error("Failed to resolve function");return o.body[0].expression.params.forEach((function(e){i.push(e.name)})),t=o.body[0].expression.body.range,"BlockStatement"===o.body[0].expression.body.type?new Function(i,n.slice(t[0]+1,t[1]-1)):new Function(i,"return "+n.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},function(e,n){if(void 0===t){var r=new Error("Cannot find module 'esprima'");throw r.code="MODULE_NOT_FOUND",r}e.exports=t},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e){var t=/(%?)(%([jds]))/g,n=Array.prototype.slice.call(arguments,1);return n.length&&(e=e.replace(t,(function(e,t,r,o){var i=n.shift();switch(o){case"s":i=""+i;break;case"d":i=Number(i);break;case"j":i=JSON.stringify(i)}return t?(n.unshift(i),e):i}))),n.length&&(e+=" "+n.join(" ")),""+(e=e.replace(/%{2,2}/g,"%"))}},function(e,t,n){"use strict";(function(t){var n=/\.(txt|htm|html|md|xml|js|min|map|css|scss|less|svg)$/i;e.exports={order:300,allowEmpty:!0,encoding:"utf8",canParse:function(e){return("string"==typeof e.data||t.isBuffer(e.data))&&n.test(e.url)},parse:function(e){if("string"==typeof e.data)return e.data;if(t.isBuffer(e.data))return e.data.toString(this.encoding);throw new Error("data is not text")}}}).call(this,n(14).Buffer)},function(e,t,n){"use strict";(function(t){var n=/\.(jpeg|jpg|gif|png|bmp|ico)$/i;e.exports={order:400,allowEmpty:!0,canParse:function(e){return t.isBuffer(e.data)&&n.test(e.url)},parse:function(e){return t.isBuffer(e.data)?e.data:new t(e.data)}}}).call(this,n(14).Buffer)},function(e,t,n){"use strict";var r=n(266),o=n(29),i=n(24);e.exports={order:100,canRead:function(e){return i.isFileSystemPath(e.url)},read:function(e){return new Promise((function(t,n){var a;try{a=i.toFileSystemPath(e.url)}catch(t){n(o.uri(t,"Malformed URI: %s",e.url))}try{r.readFile(a,(function(e,r){e?n(o(e,'Error opening file "%s"',a)):t(r)}))}catch(e){n(o(e,'Error opening file "%s"',a))}}))}}},function(e,t){},function(e,t,n){"use strict";(function(t,r){var o=n(89),i=n(279),a=n(29),s=n(24);e.exports={order:200,headers:null,timeout:5e3,redirects:5,withCredentials:!1,canRead:function(e){return s.isHttp(e.url)},read:function(e){var n=s.parse(e.url);return t.browser&&!n.protocol&&(n.protocol=s.parse(location.href).protocol),function e(t,n,l){return new Promise((function(c,u){t=s.parse(t),(l=l||[]).push(t.href),function(e,t){return new Promise((function(n,a){var s=("https:"===e.protocol?i:o).get({hostname:e.hostname,port:e.port,path:e.path,auth:e.auth,protocol:e.protocol,headers:t.headers||{},withCredentials:t.withCredentials});"function"==typeof s.setTimeout&&s.setTimeout(t.timeout),s.on("timeout",(function(){s.abort()})),s.on("error",a),s.once("response",(function(e){e.body=new r(0),e.on("data",(function(t){e.body=r.concat([e.body,new r(t)])})),e.on("error",a),e.on("end",(function(){n(e)}))}))}))}(t,n).then((function(o){if(o.statusCode>=400)throw a({status:o.statusCode},"HTTP ERROR %d",o.statusCode);if(o.statusCode>=300)if(l.length>n.redirects)u(a({status:o.statusCode},"Error downloading %s. \nToo many redirects: \n %s",l[0],l.join(" \n ")));else{if(!o.headers.location)throw a({status:o.statusCode},"HTTP %d redirect with no location header",o.statusCode);var i=s.resolve(t,o.headers.location);e(i,n,l).then(c,u)}else c(o.body||new r(0))})).catch((function(e){u(a(e,"Error downloading",t.href))}))}))}(n,this)}}}).call(this,n(13),n(14).Buffer)},function(e,t,n){(function(t,r,o){var i=n(133),a=n(30),s=n(134),l=n(135),c=n(276),u=s.IncomingMessage,p=s.readyStates;var f=e.exports=function(e){var n,r=this;l.Writable.call(r),r._opts=e,r._body=[],r._headers={},e.auth&&r.setHeader("Authorization","Basic "+new t(e.auth).toString("base64")),Object.keys(e.headers).forEach((function(t){r.setHeader(t,e.headers[t])}));var o=!0;if("disable-fetch"===e.mode||"requestTimeout"in e&&!i.abortController)o=!1,n=!0;else if("prefer-streaming"===e.mode)n=!1;else if("allow-wrong-content-type"===e.mode)n=!i.overrideMimeType;else{if(e.mode&&"default"!==e.mode&&"prefer-fast"!==e.mode)throw new Error("Invalid value for opts.mode");n=!0}r._mode=function(e,t){return i.fetch&&t?"fetch":i.mozchunkedarraybuffer?"moz-chunked-arraybuffer":i.msstream?"ms-stream":i.arraybuffer&&e?"arraybuffer":i.vbArray&&e?"text:vbarray":"text"}(n,o),r._fetchTimer=null,r.on("finish",(function(){r._onFinish()}))};a(f,l.Writable),f.prototype.setHeader=function(e,t){var n=e.toLowerCase();-1===d.indexOf(n)&&(this._headers[n]={name:e,value:t})},f.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];return t?t.value:null},f.prototype.removeHeader=function(e){delete this._headers[e.toLowerCase()]},f.prototype._onFinish=function(){var e=this;if(!e._destroyed){var n=e._opts,a=e._headers,s=null;"GET"!==n.method&&"HEAD"!==n.method&&(s=i.arraybuffer?c(t.concat(e._body)):i.blobConstructor?new r.Blob(e._body.map((function(e){return c(e)})),{type:(a["content-type"]||{}).value||""}):t.concat(e._body).toString());var l=[];if(Object.keys(a).forEach((function(e){var t=a[e].name,n=a[e].value;Array.isArray(n)?n.forEach((function(e){l.push([t,e])})):l.push([t,n])})),"fetch"===e._mode){var u=null;if(i.abortController){var f=new AbortController;u=f.signal,e._fetchAbortController=f,"requestTimeout"in n&&0!==n.requestTimeout&&(e._fetchTimer=r.setTimeout((function(){e.emit("requestTimeout"),e._fetchAbortController&&e._fetchAbortController.abort()}),n.requestTimeout))}r.fetch(e._opts.url,{method:e._opts.method,headers:l,body:s||void 0,mode:"cors",credentials:n.withCredentials?"include":"same-origin",signal:u}).then((function(t){e._fetchResponse=t,e._connect()}),(function(t){r.clearTimeout(e._fetchTimer),e._destroyed||e.emit("error",t)}))}else{var d=e._xhr=new r.XMLHttpRequest;try{d.open(e._opts.method,e._opts.url,!0)}catch(t){return void o.nextTick((function(){e.emit("error",t)}))}"responseType"in d&&(d.responseType=e._mode.split(":")[0]),"withCredentials"in d&&(d.withCredentials=!!n.withCredentials),"text"===e._mode&&"overrideMimeType"in d&&d.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in n&&(d.timeout=n.requestTimeout,d.ontimeout=function(){e.emit("requestTimeout")}),l.forEach((function(e){d.setRequestHeader(e[0],e[1])})),e._response=null,d.onreadystatechange=function(){switch(d.readyState){case p.LOADING:case p.DONE:e._onXHRProgress()}},"moz-chunked-arraybuffer"===e._mode&&(d.onprogress=function(){e._onXHRProgress()}),d.onerror=function(){e._destroyed||e.emit("error",new Error("XHR error"))};try{d.send(s)}catch(t){return void o.nextTick((function(){e.emit("error",t)}))}}}},f.prototype._onXHRProgress=function(){(function(e){try{var t=e.status;return null!==t&&0!==t}catch(e){return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},f.prototype._connect=function(){var e=this;e._destroyed||(e._response=new u(e._xhr,e._fetchResponse,e._mode,e._fetchTimer),e._response.on("error",(function(t){e.emit("error",t)})),e.emit("response",e._response))},f.prototype._write=function(e,t,n){this._body.push(e),n()},f.prototype.abort=f.prototype.destroy=function(){this._destroyed=!0,r.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},f.prototype.end=function(e,t,n){"function"==typeof e&&(n=e,e=void 0),l.Writable.prototype.end.call(this,e,t,n)},f.prototype.flushHeaders=function(){},f.prototype.setTimeout=function(){},f.prototype.setNoDelay=function(){},f.prototype.setSocketKeepAlive=function(){};var d=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,n(14).Buffer,n(5),n(13))},function(e,t){},function(e,t,n){"use strict";var r=n(57).Buffer,o=n(271);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(273),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(5))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,l=1,c={},u=!1,p=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){h(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){i.port2.postMessage(e)}):p&&"onreadystatechange"in p.createElement("script")?(o=p.documentElement,r=function(e){var t=p.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(h,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n0&&t[0]&&(n=n.filter((function(n){return-1!==t.indexOf(e[n].pathType)}))),n.map((function(t){return{encoded:t,decoded:"file"===e[t].pathType?i.toFileSystemPath(t,!0):t}}))}e.exports=a,a.prototype.paths=function(e){var t=s(this._$refs,arguments);return t.map((function(e){return e.decoded}))},a.prototype.values=function(e){var t=this._$refs,n=s(t,arguments);return n.reduce((function(e,n){return e[n.decoded]=t[n.encoded].value,e}),{})},a.prototype.toJSON=a.prototype.values,a.prototype.exists=function(e,t){try{return this._resolve(e,t),!0}catch(e){return!1}},a.prototype.get=function(e,t){return this._resolve(e,t).value},a.prototype.set=function(e,t){var n=i.resolve(this._root$Ref.path,e),o=i.stripHash(n),a=this._$refs[o];if(!a)throw r('Error resolving $ref pointer "%s". \n"%s" not found.',e,o);a.set(n,t)},a.prototype._add=function(e){var t=i.stripHash(e),n=new o;return n.path=t,n.$refs=this,this._$refs[t]=n,this._root$Ref=this._root$Ref||n,n},a.prototype._resolve=function(e,t){var n=i.resolve(this._root$Ref.path,e),o=i.stripHash(n),a=this._$refs[o];if(!a)throw r('Error resolving $ref pointer "%s". \n"%s" not found.',e,o);return a.resolve(n,t,e)},a.prototype._get$Ref=function(e){e=i.resolve(this._root$Ref.path,e);var t=i.stripHash(e);return this._$refs[t]}},function(e,t,n){"use strict";function r(e,t,n,r){var o=e[t];if("function"==typeof o)return o.apply(e,[n,r]);if(!r){if(o instanceof RegExp)return o.test(n.url);if("string"==typeof o)return o===n.extension;if(Array.isArray(o))return-1!==o.indexOf(n.extension)}return o}t.all=function(e){return Object.keys(e).filter((function(t){return"object"==typeof e[t]})).map((function(t){return e[t].name=t,e[t]}))},t.filter=function(e,t,n){return e.filter((function(e){return!!r(e,t,n)}))},t.sort=function(e){return e.forEach((function(e){e.order=e.order||Number.MAX_SAFE_INTEGER})),e.sort((function(e,t){return e.order-t.order}))},t.run=function(e,t,n){var o,i,a=0;return new Promise((function(s,l){function c(){if(!(o=e[a++]))return l(i);try{var s=r(o,t,n,u);s&&"function"==typeof s.then?s.then(p,f):void 0!==s&&p(s)}catch(e){f(e)}}function u(e,t){e?f(e):p(t)}function p(e){s({plugin:o,result:e})}function f(e){i=e,c()}c()}))}},function(e,t,n){"use strict";var r=n(129);e.exports=function(e){var t,n,o,i;"function"==typeof(e=Array.prototype.slice.call(e))[e.length-1]&&(i=e.pop());"string"==typeof e[0]?(t=e[0],"object"==typeof e[2]?(n=e[1],o=e[2]):(n=void 0,o=e[1])):(t="",n=e[0],o=e[1]);o instanceof r||(o=new r(o));return{path:t,schema:n,options:o,callback:i}}},function(e,t,n){"use strict";var r=n(58),o=n(90),i=n(143),a=n(24);function s(e,t,n,i){var a=[];return e&&"object"==typeof e&&(r.isExternal$Ref(e)?a.push(l(e,t,n,i)):Object.keys(e).forEach((function(c){var u=o.join(t,c),p=e[c];r.isExternal$Ref(p)?a.push(l(p,u,n,i)):a=a.concat(s(p,u,n,i))}))),a}function l(e,t,n,r){var o=a.resolve(t,e.$ref),l=a.stripHash(o);return(e=n._$refs[l])?Promise.resolve(e.value):i(o,n,r).then((function(e){var t=s(e,l+"#",n,r);return Promise.all(t)}))}e.exports=function(e,t){if(!t.resolve.external)return Promise.resolve();try{var n=s(e.schema,e.$refs._root$Ref.path+"#",e.$refs,t);return Promise.all(n)}catch(e){return Promise.reject(e)}}},function(e,t,n){"use strict";var r=n(58),o=n(90),i=n(24);function a(e,t,n,i,l,c,u,p){var f=null===t?e:e[t];f&&"object"==typeof f&&(r.isAllowed$Ref(f)?s(e,t,n,i,l,c,u,p):Object.keys(f).sort((function(e,t){return"definitions"===e?-1:"definitions"===t?1:e.length-t.length})).forEach((function(e){var t=o.join(n,e),d=o.join(i,e),h=f[e];r.isAllowed$Ref(h)?s(f,e,n,d,l,c,u,p):a(f,e,t,d,l,c,u,p)})))}function s(e,t,n,s,l,c,u,p){var f=null===t?e:e[t],d=i.resolve(n,f.$ref),h=u._resolve(d,p),m=o.parse(s).length,g=i.stripHash(h.path),y=i.getHash(h.path),v=g!==u._root$Ref.path,b=r.isExtended$Ref(f);l+=h.indirections;var w=function(e,t,n){for(var r=0;r1&&console.warn("Replacing with",u),m++}}else{var g=p(c(t,e[n]));if(i.verbose>1&&console.warn((!1===g?h.colour.red:h.colour.green)+"Fragment resolution",e[n],h.colour.normal),!1===g){if(r.parent[r.pkey]={},i.fatal){var y=new Error("Fragment $ref resolution failed "+e[n]);if(!i.promise)throw y;i.promise.reject(y)}}else m++,r.parent[r.pkey]=g,f[e[n]]=r.path.replace("/%24ref","")}else if(l.protocol){u=a.resolve(o,e[n]).toString();i.verbose>1&&console.warn(h.colour.yellow+"Rewriting external url ref",e[n],"as",u,h.colour.normal),e["x-miro"]=e[n],e[n]=u}else if(!e["x-miro"]){u=a.resolve(o,e[n]).toString();i.verbose>1&&console.warn(h.colour.yellow+"Rewriting external ref",e[n],"as",u,h.colour.normal),e["x-miro"]=e[n],e[n]=u}}));return u(e,{},(function(e,t,n){d(e,t)&&void 0!==e.$fixed&&delete e.$fixed})),i.verbose>1&&console.warn("Finished fragment resolution"),e}function g(e,t){if(!t.filters||!t.filters.length)return e;for(var n=0,r=t.filters;n1&&(f="#"+d[1],t=d[0]),u=u.join("/");var h,y,v,b,w,x=a.parse(t),k=(h=x.protocol,y=s.protocol,h&&h.length>2?h:y&&y.length>2?y:"file:");if(v="file:"===k?i.resolve(u?u+"/":"",t):a.resolve(u?u+"/":"",t),n.cache[v]){n.verbose&&console.warn("CACHED",v,f);var E=p(n.cache[v]),O=n.externalRef=E;if(f&&!1===(O=c(O,f))&&(O={},n.fatal)){var S=new Error("Cached $ref resolution failed "+v+f);if(!n.promise)throw S;n.promise.reject(S)}return O=g(O=m(O,E,t,f,v,n),n),r(p(O),v,n),Promise.resolve(O)}if(n.verbose&&console.warn("GET",v,f),n.handlers&&n.handlers[k])return n.handlers[k](u,t,f,n).then((function(e){return n.externalRef=e,e=g(e,n),n.cache[v]=e,r(e,v,n),e})).catch((function(e){throw n.verbose&&console.warn(e),e}));if(k&&k.startsWith("http")){var _=Object.assign({},n.fetchOptions,{agent:n.agent});return n.fetch(v,_).then((function(e){if(200!==e.status)throw new Error("Received status code "+e.status+": "+v);return e.text()})).then((function(e){try{var o=l.parse(e,{schema:"core",prettyErrors:!0});if(e=n.externalRef=o,n.cache[v]=p(e),f&&!1===(e=c(e,f))&&(e={},n.fatal)){var i=new Error("Remote $ref resolution failed "+v+f);if(!n.promise)throw i;n.promise.reject(i)}e=g(e=m(e,o,t,f,v,n),n)}catch(i){if(n.verbose&&console.warn(i),!n.promise||!n.fatal)throw i;n.promise.reject(i)}return r(e,v,n),e})).catch((function(e){if(n.verbose&&console.warn(e),n.cache[v]={},!n.promise||!n.fatal)throw e;n.promise.reject(e)}))}return(b=v,w=n.encoding||"utf8",new Promise((function(e,t){o.readFile(b,w,(function(n,r){n?t(n):e(r)}))}))).then((function(e){try{var o=l.parse(e,{schema:"core",prettyErrors:!0});if(e=n.externalRef=o,n.cache[v]=p(e),f&&!1===(e=c(e,f))&&(e={},n.fatal)){var i=new Error("File $ref resolution failed "+v+f);if(!n.promise)throw i;n.promise.reject(i)}e=g(e=m(e,o,t,f,v,n),n)}catch(i){if(n.verbose&&console.warn(i),!n.promise||!n.fatal)throw i;n.promise.reject(i)}return r(e,v,n),e})).catch((function(e){if(n.verbose&&console.warn(e),!n.promise||!n.fatal)throw e;n.promise.reject(e)}))}function v(e){return new Promise((function(t,n){(function(e){return new Promise((function(t,n){function r(t,n,r){if(t[n]&&d(t[n],"$ref")){var i=t[n].$ref;if(!i.startsWith("#")){var a="";if(!o[i]){var s=Object.keys(o).find((function(e,t,n){return i.startsWith(e+"/")}));s&&(e.verbose&&console.warn("Found potential subschema at",s),a=(a="/"+(i.split("#")[1]||"").replace(s.split("#")[1]||"")).split("/undefined").join(""),i=s)}if(o[i]||(o[i]={resolved:!1,paths:[],extras:{},description:t[n].description}),o[i].resolved)if(e.rewriteRefs){var l=o[i].resolvedAt;e.verbose>1&&console.warn("Rewriting ref",i,l),t[n]["x-miro"]=i,t[n].$ref=l+a}else t[n]=p(o[i].data);else o[i].paths.push(r.path),o[i].extras[r.path]=a}}}var o=e.externalRefs;if(e.resolver.depth>0&&e.source===e.resolver.base)return t(o);u(e.openapi.definitions,{identityDetection:!0,path:"#/definitions"},r),u(e.openapi.components,{identityDetection:!0,path:"#/components"},r),u(e.openapi,{identityDetection:!0},r),t(o)}))})(e).then((function(t){var n=function(n){if(!t[n].resolved){var o=e.resolver.depth;o>0&&o++,e.resolver.actions[o].push((function(){return y(e.openapi,n,e,(function(e,o,i){if(!t[n].resolved){var a={};a.context=t[n],a.$ref=n,a.original=p(e),a.updated=e,a.source=o,i.externals.push(a),t[n].resolved=!0}var s=Object.assign({},i,{source:"",resolver:{actions:i.resolver.actions,depth:i.resolver.actions.length-1,base:i.resolver.base}});i.patch&&t[n].description&&!e.description&&"object"==typeof e&&(e.description=t[n].description),t[n].data=e;for(var l,u=(l=t[n].paths,r.__spreadArrays(new Set(l))),f=0,d=u=u.sort((function(e,t){var n=e.startsWith("#/components/")||e.startsWith("#/definitions/"),r=t.startsWith("#/components/")||t.startsWith("#/definitions/");return n&&!r?-1:r&&!n?1:0}));f1&&console.warn("Creating pointer to data at",h),c(i.openapi,h,{$ref:t[n].resolvedAt+t[n].extras[h],"x-miro":n+t[n].extras[h]});else{t[n].resolvedAt?i.verbose>1&&console.warn("Avoiding circular reference"):(t[n].resolvedAt=h,i.verbose>1&&console.warn("Creating initial clone of data at",h));var m=p(e);c(i.openapi,h,m)}}0===i.resolver.actions[s.resolver.depth].length&&i.resolver.actions[s.resolver.depth].push((function(){return v(s)}))}))}))}};for(var o in t)n(o)})).catch((function(t){e.verbose&&console.warn(t),n(t)}));var o={options:e};o.actions=e.resolver.actions[e.resolver.depth],t(o)}))}function b(e,t,n){e.resolver.actions.push([]),v(e).then((function(r){var o;(o=r.actions,o.reduce((function(e,t){return e.then((function(e){return t().then(Array.prototype.concat.bind(e))}))}),Promise.resolve([]))).then((function(){if(e.resolver.depth>=e.resolver.actions.length)return console.warn("Ran off the end of resolver actions"),t(!0);e.resolver.depth++,e.resolver.actions[e.resolver.depth].length?setTimeout((function(){b(r.options,t,n)}),0):(e.verbose>1&&console.warn(h.colour.yellow+"Finished external resolution!",h.colour.normal),e.resolveInternal&&(e.verbose>1&&console.warn(h.colour.yellow+"Starting internal resolution!",h.colour.normal),e.openapi=f(e.openapi,e.original,{verbose:e.verbose-1}),e.verbose>1&&console.warn(h.colour.yellow+"Finished internal resolution!",h.colour.normal)),u(e.openapi,{},(function(t,n,r){d(t,n)&&(e.preserveMiro||delete t["x-miro"])})),t(e))})).catch((function(t){e.verbose&&console.warn(t),n(t)}))})).catch((function(t){e.verbose&&console.warn(t),n(t)}))}function w(e){if(e.cache||(e.cache={}),e.fetch||(e.fetch=s),e.source){var t=a.parse(e.source);(!t.protocol||t.protocol.length<=2)&&(e.source=i.resolve(e.source))}e.externals||(e.externals=[]),e.externalRefs||(e.externalRefs={}),e.rewriteRefs=!0,e.resolver={},e.resolver.depth=0,e.resolver.base=e.source,e.resolver.actions=[[]]}e.exports={optionalResolve:function(e){return w(e),new Promise((function(t,n){e.resolve?b(e,t,n):t(e)}))},resolve:function(e,t,n){return n||(n={}),n.openapi=e,n.source=t,n.resolve=!0,w(n),new Promise((function(e,t){b(n,e,t)}))}}},function(e,t,n){"use strict";var r=n(92).recurse,o=n(61).shallowClone,i=n(60).jptr,a=n(91).isRef;e.exports={dereference:function e(t,n,s){s||(s={}),s.cache||(s.cache={}),s.state||(s.state={}),s.state.identityDetection=!0,s.depth=s.depth?s.depth+1:1;var l=s.depth>1?t:o(t),c={data:l},u=s.depth>1?n:o(n);s.master||(s.master=l);for(var p=function(e){return e&&e.verbose?{warn:function(){var e=Array.prototype.slice.call(arguments);console.warn.apply(console,e)}}:{warn:function(){}}}(s),f=1;f>0;)f=0,r(c,s.state,(function(t,n,r){if(a(t,n)){var o,l=t[n];if(f++,s.cache[l])if((o=s.cache[l]).resolved)p.warn("Patching %s for %s",l,o.path),r.parent[r.pkey]=o.data,s.$ref&&"object"==typeof r.parent[r.pkey]&&(r.parent[r.pkey][s.$ref]=l);else{if(l===o.path)throw new Error("Tight circle at "+o.path);p.warn("Unresolved ref"),r.parent[r.pkey]=i(o.source,o.path),!1===r.parent[r.pkey]&&(r.parent[r.pkey]=i(o.source,o.key)),s.$ref&&"object"==typeof r.parent[r.pkey]&&(r.parent[s.$ref]=l)}else(o={}).path=r.path.split("/$ref")[0],o.key=l,p.warn("Dereffing %s at %s",l,o.path),o.source=u,o.data=i(o.source,o.key),!1===o.data&&(o.data=i(s.master,o.key),o.source=s.master),!1===o.data&&p.warn("Missing $ref target",o.key),s.cache[l]=o,o.data=r.parent[r.pkey]=e(i(o.source,o.key),o.source,s),s.$ref&&"object"==typeof r.parent[r.pkey]&&(r.parent[r.pkey][s.$ref]=l),o.resolved=!0}}));return c.data}}},function(e,t){e.exports=o,o.default=o,o.stable=a,o.stableStringify=a;var n=[],r=[];function o(e,t,o){var i;for(!function e(t,o,i,a){var s;if("object"==typeof t&&null!==t){for(s=0;st?1:0}function a(e,t,o){var a,l=function e(t,o,a,s){var l;if("object"==typeof t&&null!==t){for(l=0;l0)for(var o=0;o>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/,lookbehind:!0,greedy:!0,inside:n}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,number:/(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c.boolean},function(e,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},function(e,t){!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(Prism)},function(e,t){Prism.languages.cpp=Prism.languages.extend("c",{"class-name":{pattern:/(\b(?:class|enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),Prism.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}})},function(e,t){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,(function(){return"(?:"+e+")"}));return e.replace(/<>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface struct",a="add alias ascending async await by descending from get global group into join let nameof notnull on orderby partial remove select set unmanaged value when where where",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(i),u=RegExp(l(o+" "+i+" "+a+" "+s)),p=l(i+" "+a+" "+s),f=l(o+" "+i+" "+s),d=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),h=r(/\((?:[^()]|<>)*\)/.source,2),m=/@?\b[A-Za-z_]\w*\b/.source,g=t(/<<0>>(?:\s*<<1>>)?/.source,[m,d]),y=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[p,g]),v=/\[\s*(?:,\s*)*\]/.source,b=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[d,h,v]),w=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[b]),x=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[w,y,v]),k={keyword:u,punctuation:/[<>()?,.:[\]]/},E=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,O=/"(?:\\.|[^\\"\r\n])*"/.source,S=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[O]),lookbehind:!0,greedy:!0},{pattern:RegExp(E),greedy:!0,alias:"character"}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[y]),lookbehind:!0,inside:k},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[m,x]),lookbehind:!0,inside:k},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[m]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,g]),lookbehind:!0,inside:k},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[y]),lookbehind:!0,inside:k},{pattern:n(/(\bwhere\s+)<<0>>/.source,[m]),lookbehind:!0},{pattern:n(/(\b(?:is|as)\s+)<<0>>/.source,[x]),lookbehind:!0,inside:k},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+in))/.source,[x,f,m]),inside:k}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[m]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[m]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|typeof|sizeof)\s*\(\s*)(?:[^()\s]|\s(?!\s*\))|<<0>>)*(?=\s*\))/.source,[h]),lookbehind:!0,alias:"class-name",inside:k},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[x,y]),inside:k,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[x]),lookbehind:!0,inside:k,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[m,d]),inside:{function:n(/^<<0>>/.source,[m]),generic:{pattern:RegExp(d),alias:"class-name",inside:k}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,g,m,x,u.source]),lookbehind:!0,inside:{keyword:u,"class-name":{pattern:RegExp(x),greedy:!0,inside:k},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var _=O+"|"+E,T=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*[\s\S]*?\*\/|<<0>>/.source,[_]),A=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[T]),2),j=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,I=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[y,A]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[j,I]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[j]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[A]),inside:e.languages.csharp},"class-name":{pattern:RegExp(y),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var C=/:[^}\r\n]+/.source,R=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[T]),2),P=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[R,C]),N=r(t(/[^"'/()]|\/(?!\*)|\/\*.*?\*\/|<<0>>|\(<>*\)/.source,[_]),2),L=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[N,C]);function M(t,r){return{interpolation:{pattern:n(/([^{](?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,C]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[P]),lookbehind:!0,greedy:!0,inside:M(P,R)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[L]),lookbehind:!0,greedy:!0,inside:M(L,N)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},function(e,t){Prism.languages.go=Prism.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete Prism.languages.go["class-name"]},function(e,t){!function(e){e.languages.http={"request-line":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d+.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d+.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var t,n=e.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},o={"application/json":!0,"application/xml":!0};function i(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-])")+")"}for(var a in r)if(r[a]){t=t||{};var s=o[a]?i(a):a;t[a.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+s+"[\\s\\S]*?)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[a]}}t&&e.languages.insertBefore("http","header-name",t)}(Prism)},function(e,t){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|record|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/\b[A-Z](?:\w*[a-z]\w*)?\b/;e.languages.java=e.languages.extend("clike",{"class-name":[n,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(?:\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism)},function(e,t){Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}},function(e,t){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,s=a.length;-1!==n.code.indexOf(o=t(r,s));)++s;return a[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function a(s){for(var l=0;l=i.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=i[o],p=n.tokenStack[u],f="string"==typeof c?c:c.content,d=t(r,u),h=f.indexOf(d);if(h>-1){++o;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(p,n.grammar),"language-"+r,p),y=f.substring(h+d.length),v=[];m&&v.push.apply(v,a([m])),v.push(g),y&&v.push.apply(v,a([y])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&a(c.content)}return s}(n.tokens)}}}})}(Prism)},function(e,t){Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",o)}}),Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup},function(e,t){Prism.languages.objectivec=Prism.languages.extend("c",{keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete Prism.languages.objectivec["class-name"]},function(e,t){Prism.languages.perl={comment:[{pattern:/(^\s*)=\w+[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/}},function(e,t){!function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:e.languages.php};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},function(e,t){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},function(e,t){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby.function,e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:t}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:t}}],e.languages.rb=e.languages.ruby}(Prism)},function(e,t){Prism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},function(e,t){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},function(e,t){Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift},function(e,t,n){"use strict";var r=n(314);function o(e){var t=[];r(e,"heading",(function(e){var n=e.data||(e.data={}),o=n.hProperties||(n.hProperties={}),i="section/"+n.id;n.id=i,o.id=i,r(e,"text",(function(r){t.push({depth:e.depth,id:n.id,text:r.value})}))}));var n={default:!1,type:"export",value:"export const headings = "+JSON.stringify(t)+";"};e.children.splice(0,0,n)}e.exports=function(){return o}},function(e,t,n){"use strict";e.exports=s;var r=n(315),o=r.CONTINUE,i=r.SKIP,a=r.EXIT;function s(e,t,n,o){"function"==typeof t&&"function"!=typeof n&&(o=n,n=t,t=null),r(e,t,(function(e,t){var r=t[t.length-1],o=r?r.children.indexOf(e):null;return n(e,o,r)}),o)}s.CONTINUE=o,s.SKIP=i,s.EXIT=a},function(e,t,n){"use strict";e.exports=i;var r=n(316),o=n(317);function i(e,t,n,i){var u;function p(e,r,s){var f,d=c(e)?e:{};return l(d.type)&&(f=l(d.tagName)?d.tagName:l(d.name)?d.name:void 0,h.displayName="node ("+o(d.type+(f?"<"+f+">":""))+")"),h;function h(){var o,l=[];return(t&&!u(e,r,s[s.length-1]||null)||!1!==(l=a(n(e,s)))[0])&&e.children&&"skip"!==l[0]&&!1===(o=a(function(e,t){var n,r,o=i?-1:1,a=(i?e.length:-1)+o;for(;a>-1&&a0){var a=I.utils.clone(t)||{};a.position=[s,u],a.index=i.length,i.push(new I.Token(r.slice(s,o),a))}s=o+1}}return i},I.tokenizer.separator=/[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var r=I.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},I.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(oe&&(r=i),o!=e);)n=r-t,i=t+Math.floor(n/2),o=this.elements[2*i];return o==e||o>e?2*i:ou?c+=2:s==u&&(t+=r[a+1]*n[c+1],a+=2,c+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,s=i.str.charAt(0);s in i.node.edges?o=i.node.edges[s]:(o=new I.TokenSet,i.node.edges[s]=o),1==i.str.length&&(o.final=!0),n.push({node:o,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new I.TokenSet;i.node.edges["*"]=u}if(0==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new I.TokenSet;i.node.edges["*"]=a}1==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var c,l=i.str.charAt(0),f=i.str.charAt(1);f in i.node.edges?c=i.node.edges[f]:(c=new I.TokenSet,i.node.edges[f]=c),1==i.str.length&&(c.final=!0),n.push({node:c,editsRemaining:i.editsRemaining-1,str:l+i.str.slice(2)})}}}return r},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,r=t,n=0,i=e.length;n=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */,I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),o=Object.create(null),s=Object.create(null),u=0;u1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value \'"+t.str+"\'"),new I.QueryParseError(r,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator\'"+t.str+"\'";throw new I.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new I.QueryParseError(r,t.start,t.end)}switch(n.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:r="expecting term or field, found \'"+n.type+"\'";throw new I.QueryParseError(r,n.start,n.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"\'"+e+"\'"})).join(", "),n="unrecognised field \'"+t.str+"\', possible fields: "+r;throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(i.type){case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term, found \'"+i.type+"\'";throw new I.QueryParseError(n,i.start,i.end)}}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var n="Unexpected lexeme type \'"+r.type+"\'";throw new I.QueryParseError(n,r.start,r.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type \'"+i.type+"\'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type \'"+i.type+"\'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return I})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,r){var n=r(8),i=r(9),o=r(22);e.exports=n?function(e,t,r){return i.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,r){var n=r(5);e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,r){var n=r(8),i=r(34),o=r(2),s=r(35),u=Object.defineProperty;t.f=n?u:function(e,t,r){if(o(e),t=s(t,!0),o(r),i)try{return u(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){var n=r(0),i=r(6),o=r(3),s=r(20),u=r(23),a=r(16),c=a.get,l=a.enforce,f=String(String).split("String");(e.exports=function(e,t,r,u){var a=!!u&&!!u.unsafe,c=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet;"function"==typeof r&&("string"!=typeof t||o(r,"name")||i(r,"name",t),l(r).source=f.join("string"==typeof t?t:"")),e!==n?(a?!p&&e[t]&&(c=!0):delete e[t],c?e[t]=r:i(e,t,r)):c?e[t]=r:s(t,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&c(this).source||u(this)}))},function(e,t,r){var n=r(40),i=r(0),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(n[e])||o(i[e]):n[e]&&n[e][t]||i[e]&&i[e][t]}},function(e,t){e.exports=!1},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,r){var n,i,o,s=r(61),u=r(0),a=r(7),c=r(6),l=r(3),f=r(24),p=r(25),h=u.WeakMap;if(s){var d=new h,y=d.get,v=d.has,m=d.set;n=function(e,t){return m.call(d,e,t),t},i=function(e){return y.call(d,e)||{}},o=function(e){return v.call(d,e)}}else{var g=f("state");p[g]=!0,n=function(e,t){return c(e,g,t),t},i=function(e){return l(e,g)?e[g]:{}},o=function(e){return l(e,g)}}e.exports={set:n,get:i,has:o,enforce:function(e){return o(e)?i(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!a(t)||(r=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(e,t,r){var n=r(0),i=r(28).f,o=r(6),s=r(10),u=r(20),a=r(67),c=r(43);e.exports=function(e,t){var r,l,f,p,h,d=e.target,y=e.global,v=e.stat;if(r=y?n:v?n[d]||u(d,{}):(n[d]||{}).prototype)for(l in t){if(p=t[l],f=e.noTargetGet?(h=i(r,l))&&h.value:r[l],!c(y?l:d+(v?".":"#")+l,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;a(p,f)}(e.sham||f&&f.sham)&&o(p,"sham",!0),s(r,l,p,e)}}},function(e,t,r){var n=r(66),i=r(27);e.exports=function(e){return n(i(e))}},function(e,t,r){var n={};n[r(1)("toStringTag")]="z",e.exports="[object z]"===String(n)},function(e,t,r){var n=r(0),i=r(6);e.exports=function(e,t){try{i(n,e,t)}catch(r){n[e]=t}return t}},function(e,t,r){var n=r(0),i=r(7),o=n.document,s=i(o)&&i(o.createElement);e.exports=function(e){return s?o.createElement(e):{}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){var n=r(33),i=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(e){return i.call(e)}),e.exports=n.inspectSource},function(e,t,r){var n=r(32),i=r(36),o=n("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e,t){e.exports={}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can\'t call method on "+e);return e}},function(e,t,r){var n=r(8),i=r(65),o=r(22),s=r(18),u=r(35),a=r(3),c=r(34),l=Object.getOwnPropertyDescriptor;t.f=n?l:function(e,t){if(e=s(e),t=u(t,!0),c)try{return l(e,t)}catch(e){}if(a(e,t))return o(!i.f.call(e,t),e[t])}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,r){var n=r(9).f,i=r(3),o=r(1)("toStringTag");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,o)&&n(e,o,{configurable:!0,value:t})}},function(e,t,r){"use strict";var n=r(15),i=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};e.exports.f=function(e){return new i(e)}},function(e,t,r){var n=r(12),i=r(33);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:n?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,r){var n=r(0),i=r(20),o=n["__core-js_shared__"]||i("__core-js_shared__",{});e.exports=o},function(e,t,r){var n=r(8),i=r(5),o=r(21);e.exports=!n&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(7);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can\'t convert object to primitive value")}},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++r+n).toString(36)}},function(e,t,r){var n=r(5);e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},function(e,t,r){var n=r(19),i=r(13),o=r(1)("toStringTag"),s="Arguments"==i(function(){return arguments}());e.exports=n?i:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:s?i(t):"Object"==(n=i(t))&&"function"==typeof t.callee?"Arguments":n}},function(e,t,r){"use strict";var n=r(17),i=r(73),o=r(45),s=r(78),u=r(30),a=r(6),c=r(10),l=r(1),f=r(12),p=r(14),h=r(44),d=h.IteratorPrototype,y=h.BUGGY_SAFARI_ITERATORS,v=l("iterator"),m=function(){return this};e.exports=function(e,t,r,l,h,g,x){i(r,t,l);var w,b,S,P=function(e){if(e===h&&T)return T;if(!y&&e in E)return E[e];switch(e){case"keys":case"values":case"entries":return function(){return new r(this,e)}}return function(){return new r(this)}},O=t+" Iterator",k=!1,E=e.prototype,L=E[v]||E["@@iterator"]||h&&E[h],T=!y&&L||P(h),Q="Array"==t&&E.entries||L;if(Q&&(w=o(Q.call(new e)),d!==Object.prototype&&w.next&&(f||o(w)===d||(s?s(w,d):"function"!=typeof w[v]&&a(w,v,m)),u(w,O,!0,!0),f&&(p[O]=m))),"values"==h&&L&&"values"!==L.name&&(k=!0,T=function(){return L.call(this)}),f&&!x||E[v]===T||a(E,v,T),p[t]=T,h)if(b={values:P("values"),keys:g?T:P("keys"),entries:P("entries")},x)for(S in b)(y||k||!(S in E))&&c(E,S,b[S]);else n({target:t,proto:!0,forced:y||k},b);return b}},function(e,t,r){var n=r(0);e.exports=n},function(e,t,r){var n=r(3),i=r(18),o=r(70).indexOf,s=r(25);e.exports=function(e,t){var r,u=i(e),a=0,c=[];for(r in u)!n(s,r)&&n(u,r)&&c.push(r);for(;t.length>a;)n(u,r=t[a++])&&(~o(c,r)||c.push(r));return c}},function(e,t,r){var n=r(26),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){var n=r(5),i=/#|\\.prototype\\./,o=function(e,t){var r=u[s(e)];return r==c||r!=a&&("function"==typeof t?n(t):!!t)},s=o.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=o.data={},a=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},function(e,t,r){"use strict";var n,i,o,s=r(45),u=r(6),a=r(3),c=r(1),l=r(12),f=c("iterator"),p=!1;[].keys&&("next"in(o=[].keys())?(i=s(s(o)))!==Object.prototype&&(n=i):p=!0),null==n&&(n={}),l||a(n,f)||u(n,f,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},function(e,t,r){var n=r(3),i=r(74),o=r(24),s=r(75),u=o("IE_PROTO"),a=Object.prototype;e.exports=s?Object.getPrototypeOf:function(e){return e=i(e),n(e,u)?e[u]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,r){var n,i=r(2),o=r(76),s=r(29),u=r(25),a=r(47),c=r(21),l=r(24),f=l("IE_PROTO"),p=function(){},h=function(e){return"